diff options
| author | Amir Rajan <[email protected]> | 2021-01-18 12:08:34 -0600 |
|---|---|---|
| committer | Amir Rajan <[email protected]> | 2021-01-18 12:08:34 -0600 |
| commit | a4b9c048a1d751f5226833bb0c527ba1a8ac5d09 (patch) | |
| tree | 3f2535e7a6272e796d50e7f07c906d4c9eb1b14a /samples/99_genre_rpg_tactical | |
| parent | a24a71805b1924ae7f80776c736f94575c171d2c (diff) | |
| download | dragonruby-game-toolkit-contrib-a4b9c048a1d751f5226833bb0c527ba1a8ac5d09.tar.gz dragonruby-game-toolkit-contrib-a4b9c048a1d751f5226833bb0c527ba1a8ac5d09.zip | |
Synced with 2.3.
Diffstat (limited to 'samples/99_genre_rpg_tactical')
75 files changed, 724 insertions, 0 deletions
diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/app/main.rb b/samples/99_genre_rpg_tactical/gameboard_movement/app/main.rb new file mode 100644 index 0000000..8eb935e --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/app/main.rb @@ -0,0 +1,529 @@ +# Size of board is always 1280x720 + +def tick args + size = 64 + + # Draw a checkerboard as a placeholder game board + i = 0 + j = 0 + while i < 12 do + while j < 21 do + args.outputs.solids << [(j*size), (i*size), size, size, 255, 100, 0, ((i+j) % 2 == 0) ? 255 : 0] + j += 1 + end + j = 0 + i += 1 + end + k = 0 + ary = Array.new(220) + while k < 220 + ary[k] = 1 + if k > 20 and k < 36 + ary[k] = 0 + end + if k > 40 and k < 56 + ary[k] = 0 + end + if k > 60 and k < 76 + ary[k] = 0 + end + if k > 80 and k < 96 + ary[k] = 0 + end + if k > 100 and k < 116 + ary[k] = 0 + end + if k > 120 and k < 136 + ary[k] = 0 + end + if k == 161 and args.state.bot3.hp >= 1 + ary[k] = 0 + end + if k == 147 and args.state.bot1.hp >= 1 + ary[k] = 0 + end + if k == 215 and args.state.bot2.hp >= 1 + ary[k] = 0 + end + k += 1 + end + ary2 = ary; + htarget = 161 + target = 160 + targetb = 181 + targetc = 141 + targetd = 162 + target2 = 146 + target2b = 167 + target2c = 148 + htarget2 = 147 + target3 = 214 + target3c = 216 + target3b = 195 + htarget3 = 215 + # player attributes + args.state.player.x ||= 0 + args.state.player.y ||= 0 + args.state.player.w ||= 64 + args.state.player.h ||= 64 + args.state.player.direction ||= 1 + args.state.player.hp ||= 100 + args.state.player.strength ||= 100 + args.state.player.pos ||= 0 + + # bot1 attributes + args.state.bot1.x ||= 448 + args.state.bot1.y ||= 448 + args.state.bot1.w ||= 64 + args.state.bot1.h ||= 64 + args.state.bot1.direction ||= 1 + args.state.bot1.hp ||= 100 + args.state.bot1.strength ||= 5 + + # bot2 attributes + args.state.bot2.x ||= 960 + args.state.bot2.y ||= 640 + args.state.bot2.w ||= 64 + args.state.bot2.h ||= 64 + args.state.bot2.direction ||= 1 + args.state.bot2.hp ||= 100 + args.state.bot2.strength ||= 8 + + # bot3 attributes + args.state.bot3.x ||= 64 + args.state.bot3.y ||= 512 + args.state.bot3.w ||= 64 + args.state.bot3.h ||= 64 + args.state.bot3.direction ||= 1 + args.state.bot3.hp ||= 100 + args.state.bot3.strength ||= 8 + + # obstacle attributes + args.state.obs1.x ||= 64 + args.state.obs1.y ||= 64 + args.state.obs1.w ||= 960 + args.state.obs1.h ||= 384 + args.state.obs1.direction ||= 1 + + + @menu_shown ||= :hidden + + # display menu + if @menu_shown == :hidden + args.state.menu_button ||= new_button :menu, 1081, 650, "Menu" + args.outputs.primitives << args.state.menu_button[:primitives] + + if button_clicked? args, args.state.menu_button + @menu_shown = :visible + end + + else + args.state.menu_overlay = [1080, 0, 200, 720, 100, 0, 0, 250] + + # first overlay + if args.state.menu_overlay + args.outputs.solids << args.state.menu_overlay + + # move button + args.state.move_button ||= new_button :move, 1081, 650, "Move" + args.outputs.primitives << args.state.move_button[:primitives] + + if button_clicked? args, args.state.move_button + args.gtk.notify! "Move button was clicked!" + end + + # attack button + args.state.attack_button ||= new_button :attack, 1081, 600, "Attack" + args.outputs.primitives << args.state.attack_button[:primitives] + + if button_clicked? args, args.state.attack_button + + if args.state.player.pos+1 == htarget or args.state.player.pos-1 == htarget or args.state.player.pos+20 == htarget or args.state.player.pos-20 == htarget + damage = rand(100) + dealt = "#{damage} Damage Dealt!" + args.gtk.notify! dealt + args.state.bot3.hp -= damage + + end + if args.state.player.pos+1 == htarget2 or args.state.player.pos-1 == htarget2 or args.state.player.pos+20 == htarget2 or args.state.player.pos-20 == htarget2 + damage = rand(100) + dealt = "#{damage} Damage Dealt!" + args.gtk.notify! dealt + + args.state.bot1.hp -= damage + + end + if args.state.player.pos+1 == htarget3 or args.state.player.pos-1 == htarget3 or args.state.player.pos+20 == htarget3 or args.state.player.pos-20 == htarget3 + damage = rand(100) + dealt = "#{damage} Damage Dealt!" + args.gtk.notify! dealt + args.state.bot2.hp -= damage + + end + end + + # items button + args.state.items_button ||= new_button :items, 1081, 550, "Items" + args.outputs.primitives << args.state.items_button[:primitives] + + if button_clicked? args, args.state.items_button + args.state.itemMenu_overlay = [880, 0, 200, 720, 150, 0, 0, 250] + args.gtk.notify! "Items button was clicked!" + end + + # second overlay + if args.state.itemMenu_overlay + args.outputs.solids << args.state.itemMenu_overlay + args.outputs.labels << [960, 700, "Items"] + + # create items + args.state.potion_button ||= new_button :potion, 881, 600, "Potion" + args.outputs.primitives << args.state.potion_button[:primitives] + + if button_clicked? args, args.state.potion_button + args.gtk.notify! "Potion Used!" + end + + args.state.elixer_button ||= new_button :potion, 881, 550, "Elixer" + args.outputs.primitives << args.state.elixer_button[:primitives] + + if button_clicked? args, args.state.elixer_button + args.gtk.notify! "Elixer Used!" + end + + end + + # wait button + args.state.wait_button ||= new_button :wait, 1081, 500, "Wait" + args.outputs.primitives << args.state.wait_button[:primitives] + + if button_clicked? args, args.state.wait_button + args.gtk.notify! "Wait button was clicked!" + end + + # close button + args.state.close_button ||= new_button :close, 1081, 450, "Close" + args.outputs.primitives << args.state.close_button[:primitives] + + # hide menu + if button_clicked? args, args.state.close_button + @menu_shown = :hidden + end + + end + end + + # left and right movement + if args.inputs.keyboard.key_down.right and ary[args.state.player.pos+1] == 1 and args.state.player.pos%20 < 19 + args.state.player.direction = 1 + args.state.player.started_running_at = args.state.tick_count + args.state.player.x += size + args.state.player.pos += 1 + elsif args.inputs.keyboard.key_down.left and ary[args.state.player.pos-1] == 1 and args.state.player.pos%20 > 0 + args.state.player.direction = -1 + args.state.player.started_running_at = args.state.tick_count + args.state.player.x -= size + args.state.player.pos -= 1 + end + + + + + # up and down movement + if args.inputs.keyboard.key_down.up and ary[args.state.player.pos+20] == 1 and args.state.player.pos < 200 + args.state.player.direction = 1 + args.state.player.started_running_at = args.state.tick_count + args.state.player.y += size + args.state.player.pos += 20 + elsif args.inputs.keyboard.key_down.down and ary[args.state.player.pos-20] == 1 and args.state.player.pos >= 20 + args.state.player.direction = -1 + args.state.player.started_running_at = args.state.tick_count + args.state.player.y -= size + args.state.player.pos -= 20 + end + + pigga = args.state.player.intersect_rect? args.state.obs1 + if pigga + args.gtk.notify! "sprites collide!" + args.state.player.y -= size + end + looping = true + cangoup = false + cangoright = false + cangodown = false + cangoleft = false + ftarget = 10000 + hold = 9 + testtarget = args.state.player.pos + if args.state.bot3.hp > 0 + ftarget = (target-testtarget).abs + hold = target + end + if(ftarget > (targetb-testtarget).abs and args.state.bot3.hp > 0) + ftarget = (targetb-testtarget).abs + hold = targetb + end + if(ftarget > (targetc-testtarget).abs and args.state.bot3.hp > 0) + ftarget = (targetc-testtarget).abs + hold = targetc + end + if(ftarget > (targetd-testtarget).abs and args.state.bot3.hp > 0) + ftarget = (targetd-testtarget).abs + hold = targetd + end + if(ftarget > (target2-testtarget).abs and args.state.bot1.hp > 0) + ftarget = (target2-testtarget).abs + hold = target2 + end + if(ftarget > (target2b-testtarget).abs and args.state.bot1.hp > 0) + ftarget = (target2b-testtarget).abs + hold = target2b + end + if(ftarget > (target2c-testtarget).abs and args.state.bot1.hp > 0) + ftarget = (target2c-testtarget).abs + hold = target2c + end + if(ftarget > (target3-testtarget).abs and args.state.bot2.hp > 0) + ftarget = (target3-testtarget).abs + hold = target3 + end + if(ftarget > (target3b-testtarget).abs and args.state.bot2.hp > 0) + ftarget = (target3b-testtarget).abs + hold = target3b + end + if(ftarget > (target3c-testtarget).abs and args.state.bot2.hp > 0) + ftarget = (target3c-testtarget).abs + hold = target3c + end + if ftarget == 10000 + looping = false + end + if args.inputs.keyboard.key_down.f + while looping and target != testtarget and targetb != testtarget and targetc != testtarget and targetd != testtarget and target2 != testtarget and target2b != testtarget and target2c != testtarget and target3 != testtarget and target3b != testtarget and target3c != testtarget + cangoup = false + cangoright = false + cangodown = false + cangoleft = false + + if hold-testtarget >= 20 and ary2[args.state.player.pos+20] == 1 and args.state.player.pos < 200 + cangoup = true + elsif testtarget-hold >= 20 and ary2[args.state.player.pos-20] == 1 and args.state.player.pos > 20 + cangodown = true + cangoup = false + elsif hold%20-testtarget%20 > 0 and ary2[args.state.player.pos+1] == 1 and args.state.player.pos%20 < 19 + cangodown = false + cangoup = false + cangoright = true + elsif testtarget%20-hold%20 > 0 and ary2[args.state.player.pos-1] == 1 and args.state.player.pos%20 > 0 + cangodown = false + cangoup = false + cangoright = false + cangoleft = true + end + if cangodown == false and cangoup == false and cangoleft == false and cangoright == false + if ary2[args.state.player.pos+20] == 1 and args.state.player.pos < 200 + cangoup = true + elsif ary2[args.state.player.pos-20] == 1 and args.state.player.pos > 20 + cangodown = true + cangoup = false + elsif ary2[args.state.player.pos+1] == 1 and args.state.player.pos%20 < 19 + cangodown = false + cangoup = false + cangoright = true + elsif ary2[args.state.player.pos-1] == 1 and args.state.player.pos%20 > 0 + cangodown = false + cangoup = false + cangoright = false + cangoleft = true + end + end + if cangodown == true + args.state.player.direction = -1 + args.state.player.started_running_at = args.state.tick_count + args.state.player.y -= size + ary2[args.state.player.pos] = 0 + args.state.player.pos -= 20 + testtarget -= 20 + + elsif cangoup == true + args.state.player.direction = 1 + args.state.player.started_running_at = args.state.tick_count + args.state.player.y += size + ary2[args.state.player.pos] = 0 + args.state.player.pos += 20 + testtarget+=20 + + elsif cangoright == true + args.state.player.direction = 1 + args.state.player.started_running_at = args.state.tick_count + args.state.player.x += size + ary2[args.state.player.pos] = 0 + args.state.player.pos += 1 + testtarget += 1 + + elsif cangoleft == true + args.state.player.direction = -1 + args.state.player.started_running_at = args.state.tick_count + args.state.player.x -= size + ary2[args.state.player.pos] = 0 + args.state.player.pos -= 1 + testtarget -= 1 + end + + end + end + + + #Wrap player around the stage + if args.state.player.x > 1280 + args.state.player.x = -64 + args.state.player.started_running_at ||= args.state.tick_count + elsif args.state.player.x < -64 + args.state.player.x = 1280 + args.state.player.started_running_at ||= args.state.tick_count + end + + if args.state.player.y > 720 + args.state.player.y = -64 + args.state.player.started_running_at ||= args.state.tick_count + elsif args.state.player.y < -64 + args.state.player.y = 720 + args.state.player.started_running_at ||= args.state.tick_count + end + + # Display obstacles + args.outputs.sprites << display_obs1(args) + + #Display the flying dragon and bots + args.outputs.sprites << display_dragon(args) + if args.state.bot1.hp >= 1 + args.outputs.sprites << display_bot1(args) + end + if args.state.bot2.hp >= 1 + args.outputs.sprites << display_bot2(args) + end + if args.state.bot3.hp >= 1 + args.outputs.sprites << display_bot3(args) + end + if args.state.bot1.hp <= 0 and args.state.bot3.hp <= 0 and args.state.bot2.hp <= 0 + args.gtk.notify! "You Win!" + end +end + +# helper method to create a button +def new_button id, x, y, text + # create a hash ("entity") that has some metadata + # about what it represents + entity = + { + id: id, + rect: { x: x, y: y, w: 200, h: 50 } + } + + # for that entity, define the primitives + # that form it + entity[:primitives] = + [ + { x: x, y: y, w: 200, h: 50 }.border, + { x: x + 75, y: y + 30, text: text }.label + ] + + entity +end + +# helper method for determining if a button was clicked +def button_clicked? args, button + return false unless args.inputs.mouse.click + return args.inputs.mouse.point.inside_rect? button[:rect] +end + +def display_dragon args + start_looping_at = 0 + number_of_sprites = 2 + number_of_frames_to_show_each_sprite = 8 + does_sprite_loop = true + sprite_index = start_looping_at.frame_index number_of_sprites, + number_of_frames_to_show_each_sprite, + does_sprite_loop + { + pos: args.state.player.pos, + x: args.state.player.x, + y: args.state.player.y, + w: args.state.player.w, + h: args.state.player.h, + path: "sprites/roy-#{sprite_index}.png", + flip_horizontally: args.state.player.direction < 0 + } +end + +def display_bot1 args + start_looping_at = 0 + number_of_sprites = 6 + number_of_frames_to_show_each_sprite = 4 + does_sprite_loop = true + sprite_index = start_looping_at.frame_index number_of_sprites, + number_of_frames_to_show_each_sprite, + does_sprite_loop + { + x: args.state.bot1.x, + y: args.state.bot1.y, + w: args.state.bot1.w, + h: args.state.bot1.h, + path: "sprites/dragon-#{sprite_index}.png", + flip_horizontally: args.state.bot1.direction < 0 + } +end + +def display_bot2 args + start_looping_at = 0 + number_of_sprites = 6 + number_of_frames_to_show_each_sprite = 4 + does_sprite_loop = true + sprite_index = start_looping_at.frame_index number_of_sprites, + number_of_frames_to_show_each_sprite, + does_sprite_loop + { + x: args.state.bot2.x, + y: args.state.bot2.y, + w: args.state.bot2.w, + h: args.state.bot2.h, + path: "sprites/dragon-#{sprite_index}.png", + flip_horizontally: args.state.bot2.direction < 0 + } +end + +def display_bot3 args + start_looping_at = 0 + number_of_sprites = 6 + number_of_frames_to_show_each_sprite = 4 + does_sprite_loop = true + sprite_index = start_looping_at.frame_index number_of_sprites, + number_of_frames_to_show_each_sprite, + does_sprite_loop + { + x: args.state.bot3.x, + y: args.state.bot3.y, + w: args.state.bot3.w, + h: args.state.bot3.h, + path: "sprites/dragon-#{sprite_index}.png", + flip_horizontally: args.state.bot3.direction < 0 + } +end + +def display_obs1 args + start_looping_at = 0 + number_of_sprites = 1 + number_of_frames_to_show_each_sprite = 8 + does_sprite_loop = true + sprite_index = start_looping_at.frame_index number_of_sprites, + number_of_frames_to_show_each_sprite, + does_sprite_loop + { + x: args.state.obs1.x, + y: args.state.obs1.y, + w: args.state.obs1.w, + h: args.state.obs1.h, + path: "sprites/water-1.png", + flip_horizontally: args.state.obs1.direction < 0 + } +end diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/border-black.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/border-black.png Binary files differnew file mode 100644 index 0000000..c9d0bad --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/border-black.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-black.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-black.png Binary files differnew file mode 100644 index 0000000..c98e23d --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-black.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-blue.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-blue.png Binary files differnew file mode 100644 index 0000000..1726d2a --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-blue.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-gray.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-gray.png Binary files differnew file mode 100644 index 0000000..960f191 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-gray.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-green.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-green.png Binary files differnew file mode 100644 index 0000000..43cf7ee --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-green.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-indigo.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-indigo.png Binary files differnew file mode 100644 index 0000000..598e240 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-indigo.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-orange.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-orange.png Binary files differnew file mode 100644 index 0000000..5604a42 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-orange.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-red.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-red.png Binary files differnew file mode 100644 index 0000000..7f17ca6 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-red.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-violet.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-violet.png Binary files differnew file mode 100644 index 0000000..681d210 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-violet.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-white.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-white.png Binary files differnew file mode 100644 index 0000000..bd32155 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-white.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-yellow.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-yellow.png Binary files differnew file mode 100644 index 0000000..94992eb --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-yellow.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-0.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-0.png Binary files differnew file mode 100644 index 0000000..fb179af --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-0.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-1.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-1.png Binary files differnew file mode 100644 index 0000000..8cfe531 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-1.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-2.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-2.png Binary files differnew file mode 100644 index 0000000..cb462e1 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-2.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-3.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-3.png Binary files differnew file mode 100644 index 0000000..04c4977 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-3.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-4.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-4.png Binary files differnew file mode 100644 index 0000000..b29fa3d --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-4.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-5.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-5.png Binary files differnew file mode 100644 index 0000000..99f4e74 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-5.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-0.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-0.png Binary files differnew file mode 100644 index 0000000..f48636f --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-0.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-1.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-1.png Binary files differnew file mode 100644 index 0000000..b4018d9 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-1.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-2.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-2.png Binary files differnew file mode 100644 index 0000000..3abaedd --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-2.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-3.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-3.png Binary files differnew file mode 100644 index 0000000..fe94a5a --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-3.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-4.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-4.png Binary files differnew file mode 100644 index 0000000..ed04237 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-4.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-5.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-5.png Binary files differnew file mode 100644 index 0000000..2cd8f06 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-5.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-6.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-6.png Binary files differnew file mode 100644 index 0000000..e55909c --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-6.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-sheet.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-sheet.png Binary files differnew file mode 100644 index 0000000..8559a5c --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-sheet.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-black.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-black.png Binary files differnew file mode 100644 index 0000000..f50c872 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-black.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-blue.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-blue.png Binary files differnew file mode 100644 index 0000000..1696bae --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-blue.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-gray.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-gray.png Binary files differnew file mode 100644 index 0000000..e8c4c5a --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-gray.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-green.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-green.png Binary files differnew file mode 100644 index 0000000..a700602 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-green.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-indigo.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-indigo.png Binary files differnew file mode 100644 index 0000000..15f6f4f --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-indigo.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-orange.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-orange.png Binary files differnew file mode 100644 index 0000000..1587173 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-orange.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-red.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-red.png Binary files differnew file mode 100644 index 0000000..d442f39 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-red.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-violet.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-violet.png Binary files differnew file mode 100644 index 0000000..3be5731 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-violet.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-white.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-white.png Binary files differnew file mode 100644 index 0000000..c1ad970 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-white.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-yellow.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-yellow.png Binary files differnew file mode 100644 index 0000000..63f5f34 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-yellow.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-black.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-black.png Binary files differnew file mode 100644 index 0000000..fa9e463 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-black.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-blue.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-blue.png Binary files differnew file mode 100644 index 0000000..a3d8524 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-blue.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-gray.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-gray.png Binary files differnew file mode 100644 index 0000000..85dcc1d --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-gray.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-green.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-green.png Binary files differnew file mode 100644 index 0000000..ec2773e --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-green.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-indigo.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-indigo.png Binary files differnew file mode 100644 index 0000000..e6be50c --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-indigo.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-orange.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-orange.png Binary files differnew file mode 100644 index 0000000..154d81c --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-orange.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-red.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-red.png Binary files differnew file mode 100644 index 0000000..3448c4d --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-red.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-violet.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-violet.png Binary files differnew file mode 100644 index 0000000..f09bf21 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-violet.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-white.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-white.png Binary files differnew file mode 100644 index 0000000..a45793d --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-white.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-yellow.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-yellow.png Binary files differnew file mode 100644 index 0000000..9be20c7 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-yellow.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/roy-0.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/roy-0.png Binary files differnew file mode 100644 index 0000000..dd122e1 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/roy-0.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/roy-1.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/roy-1.png Binary files differnew file mode 100644 index 0000000..d3ac548 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/roy-1.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-black.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-black.png Binary files differnew file mode 100644 index 0000000..cea7bd7 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-black.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-blue.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-blue.png Binary files differnew file mode 100644 index 0000000..b840849 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-blue.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-gray.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-gray.png Binary files differnew file mode 100644 index 0000000..2142b30 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-gray.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-green.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-green.png Binary files differnew file mode 100644 index 0000000..5ef7f75 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-green.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-indigo.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-indigo.png Binary files differnew file mode 100644 index 0000000..2384108 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-indigo.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-orange.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-orange.png Binary files differnew file mode 100644 index 0000000..bb1eee7 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-orange.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-red.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-red.png Binary files differnew file mode 100644 index 0000000..3ed5f13 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-red.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-violet.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-violet.png Binary files differnew file mode 100644 index 0000000..333540c --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-violet.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-white.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-white.png Binary files differnew file mode 100644 index 0000000..378c565 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-white.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-yellow.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-yellow.png Binary files differnew file mode 100644 index 0000000..0edeeec --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-yellow.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/star.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/star.png Binary files differnew file mode 100644 index 0000000..e0ee0f9 --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/star.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/water-1.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/water-1.png Binary files differnew file mode 100644 index 0000000..527385a --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/water-1.png diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/water-2.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/water-2.png Binary files differnew file mode 100644 index 0000000..7f73b1b --- /dev/null +++ b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/water-2.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/app/main.rb b/samples/99_genre_rpg_tactical/taking_turns/app/main.rb new file mode 100644 index 0000000..aac6de7 --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/app/main.rb @@ -0,0 +1,189 @@ +def tick args + args.state.base_columns ||= 10.times.map { |n| 50 * n + 1280 / 2 - 5 * 50 + 5 } + args.state.base_rows ||= 5.times.map { |n| 50 * n + 720 - 5 * 50 } + args.state.offset_columns = 10.times.map { |n| (n - 4.5) * Math.sin(Kernel.tick_count.to_radians) * 12 } + args.state.offset_rows = 5.map { 0 } + args.state.columns = 10.times.map { |i| args.state.base_columns[i] + args.state.offset_columns[i] } + args.state.rows = 5.times.map { |i| args.state.base_rows[i] + args.state.offset_rows[i] } + args.state.explosions ||= [] + args.state.enemies ||= [] + args.state.score ||= 0 + args.state.wave ||= 0 + if args.state.enemies.empty? + args.state.wave += 1 + args.state.wave_root = Math.sqrt(args.state.wave) + args.state.enemies = make_enemies + end + args.state.player ||= {x: 620, y: 80, w: 40, h: 40, path: 'sprites/circle-gray.png', angle: 90, cooldown: 0, alive: true} + args.state.enemy_bullets ||= [] + args.state.player_bullets ||= [] + args.state.lives ||= 3 + args.state.missed_shots ||= 0 + args.state.fired_shots ||= 0 + + update_explosions args + update_enemy_positions args + + if args.inputs.left && args.state.player[:x] > (300 + 5) + args.state.player[:x] -= 5 + end + if args.inputs.right && args.state.player[:x] < (1280 - args.state.player[:w] - 300 - 5) + args.state.player[:x] += 5 + end + + args.state.enemy_bullets.each do |bullet| + bullet[:x] += bullet[:dx] + bullet[:y] += bullet[:dy] + end + args.state.player_bullets.each do |bullet| + bullet[:x] += bullet[:dx] + bullet[:y] += bullet[:dy] + end + + args.state.enemy_bullets = args.state.enemy_bullets.find_all { |bullet| bullet[:y].between?(-16, 736) } + args.state.player_bullets = args.state.player_bullets.find_all do |bullet| + if bullet[:y].between?(-16, 736) + true + else + args.state.missed_shots += 1 + false + end + end + + args.state.enemies = args.state.enemies.reject do |enemy| + if args.state.player[:alive] && 1500 > (args.state.player[:x] - enemy[:x]) ** 2 + (args.state.player[:y] - enemy[:y]) ** 2 + args.state.explosions << {x: enemy[:x] + 4, y: enemy[:y] + 4, w: 32, h: 32, path: 'sprites/explosion-0.png', age: 0} + args.state.explosions << {x: args.state.player[:x] + 4, y: args.state.player[:y] + 4, w: 32, h: 32, path: 'sprites/explosion-0.png', age: 0} + args.state.player[:alive] = false + true + else + false + end + end + args.state.enemy_bullets.each do |bullet| + if args.state.player[:alive] && 400 > (args.state.player[:x] - bullet[:x] + 12) ** 2 + (args.state.player[:y] - bullet[:y] + 12) ** 2 + args.state.explosions << {x: args.state.player[:x] + 4, y: args.state.player[:y] + 4, w: 32, h: 32, path: 'sprites/explosion-0.png', age: 0} + args.state.player[:alive] = false + bullet[:despawn] = true + end + end + args.state.enemies = args.state.enemies.reject do |enemy| + args.state.player_bullets.any? do |bullet| + if 400 > (enemy[:x] - bullet[:x] + 12) ** 2 + (enemy[:y] - bullet[:y] + 12) ** 2 + args.state.explosions << {x: enemy[:x] + 4, y: enemy[:y] + 4, w: 32, h: 32, path: 'sprites/explosion-0.png', age: 0} + bullet[:despawn] = true + args.state.score += 1000 * args.state.wave + true + else + false + end + end + end + + args.state.player_bullets = args.state.player_bullets.reject { |bullet| bullet[:despawn] } + args.state.enemy_bullets = args.state.enemy_bullets.reject { |bullet| bullet[:despawn] } + + args.state.player[:cooldown] -= 1 + if args.inputs.keyboard.key_held.space && args.state.player[:cooldown] <= 0 && args.state.player[:alive] + args.state.player_bullets << {x: args.state.player[:x] + 12, y: args.state.player[:y] + 28, w: 16, h: 16, path: 'sprites/star.png', dx: 0, dy: 8}.sprite + args.state.fired_shots += 1 + args.state.player[:cooldown] = 10 + 20 / args.state.wave + end + args.state.enemies.each do |enemy| + if Math.rand < 0.0005 + 0.0005 * args.state.wave && args.state.player[:alive] && enemy[:move_state] == :normal + args.state.enemy_bullets << {x: enemy[:x] + 12, y: enemy[:y] - 8, w: 16, h: 16, path: 'sprites/star.png', dx: 0, dy: -3 - args.state.wave_root}.sprite + end + end + + args.outputs.background_color = [0, 0, 0] + args.outputs.primitives << args.state.enemies.map do |enemy| + [enemy[:x], enemy[:y], 40, 40, enemy[:path], -90].sprite + end + args.outputs.primitives << args.state.player if args.state.player[:alive] + args.outputs.primitives << args.state.explosions + args.outputs.primitives << args.state.player_bullets + args.outputs.primitives << args.state.enemy_bullets + accuracy = args.state.fired_shots.zero? ? 1 : (args.state.fired_shots - args.state.missed_shots) / args.state.fired_shots + args.outputs.primitives << [ + [0, 0, 300, 720, 96, 0, 0].solid, + [1280 - 300, 0, 300, 720, 96, 0, 0].solid, + [1280 - 290, 60, "Wave #{args.state.wave}", 255, 255, 255].label, + [1280 - 290, 40, "Accuracy #{(accuracy * 100).floor}%", 255, 255, 255].label, + [1280 - 290, 20, "Score #{(args.state.score * accuracy).floor}", 255, 255, 255].label, + ] + args.outputs.primitives << args.state.lives.times.map do |n| + [1280 - 290 + 50 * n, 80, 40, 40, 'sprites/circle-gray.png', 90].sprite + end + #args.outputs.debug << args.gtk.framerate_diagnostics_primitives + + if (!args.state.player[:alive]) && args.state.enemy_bullets.empty? && args.state.explosions.empty? && args.state.enemies.all? { |enemy| enemy[:move_state] == :normal } + args.state.player[:alive] = true + args.state.player[:x] = 624 + args.state.player[:y] = 80 + args.state.lives -= 1 + if args.state.lives == -1 + args.state.clear! + end + end +end + +def make_enemies + enemies = [] + enemies += 10.times.map { |n| {x: Math.rand * 1280 * 2 - 640, y: Math.rand * 720 * 2 + 720, row: 0, col: n, path: 'sprites/circle-orange.png', move_state: :retreat} } + enemies += 10.times.map { |n| {x: Math.rand * 1280 * 2 - 640, y: Math.rand * 720 * 2 + 720, row: 1, col: n, path: 'sprites/circle-orange.png', move_state: :retreat} } + enemies += 8.times.map { |n| {x: Math.rand * 1280 * 2 - 640, y: Math.rand * 720 * 2 + 720, row: 2, col: n + 1, path: 'sprites/circle-blue.png', move_state: :retreat} } + enemies += 8.times.map { |n| {x: Math.rand * 1280 * 2 - 640, y: Math.rand * 720 * 2 + 720, row: 3, col: n + 1, path: 'sprites/circle-blue.png', move_state: :retreat} } + enemies += 4.times.map { |n| {x: Math.rand * 1280 * 2 - 640, y: Math.rand * 720 * 2 + 720, row: 4, col: n + 3, path: 'sprites/circle-green.png', move_state: :retreat} } + enemies +end + +def update_explosions args + args.state.explosions.each do |explosion| + explosion[:age] += 0.5 + explosion[:path] = "sprites/explosion-#{explosion[:age].floor}.png" + end + args.state.explosions = args.state.explosions.reject { |explosion| explosion[:age] >= 7 } +end + +def update_enemy_positions args + args.state.enemies.each do |enemy| + if enemy[:move_state] == :normal + enemy[:x] = args.state.columns[enemy[:col]] + enemy[:y] = args.state.rows[enemy[:row]] + enemy[:move_state] = :dive if Math.rand < 0.0002 + 0.00005 * args.state.wave && args.state.player[:alive] + elsif enemy[:move_state] == :dive + enemy[:target_x] ||= args.state.player[:x] + enemy[:target_y] ||= args.state.player[:y] + dx = enemy[:target_x] - enemy[:x] + dy = enemy[:target_y] - enemy[:y] + vel = Math.sqrt(dx * dx + dy * dy) + speed_limit = 2 + args.state.wave_root + if vel > speed_limit + dx /= vel / speed_limit + dy /= vel / speed_limit + end + if vel < 1 || !args.state.player[:alive] + enemy[:move_state] = :retreat + end + enemy[:x] += dx + enemy[:y] += dy + elsif enemy[:move_state] == :retreat + enemy[:target_x] = args.state.columns[enemy[:col]] + enemy[:target_y] = args.state.rows[enemy[:row]] + dx = enemy[:target_x] - enemy[:x] + dy = enemy[:target_y] - enemy[:y] + vel = Math.sqrt(dx * dx + dy * dy) + speed_limit = 2 + args.state.wave_root + if vel > speed_limit + dx /= vel / speed_limit + dy /= vel / speed_limit + elsif vel < 1 + enemy[:move_state] = :normal + enemy[:target_x] = nil + enemy[:target_y] = nil + end + enemy[:x] += dx + enemy[:y] += dy + end + end +end diff --git a/samples/99_genre_rpg_tactical/taking_turns/run.bat b/samples/99_genre_rpg_tactical/taking_turns/run.bat new file mode 100644 index 0000000..36335e3 --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/run.bat @@ -0,0 +1,6 @@ +cd /d %~dp0 + +cd .. +cd .. +cd .. +dragonruby samples/99_genre_arcade/dragalaga diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-blue.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-blue.png Binary files differnew file mode 100644 index 0000000..1726d2a --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-blue.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-gray.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-gray.png Binary files differnew file mode 100644 index 0000000..960f191 --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-gray.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-green.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-green.png Binary files differnew file mode 100644 index 0000000..43cf7ee --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-green.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-orange.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-orange.png Binary files differnew file mode 100644 index 0000000..5604a42 --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-orange.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-0.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-0.png Binary files differnew file mode 100644 index 0000000..f48636f --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-0.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-1.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-1.png Binary files differnew file mode 100644 index 0000000..b4018d9 --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-1.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-2.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-2.png Binary files differnew file mode 100644 index 0000000..3abaedd --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-2.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-3.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-3.png Binary files differnew file mode 100644 index 0000000..fe94a5a --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-3.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-4.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-4.png Binary files differnew file mode 100644 index 0000000..ed04237 --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-4.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-5.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-5.png Binary files differnew file mode 100644 index 0000000..2cd8f06 --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-5.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-6.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-6.png Binary files differnew file mode 100644 index 0000000..e55909c --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-6.png diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/star.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/star.png Binary files differnew file mode 100644 index 0000000..e0ee0f9 --- /dev/null +++ b/samples/99_genre_rpg_tactical/taking_turns/sprites/star.png |
