From c3e094bc997a98772d410bc5d64e7b7be0fbe135 Mon Sep 17 00:00:00 2001 From: Logan Koester Date: Mon, 24 Jan 2022 10:53:48 +0700 Subject: [PATCH] Import bullet-hell sample files --- README.md | 6 +- Smaug.toml | 4 +- app/main.rb | 192 ++++++++++++++++++++++++++++- metadata/game_metadata.txt | 6 +- sprites/circle-blue.png | Bin 0 -> 2901 bytes sprites/circle-gray.png | Bin 0 -> 3006 bytes sprites/circle-green.png | Bin 0 -> 2887 bytes sprites/circle-orange.png | Bin 0 -> 2670 bytes sprites/{misc => }/explosion-0.png | Bin sprites/{misc => }/explosion-1.png | Bin sprites/{misc => }/explosion-2.png | Bin sprites/{misc => }/explosion-3.png | Bin sprites/{misc => }/explosion-4.png | Bin sprites/{misc => }/explosion-5.png | Bin sprites/{misc => }/explosion-6.png | Bin sprites/misc/dragon-0.png | Bin 12896 -> 0 bytes sprites/misc/dragon-1.png | Bin 2964 -> 0 bytes sprites/misc/dragon-2.png | Bin 3047 -> 0 bytes sprites/misc/dragon-3.png | Bin 2655 -> 0 bytes sprites/misc/dragon-4.png | Bin 2725 -> 0 bytes sprites/misc/dragon-5.png | Bin 2655 -> 0 bytes sprites/misc/explosion-sheet.png | Bin 2584 -> 0 bytes sprites/star.png | Bin 0 -> 711 bytes 23 files changed, 194 insertions(+), 14 deletions(-) create mode 100644 sprites/circle-blue.png create mode 100644 sprites/circle-gray.png create mode 100644 sprites/circle-green.png create mode 100644 sprites/circle-orange.png rename sprites/{misc => }/explosion-0.png (100%) rename sprites/{misc => }/explosion-1.png (100%) rename sprites/{misc => }/explosion-2.png (100%) rename sprites/{misc => }/explosion-3.png (100%) rename sprites/{misc => }/explosion-4.png (100%) rename sprites/{misc => }/explosion-5.png (100%) rename sprites/{misc => }/explosion-6.png (100%) delete mode 100644 sprites/misc/dragon-0.png delete mode 100644 sprites/misc/dragon-1.png delete mode 100644 sprites/misc/dragon-2.png delete mode 100644 sprites/misc/dragon-3.png delete mode 100644 sprites/misc/dragon-4.png delete mode 100644 sprites/misc/dragon-5.png delete mode 100644 sprites/misc/explosion-sheet.png create mode 100644 sprites/star.png diff --git a/README.md b/README.md index 7a5ec8d..cd11afd 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,3 @@ -# nilpotent-manila +# bullet-hell -> A new Smaug project - ---- +> A DragonRuby sample diff --git a/Smaug.toml b/Smaug.toml index 67d753a..f582038 100644 --- a/Smaug.toml +++ b/Smaug.toml @@ -1,8 +1,8 @@ [project] # The name of your game's executable. This should only contain a-z, A-Z, 0-9, _ or -. -name = "nilpotent_manila" +name = "bullet-hell" # The game's title. This will show up in the tile bar of your executable. -title = "Nilpotent-Manila" +title = "Bullet Hell" version = "0.1.0" authors = ["TODO: ldk "] icon = "metadata/icon.png" diff --git a/app/main.rb b/app/main.rb index 5bf8c57..aac6de7 100644 --- a/app/main.rb +++ b/app/main.rb @@ -1,7 +1,189 @@ -require 'smaug.rb' - def tick args - args.outputs.labels << [640, 500, 'Nilpotent-Manila', 5, 1] - args.outputs.labels << [640, 460, 'A new Smaug project', 5, 1] - args.outputs.sprites << [576, 280, 128, 101, 'dragonruby.png'] + 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/metadata/game_metadata.txt b/metadata/game_metadata.txt index b5fa83c..fecb681 100755 --- a/metadata/game_metadata.txt +++ b/metadata/game_metadata.txt @@ -2,9 +2,9 @@ # Do not manually edit this file. Edit Smaug.toml instead. devid=todo-change-me -devtitle=TODO: ${REPO_OWNER} <todo@example.com> -gameid=${REPO_NAME_SNAKE} -gametitle=${REPO_NAME_TITLE} +devtitle=TODO: ldk <todo@example.com> +gameid=nilpotent_manila +gametitle=Nilpotent-Manila version=0.1.0 icon=metadata/icon.png compile_ruby=false diff --git a/sprites/circle-blue.png b/sprites/circle-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..1726d2a34d05aa537f07c5e46e0c4864512777ed GIT binary patch literal 2901 zcmV-b3##;qP) zU2I#`9l(F*+Si|n+obuf3t0-GkbVi)I#LCFfQbhr#54vQjE;>?Mg<`z!~;n101`YP zv_3#pv$8=M>*zEMF@c1Dhk>faWuWvUZRv-XQa5S7o5XhfefDs#-5WPe?8I@Lke?LU z_u4-9e||dW-gC~q=R`;;nJq$yS^pMr0qcQvz>PpN;0Ee}YM=tJ0x=*23@nG2%C0)Gr_1KNQtz}i_K{0irQuYnHW5b)n3q?tEaflB*Z^Kt;`_qGCe z13v-o1RT@;z~K&D^Rq~>Wro8=fG>d0fKP?Tce;>R^FjK(leXtgp!9pU0Y3%qMXREd zakv93>uSa-f3)p#lzPiVveFq#Sy!ggO0|@tGWY93$Z?aB9=4idm+j{9u#LX>`2P;A zyxc$Nx`x;@z(>G8g~xZOi20fvSFr_3zqcLuCGY^yko`a}Sxq;s>l>@M#}P@`Z;(y`TU>d=-_Z=j>vPse&8M9@qItr^yfvO^m~5}{0{9rr{Qo1 zYOh-}G+OO{(1jEhA5)CR#oWKOMibVXXA@*Gv8l0>*5IFFIp@k@;7#BS;qmnsl3vjSO22mt@O!lLorc35 zSmk-Ve>hUxUQl8spxQCeG34J{ms1)K0Dll3-`Dx3Qxt*H@4W|j7T6Ae!yRa7X&D%H zJy@SenVa)YsKltIWOw!02Yr_Ufm(yee*>=xkMHAr(#RF46dHu|dmjW|#UQV-eaFQ< z=fj?ImIshXnVb8Z4|^KhcU&~IH@5??>iH^|f&@yx_hH~=U;_XScc5zPlY^JS*WW&y zgD(`9!q?wkwe`tCgTxKM%XM|qd@8RZbG|YYzDB`wVq5g?^L1*YujvsE;phHYg?jur(&;bJ*n^7 z3_Ppndq$=eDE;0Qz|&}h0N`*3%^KNK`b+@*WCCQ}NOe(x$^C$Jiz#@#g18(w=yQKKzWdc$k)sBt%q z=$os7ow|=HxmF4MHEVu>A0^o2563sgc9;sQ1B${_BhEjMhP-pzyDCusrd$p(*b8@NmHfGC2 z+_qk|n3MYE7Bo*;i~{e1XK@#q8xW=C2ojinB5F_7csR-g^E5_q%zio0!7Z|Or@JT%>O z%O(A7#v2NTC#O=C8&eAq*P=nGYD*Y4Zv;(X_D+2yRXzQ)dp~fZvRXB4wg8xcHQ6sD z?XFS>wQxv~5`@rR;mZ5WlefnAKrH1j7O*v-3Cx}x6Df1`yvM!Jq?3>sg=indFGD(^ zOHu#{Lec)R^7Mv^$x75}GmcC*f+nyA0EasurMRw?c_}&RB!tf+2mb@3Cm}hGA_PK! z$cjsA&wh(5yzhaB*&2>oiO|@CK;u4iWHRx|C!Y`sg#c`@)Jt40!VHQ9bRl-T z9gD?+*?dKVqA1zYXhcfM(9jUcWOCAeGcbWRsbz^HKy@Kpt;k4_P-uVy2M#beI7nk- zBZ{J(^K3R7_4V~wtyTciX{`$!i^cHy-Xa=}W)h5oCUA@^0+TG|QfacoiZ+B|B{h1I z?=JRn_T7JJ7ZD`sR0>F6skTT!l1@t$vxS7Hh@w|rU=%c2gFq9JV2coPP)bp=Fu5xM zLIFz^RBb|3u7%_TX_={#5@ZTc^jAr?t%xM0sHhfmf4uWVrlm3nn!sLQBYN0Ghz; z+%$)2*!YEIaNIt@MF zoyc_M(rDgLq?BF2x0x>~BE3AQIt4jiz6HAA$~_TnrcNZ-;qaz-1c?8Ybst zXEtR7W~YIgdj7HeNXHc9c**+8>^uZq1Q-nVR0$!&C5)}?5kiIsgFRLH=0!ALfG$u< zc@Ax=yjG2^V<$=-WI5xqj-4=6-!IVS9s`q~jrlzDCVXVijF0#KkjU}zx$!fjz)#Un zj){2EY_~*@mms#X$8L!pPsEd%0hX`PJY~rW)F&Q)1VAL%qIU0Fe#8S%yZ5CH)%PP{ z(gf|?EAEHDX@Jq8k%|gyxO4tPEMF?D;m*;ak<3uvX*55Rm?Thme8d226O^Ugd)~jXHU`ATv<%iI(rUHgd&*&)QRThDy|YJ zJiadAJpdxXmi~^n8!hHU(N_Q}XDsH#>Hdzl8x5uJJ>APyT&vgdE}8ls3AR)Y>>n?F znB`05!2WTAybsZQOv#i2g~vAp?8DGIX>^|ZveY+fe%U%(R-vOaljR0`CA23APL$-cz?!n>H2J zaOd#hJ;rrq-a*U%v`i~dczmP4ZVdh87}%Zx);!s9yv zyhf&J(|`JAwR>OMrpBhcDlIl_YOG7`-j|-}Kb={osuOJ?o+J7EKCiJq;qiS6yh5gz za^cuUo zuUu&#Ib2B4<-$t)$l=g8uUCdIoyyDuJ_Ec|=&Ei7jXn#H?|t9};1~drV9UtiH)orR{sdH$=B!*A3W&Uwdx7xerUM8U)N!sGh@cn)pRE{FtMdOP;7t`EQOS53+8 zLencHswvrBAAaB8+p&Lj&f;Uw>G>*{<>l`dV);8mV#^CKE-wLE7|V;$mg6F{IR{u? z2Dun4FT`EE1O70Uf}ah`|BRsY0*x$*e~0mZ7BI&@9lkhq00000NkvXXu0mjfB*BYL literal 0 HcmV?d00001 diff --git a/sprites/circle-gray.png b/sprites/circle-gray.png new file mode 100644 index 0000000000000000000000000000000000000000..960f191ae901e5f25edaf67236550b14e8f10ad9 GIT binary patch literal 3006 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 lVeO9* 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 literal 0 HcmV?d00001 diff --git a/sprites/misc/explosion-0.png b/sprites/explosion-0.png similarity index 100% rename from sprites/misc/explosion-0.png rename to sprites/explosion-0.png diff --git a/sprites/misc/explosion-1.png b/sprites/explosion-1.png similarity index 100% rename from sprites/misc/explosion-1.png rename to sprites/explosion-1.png diff --git a/sprites/misc/explosion-2.png b/sprites/explosion-2.png similarity index 100% rename from sprites/misc/explosion-2.png rename to sprites/explosion-2.png diff --git a/sprites/misc/explosion-3.png b/sprites/explosion-3.png similarity index 100% rename from sprites/misc/explosion-3.png rename to sprites/explosion-3.png diff --git a/sprites/misc/explosion-4.png b/sprites/explosion-4.png similarity index 100% rename from sprites/misc/explosion-4.png rename to sprites/explosion-4.png diff --git a/sprites/misc/explosion-5.png b/sprites/explosion-5.png similarity index 100% rename from sprites/misc/explosion-5.png rename to sprites/explosion-5.png diff --git a/sprites/misc/explosion-6.png b/sprites/explosion-6.png similarity index 100% rename from sprites/misc/explosion-6.png rename to sprites/explosion-6.png diff --git a/sprites/misc/dragon-0.png b/sprites/misc/dragon-0.png deleted file mode 100644 index fb179af6566252a08f0a9c67ef7414dd861c5a09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12896 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 diff --git a/sprites/misc/dragon-1.png b/sprites/misc/dragon-1.png deleted file mode 100644 index 8cfe531e950da1e03f2d47ad94b4fde9f70b9b09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2964 zcmcImc~BEs9!_w$L=L%BmZJ%HFhh>c1xXQ1NI(JvxmFG@I-L##l5|YMsnjGmFpMa2 z4u{}^io1h|;4vO}mLMpoSwv@0M_h+d5p;J(T@|nGaILj9WBJc^b$4FB_r34;{f_sm zd=nM9!g{XDTpSK(EesXJV86yE$ifVJcTMQAH_lQOnyA6ytQ?FF9#>bt5Qj6v$>I{U z38Dx#j4DWw1QjEsY=z1Q#|13URzYw&q6NfAicHBN{Il~60gy>Jgm{LCB2w{@R9R@Q z8i~z~jDvI2VU~ojJP-)TW@7{jL<<4g3b|6l&gKv%dD+<5I87!1lMrn>hrlx$1QJA1 z03TH&0E5IN!XTXi__0VJlSXH;d;uy2^e0pN$smmgGTC$rn@RM5 zurCfFRjXC8$>gl8EK(MYgsM}>AdAH!Q>bJrm53pTnjEDT$|fo`UNZ~=L<6g3DyBp9O?~m?PD@9cSB_wEYUgBrzsZMFg=pXfXNbN zL$L8=a0sxmBoGNWs2kTM0q8ZMb&^oVS1O;hP1|8M3d*FI=tGjOao8i%t@8T*)R>xdGg zR%1>3dJSjQKaWy*lx(COw3O!pWbotYu9MEUR zd(Z}Van;>iB0hCKaCB)8PB;8wc@NP=cK?`tT4ZCeeq@V2$;2>zPFh%TWNbl2 z=Z#ZMQ5qAXjd%RAL3^FFVZ{kRE#vB$gW(bQM*Std(&hd#ZutqE$dtzFZL?zt+g(%B zYKFKme8%Mt2jrSboxSwiV5|+14|Mv}my6`*FRAE>$61ut_>#|qwHHl)Fm+gXfmXck?Kjuw zJvjHm##+5^Y_ku&d;hDWH9nP2s$&h&nTqoJRe5(4dHqRlF4P|#|53K~Zb8U9M>~BG zH*Ek{cy{;01KX;1MOhbh0Vg*}S|9O0!$LmVM#0?UJ`I z$DJ%=R-GPmx6RmK^_A7$RZHU&gY|=V0!`g)4i)<)-RbT@Y#b8YGMhaPLPJ+iOz;Ov zxbKH@ZSTH+l01AQBz%**ux#~B+?#!)!M?l8{JEqB5l^aaxDI55iDG+;ODV+{<-SGU z`8nY6bX`IHv*sqAnXgsLvo5dx4Np}Cr&g}lUAubud2(r6$DZx2NH`=`gDEm?*1u?k$ZPcKZD27E@@UB%b+?;R0a z3>mK2?r$zS*;H5D_gbvWELawtylIDYlSMnV!K?rM(BFG_Eq%?$u0SziL)m-Qc#K%z zbNAfdgI6}TZ7-)6(du{X6+y$r|RnstWaE9 zt+!2V2x?Q#-&$LIA~|ehUvBh%{UD&;&^W-?F%3~VZ$%n>t`bRGzg@=vib<~II}9)R zeplzF?{A*N{7AtimrccAj9J^WDPHN7k!Wn!H(U+i|FRRlB97E2-uz+hC{D zix_i0K_Ki&4N`6ZE$;?9Fu3%lVu$@=F>hYcmP@Ww#h?MPq2 zlc6SVc0=(*i)SXv-}gqDkIU#;m)aX8hFaA{bLs{77o~pd7Av^t#?_*X5u0T<4s5&hy;Q{kwl3&+nQve?K4d z;p2xB2n2IqK2M1M8XhkbBK~gpa~1w3n5y_oGz5Z~rQsPu$lo!JKp+yNfg-I)uz-Uo z$Cr*<9De6uNW(ueR6&I68`3Y()Ai*yX zNsu9Il;klRn5E<31aeFZ13G!MLc`Iyllpi$_}DN_Apw05t<0S?$6yc;3H$-BQjGyj zG6W(t1`}{&lWCAEgUxmU=u{euLS<2Ct{@HKFsK|l9T>PsxHUBz!4dN24%ouK+({Cx zR>h%E;^X7V@vda0I+8+Tv)L3XokFLBI0Dq@6TB2aKYFRTLVTYH;ZbP$2j=R4yMxYqZ{RxRn9D|46I})T=Ox z5Ys4Q)d=PthbgpEz8FK1!M&%7&b6n03%X`f!fI+YhV|~gSD7D$$$W<43JI_q|rF8 z`0WN#nH(y$A1c6$0fn{j_koqDG(!J9P=SEstI%j+1%mnV+)217vQ&z4=rksT(CAc< zA$D^E888zCS!@;pirGvmMu%Atli9Be-_KJbv4$8L_V?E=szh*(!7yS8UGk;>zD$kR^v^3 zxef9v`FYLX(5WL0>V)zC>GAP;)4{YwLh6AO96TXx3u<<}YI&J??UsukvO;Xcqn9!J z142K4Y^;3WaXJl(${folAJB{`2sAD&X(AnG4)vU{(XOG&^vUiWtwD*5^>)iPH?|!< zC7yn8WX#%GD*{$Z!`eH5q{NCD*=a?lwc~<&B4!5m)_0Lt^wiv$9scS#v@0^kJbVPJ zQlkE_x_OED-iWjhW%ISh>^GgkCEo0oBj>_Q51P&rx-^s*%8Y)mFWO5e=UJI$HY8mo zhi_dn)#hdBb{D^x>ucC$$Rs| zvR<;syG(1@joyO`zJrG@i=7->}m`)enC+mO)tng$9KA|lZ`$* zexh`{#Pv~xxad!O<>R}VFQfDJuz7fu*ec&ywaQ#=Os@q9JN9)4(l+%^1+UAj!R@7Af8iNx;8?5k*1qe%AbdDzp=W>6T?RNqxmNgOlH z)_Los1y_EWzu|Hzjk`>S)^CCtv^?flh3zwX_^buV69t7l90eb{!gd4pcGYlS*W3Ozpq@4PO2Va#T`Ez?z^6OMO)i~G;<_s%qRT&hb(Yh$bBZz-v_h>AS=Tw#)Kxp?g&G|%&1 zx;`w>@3%I=NG5a0cry#pBxhl74^*%FL|>uFIAq}z8Z$A3f31CqkyFy5tRogb)y=#w z*f50ufNY!Mv@l2N?AhL#?>1^nv-L;!p{A@AEunV%BPNFyn9bLF03G#jYR}RM!hqbM zta42L*Y2v7juTo@X_={Kg@5f2XYW-1{GoZ|qCXDbFS?T1HuTZ(TaV>YdaQfR=vx-t z@(5_+r3{zk+9_?+OXDk>XoW8GofigFB8hFwr-}TlwuVnVaATq;dDQO3)varxE=KFm zp*~wXPc2imo?n@x%USq7K5eHBnE&EfYR<=U(^Xc(o@CG5mJs&o=>v|>ZQrMJ-ed(t zt*;~ITx<9|=Ags#XGM>%7d^du;8}Ez`!?dt%IlGiCB}Py;CI=hg*$8VW(~O*b4lslLzl&9%AC6*A1k~QxLCYamb#mSPeaIiicR*HL%|pF`e$w08*#=Qt+Pq$WwJ3_&Frh?=>^ zLZVmx3l- zE&*jK0yW9x1cE9EKuF+fGez4lu30QLER}>D_EbRlA2nLaO3?<2;Bqc~eO<5B#?zG9 zV&yiNgk_OJeUw%KqY4Fxh+)3>IT@V57z@J{I(zIits>WtJy|Wnkrq{BIDaxU0M54r z$q5==w){YvCl}DDy)%vENZ-&UqcDatvrddABT~7NOs*B7AB%v>*F!a&7Ye)<2eD zJPos_lH9f&RO4BYUrnv2i#z8~MkHq0GHZjCIn^QPbSecApWZ6$qwG z)$1aRS(W`2Fm-F`JNe-UfR{_(ZNK@2Hh9nByXcBd5zgH&f6_6%?H8*XVnqIB&pf?< zJuNAjEGVk+STVOXV5t$&KCkTU>**}2Hr1b@ER{{Y&CtO4W~S0NDxy|XdiKdBZD5fM z_@91FNBd@oD*kA#-}te0?XM7Yf!~1!Lvx6KS@IWonwcR>2A`L%y6{Q`mTp?$^+_g@ znDDTq_qW+}RXK7xZtyQiV(h_=EB!mWjpl!PSKnC;oLCPRS3P~2cKv=qAXIfRdOL?| zJ7ZW>Tj$eBBi9Aurfp62$^pTht`xa#hW z{uUxreByIe(W3l<%XnT~SmM3*&Ifx+^HVk#%t?r@J9yIWXJ6P9Yfc6BxwF#_`s@{4 zn}2V3I4SQK85y58RI%aVJ!T`~C%zf%$UUBdhE=~PIaTI*>r&@~dHVrldtqnc*_7@D zDCgOF{?(La0d3#E=lgi}Vt?nw>_pMZzZL7Y?Ye=_m^*kR^w`!H^wj%@hFQ`r>g?Oq zPAIwj%7vlt>V6Yv-}JuUyp-TTWj6Y{%NN z&D-NI2fN;RJmYR6v^Fv_W6ibsw4zCTAn5m^_x);HGcJX@R(#y&oA17Ty1(B6QAly^ z{HEqgZ+2nMlK5Y~++By)q|0{oxG9hRHScIgM#8kxHQ|lltcTl9c&(d5oBUnwzF5wu zw`(hO_s^N4?o>CPCR08%<(9TqUZ`3=61MX3aX}TKeq4k*9`5 zJsaAq-z(csoDF{bDUN6h0VL?>g&~qT*aIj)?dl%t_!m*p-&nU^c{@o!&CK}I&RvAmIoP0kHF6jLF;c zHFH+Yw936g`ZO-fqe9Mz zIE(OW9&%Y1#s3A=N5$%n IMSisT->UiA-T(jq diff --git a/sprites/misc/dragon-4.png b/sprites/misc/dragon-4.png deleted file mode 100644 index b29fa3de7de04b714616ec0000f7ee6791dc9ce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2725 zcmcImdsGuw9*!)c_*wx`S477V6$;5bNJ26gQ4*9W!3Z1+Dx6McCNM%WF*88G2bNP` zd$cN#QXYy{tb+BiKIo#N9L0C5M?6~=5MjmDBDz|2+rp8ETX-BVk&N^ZuOX76l8F+D zi-e7d6=Dq$1jSioB+Z!^nZsfe;gZ=Q4jV}&GXi8{5?QMTes<O7%DTFQqyqA9B8(K00b6BAR&h(#mW;74cx;^fVsGgz)%lFNY=pfM1xSQ z!3b$NI|C_XN-2fO6;O~`hA9K(YIOjFqnHXoRR|U+#gv2`C2$<-`@q1Ooi-Cuy7_&! zz?}w85(FE8AnEDpvh+Y1XHP^hwOWm!ID+F+fROSTR)KU#t^D+U1|7pwcGf1aoD~uo zNfVbUXkehU*9D7hfY!?Qg$V=-AWoo| z6jcx?+6y&+VxUQZ92}UVS#!oxAFpMr5L?V0|QYqmZb?bNyo_V^jG=hGw{~fc0vrQjA~1$R&1wddD$NR1YL?4Q zQWcH^N`-=TmzsR<1NsxUPwH3g!iRApk+ zDupr-RnsaMqA9}6*)1d}7S=*0GKkHZ2tz-s(Q+xA-N4Zx=D>%a*Y#Sh(axFK6tKZZ zEeM75VOk}oRw|{q3=?Y~$N=t!vph(2M&HvE&8+I1rLa&>i4r6wJ{cOA5=(-i;l5?| zH^MwPhk9w#lNdnyo+{~u@tj#mC+*C$b+O&JsQ($JY?;T=bG`4tkz29M1nAe!nlf zI!_)k>^7QTT0A!O>4F#;yS?2K^L2A%n2-MKne&&M-=&^=_m2SClcU-LI;YK&*5|F` zrgr;Oee-TfU97oY=Tr!0Uwm+aSL8r(e@w)>)^1znu#I@#-R0{yxg$C_*x&uw4f&Fp zFXK1AGKA%B1=jrbSAEmICTHr2`Zp<>QU?zgf7)3#YD#`y9aX!5uY6dr9}h|>+pg+r zT@ZV9&t`atyF1(zbczWsxZ{83TBV=I*LOl(B(rZ>B>@Yz(?sb+rsxQ@GMOm-=-C^t z^~t7}gctU9FI#j}*VQmy;as4azqNf$)WNJ0=QBTUJa=}XviZ@n>BkpVx4Byabbq~c z?$ym90c9^5(?9n3&Sh+yD^|z>u^LDZd;l~dt>_icE1iXuJN-}`TEu8ER&2}NqEh@i&ezf zrn7N}#$PAzR?Kj^-mz0w9+h(oc5awIx2 zvh0Vfc*|C|L-R|woLcMMv3%AImj|+prgl%4+s5x6)diGaT&8=y&U57j&#Es^?w>R| zub^<|NmGjecmMe4@bjtu XV|Ji%@_PrwKa%>eNZpapkFx&@|Do|y diff --git a/sprites/misc/dragon-5.png b/sprites/misc/dragon-5.png deleted file mode 100644 index 99f4e74ac8539d67c1beec29fdf79c03498b4908..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2655 zcmcImdsGzH9o{sG2t`4IL@Tn49MQ6~vorgg4J*Pfk5v~4u7#kH%+AchhTWZYW?%sY ziC`*FMQRmA0)iqYqBX84itl0-Xj+eABLZr3>_JPA6iL&gqMhNDoSwwPAMKo(**o`s z_xpXn$NilxijR%<@|fo#5D2{VF}eiqmwzJM-MDwlvyZs9V7epbJw_n#oXtOP2r4Sy z76{w~7Gn~dWLT-jDVrE0C=)5pvN?FTAT%t?f#K;SD>RX*7P|%*Xub#tErbS0lp7=l zhn7sU#N^QAs+?FOo|BHF1Q51V7@DQ#2y7&a3A1cgJEP9h03*C=Zp=?ZfN%uDrfYz3 z-k>na5HHkHG%1ve6(A1Fl##iUU`;m5@C zgf|YgmL@TlqKy<~9ZyvJIEzrLVW}kKu%`mT@6~82D@7Y9f{Qta{(fGs)yC75 z*<$4un1tvEp*~WpfKi14M8q&(`kY0Hmd5A`Y8_>Ec5mHCs!u_Z~bEd z#?vr+D#1f{!QNULR#5 zi3tx&dVilySCu2D;|BkVB*q@>xYEC~+i3omclDjsz=`#6an;kOY1i);1VU98qqcLX zwljuBwRJw7G;&=aZravVuN)BEN$&c#ZRp)#mlNpvbCn=bSuU_1?f=JVE#RTIfUEA_ z=x-r1#V0;h6)nmyxQyq;Els@F-uYlpX@1J)f;kCMbq7z{{p<^yV$G?*K6iH7L7%;X zYxD074=3dvBO~I|hAK8ZyvJ-r{KPkd9l6I-(52NcN=}uz-ni8HVBUVf*k0IKcs8Yb z0m@mno_{qZI-u>lcYGhuUhMC@n4KtE`S)Vowp};y8FL4ZgdW@af}VQ+&@fB7MV@`L z+6g6>U%4>!ZQbwU>|3)7muGwH4nJw1`iHj9GZTC|Pky7^mHg#8QC-hCG<8SrY&2m%HomnsnK&9yjIDzvUh6$Vix0x+bjg>-BKk39of?Xp_Io-51OG z_;ziD?*2Jb;cTz^qw^T+5z4IP%o6 zsAofa^*d$ziL=3vKgJPlA%Fz^vM@w42YUbos9oJd9sedO`Wx%kD{lviR>v*=9IT8g zl>7RYIKW$80!?2O)RDi}setze2GwnOuaD?yd3dURQ^!r)(DEQ7=@Iy;A!uFC+TCxK zZ796b;M&k2+VW^+Q1`$G)=M?+4M(mn?S@vCm+aZGBi^&<#^9l=p-QYTQ|tHh^U6gV zAGNkGzkY5{&v23c{eZ7iQ(m3Jq+OT4`$b#Bte(z`=|#u$yVCY`&d5*Puda7EBP#AZ zbIqJpGp)3t1vt~NY4)q$+%k7h@3|!{Xjk91P(!cJ+^?(-ubnT8na3~mo<5Dyc~r<5 z5w|1knuqI&?RiwM&yuE_yY;}(Vxat!d%A}wcIxJp>E``2VBh9--#D{lZt;Hs^^vi< JV-X*0{tuqj-?jh% diff --git a/sprites/misc/explosion-sheet.png b/sprites/misc/explosion-sheet.png deleted file mode 100644 index 8559a5c241320541dbd5b92901c9374c85f3f9f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2584 zcmV+z3g`8SP) zJ&Y7L6vyq|t;rHyD3c}!5;fFtk#ck(B~l`B5@~`&A|*9nsgeM7Qh-F7L;@)(khl(z z$WiBNBo3OSBuJc6@13J(`+45Hu|1wy&)mYzKU#KocEhFi8`sD|!yj_=O;7LY&t2E|wkir>4uBBGw#Ux}kSfY(TMhuk`!Ze-|4!XQETb)m z9HtQbe1CZF0z?GQwFj)RP?ha{=#E+al-&i5sWX=}kPzYfh&e5)V(>>*uqaO)MdWN3wS+ZgGvfdXj)^ z0@QgdqOoq~aD*?uZ}(cAJQq?({eEilT)%g%^M}4w=MR08?fiPPfL%*6Yv;XFI~IbV z6D6z}^Zvy`@S8f7*j^uNFc3Pd-(^g*+%i7f@4wg-!nPKXS~Ti~7yzVLT{=*y8z8)M z_*b>I^+onO0N_)$CGh$7%b(`1BWeM=a2cCg!B!c~nj@N6LC9!ITV%}3rSMUC!ZhQG zHW0UP@EuVRxVCgaJen2cTHApF0){8^%9gwIXOtpK=?;Q8)Y zzAdy5itif{jnfnx`1XN78?bZhi5OoXNt2dW6TmY!by}E?i4kbu1l`b-*f=5t=M;&p z;O74Q-Vt{>0Sc(wKw&QPXP-WE*OkOp^ofjc_@Y=S#@SNdigYnfc(;gWdM?*lSs;4e(h> z+IxnrXgE_zVSM*Yc^BxL6@fo?zIB;UGoE+VbpTKuex75uJGF#0s zMY`gyV}Ty+UEvyBUz*zXnO6!lP4syCFIP7}k4YH#O#AsJ$r%k`-|+eBON#fT=SwIt z$GKqp@cKfQPm%i?iUIddPdjsM@m*^rc5ZGs(6D;=jxnPT1io$Z^$A_yn7j~vgrjJM z)Hgr6dqtvVqXK*!!m=;V;emQ3fj~OvtZ2>a`#cTQPCkGXK~ItY1jc@3yC4Jf^9tfS zI8T6$TUulJ+Ic;TJq!`eR;c3E<~jdZx-wE`-2glOhB2X;1%f~N8xXU0F^w(gy!oRG zC&ccpCwA_sbV-k*jY_;;mz8blR>&NuLG#3rW!GDkED*}nm2kl$f}?PNosRE8Jw?1( zfL}nM+-va9wF5?Eo$qOE^8VTezRD8d*t1q{7GJK3@!}XTF>X03s;G(=8#~AcAC_T&*{JPZ z+K%0Y+*aZ3DB^OlRZTl^9wv4GdI*9DfXq2RQxfDuBfqen_}b8 zrov>8$%4KiE@;sDdABz3okC!eZ7z`!nBG>T)yXj`+yWW-hN8y;pn9+16A`j8{Dr$1 zJ|8S$a^qUqZkmX(`gHF{m2rAnPhh# zjC#NK)0d?1O&Q}b)y?hfa-}r1g5}vK`x`t|mSqVkU?F(AUNck!W`PP>uOzFfgcwa) ztOr9ZV#s|=U1p-IHA8nUUGe@I`&_25?K6LGtFo_*9W7)5R?Xg-?W)*0?}t^h2Q7|z u1yFb(9R8mX19baYsQ?ZdG-$6Rg!mtGOX4jz5!$T)0000P`j6otQg->d5G>Mn5mCxSRcaz_XxEQ<{=W*RALNEVTi8L$bMumLZCZGZ`6fMr5r zJ8pM3>7VNAs`uVy5KNLgI=a$#Cg&XCy>rK=-%iM028ujVMx!JLsab}c`8`kd^A2r1 zmUPSLt;jKXbc(#{;ER^NIrc<(-~&faxSvPLR~`JLQzXaa1B3q_a<+}?m~7+dNo1(- zr5WFt=kt&l=$Pzm8-;f!-W{7hJber2eY|hTDx;gAbi$s&K5(v%-XM^LKK|$ljHaZM zLo+{`kUj6>Gw}6{+zX`|B}!?LLWB;9LWMyslwk&%(>(7IMiYYX1qvBZSWC}!>1tpr z2>Td!oia?&2X;lckH>kK#K=kptb2jV=aEv4Z49~hTe%gh`TZ;5{NY+K}xSGF(?O!)efT@Jo~%-w1O-~B{qalsD8Ju#9x2nj{l z{2wELCBWEVjGZv`j^vc2${P|_Nw_v)6C&b_w<(CS(#X_|l!T=SD}mM34L47JWEm1W zmlJ+B<5x+%HqW&e{)xtnz{)p{g&NVdEY;IhV-ga}>5684PLUv5;)N;Ch+MeH!UAj8 zqpCKn{Mu6$Ga4ya#+qD&%6TLiWil2ftbsS8ye4p|u&BB;3EC+&27C2AFsTW>oWSJuEXiB<;KUiaf*vTPQ4GE!U t?S!fGT;$5%nQ{|q*42=3a`+Ag_!k}}QJ@x;0k!}D002ovPDHLkV1oCkMYjL| literal 0 HcmV?d00001