summaryrefslogtreecommitdiffhomepage
path: root/samples/99_genre_rpg_tactical
diff options
context:
space:
mode:
Diffstat (limited to 'samples/99_genre_rpg_tactical')
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/app/main.rb529
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/border-black.pngbin908 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-black.pngbin1882 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-blue.pngbin2901 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-gray.pngbin3006 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-green.pngbin2887 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-indigo.pngbin2433 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-orange.pngbin2670 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-red.pngbin2233 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-violet.pngbin2439 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-white.pngbin1754 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-yellow.pngbin2456 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-0.pngbin12896 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-1.pngbin2964 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-2.pngbin3047 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-3.pngbin2655 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-4.pngbin2725 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-5.pngbin2655 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-0.pngbin267 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-1.pngbin4585 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-2.pngbin4675 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-3.pngbin4724 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-4.pngbin4773 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-5.pngbin4742 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-6.pngbin4665 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-sheet.pngbin2584 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-black.pngbin2602 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-blue.pngbin4842 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-gray.pngbin5184 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-green.pngbin4695 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-indigo.pngbin4918 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-orange.pngbin4825 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-red.pngbin3753 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-violet.pngbin5069 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-white.pngbin5326 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-yellow.pngbin5249 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-black.pngbin264 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-blue.pngbin361 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-gray.pngbin493 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-green.pngbin361 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-indigo.pngbin361 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-orange.pngbin361 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-red.pngbin361 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-violet.pngbin361 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-white.pngbin361 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-yellow.pngbin361 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/roy-0.pngbin20775 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/roy-1.pngbin3132 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-black.pngbin250 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-blue.pngbin283 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-gray.pngbin251 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-green.pngbin283 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-indigo.pngbin283 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-orange.pngbin282 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-red.pngbin274 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-violet.pngbin284 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-white.pngbin279 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-yellow.pngbin286 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/star.pngbin711 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/water-1.pngbin656794 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/gameboard_movement/sprites/water-2.pngbin655810 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/app/main.rb189
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/run.bat6
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/circle-blue.pngbin2901 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/circle-gray.pngbin3006 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/circle-green.pngbin2887 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/circle-orange.pngbin2670 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-0.pngbin267 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-1.pngbin4585 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-2.pngbin4675 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-3.pngbin4724 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-4.pngbin4773 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-5.pngbin4742 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-6.pngbin4665 -> 0 bytes
-rw-r--r--samples/99_genre_rpg_tactical/taking_turns/sprites/star.pngbin711 -> 0 bytes
75 files changed, 0 insertions, 724 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
deleted file mode 100644
index 8eb935e..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/app/main.rb
+++ /dev/null
@@ -1,529 +0,0 @@
-# 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
deleted file mode 100644
index c9d0bad..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/border-black.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index c98e23d..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-black.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 1726d2a..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-blue.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 960f191..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-gray.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 43cf7ee..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-green.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 598e240..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-indigo.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 5604a42..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-orange.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 7f17ca6..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-red.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 681d210..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-violet.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index bd32155..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-white.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 94992eb..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/circle-yellow.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index fb179af..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-0.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 8cfe531..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-1.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index cb462e1..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-2.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 04c4977..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-3.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index b29fa3d..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-4.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 99f4e74..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/dragon-5.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index f48636f..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-0.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index b4018d9..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-1.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 3abaedd..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-2.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index fe94a5a..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-3.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index ed04237..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-4.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 2cd8f06..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-5.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index e55909c..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-6.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 8559a5c..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/explosion-sheet.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index f50c872..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-black.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 1696bae..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-blue.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index e8c4c5a..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-gray.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index a700602..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-green.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 15f6f4f..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-indigo.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 1587173..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-orange.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index d442f39..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-red.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 3be5731..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-violet.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index c1ad970..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-white.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 63f5f34..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/hexagon-yellow.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index fa9e463..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-black.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index a3d8524..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-blue.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 85dcc1d..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-gray.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index ec2773e..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-green.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index e6be50c..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-indigo.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 154d81c..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-orange.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 3448c4d..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-red.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index f09bf21..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-violet.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index a45793d..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-white.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 9be20c7..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/isometric-yellow.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index dd122e1..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/roy-0.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index d3ac548..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/roy-1.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index cea7bd7..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-black.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index b840849..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-blue.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 2142b30..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-gray.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 5ef7f75..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-green.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 2384108..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-indigo.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index bb1eee7..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-orange.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 3ed5f13..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-red.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 333540c..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-violet.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 378c565..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-white.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 0edeeec..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/square-yellow.png
+++ /dev/null
Binary files differ
diff --git a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/star.png b/samples/99_genre_rpg_tactical/gameboard_movement/sprites/star.png
deleted file mode 100644
index e0ee0f9..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/star.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 527385a..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/water-1.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 7f73b1b..0000000
--- a/samples/99_genre_rpg_tactical/gameboard_movement/sprites/water-2.png
+++ /dev/null
Binary files differ
diff --git a/samples/99_genre_rpg_tactical/taking_turns/app/main.rb b/samples/99_genre_rpg_tactical/taking_turns/app/main.rb
deleted file mode 100644
index aac6de7..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/app/main.rb
+++ /dev/null
@@ -1,189 +0,0 @@
-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
deleted file mode 100644
index 36335e3..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/run.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-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
deleted file mode 100644
index 1726d2a..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-blue.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 960f191..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-gray.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 43cf7ee..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-green.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 5604a42..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/circle-orange.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index f48636f..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-0.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index b4018d9..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-1.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 3abaedd..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-2.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index fe94a5a..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-3.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index ed04237..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-4.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index 2cd8f06..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-5.png
+++ /dev/null
Binary files differ
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
deleted file mode 100644
index e55909c..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/explosion-6.png
+++ /dev/null
Binary files differ
diff --git a/samples/99_genre_rpg_tactical/taking_turns/sprites/star.png b/samples/99_genre_rpg_tactical/taking_turns/sprites/star.png
deleted file mode 100644
index e0ee0f9..0000000
--- a/samples/99_genre_rpg_tactical/taking_turns/sprites/star.png
+++ /dev/null
Binary files differ