From 35600f72f9b74f7c4b5edc13e62f641847e6769a Mon Sep 17 00:00:00 2001 From: Elaina Claus Date: Mon, 18 Aug 2025 19:39:33 -0400 Subject: [PATCH] My first 2D game in Godot 4.4 --- .gitattributes | 2 + .gitignore | 3 + addons/colorpicker_presets/README.md | 39 ++ .../colorpicker_presets.gd | 26 + .../colorpicker_presets.gd.uid | 1 + addons/colorpicker_presets/plugin.cfg | 9 + addons/colorpicker_presets/presets.gpl | 31 + addons/colorpicker_presets/readme/.gdignore | 0 .../readme/colorpicker_presets.png | Bin 0 -> 111520 bytes .../readme/install_project_settings.png | Bin 0 -> 20999 bytes bullet.gd | 21 + bullet.gd.uid | 1 + bullet.tscn | 22 + characters/ground_shadow.png | Bin 0 -> 752 bytes characters/ground_shadow.png.import | 34 + characters/happy_boo/happy_boo.gd | 9 + characters/happy_boo/happy_boo.gd.uid | 1 + characters/happy_boo/happy_boo.tscn | 651 ++++++++++++++++++ characters/happy_boo/square_body.png | Bin 0 -> 750 bytes characters/happy_boo/square_body.png.import | 34 + characters/happy_boo/square_face.png | Bin 0 -> 414 bytes characters/happy_boo/square_face.png.import | 34 + characters/happy_boo/square_foot.png | Bin 0 -> 312 bytes characters/happy_boo/square_foot.png.import | 34 + characters/happy_boo/square_lower_leg.png | Bin 0 -> 319 bytes .../happy_boo/square_lower_leg.png.import | 34 + .../happy_boo/square_modification_stack.tres | 23 + characters/happy_boo/square_ref.png | Bin 0 -> 2245 bytes characters/happy_boo/square_ref.png.import | 34 + characters/happy_boo/square_upper_leg.png | Bin 0 -> 246 bytes .../happy_boo/square_upper_leg.png.import | 34 + characters/slime/slime.gd | 10 + characters/slime/slime.gd.uid | 1 + characters/slime/slime.tscn | 245 +++++++ characters/slime/slime_body.png | Bin 0 -> 2466 bytes characters/slime/slime_body.png.import | 34 + characters/slime/slime_body_hurt.png | Bin 0 -> 2298 bytes characters/slime/slime_body_hurt.png.import | 34 + characters/slime/slime_face.png | Bin 0 -> 609 bytes characters/slime/slime_face.png.import | 34 + characters/slime/slime_hurt_eyes.png | Bin 0 -> 406 bytes characters/slime/slime_hurt_eyes.png.import | 34 + default_bus_layout.tres | 3 + export_presets.cfg | 108 +++ gun.gd | 19 + gun.gd.uid | 1 + gun.tscn | 31 + icon.png | Bin 0 -> 7151 bytes icon.png.import | 34 + monster.gd | 28 + monster.gd.uid | 1 + monster.tscn | 21 + pistol/impact/circle.png | Bin 0 -> 806 bytes pistol/impact/circle.png.import | 34 + pistol/impact/impact.gd | 10 + pistol/impact/impact.gd.uid | 1 + pistol/impact/impact.tscn | 13 + pistol/muzzle_flash/muzzle_flash.gd | 11 + pistol/muzzle_flash/muzzle_flash.gd.uid | 1 + pistol/muzzle_flash/muzzle_flash.png | Bin 0 -> 683 bytes pistol/muzzle_flash/muzzle_flash.png.import | 34 + pistol/muzzle_flash/muzzle_flash.tscn | 12 + pistol/pistol.png | Bin 0 -> 1209 bytes pistol/pistol.png.import | 34 + pistol/projectile.png | Bin 0 -> 799 bytes pistol/projectile.png.import | 34 + player.gd | 24 + player.gd.uid | 1 + player.tscn | 63 ++ project.godot | 127 ++++ smoke_explosion/circle_32.png | Bin 0 -> 417 bytes smoke_explosion/circle_32.png.import | 34 + smoke_explosion/smoke_explosion.gd | 8 + smoke_explosion/smoke_explosion.gd.uid | 1 + smoke_explosion/smoke_explosion.gdshader | 15 + smoke_explosion/smoke_explosion.gdshader.uid | 1 + smoke_explosion/smoke_explosion.tscn | 150 ++++ static_pine_tree.tscn | 24 + survivors_game.gd | 24 + survivors_game.gd.uid | 1 + survivors_game.tscn | 106 +++ trees/pine_tree.png | Bin 0 -> 2479 bytes trees/pine_tree.png.import | 34 + 83 files changed, 2512 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 addons/colorpicker_presets/README.md create mode 100644 addons/colorpicker_presets/colorpicker_presets.gd create mode 100644 addons/colorpicker_presets/colorpicker_presets.gd.uid create mode 100644 addons/colorpicker_presets/plugin.cfg create mode 100644 addons/colorpicker_presets/presets.gpl create mode 100644 addons/colorpicker_presets/readme/.gdignore create mode 100644 addons/colorpicker_presets/readme/colorpicker_presets.png create mode 100644 addons/colorpicker_presets/readme/install_project_settings.png create mode 100644 bullet.gd create mode 100644 bullet.gd.uid create mode 100644 bullet.tscn create mode 100644 characters/ground_shadow.png create mode 100644 characters/ground_shadow.png.import create mode 100644 characters/happy_boo/happy_boo.gd create mode 100644 characters/happy_boo/happy_boo.gd.uid create mode 100644 characters/happy_boo/happy_boo.tscn create mode 100644 characters/happy_boo/square_body.png create mode 100644 characters/happy_boo/square_body.png.import create mode 100644 characters/happy_boo/square_face.png create mode 100644 characters/happy_boo/square_face.png.import create mode 100644 characters/happy_boo/square_foot.png create mode 100644 characters/happy_boo/square_foot.png.import create mode 100644 characters/happy_boo/square_lower_leg.png create mode 100644 characters/happy_boo/square_lower_leg.png.import create mode 100644 characters/happy_boo/square_modification_stack.tres create mode 100644 characters/happy_boo/square_ref.png create mode 100644 characters/happy_boo/square_ref.png.import create mode 100644 characters/happy_boo/square_upper_leg.png create mode 100644 characters/happy_boo/square_upper_leg.png.import create mode 100644 characters/slime/slime.gd create mode 100644 characters/slime/slime.gd.uid create mode 100644 characters/slime/slime.tscn create mode 100644 characters/slime/slime_body.png create mode 100644 characters/slime/slime_body.png.import create mode 100644 characters/slime/slime_body_hurt.png create mode 100644 characters/slime/slime_body_hurt.png.import create mode 100644 characters/slime/slime_face.png create mode 100644 characters/slime/slime_face.png.import create mode 100644 characters/slime/slime_hurt_eyes.png create mode 100644 characters/slime/slime_hurt_eyes.png.import create mode 100644 default_bus_layout.tres create mode 100644 export_presets.cfg create mode 100644 gun.gd create mode 100644 gun.gd.uid create mode 100644 gun.tscn create mode 100644 icon.png create mode 100644 icon.png.import create mode 100644 monster.gd create mode 100644 monster.gd.uid create mode 100644 monster.tscn create mode 100644 pistol/impact/circle.png create mode 100644 pistol/impact/circle.png.import create mode 100644 pistol/impact/impact.gd create mode 100644 pistol/impact/impact.gd.uid create mode 100644 pistol/impact/impact.tscn create mode 100644 pistol/muzzle_flash/muzzle_flash.gd create mode 100644 pistol/muzzle_flash/muzzle_flash.gd.uid create mode 100644 pistol/muzzle_flash/muzzle_flash.png create mode 100644 pistol/muzzle_flash/muzzle_flash.png.import create mode 100644 pistol/muzzle_flash/muzzle_flash.tscn create mode 100644 pistol/pistol.png create mode 100644 pistol/pistol.png.import create mode 100644 pistol/projectile.png create mode 100644 pistol/projectile.png.import create mode 100644 player.gd create mode 100644 player.gd.uid create mode 100644 player.tscn create mode 100644 project.godot create mode 100644 smoke_explosion/circle_32.png create mode 100644 smoke_explosion/circle_32.png.import create mode 100644 smoke_explosion/smoke_explosion.gd create mode 100644 smoke_explosion/smoke_explosion.gd.uid create mode 100644 smoke_explosion/smoke_explosion.gdshader create mode 100644 smoke_explosion/smoke_explosion.gdshader.uid create mode 100644 smoke_explosion/smoke_explosion.tscn create mode 100644 static_pine_tree.tscn create mode 100644 survivors_game.gd create mode 100644 survivors_game.gd.uid create mode 100644 survivors_game.tscn create mode 100644 trees/pine_tree.png create mode 100644 trees/pine_tree.png.import diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/addons/colorpicker_presets/README.md b/addons/colorpicker_presets/README.md new file mode 100644 index 0000000..7534d92 --- /dev/null +++ b/addons/colorpicker_presets/README.md @@ -0,0 +1,39 @@ +# GDQuest ColorPicker Presets + +Reads a color presets `gpl` (GIMP Palette) file in the addon local directory, called `presets.gpl`. It adds the colors to the editor ColorPicker for quick access. + +This repository includes a `presets.gpl` file as an example. It's the official GDQuest color palette. + +## ✗ WARNING + +> Compatible: Godot `>= v4.0` + +The addon: + +1. Doesn't check the length of the color palette/file. +1. Overwrites the _ColorPicker_ presets whenever you reopen the project or re-enable the addon. + +## ✓ Install + +### Using [Godot Package Manager](https://github.com/godot-package-manager) + +1. `gpm init`. +1. Follow instructions with [NPMjs package](https://www.npmjs.com/package/gdquest.colorpicker_presets). +1. Enable the addon from `Project > Project Settings... > Plugins`. +1. Profit. + +### Manual + +1. Make a new folder at `res://addons/colorpicker_presets/`. +1. Copy the contents of this repository into `res://addons/colorpicker_presets/`. +1. Replace `res://addons/colorpicker_presets/presets.gpl` with your preferred version. +1. Enable the addon from `Project > Project Settings... > Plugins`. +1. Profit. + +![install project settings](readme/install_project_settings.png) + +## Where do I find the presets? + +They'll be available in the editor _ColorPicker_. + +![ColorPicker presets](readme/colorpicker_presets.png) diff --git a/addons/colorpicker_presets/colorpicker_presets.gd b/addons/colorpicker_presets/colorpicker_presets.gd new file mode 100644 index 0000000..01985ba --- /dev/null +++ b/addons/colorpicker_presets/colorpicker_presets.gd @@ -0,0 +1,26 @@ +@tool +extends EditorPlugin + + +const PRESETS_FILENAME := 'presets.gpl' + + +func _enter_tree() -> void: + var presets_path: String = get_script().resource_path.get_base_dir().path_join(PRESETS_FILENAME) + var presets_file := FileAccess.open(presets_path, FileAccess.READ) + + if FileAccess.get_open_error() == OK: + var presets_raw := presets_file.get_as_text(true).strip_edges().split("\n") + presets_file.close() + presets_raw = presets_raw.slice(presets_raw.find("#") + 1) + var presets := Array(presets_raw).map( + func(s: String): + var rgb := (Array(s.strip_edges().split(" ").slice(0, -1)) + .filter(func(s: String): return not s.is_empty()) + .map(func(s: String): return s.to_int()) + ) + return Color8(rgb[0], rgb[1], rgb[2]) + ) + get_editor_interface().get_editor_settings().set_project_metadata( + "color_picker", "presets", presets + ) diff --git a/addons/colorpicker_presets/colorpicker_presets.gd.uid b/addons/colorpicker_presets/colorpicker_presets.gd.uid new file mode 100644 index 0000000..882ca5b --- /dev/null +++ b/addons/colorpicker_presets/colorpicker_presets.gd.uid @@ -0,0 +1 @@ +uid://efuldfeh4dud diff --git a/addons/colorpicker_presets/plugin.cfg b/addons/colorpicker_presets/plugin.cfg new file mode 100644 index 0000000..32efab0 --- /dev/null +++ b/addons/colorpicker_presets/plugin.cfg @@ -0,0 +1,9 @@ +[plugin] + +name="GDQuest ColorPicker Presets" +description="Sets the editor color picker presets from +`presets.hex`, if it exists. The file is local to the +addon folder." +author="razcore-rad" +version="0.0.2-beta" +script="colorpicker_presets.gd" diff --git a/addons/colorpicker_presets/presets.gpl b/addons/colorpicker_presets/presets.gpl new file mode 100644 index 0000000..5114466 --- /dev/null +++ b/addons/colorpicker_presets/presets.gpl @@ -0,0 +1,31 @@ +GIMP Palette +Name: gdquest.gpl +# + 0 122 195 Blue + 16 178 239 BlueAlt + 6 29 84 BlueDark +207 221 255 BlueLight +108 44 218 Purple +141 25 215 PurpleAlt + 40 20 78 PurpleDark +235 224 255 PurpleLight +196 29 61 Red +255 65 125 RedAlt/Pink +115 39 92 RedDark +255 219 244 RedLight +255 183 48 Yellow +255 213 0 YellowAlt +222 80 43 YellowDark/Orange +255 236 201 YellowLight + 99 204 95 Green +159 221 81 GreenAlt/Lime + 21 89 63 GreenDark +221 255 242 GreenLight/Mint +109 61 44 Brown +176 87 55 BrownAlt +106 25 0 BrownDark +255 227 227 BrownLight +202 202 202 Gray +255 255 255 White + 39 43 48 Deep +243 248 254 Light diff --git a/addons/colorpicker_presets/readme/.gdignore b/addons/colorpicker_presets/readme/.gdignore new file mode 100644 index 0000000..e69de29 diff --git a/addons/colorpicker_presets/readme/colorpicker_presets.png b/addons/colorpicker_presets/readme/colorpicker_presets.png new file mode 100644 index 0000000000000000000000000000000000000000..e4c3ea0e2c2d531b343c23458a2b82d36129b145 GIT binary patch literal 111520 zcmZsD1z40@*Y-n5Nl14I0!oQ=r+`Wc2uODi-7thSk}4n#(o)jhDJ|V8U4y{T%>QuS zbN=@`|M&0f8W<+_JhS)OYu)Q!_aaZY5CsaT{P=`w9)_=s4FJ}Nbw_g~z;rAX#kXB6CGWY0L?i=QqM969mH*h;Ok8dn|; ze_YcmK^^wrA^#{%13gL>r$hrMN;b-h+s+aGDJ+bt!uOz7<=Hz2XEn(}b;;E{2l%Hx zq-PeK{{MYvL9?&}%jE1Ey2lj*D*@rd`pDsfL$eR*9{+1NJ_nfo^}sG289<2tKZolh zZ2$28&I{fX!a!@2`PZOEMKS!>G~aNgHufJp`tLlh>gaAI?r?&zzHqddRC5PJ+pz2K z``&^brKH5vK&0pYePvt_4+T!25MHUl z(jVLCq`w9x^4HEsL%XMRI%gM6&XNV!EH zcAa|Mt)13AIc+f@G|%uqXMF5I6J1_sM~P^DCnDEDOqc5ifsO9z(T$dsZD5}+BC zvHCk6T-|C;+y`xm5p_$77f23iuJ!#~_}=WQ4n3(gPG@IH_m{k~x&J_=x7v7?K$qXB zsWOp1DZ0fkPdEBn0o*{wFOBX%$YKMwWZdl|qWCbQT8_X*cmK-7jaYxcuc>9Of4>GU%} zD{6>`zz$R8XzU|K<}+yp7e-*^>ec%3@in5oHQhu0u3I;RN(iM+M+S9sk?&!%ms{xT zTqz?XeBb#x@|2pJr&Cv{y9k;VJk4kdB%q+ANZP3Vf$c)ogOplZ*Mh?}3sU2~8tRz_ zNPedcm7uY}x9rEqXSK`1xc?? z#s|~SeRXp^Z1>On@Rq?7`4Q1_63`C!gg7W#KVJ;+E+1^vBZExz10L zDCjFY4`SALUUIIS?o?I`TJ6q!^@gH`U3;a4g%$9o3f|AZZ0QFc;_Ef>D9fhx-w9cm~^<((g^EqZ7AG-n3f*ZF-oU zaVyIY#7$}2+s95I)>T!MIxZKamRT=JmBkgpwxh_F>FOHmvvRUXn4e+&s9s@PSo~7= zf{o@?z$(TmOfp+G>ZE$(LX;Ed!P#)*v#*OtKajC*u6LN@;*x@M%UWD z{8%rRe{FLl=5x2f4?8=PbVA51oQw#MPRs;BgxzNKoR5}n`v$GAam-`d1JN=I3bejx zmsIc9=I5g~gaofPV458Fk9B+OY)m`c1i{{9>?pLhc0ajoJ_0mKwM$yd#;qU}_BVB} z&t~pjVVsRB|5O&wmcWO{*GRx?=V<9g%j<_axsCi@kqtOoF?S&o%S#^`YsIgWy^xzr zuh63rcQq{rtA%Ou*Cz}t@6usAQ~}$PYR`?AQf3ghkH47H5}Rf0?(RCWoiSd)cQA8R z!%YgA->Rt<*(2cBXJmXX&l{M#w2Rlbwmt@+T$!Am@5RO?;TRauF5Je3u+1*&H6m z^hqQB({Lp=d+z^+)a`Y%o6U*5||D;&z>-l?=Yx0`q1Ctxe%;hCCc^y;09M4V!u*tb;2m-Q2#pVlGkiQEFfd&POGhCBA7^o8p%x4X^wR(5V-Q?CKbdScJSUGBp;%tX&y8nr^bDtd8Z{tu7j` z4b|mEs)VSqcAw#IA4cgTWrdw$cCi+wWCcUsf7aT^^$+|Y#K4&IP~U5V_xJDL$iQ&A zBLDV!sZ;NQV6EZrJ|o!iv82AfSOS|~z@I-(1?tZR8xJ%hX~p!nPsU|TCL7g+Y%`4rI`Y%PbB`C^9IPkTjBY{}6I+s39_h-@DC?Sa z9_qE&pWy7SMA3BO{HQH3)pZ9xI#^EPDaf{}knyR}m?(j%i1pfT6 z^@!Hv0YaXzk`Wxu>sQ2M=R&Xp3j*Q0m^$6JCD8kAh&&g(qbeWQQD zk4q&GS-r;(08P!!j?1F%#(gW21x00@Bds^leRit?-h7>z3E9>*d$B2r78OI&)1>E% z&ZKBK3bIhBsP83&FgbYw4XQ0(iYM+-_OrKV?mVRa=xP1T759ArvR$ZqpsCA6B7?Xp0dfq|%x0xT?)L(y9{@%%-Miiz3_Dr15fev8opc~uL&p{q(DA_eDWc zxoGNM=Mm1AR`1`RG}tv`2BMwzMocfuzV{UD(Q_sy5#^@E6aAC(lWu6v_p5NUJ>m%J zvPB=|eQ)>@)LP^SO9?;}JBn%NGi3yG6)oz&%q1 zl9)V}gg1v|6C}VlH2v!nEkxOC|Htt@GPfLS|_x4gWF^ zwPX3OnU=-Vq?Jt?O8RBWyq5gm#v>yWCACXoxn)fu&KBIGt$vS52K|U;XSW=|sL}fu zj%7RfbM&F1|Dncp+I%w>!;u#{Qr2+++m}P^0T7B6du#~0D2GXV$&#dhZ6)Jh7MQdJ z7Luh_L+a|tKww98N92&Cw?0j;YE@5Er4rr3gcgK2u-~z_D>NWgYV>_fbKUCA<$T2` z0-vb7IzU3YyBPUH8vBU$VZ3Vi8KrNf*4A!Osf@WfAN;PFwlVxt#K%|rewoZ%pCd(5dh`A#ql@#nbd@yygG!~{*k!$(JVqsvAE=yP z`sqO%7*({6`<=IE8IZ`6W<72Sx4<+e08gyuj(@*GQ(r>Cg$P*5$7wY>n9C@Rwz?IP z=?7*sqMMlP=uhqaEbfMyU3={m(q1589+!JSXCH!J9mJ6y(D%+4-W;NYI_~>5+FQv* zawh9N?12A)u$##~ujUSlA)dQC3lY}D#8lSz28wqUoXw7Nswuh%QioGlb}*8x1OYP+ zPF5e@7k<#UC{dh2dAfWz`+CsJxLB^=YjZc^)xKAWYb-zpfN6|P^XIrcCf*+9hM%kT zD56bS4Hrzmo!<@7UjNZW?5(WkO`Ka@VjE=Hg(>ym{Q3#_7bmOwIGFQ4OW7?KL=g3a zo_D0y(f1Xy_x3dLIXBKl!22CdYmI-T`e|j_L7CC;GG;yfY+q zeH5uqtb$WY1p0PL>!Uc9t@t&m108_oua-Zuk|mek@xw^kVKKFqyin!aByJ9@S4Jq z?4C%P@V5-1(z&WxRaMvqB{w8GcMEy;;!gW@t1ZF7Qn{-1o!dO{(?|u-h1sYrgLYW0 zeQ$@>t|w1osdHv*t_HA~4X^YaQk=i-Gl}9ai zn`4a~Hk@~rbUZl^!RN=uai&#tRjt*aS<93?%WB44OX7gMd{}SbIik`N>UO6w#gg(z>0Vov^U&2s75DDuKMSy+@iRM>cCDQV6*F=JEnDalD7| zopDo*Ef)xcrSium^T&5MZ*RM9y1{I(N-Nu7d1;%1BqFU5fehF#*HeNX9Oc)qw|&E6 zF@wdnwiliZ`ucy^aH+*2GW;&}5J@8mbHA@z{j5ajjKR_jCk8U{YiS}K~D z%DDta`bch*Y>?uYQ4NAmTUGpahVpeDj?m@TP?K9tUj^X9G`v;@PFu5TU{_5_<3TurgJc5>KAqpu4mi zY@(LEdRBT+xLN?c##<|Tx13c`fi=m*v25EU8{c0eZ4D7`c32nV&Gd^X}B=<*n`$%NVa&U89K9T>KNmk`?4@ zuXWYp9#nXHa(+JT2RRz~(!aR4(xO^ebwzg1M(GWsEngrnh(a9=hfXZNb0gdn8WY7; z?R+tbJ@aGXTXG+)uS0u~upU_V=hRz|Mre}O3Z9Sx2`w<5n;V~FkYZs&>i}Ic@H#dP zO7q}BuvWP(W`i4!bil6^KOLJ}p)TUtljOSK(bn6vWBzkUWeURcWaIlJXl-qTC#37* ztojnVwmdFEX?J7G>@n_pcRfA&&cq7~3$Ru15F*O z%;UZ3#kce&ZHgV4b^3ygwcydo12Qa&xtq7c!L;T&mg|r}uVuS7x8V-ZebM zrx<(b*SammRi({t%&E_W3w(J^EG5Nx7NXKg6U$+(IN&W^yFX z@oT>|unY+!M*bU={k0G%j&t0S;^h}cNERI z_?>=;lW%uSd|74T5VHe&yQli3ck9Em7rkkfXXgW~&tNm3N7lB>31|FP!rCbTg){qm zhqc-nveFqN*8BMcQPNs+=SwYXAc%bU{mrV|t5=vU+L!DJEq^HT6w)nWOxkJ?DgDkc zN894&ztV(n8_y^pb_sJqOH?IDx((rPJJW@F)`O=UO!d{A=d^oOanxLk&q!a?#!^hR zY}ryXyC})Qbs{KA_GW}zT&ab7YgSitbkN5O-tBRAig10yyHQX7G&nxV3Y53BtLTbs z36xYkqDUio9Zaci_ZrpfqOJ2_%!V|#1Lu&`AdrRl^=ICwNvmX-iPAHyy&{LKmbq0J zsly8P%FI_wMrP(!kU}c>UMicoVz?l*Crc&ZKqj<3Iy&Re?q}OcePW(nUXJ%sm6ltXO0?TC-Q|zuY1gAZ#Q!dVJm**3~wUK2%9h>heG4vWt5+kVu zspj4HLu8BEak%q3Mn;sE^)(Gb(;DwOKw=Z1hPSjG{7xYkn>^^3X7oMN zNG8HUj)H#LTlq1uzs~8NJ)GtN6X1^r|ARU-Yz%d0&KdL~$C-T6CwzwvGKhutMNfwU z8p=t4%v0D0_x$H|PeoTqse(af=n>hkhkky|fcf1JT}0iCW%1=9;b#a4u(T>XkZ3$_ z$O8{WpJ!O4$|PvGh7S9Of6^3pl>Od6JtbrrkZa_o$qai3u4{RZ}}CT?I2? z9j)sWo$u4ZJ^ifD=0s|yB3qnLzkmN;?m3`gSw(RRU;Cu0kmN)if|WPs;x9>xB?j_YY{3x?iv!p!oWhu z@ad3hN_9&0oN6>_gP&?-t!rvYOn7X$l#RgLa)MxRg+)`db2x8{D~`9IkiNp$?=OkD z2F}WB=`?BhJA`3=XOy88J=z}6hAjA}T@C_P^^DKX-AQuSEsMBaqUM)Hn+f%rQ5@6; z?~@D``(kPTM$#`>{HE%O_qp(|tVKt~X&M&m0@*;>s8W3-m_~gz7*EyWJIYMoRFEw!%*f_P8H7x zG$9pV-`=zL1zg$|5p~pH-gQqhN2ht)Y6p_>=G@1IUlS8S%(Q-FEiGd5BYhp85)-m3 z#!jCU6d#1K%R__6f2&E5xmQ**=>!VM6!zAbLj!3cuOvC}Y;%SzkGl~akvQbyN1Yb;PI*z04 zvuZ>P5~}CF<<;PJhUTtJ>DUE@h6?xh_m?Bu=!@@+nkB_S_C_~28}!3QpdT*OCyg-L zpEUX5I8KWOCX^FXQ^xZ(X=L6*WIm_Iq+fj&tLu)^g^>U-XSo^)nX+;PEpxBTXplPP z3w>bh3)9$^42`1hq1q)QC)&SVZ^!Q^nJJX}c!nFezBulEcjYzFwPwXTf%bl|-99a~ z^%6%$DiQ{=n%pvmtWqtb3Q;O*)(~6|zS2sf3C*>|@y6$TP3UX44VjgpcoaO=zo!xy zvKxrBv-t_!;V{W9joxMD4Wn{Bqz6tm1CAiLdn*=z@#plVs~QS!;)d~?JCG8;oO|(m zB7tFWfHqzK8A!U&l~g?fA>udfMY`D*o$Rm!E|r`kEduNAiYGG_W+`eT>UKx^2IWMp zcMX_eX=G=_;@g_B1!pjD z>w0vbV#t5Z3(@|vN!8oV%jpsZG6#P%=OpaDlewJ+fY$Z8>|iP%esFLw1|A;&>{i#$ zagX!c5i|WH&*6)d>vd(#q#FeT8xwG@KAvC0K#hB3$vQSE=LlKWdJvrVRzjY8_y&cu zI3riEIL<4wq*^iRvy;M}V@-ucB*VJ4OD4Df^6iSVh{I9Z_IP9HqW$A1R?mTiw+;@^ zeVUr_Nk}3-AWt_2B^5RJ{*fUfO{C*yr4*umzBNS&Qu={}%$`60Dlu96;rbwoD--D& zf#NMn8AT~S&yHn_jI(qDj?sXO>E{TW#&3d7RZ8g#wX z(Wy8tIJ}athr+uT!^lQ&ol8paMGpx)(or29%ReSJz3Ucl1e~i66|L<>!(OzYypmGK zQuDRL{tTuCXZ~VANl7<5|A-72hb<>4a`G)!auW@tO-!;Y6J`HzQP}id3Q*^ny@y&4 zhm#8R#NBQ7VC*oM`@Jz4EU(QFy)7xXKm^5dV<&v~8z6gnT{{(kZ0Mwi?Qd3fQ(c?d z9OSkWBVM}>-h{o$O*=ribg=*Ao+rk4wY*750n1Y+vAjS{b(#7t4xWEgK-mtuWWx{5 z!P|=3R)*@}sVdps=QHVaGbGVL4K;>Bf3Ho3kvlXZ^UW?bY@_T7bu&V!^V~sBg^_QDfN`-l4PV zDGpfyHuLBEmh8?{J2p0r^(|8~wiC1tt3 z5WMeoC+~M{>|3XxL-?#sywlU#;^n(x)Uen1heF(Jc2P*rfBOHsPQH)jAAE}6xSac7 zV0r{5At>I*dkY9HDeu+~mT!=0J$@%{le5hnG;^zM^1qiL&5?!4+>q5=i`6yL<_$a7 zrq#8?%yjRPcFFa7YeI&7;<4Vk40cHLsdH6K$!*uR$s2JUuK#C2z(p8B`mq2lJ|k?5 z$@NW`gOGEY)6(yiPsttr(6pp={*CLof$Ncru(xZ=>;mVi=$|F?9{_n=L+cAy&V4Ro-Yl7`1>ej~ke zZXr)#&aN=#Yjv)*{m#04BN=ZOM!3%ZXYCR({W;nD&gOE9S*sS+Y0Kx*c*_dKq-x#2 zz!StuKm6~VLPc*&nCrsu%Pl^zY-DIJDRCB3Z9E8MEnZx5oa)f^p35zmZCIq@nqzll z{2k9NVGi!s4+?;PV)|z}ZsO|B#=ZIf+;qCWWU3(bxhV1XK{4fgi)`pUpOZSS+nCGe?0QgQ;gQ)*$yzm3x2OwN z^NSx8!zZfMN2cn7qIrAc_zICt1@BJ`j9~P?M@@#n$r{+VhV&fd)x09d5-w7VsE?cv zuA0>;a&2U-s;+8$ox)BAe8&El>g1KY3Sev3xBy8cVTYvXp2$=0V?nq#EemWSs`Y8={JN<=g8 zZiMWAzgv(9XuKlR*-M(UD~V<|!NzNH3HVWB5;TE7x4BKmwMC*jlEB3dsj;n{V%j9* z`rA8Lhc=+1n@Bi42EfvwI#J>m0ne8*rauP@*8#xBcVYi8oyNWAisP0i02-axvrLN5 zcqh&G+~lm2bjn0cY)g)|$<*e9;nfp6HkTIT8MgD*Z01`&NXv1k@{u2z;;*t7QE0X&Q zP{7X)F);ha(W=xbwUmkrRW3R=tK$2dskeVC?WfOPCcTHZFUlgpNO(UuNZrueO6wNY zQ`qOb3swg+XO<3BM`jy_D0Dha=}mqwEsbryo)0z#t@;r!a7aP%fzn(-LP{4~{n?X< zh&Sb~*ZTW2&B}vTx>A<%q^G+{K>X`q5Q$O=rAAy`d0B84Mg16kbe}nhGJqFFk54W3 zDIx&nQ|9=N!-f3!V(04%G{d#3YkbNK(;thRncM_kI8r0NoyYT6?r(L}tZI5bZPCcd zC(?a}c*AKrEDUZ}Mk&0M^Vl2E3){6G6|5BX0wVqH+2c-&n1!ZMu^?a&=jrg=m+^Iw5>#P7?Rf(Ap)_ z-Y$=>?3=~*MZ9_a!)ibye{hlDPDA61;e1|vpRgYmFv{M*FB_8*HFLqJkm@ErRqQos z8^wQj{ZzewGe2W~YgoeW?t$%6#X~@axr6fQCj#$pIaLdW^H~hcv7dET93UnKtMwxz z)94Q~n()qWqO{J}k62jPLNYQqz0M=#UglnA>SGI`BLMC*tvQhN;4wAbc+9~^P}X!o zM8c+BiWiX5xt#xqlrlVWkcvt)VRKab9*^CRL400-Bs*lG8lo4dK9567vr1H;4F(2oO6w?+749mKH`uh4Tt%XFq;C0>F9+Be;Q}lq1Ks_k&P+%d70u)uTjO zk*JUm3h4aKXYaW9^oaSx_YvSWo+?rV6ZX0#7pv*2<{=tDZl#*H8Zs;u6@D0EH5~(L zr}*pY>*?7K*jluzm1rNOc#9mVIeP9D?(zrvWEL z0iGo2iu{StdljtnXXaE<#o_CnAsjOJ%tVa8H5y$~(tay1$FHplQ*YH?&~B)(7(FuEx@`pdHR`uzr<cdH9@ovB zpy2GISTiAPrP()v|JOwbGZy%jq77b$gY! zZ$VoOSwYY=5PnSe)1zfnPI*CN-+UriQF-zlzKj1=*jwlYw=--mg*L09hQxiS5tD!U zIi`KgpOstCa)CyPq!Q z!(w{IwlYvhZ<98a&cztdNh3BGvHiS7TBp!^Rle>q9cFYDtwIRg{R*DunO z5P)oqLO^1Ee#>I#BDF~=RmjoQ&4&rX{5a5OUE|U`0P2d=>#R?o7wexq{PU3G-pIu5 zW+H#*h{50u>g#RoCIZeJghJa6V$8HVNn7}o<3o8APM~he<(ME_h=_aCU*s-L()Cl_f1XZlc)wAFh-Ft$Fzr$NiS++Y4nzQcjCK^$LDRMZK2AW+x1 zeGN!JrBReJ6y?m`5mQij&Td89f=K2=VBjMvsvN(^vC@{)AUv>3xa9t+GpBtuSM;NR z3>}YF&hsTPIJe{P?N=@zE$@75PkkN-RUap8@|hphmv!F-_JST6h1x|R&W$8AI<+mH zAylBLbt?V(=GJHRU?Y4%n+xIBZw4GU`iKIdef`71 zxI+80-j81M^V{B;kUsnVJ?od{@%bG?SOhkI0d%_$lS;&g%4{S4!e)8(<2AG}kG*#e zpE&;A#dK>T{k0Db!CH3QBig9qeO)#!M*WL7|Df7vrF?F`$|(+W1LyT%_=BJ`SJUG9 zmV};O?>>1awR)tXQ?r{c}QIwzoqoccH<=Q16`>~qE z-%@1@flz-46h;AsSxuQLEGl{sj~+AEcQ`&!=;`@D|2`sB;W7Qfm!S-$vR~FuGFUm7 z2nc%&!b^>^K#6$UbT9h*t&|LLHqi_WBS=$jy<++4!t}R-x(P!C{ksPst+N5U)Al~J zsh?=lu-R3P`pDaWDw(Ug=A+co4&OiV48y>iT;}9zaN!5ORCz5~+1ieYGuK)|1ucQT zAy%TMW#jQ3mr+X&=#h2xkl&Yxp9@J%>=t)_6b$Z3ZIFl<_}tCyuL!BkEi0O=%1tjU zSB)Yan;zryzD{nmAJFpdnO7T`&?@hFSZFoi;haOp`68s85&bQSVWuG2oF5DEHD2yo zh!vqjFNEI^JjrJPK~Ez-LO}oUK83sdnGTf6MD6q3DuvT%GDa_(DJPIT@&}@rrLw(D z@y&tI?ORQuXQ7FZ4}In{ET%YOI4t_$<2dtq^8PsccfkeLhFHkC zNI)7gY=*&owHGJl_*ee2WXUhX-QVS5QQ@e-#}Q^JEed;xo%5jRd9{Nkx!B^f#f4M9 zHv$!{8X4Cv5+-Vdk2|E#5>xo{8p!r*+3h^0C!Bw1m>hWa{s@!GdIT;O7VNx}m2+55 z*Ou|cixlx}!T(|)`}cVb}CmixP^gfL8vZ3myr*D(|A_mcH-+=wypi-1Z;6f8JsP%f8 zuY?5q^GC)<7rUw0r<56(n4ZjbR-qFS63>1 zYH3MZ*_+1{^}_3hoU^?Ip8;Rc8J<0Vke;7Yg?)JV3{>=g$SA{;#ik7cY1Hj`cF_y~ z++Fgk)7KJ)`G5-+%wBDI%)`c+vJ$>9{aCON4@8X;Du&FFG`vLNP;X-pBI6#F#cs9m z?)in5mEonQBY+UxSF-A+0-#9!x%q?&%i_H%G3Y?}t|yASOj^nZ`$Hfy7qs64^?_?o zwBGf;FBOuZp_4c^`In$JB_uL27rIZ^=f9?joQg|C6Q)ovu8nq1l)(%FE9t$U*2TUP zh~l%qRbV~L(2E`{rt0c_X|i*I9q@M!AusePsCBrB{OEJ_bt%O}f4$=OtIf?H6Lxkf zh2;z8zA0@fTwp^6`Y#To#fcnQ5OI8cZpR}cDys7KeQ>9o(n`KT&GxlVE1Z8pU|nbd zI?WC{g-Pi9(u3$81t?zrfjPSK{Ccwxc5)*5?j6qEl3!OIZ`fPug3(xx?OARlz@hs` zyMW7Yf!!#v-f5EAE$4gcSzoj<8>FbYEx18dRH40iVmcO?5Xg;Rce?>K*wFlwCV{TS-VR!z}QJX1y8MV(8=XWL~KG3E(s2CoYYH_QRL*aEL zVzeCZzjkLbyR;|Gz2??P5TUN@42TXa&4SzWW4w!0!u&n*thKK7< zAI2^@2EjspxBVK#pzGiM@3FIs5OwBw^#WHD=B)XVfMCtf=BYR6lV>&6=E}5OH9ti& za(V04_(M0+he5h0?`o@Qu$sjl=J@63;4LZOwIMP-> zjvnV_TBLU-RPpj5O&4gv<*uPSBZ^E`Q8Y;(7<$L%d}N(IDk0s;EA2)dm=C+zT`sPK zC8_ly0aG`1vspraV~^hyF51*Q6ued1yx`Bgp}Gg?xJh@#Jt&P+>qpJrX@u~I_iy@P zwW3FrU)Q^|^I7-py}fK1OI;CtR+f1f}X;N&JsP-2P(@$2MHQ9>yr{qF{E3{JI`g{HhpY9Az_< zE|yROmID^}1g+mwTG*v%t>=`Q1z7-}sX&IVS~@f)$9Tn`aoa_RO3e5wE%^U3eZMJW z@cg@X88jej=LaRMlLF4rVldvvwN;=)*l6x82<*%VB^(+ z%722(?!MXI#3o3V0bpZO=~C|!g=&;@j`AKv^^D8iV4KfowU~i-ALk?Fz{D<<45|?K zVxc;l55@4_Q->n`csS#}@}n|QLWaQWI36MBjrq^@{g(NL)&`G^W8Eiq)~9!#o$Fm7 z6TA{o%{EIphOToZ%u(-{6pO;k`FfVb-0t&1@b=Gp!9FSacBCK2Pz$t<=p|Ai*$6S? zXveCU(d+0){5iWfwB9}P#7sJr3^_4`Ci&tF`s6VElr6S&|@_Os?b%epXD z%|4rwJW<|#YLlo+DPvZULA~Ffzmpg6*DLu7VCJG_hIb=pZu>DvF2~k|vG(pKFccnV8PXY8jp#pd$#*PpkzOaDpCoj{Ns@)p_GqS>x83%^sCY z26;do!;*dT&>YlaaA)wkq&hTqnjEQ=5Lw?wmlx3B=andW+c~6&S)D?F6`WF;C_|z( z;711365ua_%pDzpqCWho1!q8k^vV(1-v|9g-lS!w2ESCcT~NbMuhel4F!R!WBlpm* zyMfc~AOUi)<1768JCcKgJdye#jmmeCOjXY|#X=Xb=MkI!FE;ZZkMa01=8oFcL8PY9kBmw&%y1&`mlw_1~N3|DqlacIkgdS zKL5{-{3ek4Ae>#0GYBpY_r*o*lbbsSh>s7O^Vxdm*PRxJ5nyEC8lTdD?JS`HQgp1J$J%zp+cqZh#Tj@_bUXDr|o z^Fll~OTvo_h+=U=%~IlvQ`cPJz0801>EQS3&N}F|9$MKJxPq;e|BSwuf>gj8UX5bG zw0isK;`f&9^w6P2{_|>GSM5q(o&=L(E-q>PrzpngAZLBg(f{+wkN;D^p@Ql`M2$n5 z^RBdoaGi!2%wY4$tf-BuXS_`25^RM3+cpV!frM|-MJ0;;XM!M%KjwB{UYM?ltmMha z=8c*!UL>t78x=B!SIgwVKpOjJz+bDbH|48!$pox~2qKs*8^3s+M|M&>=b->%I`z0# z`P`=WWxe~6V**z8CYW9Vd;8U4f}vn;Hb+%5ekCxcDpwpkwe);iJB7?OvR+Dpt!gN) zh3}ukN*xWNn!B?LaU`IuDUxM z&&;b)N^q^xy69RYxPc~d7WPpo?0Y#E}+opD*|HWzmyPK ztww}k$`A{|`4wkW2TwNIj(ZdcgE@edd(DpXrfr_u2oZD;{XG`JE6_ z3Hxe~xndYSBVxL&!iDDgve`9Ty#PC_LeH=R<{$D0cl@3n=DWQr|LQzIR9CO3t)`+v zhlZ!n)o<_D(SW0qS|>Ek?LMUrrmYWvuOi2wFo5Xdbf8*EpE%PW*=W^qn~Dk-U}60! zXC&E^>nHQqA&oOlB>)~?HZ)i13B?{X4oy*Pwz%<#xNY#69OMpxrP*M$r}1^pOA6}h z>Z^^st>LQNVtiOMG=~CECX_kc8}Yb-&HGkIB#(m)KYF@0<<^6K{J^->nTIi)KE!59 z7y%XvDUqOrd#&rITEz%^0=x-NjVY?LI3-^y;0Og`6Aj(oe6TWu4}sHgS0 zv9q$WFdjaXmXt&yARw4K-T5UtRcP^HlE{M2=u|I^#)~jwc)usO3Q|zU=F+cSOwQ#) z2R5z7f`AKnL`@uk--*6<&fdrf=D_xNH+$iJ9g3?VpYw-}7L|2k(>-YLFY~BFv9C0?t`fd0qtgA&7`!J@}3zbM^WuDg8bvLOE z+%Sv-ilWx#KdzF#4aIvNZmZHWe$RvLKDEc6!Knp8#A^=XZHEV#fOKISEKv9P1EKOv zqihxfMDL!J`SgVb%7baV5A3lD`@a681!%2R{o+|lAxf}FXpB?CTR3@fGhokUwI+}% zm=euxp@{g*PA^81h9Yc)XlM9V96Y!e_b61yF8Kr4d!SKvN#5wjkKp#62qRh$aDHJ| zZ-oVB9-T?fo^QiOA<*0y^>b{CfG9 z5yqpwuzMcO3AxfPHHb1#?<4wQ3vrCd<)>n#wmyxlI&Nvh3Wfg40E=Z2a!})Fg4p$RFCxjB*%TR1yv7lLha69#|K$GxhN3t6m_Gr(Rzg_t3@Wa0^7n6 zhO^*_=S)?KyQ7-B4l@`ihDHP&>AJa7mawy3gJQf#+qPbOAB5bcY+d-lVw$AcyC}=* zC|4|4FT?qWB%*5xZ9WuxKZqWMkjv>pqUr4LHOL=_i=CSh0_S_<)WUAGZTSYJ-D)vQ z!O6+mJ}pkv8fD^k_i0wcneCVi_ zPV_^od56^rH=aqsEvH>@E6MnBTJLOsOa<8QmGwrGM>k)`M0g2q|6&MjTOPqX-tsX*46HY+1}jo&bJm@5}JJ06!2(V!2fH znd5ro9#}AX;WD~<5zc*a7@F}`Pwk@|O&xW8{eugmTUkKDN!4D&VMMnHaXc;HQFr;B zk~?2fqBiV#)9oRt)8Vtf%psi->4)g;@8sTh*O;OlQgiz|Tiawd)of>k+RD2W#zEaq zAuR+!AVpsSI(QFQ%dE=Nc&$ob!eO&8_dGkZcf4Sg3LmUY`a-=7k6IW$>0vcIxnY0G z-g&>rh1}$T|B~psWADPwcE${4%z`*NXUkRkwzB~r5)7od%e@X{MQUM4U~A)w%$y+D zj>(u*R9=X`K}-y(Ip3YVQEvS-HpT}rk&OY>&70gJ=#0#d!FHOI8r#5>6iSd;kvb0& z*apBZs`W*>}fsK7GF)`h7*}ab2edT;-_wfbP+|h$wi&&Y9^$#E7*kpYm%Xe)^8d_+8pqqxgNCGLo&UD9Jn zW3zX#SSftPd=^|*#<{z<=g22Ycnu%$vudrY+Z?%p2%gkdr!}4%!P&>ppuZFTYK*N< z>~5wiZstgx3n>j>&w75P@ER{eLIyWE#117tljnqvBL^aF=9_H0XASi<$$cHZT)Qt- zM&np#qI8lgEe>M5{9)6TxpD@_b83F0v7leye3@Wh**U zbj3MHKMF5%MIO%4+{+F?=I3ePrzRlreR1j* z!2eG~&5?}l?9|wn6F*BmXS&ZRN5PjoMAvZNU_699fN2=cn_JAY?8O`xpP;z{mgsV@ zcgpZQIylN_Pn|q@=WThk$em zNOyOaw8YRY-8D4dg}?WC-uK(b-rwGP{umGE0A}XCuWMavo#(mE#WDIbL1gURdvH!KPackf?Bn8oA%deePUxZy zcX#v9p{H8(I;iulXh7V?LnGt$rOIlN&Kt)CbO@jOQ9+a{s`*S4>Aa54Gd4Dk8sw9R zRwNueypTuD*I1Pr-ngoni@)BrmwxKwaZ6?P!xpo&6mh?`$2ViuQgHy%c=PG9Cl4M- zJ;d4zVT>x4a@VIiI!+Yrv+qeWl9ZO#>!TD@)Kv8cSQluRELFR?aRxAv-gybt1{qNR zc#AM_z@cEtiUZmb5_`*U@u@Lc;K5?h665(UTvSm-B@DE-IypH7cszdqwj~5osbN?Z z?q6T8)i(kKeXPuR#SNan8lpDF3X6Ns^4e^3*o6G+j)c@%i`28ORoWEM1Zp@3$N@ju%7^LpZ)>t zmv`aT{GVQs^w+JRmG7<;)gi7F6I1ohcG(XkUkD1(5#Qc6sa)A3+nT)o`X;*_ZVX10JC-VbIKpy=t!Y_=f)ZkY?)B=0!xv;ypoea*Yc55dtelH{$>| z4d7wWbrI0vE(~re+dXRiSh1yjlpOHyY8L~}Q)l7#HCB%rkY}F43{aAk#x1ac1j(W= zZlW7D;V#}(b>bwz>0fAQzG*T<#OQ6v(JdQ-P-1MuG56eUiw|_FUhm&1n<`;kQTnq2 zlZ7{#$x^=-X*)V!=%UxjtumirktZQT&JD)H=|%C%fNEQ};1V}n*iO(7>&@pINX;M4 zpsK3iFH@aqEs$9eN0i&t#w#qVJo7uq?ZCzlR%3~DR#xAtVMJDW97P;SsR%04*_!UF zOWUu@+bq40?_l4F^9`1P=G7PQ2ft)m%H`Ut%Q0nqSZC4o0T{K)>8M>0s&@qA!x2Fre1|C7? z>Kw$XTN2^W*RKXzntD7~C}h$V(`4XJuN&R4kB;&kAIl^Q_#a}=Vwf;6fQEboNKml+ z!G3Afqp;X--~4t+n_u(|G=}A?7N=VzPSm(w$en5ldzG5(iy7(WTG}qJemcLjla#gQ z)d~od(MuCO+Y$DJ){YCtVc)rs-QM!DUrZ`Cp!*_5AjHHdgWj{37vt!`LxGA)N?bT2 zf{z{NITZKth9S?-&u$@}Mz~Ff`b9sM@mMY#DlG})GI|0971Np5G5oOKhm5jT{5oUgA!h<-B0xjSc?s zc4gEgez;ITW~LorSP@;Qcbg^nX`exSed&4zYyC192HWy$8C=~2(r!XCn7+&2|9l3n8<(ERUgBaF;`^4tdQy|O6}|@<0{VNe72#&esQ%KD@wgp zantOC1i63}r%A|!qs(x_&Ah{!#H>GmE`=iUZP~r}`I^GJ=xcIhM0Ak5n+x^P;yZ7P znF>oZaJL!``rC(pT<#wy49VoHutuar`UV}L+o2su*w~4BH4<-#t7(xARoB zeH$GUbDYw4j{wp#is7}ao#1}PDm8dq-`semHnWg~T-b=$JaLvgkg!_Bf8)DnSkN5j zwiUsIFk7%hkF^vTzmoppS;?nu9a{R}*lfmUEYcdz1lNL&;)<#sl4uQI^7=wGe|C0^ zFZgI2UoA4|I%yUcMv%z2Ets=vzUVf=n16Y^MsdC_`}lUU2I(&Gm<3Vb>M1J?#y+c> z->VfFssb5RvP<}5m76-;FBfg|)h~pF-&+w{DI3QquQ)k7zsyx!OsV(JSd)<(*!L0^ znza!wzI1PkE$hEBR+&qbRaMTltJg|&aehe^OT(*rcQgho(v}JSu5)l;=dVTIUI~Rk zPm9H074~iL5bd7|N$Li)BN^_ANq;0@>*!eeeD5FMIkiLf!7vYQxV1^7t8DKZ@$xi(c#Q6= z<5iwn@%U}y0Ty1=@58oHuEPxp{1WyfB8Oe!5OXBKW^;Wr1}lAi4sjPd2}NEHBke)4 zwJdYVZrY~;^kO9!^$v&aE>?}6=RO};G;c{izn(?aG2iCh^}^&-NE9LgV%iX!VYAA~ zBe;97LEbw!MMK6uF^VJnBM{GbPc-L8jTy=;__AqVKfg@TSF3kV)Uzcq2)_tbKb@f$ z5`ZG6jT?+xB}yh{Gv?Ip*MCS!7ADshu0zO~ztK#TE4)`M(yAX3LOvH|f=v3D8r3wk}B^;+U?m48(uu$3CKU+*t^4u-y4(6O7=X^l`Juh`6A% zqFW#<5?3%s%=^I9p{*dU27g*pSG#B+9yA}@dVeqk?7TieE>SE_+)@*#H}I8R4Z6_C z;WH1F3b_3qX3WNj*GYds(ektR&v>g688J5pc?Y_ zf1}synExQLoy?2DGj#Vl=c-S;v_FA|U?9ME~A0^rqXT}iAOcKyJ z8JD18K@tWBtr`KLjR6#M-qu5N?YQ`);VXEvNPJWr51@CGUZ37mv;aXahppL7a#a*V zn6#EFb&&i{>=+9ZTk91@lk~@Fx`ydF!UYB$X$%Isl!qr>-_8|2$Xy4^7pizCoqHby zIzcoFQ8+x@LRthVWXe@UHryBTztMgT4w65Z_cA6LE{@$3sXjzwj5{7&ciwf_6UMBR z_FiEaLUU&H&*9>DxJBR@xU$!^8VG-y1BK|EH(#8t`4hzP?SZDMkrk6iAx5Ow@Q*cx zy6ii`)?FCS*@j=osg7tF|~%pM_}zHK3&n+4u36( zK>XZ7$sX@Kl2n!0+K1NKLfdlI+pTZG#fEV^Xz$cR*GWMY_F+A|KF*8(PLpMetSaxK zT1!IEE3po8_XeeJ+>9Fpa{M^_VXo>J}V+RS+)Bmf>QM3R_(QSWW z8s*VLR7fWAg_}R?s#o~4(&0UA1jzR7Y@q7hF<%|>IW^63ndN#h&8S(W^8)8H7A7x^ z!mq#pOioVjltNrboB)E3j*+gEKl1Z6bK}wd7Zq)WNOjVIa9}!>=Uen99VB2YYr%)Z)|%Wk zKV!k;5o@#^qKf|hJ>A7RZ4cFXAgpA%&Dl;OJfa8?ryZc&eGn=}AG_38t<%C)o~=I? z(CQV&8r_S1qq<+Z-@@@hCAZ|x^R{;534zz4q4Z){>y2dSdX;-)+K6d{J-nx7xcA`n&@a_W zMzUM0fa0!A3P=!uYKqi`FiJ|4;xE+rzCxq$3%2}pf?!xF?4Br{6%W;f+Yek#7w-bS zeeo`TY~0F3a{Hu2fsIAHW{Zq=44yDaaAvff`BW9QoG;>#C>N5P@8+YBiHJU>gutzbkp*;IcS%@j+Tj@!PBd%s$6@7ESr) zjpV#j(fL|)ZsdA79`0n+ z)#A&k=KIs4I7K*3aaLhIZ`>^Eu*!VNSEW#c`brM#0~7ajwN-H0(dX8vsqeC~3a#0? zEXAr69vo;^jfd3Nu7XPgygDs1l_1kqdJ5}nP!>RFSSP)Ne!=6Q>gHWgzeIX~;ckl<+tT)J9zGS!ZZ7W^4ZleChCp&Y*iK07FLj3pd zw6=e5ibwRV*7a%Lx$K0b83tRxo7#y4or%nfxJv#MyPX^F5{#@{%+Dg}3i?GV@7MyQ*7r+l4808!_>e z>dNz1vt}mENQW{KGsoDII;80?JhwaB4S0pWH)2tSE9cqFE+mwYUQ_cSTGM7tt1+xt zwcu-FA~R?CiIwkkTOWSw91zDz;1Aa+%O?egb>DjU%)LN)(TZ#huC?DIa!-GgkZyJ; zj|5xnO8nI5Fgx|*Nb01QRLP>0-c{}XdPkY45#PTD-k@SFt>%^wBN7Sah-ztTfmI!r zNo(Uy?7F;4oHI@mQnQU!!zZ|+v1bo#+OYrp8IQHPg>SsVBo=}gc87>7D?ee=3XsuA zxJ7OM(4fJJGfjgmfwF)C1c?LfDUGO-`~>$~Vx>JicCnD3y>(#-)vDCvBx< z+l>TY@P*cXnQXeE95FoF977;9z>iFf4WD4ue9C=;cV84pNzwi0V&@g|d|<}bC}jL& zleQ!xmZWqnqn!R_{)4LBfM^y!5^Vt&%@6a@YaXVTe0JMg#V$7!E~lb`O69PuRMA^& zEXZPLH9^Ao?P~g#3q71v>8=XP0Br4c>}GRM0u5kZm|Y}9&(_O!oXE^wyJQuSH?A!E zHu59vC~us!#LWJN-E>g5Mq$4Zcx(8v)|co9A2!SDx|H9h##~^;PE*kSU009~(A}yps;JH(O-u#7k!Ydy;IMwjQ_7+hO{9vyc+#+ss=njYn@% z1iYiNF&X-PG5;zxSrCgljtk;#PJ?Jx?LHswF=O6b+^$jcTu)n*=i0WoZ3yoiWDAJ`A7G z0PirLyvX1`9CB#59-1Ci*CO<)xk&#Fp4tZNd)IKB4zJQFJBorIEp3+m_Ch3)r~~qS z1yAXwac5RE0jjIw%ilwvVilh*W~C0q#OiuxMq?%g2!y+#h6VD3_cv?$^uCps`a&## zZvCnzVUGIjoDP~#FmTvYfVP1<`v8K2pBkdvY}s*oEiTqIH1Nv5T%Jp;i@F;&JBn0P zRMb;zcK!Qn%#$qBxxt|wjvLqMl@wg0k;-67z#1>PuZXmRG|CB{Vca7()Fw|Qq81#V7S&N>D^}LUjS(t*Y$dZ2M;pqi|_{;>W4L9%Gt>--tIbbquQThjIBA|$l zezw9Zi9#$;VHMh^>hwhsdU(v71a|X(>MnF3mn{na6z1+u^jG{JY4|&5Trrm^T}2rL znLzz^f10g|CFX5O^7)VjSW%(7Z9bh_R?5PN4zI5*?df&c*>p%%DrQmB5HvJLVus4M zNg_lyxx`A6h#J1{|GSqMJ&P+^&ZI}G240kv6fGxodmy>`htOaSMW2Vr;SlZ{9E`ur z{xhKJO4WRA)nlg$X)>iATC`5Me4LfP!$Zk!;VaeYH4htq@gyb%cTnoI*_tv5e>em_>u{Q$@pd#|wgBxmTVX2L98+CR-%pd2I%>_pQmo#yca zh{qZS?fDNPfC-}2vjDM@NPAq4YYHL|xgnfaBy zYPNkWUsxT))d~(nA_er#Rc8?tmJJdAr+>HPM>@{|)+p*POn->PfjXG1D$K-^^1W?5 zsW-PFQPAiFtm=$QdV{t!E^y7c1}Uzi8~OQvzUKXNWWY`egdl&naAIisSRG!OUW!?X z&&h8tFFyIL>Jgp%?%Yrk2Md)XXAQ+3g#M5N!943%kW#M1Q!}NawY68|i196_RPWE% z+e>ZS6l_n9+t2Sy;eZ5`3^YC4J`#Dan$m7d%jP-@)=dUw1J#16%D|~194fr_?>H>P z{p2mQBJ`ex!*$82V^set*l^#`P?;juq+fPTRF!s^TFgwd5RVS?ohj@HXduEUEOz|_ zJzu#h{7=zVpsXfu?t~g%Uf7G+VVfD30>5c>4c+R(TxaIFsoMrkwFSzZs;nw`Ou2 z4B@%%Gk#&&=}loOR(atx!^gZ;$mQ7EHiV`KLV6{`TEUY&Y|h}!!I zCQk7ZIwgnRabsjQC5-%ON@MO{~{;zIYqcVy0+zw-5QO9Gq_YMAG<4fDW7fDO)~b z`-E+(^fXIt4!fS+h+d-_9QC6kj~QUuR!sx0|fwiVzJ(+NCQ#rJjeAvF|A@0p?j z>KnW#43iKjDq`b1AHpqAyTGs7pM7-y8w5H!Kt=sn^rj(UdkJzzd5+4ga_jSi*+YEd z4|7j%?XS}aMSz$~CJTh>suW9kdYC}2U1f81Qy-EEI^Z#ToD)|++CYu(Kd4=Ip7dwE zqg*9H8ya?w)5uV6E)Y{Qb%YGxxN=G5k0-!OG7Ga-;xy^U_$vF%bV!--&B)}}@D0e) z+}&QsmkP*tl~gF?*o1_#cDQzRmD-7Dc5}d~hWSowWlz#H(ZGH)Qk9aDnymT6Y*dyg z>fX>O2>OxnJqa!@9vqnMeJW8ve^389!bpdM|5t6L^n0!FuCw@@LdGH)8yk)fOizqB zUluAMEjr8QW>z4BCZD~5*>~#d55PsJ{91k59bdj~w_i)~+s58r%GfwdhZtP1xq4I@ zrmYth(}~UVOU|;z<*DqPoLmUj!kN)u7%_y~#h2E%z01m!AX?arm1g6Js-KI*GsYLU z#-X5fVA)x==ldPDT%&aLFXuQd8dgQnAqH@y3d`}b*2CRz{ZF>^_guwe#v7`#`sa`1 znV>mu`Z*cb%1zWIuw8~s)-psG0x9g6^+BYjU0+`QarNLMfaSEbwI6+teC}jPPAQ82 zdz%zDYy*Si{zliktZF;$O)*$scf7j)K>ULI?e&H(nOVkLziKFckC;_%%rGE^3%x+X zU244l4r2{~NN^R<|CNbWa~wtm{zh1uRjPH8fIR^OCLsqaTKl2S#oHezLYzJHLHEb^ zZK~w$FBb=U!&vCGh@jH}kPNjHSY5NHizKhI&uWVc3cSk8F_Mx<-V_9UFNoo^*_Jit zF3w`hzcDX(v%_gvI#vh`GRC^h3IDGU7`d@W;?9ubw4-l#a>k>ktD}QuVqyaEEHCE* zW>=X1{Vk97h7qW!#Q2;G1eSVEBPRBQuMVcx2 zcIYa!1jUFh#p=R-=q?0o*$$jWgecHUeEdi-QMeFrwmbbpDwseEJCHF(uEKQ5cXk_w zaIhW|?FX#E47)Q9HcjLK#WScx7wR<3&(&-yX}kuW5*a7rh9@rWHJst{944VO4!;;R z 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 Y{ye_??B?1}_wQ^@+yA5F$1A`7FXZiH*Z=?k literal 0 HcmV?d00001 diff --git a/addons/colorpicker_presets/readme/install_project_settings.png b/addons/colorpicker_presets/readme/install_project_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..e2d036b4dec1136c64ad7b2c8d653114e05004a7 GIT binary patch literal 20999 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⋒ED6woDwrIsL~e@NX;E#;TDu%O3+Ga%x|%%3AuWpC{S3~;fZcd zx&a9WyPH2`+3@WZ;JG;GQ&DQF2!#y{+b{lhS1YDEf*m=7oxTh?;lX5obR(gkxH~)q zdYF7cV{5Q-w4%e1XTkIdmM0oDgfJ}uwX z0ZyDWnfNIaK^~<9J)UWB@_K(yj{)5L%!F6Qxy&ov9`wPXv7)-s3BuSMr&fY1uuVe` zG=ltsB0Cmb2~mP8?{QK6)vr7Gl785#oX*mz2P{m(LQ%j8i=xFqE+?E4fh zmiV1gyZ7MG4Vm%z{D{Lwtdm$Ta&`T#?92M=H--#E7mDoig2V!YERSF6ITa{1xuX)i zV48UQQnL413%>)FX)Vp;#P|1D=rVJ)7j&{zpG$SSK599u9zwt8(nkx< z$s~%mt*);~$s0BmV)=`lc`it+G;kPuHzq_%>ql|p_vd93L5DY4-63>aPD`f+0pRUw zWW#F8*Ot5barXGKM|8R*%jWO9C-|*xitkbf1Km86A0wh{=9<5SXvLttw@A@wQYtpG z$l_TINKi=d%$(rJsI}Uubtc}Jnd+~5$C1TybCqN7^@(6nYX_4QMP9V~)WWWO&^u0w z!|-sYm0u|A;+qV+gMll!g(0|U4>WGv;+UE>hE}Bv!^fmIxBIRdTplP!QnDFtDiIN! zOH#;C&7Ts>o)349oza!t+Z0rME?)X|iTygQj|GC@SF>E81|z6?c(*t)fm5+U%EzPj$>3CDIsiNFu$6FE04LSNs z?n-LbYa_b~7GcG=6fqt8C0M_?56M6fp|>~xF%x|nwINf23O+g$Vt-u9FEFO`T6@SI zCTNC4mk;{L8HgCUZFc2KRmRmn2-el{pusdfQOGsXF8j9ezR1vsraf5!0=iPy}e)^iCVUQ<#-PU?b;BFBHGr_I{Iu|QC0b+aP0;R75A_@2r z8D*6rdA5WqBM0nuUT$Z(Ar_5Kfg0zOPK6n?#AoMUm{piYF?Nk)X$M1R9gb(j;SjBL zX1L!Rx3qn^>25tCQ=0P0c8>O}cZ^laSYd@$e3ncS4w&QWq_q%C26JzH8MmPYHXNU! z5|WTvlH17TUSZ6W44vdAzbOjc9tWi3x9EqBh**Qx!XzV@ zxBB?F%IQS+NrlDe;R2hasF|tLB;d5g)D3(7;F7&T^KS24y-P=Qzt_`9BE!-#hrG$Up?vhcv2#2feV_dr7Y;LD%z;zX+0g4%RQQMq=wD-5}<=14o zbNBKO%dO+Ve`b*F;D@2Ov`pO|nLRC?>eQdT-v zMXDAR>AUarbv$_9yWG`Z&!>>d@bAY+{b$EVAXKywG?Mi3Cw{!(`wa!*vSKev{zAM> zcm69821?Uc0$!Bv>F@GK2!uQsE=`!w>w1{eM=K{<{hFR{++dT%n!=K)s^3 zs7SPiA8so5T^~y}0u))}34;)86cWeM87>~8Mz$>(6v z`rrf%$uV!d34GEy1{i-#-soHAuDp5MB)}jUy(*7>&FScDz8(;%lWYWly+&aaV~&xZ zgH)$)yNcPS*KGxXa*OpCg!+_~hitZ*A19$8L+vJkaV6Hi|LoMYxvEi@MMvXOgDlu> zOsjzFSNfF5zuMyH0quHYQE!m_DD)6;n72Sg%+gFZW2Sp(+C%>uB|Ro zS2hZHX_T2JKOeUtA+4I3Uw<*eK6ve5&|cnIDF7895bcJi=Yc{3>eY|n*CiWL*a|MNc4L`Sc;4Tju2kdsn)f4j2;r5Kzj%011o1c=KSJhdXur&eib>=daOvJ$~Wl zw#G5~Odflm4TeK^51&vCde}!8*2H&arL=Bt1tsMr{n}1jlBS>@Q9gZsj|~ldB_S`> z*lhzQ6T*ct;c^V_#~A0teq%4PB;1EzlY2+4f63kg}|d zokF4_%%&1a4f=u|4$~g0@yW5hP;B;=*|!iBA};Rk8*f$s7pwGI^-J3vyjGo2nn28O zY3}cjQMkDk4J5)(N-{-Hqt6<9`}^l* literal 0 HcmV?d00001 diff --git a/bullet.gd b/bullet.gd new file mode 100644 index 0000000..01274e1 --- /dev/null +++ b/bullet.gd @@ -0,0 +1,21 @@ +extends Area2D + +var travelled_distance = 0 + +func _physics_process(delta: float) -> void: + const SPEED = 800.0 + const MAX_RANGE = 1500.0 + + var direction = Vector2.RIGHT.rotated(rotation) + position += (direction * SPEED) * delta + travelled_distance += SPEED * delta + + if travelled_distance >= MAX_RANGE: + queue_free() + + +func _on_body_entered(body: Node2D) -> void: + queue_free() + + if body.has_method("take_damage"): + body.take_damage() diff --git a/bullet.gd.uid b/bullet.gd.uid new file mode 100644 index 0000000..b04d46f --- /dev/null +++ b/bullet.gd.uid @@ -0,0 +1 @@ +uid://b1og3ublo2loc diff --git a/bullet.tscn b/bullet.tscn new file mode 100644 index 0000000..97fd8c3 --- /dev/null +++ b/bullet.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=3 uid="uid://luwdantua0vh"] + +[ext_resource type="Script" uid="uid://b1og3ublo2loc" path="res://bullet.gd" id="1_v8qja"] +[ext_resource type="Texture2D" uid="uid://dftkbqwsfd68r" path="res://pistol/projectile.png" id="2_t4vbm"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_2b2rl"] +radius = 15.0333 + +[node name="Bullet" type="Area2D"] +top_level = true +collision_layer = 0 +collision_mask = 3 +script = ExtResource("1_v8qja") + +[node name="Projectile" type="Sprite2D" parent="."] +position = Vector2(-11, -1) +texture = ExtResource("2_t4vbm") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_2b2rl") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/characters/ground_shadow.png b/characters/ground_shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..d2acfd5a04b6867902e358d169d4054df8c30ec1 GIT binary patch literal 752 zcmVv~O_4aM5Wio)PyVSQA7d(5(|f)E*ILLwHl`AV^a6Yv(X6eY!@ zq_|12kQ9e{d7LP|VIs*6t(_x(QWRJ=mSRhewJ9fkiv33taz(MH-2;{{CSxd`>6(A@ zwa1s zoBA`96gcyj;h^i#1C&&*TzV1IKOz|@sT96D-f(I1JSYG+@LSz9V*L; zlTr;ujOa-^B@Pu-7!_0)7SuwK!m^-eC{i?nzE5$~GO1KhSsI5Pp-6EI!*~CnbMSMq zG<^3ZJT^T+nM=tZLD0WY=JLoNji7#Bxr8#6D%3i)drH5cOl2Q-x|JjMQk^VGlZ?Va zw=b_QO=sIaxDwRgOZQM>*>_7CwVZJ}7Cq&RT5vm!_=4Mj&exAJSQ0)s!0b=>4yDU( zY$b>;tBEISS&c6Iio+su;aAk0lK-L{_xVW0*PO?$`JA$N*5E$eT2efakV)gk$+MpP zOZl!AC#)ro_Lmd|S0ty3$w<6_fRh#%>=w9P*K)#nqWCjK#5S`9ZBxIzBE!HHp&5M4 iS7fk&l@HNZWc&we$g809lI9cu0000JqLDb50q$YKTtF;x&|^bAt@02E{_ z4sv&5Sa(k5C6L3C?&#~tz_78O`%fY(0|QgDr;B4q1>@T}Zv$^Th`6p_(NLmL&LDbY zrNWXX3sDxW10e#-n^rXMV0K~M!FO5>+_TRv&HO;de6DdG3Lndyez501~=zMB91 zJ&t^bK#`5Idd_>pH)(VkP3SZbn*97y-kN1$#;YZcAGHd}`uas|QgxzIdRYI_mmg2R zV*B6qsKhnzbJAB<=9jilyR%~dbY?}(7uH_Ad!P3~*ZGruo~@OgS6F8xJOAJLg9qcj zm96-@c&Y3@M+^RIE4$YTTeZ$QbA+$?`b1%M!4MXNhK&%SPat69%~Ql`nitUjMF z$I7JSIrkC8nk{<1f7{dA?>WnyIu?6#;VVC`>(`dP-sOCC?&F_NuNW@;k@kmpMp8Wg2kFru4K- zniyat>%2cG`C^gVh0iCN7_*PSQz sweLT&(C_KJt4mWC+BDUEn7zZkQYGnNyYS^{z~sr`>FVdQ&MBb@0LnHX1^@s6ccHC$00009a7bBm000&x z000&x0ZCFM@Bjb+0drDELIAGL9O(c600d`2O+f$vv5yPkKS}MzzkxH+295azM0Q3!-x3^ zA?(iZ&Vsb8btBy|EY5ipDI+~PI@H%fqd0k1q|#t+RMwtQu<|HUVKKLFT0kDf$upxv zLW&$7JV&+u&X9$h2RXivwow6jSa~M(35N+}Vda^k+L~P9czt2z(F3?JZs2%*Vdsh9 zzUDTNCxS_x?|)k>&X#hJMA7pkEAy z*TSoSz4X@Ca)w`=Bg|Fe#^Bw-Tq0)}5ZgYjXIc+r3v*-A)?nD0jvy886#dwvKPd)A zuWg^1*KaSzNKkNV1KZz6$R697E$jpN`K(KIS8G&1D)AcT3Ha&t!>@$#QUCw|07*qo IM6N<$f?LI}j{pDw literal 0 HcmV?d00001 diff --git a/characters/happy_boo/square_face.png.import b/characters/happy_boo/square_face.png.import new file mode 100644 index 0000000..8f87f7b --- /dev/null +++ b/characters/happy_boo/square_face.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvs0lh814pk7h" +path="res://.godot/imported/square_face.png-e27720ce35d82859f41580927c22ef18.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://characters/happy_boo/square_face.png" +dest_files=["res://.godot/imported/square_face.png-e27720ce35d82859f41580927c22ef18.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/characters/happy_boo/square_foot.png b/characters/happy_boo/square_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..b27732686bae6a5bb9b790eac7ae785bb883a5eb GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZC!3HGf#l`*vQk(@Ik;M!QVyYm_=ozH)0Vv2= z9OUlAu zY-Pq{uj0uskIYZXEtv8%)9$3y#>KVMuO|7shD)>r>a*tT%s$0hy?m3 zB7!3h^oKsU-=ZuzXW@o+dD&LkKQA=*9OyS@_gyFI_eW;i7sVE%%T3w`_`aFwm&YU= z?K}KJ{X^p!|KD5hf4XD2$ftdFMQaG#$Nla+a{g}Y51F(4ILo@0rbh!k#^CAd=d#Wz Gp$PzQqInSj literal 0 HcmV?d00001 diff --git a/characters/happy_boo/square_foot.png.import b/characters/happy_boo/square_foot.png.import new file mode 100644 index 0000000..3be09d9 --- /dev/null +++ b/characters/happy_boo/square_foot.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ng8e5ot0dtpd" +path="res://.godot/imported/square_foot.png-62023e9ce7985c4b370739df29445354.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://characters/happy_boo/square_foot.png" +dest_files=["res://.godot/imported/square_foot.png-62023e9ce7985c4b370739df29445354.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/characters/happy_boo/square_lower_leg.png b/characters/happy_boo/square_lower_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..5642acece37401ee8d4730c3898e0649f1b09df9 GIT binary patch literal 319 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 NfR!1_lxXao^dHJO6yyK^ literal 0 HcmV?d00001 diff --git a/characters/happy_boo/square_ref.png.import b/characters/happy_boo/square_ref.png.import new file mode 100644 index 0000000..f7ba546 --- /dev/null +++ b/characters/happy_boo/square_ref.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2ent6mf1y7w7" +path="res://.godot/imported/square_ref.png-ad4b2771e34de0b9a0fbda7055a9fe1c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://characters/happy_boo/square_ref.png" +dest_files=["res://.godot/imported/square_ref.png-ad4b2771e34de0b9a0fbda7055a9fe1c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/characters/happy_boo/square_upper_leg.png b/characters/happy_boo/square_upper_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..c7994fcc6ea299189ff8a1f0c1811015d18ae272 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lb!3HFSk|MSNDb50q$YKTtF;x&|^bAt@02E{_ z4sv&5Sa(k5C6L3C?&#~tz_78O`%fY(kl*d;;uuoF_;#8jZ-W7kYqUrLqq_$Ks|N$S z2P3Bi1N&^|0)u}{>>MpT*O=S)J<)$XZI9{ArEeHGCrvQW3R%b%y245HUsQ%?-$`!u zNr$T*Iuw2BIjDH_n1bff#F>`f8+0_hx|UmpzSvTFe`Wss5904^-v-}~i&9W?Fj2N_ n-PCQJV&ie9E^OypWBoNxxUS3($`DNlI*Y;6)z4*}Q$iB}1Q1UM literal 0 HcmV?d00001 diff --git a/characters/happy_boo/square_upper_leg.png.import b/characters/happy_boo/square_upper_leg.png.import new file mode 100644 index 0000000..0377cbd --- /dev/null +++ b/characters/happy_boo/square_upper_leg.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://qmqpm6asge1i" +path="res://.godot/imported/square_upper_leg.png-e1f848aab7dd8805f40f881c2160a53d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://characters/happy_boo/square_upper_leg.png" +dest_files=["res://.godot/imported/square_upper_leg.png-e1f848aab7dd8805f40f881c2160a53d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/characters/slime/slime.gd b/characters/slime/slime.gd new file mode 100644 index 0000000..61789f5 --- /dev/null +++ b/characters/slime/slime.gd @@ -0,0 +1,10 @@ +extends Node2D + + +func play_walk(): + %AnimationPlayer.play("walk") + + +func play_hurt(): + %AnimationPlayer.play("hurt") + %AnimationPlayer.queue("walk") diff --git a/characters/slime/slime.gd.uid b/characters/slime/slime.gd.uid new file mode 100644 index 0000000..055b100 --- /dev/null +++ b/characters/slime/slime.gd.uid @@ -0,0 +1 @@ +uid://fv1e5gkanivs diff --git a/characters/slime/slime.tscn b/characters/slime/slime.tscn new file mode 100644 index 0000000..2246dfb --- /dev/null +++ b/characters/slime/slime.tscn @@ -0,0 +1,245 @@ +[gd_scene load_steps=12 format=3 uid="uid://ogik4s70pgwl"] + +[ext_resource type="Texture2D" uid="uid://dvgfmy6vtvjji" path="res://characters/slime/slime_body.png" id="1_3j35h"] +[ext_resource type="Script" uid="uid://fv1e5gkanivs" path="res://characters/slime/slime.gd" id="1_87y5x"] +[ext_resource type="Texture2D" uid="uid://b7rhtttevhxtj" path="res://characters/ground_shadow.png" id="1_cq7ej"] +[ext_resource type="Texture2D" uid="uid://c078jrp2yvc4s" path="res://characters/slime/slime_face.png" id="2_ygydt"] +[ext_resource type="Texture2D" uid="uid://btbxea1f3vwot" path="res://characters/slime/slime_body_hurt.png" id="4_0qu0c"] +[ext_resource type="Texture2D" uid="uid://cai2ijnbypqtr" path="res://characters/slime/slime_hurt_eyes.png" id="4_hi70h"] + +[sub_resource type="Animation" id="Animation_y4lve"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Anchor/Face:position:y") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [-25.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Anchor/SlimeBody:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Anchor:position:y") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Anchor/Face/SlimeFace:texture") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [ExtResource("2_ygydt")] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Anchor:scale") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(1, 1)] +} + +[sub_resource type="Animation" id="Animation_lu163"] +resource_name = "hurt" +length = 0.2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Anchor/Face/SlimeFace:texture") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 1, +"values": [ExtResource("4_hi70h"), ExtResource("2_ygydt")] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Anchor/Face:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [-25.0, -35.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Anchor:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2), +"transitions": PackedFloat32Array(-2, -2, -2), +"update": 0, +"values": [Vector2(1, 1), Vector2(1.2, 1.2), Vector2(1, 1)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Anchor/SlimeBody/SlimeBodyHurt:modulate:a") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2), +"transitions": PackedFloat32Array(1, -2, 1), +"update": 0, +"values": [0.0, 1.0, 0.0] +} + +[sub_resource type="Animation" id="Animation_71vdi"] +resource_name = "idle" +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Anchor/Face:position:y") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5, 1), +"transitions": PackedFloat32Array(-2, -2, -2), +"update": 0, +"values": [-28.0, -24.0, -28.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Anchor/SlimeBody:scale") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5, 1), +"transitions": PackedFloat32Array(-2, -2, -2), +"update": 0, +"values": [Vector2(1, 1), Vector2(1.05, 0.95), Vector2(1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Anchor:position:y") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} + +[sub_resource type="Animation" id="Animation_l6fy2"] +resource_name = "walk" +length = 0.4 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Anchor:position:y") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2, 0.4), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [0.0, -20.0, 0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Anchor/SlimeBody:scale") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.1, 0.3, 0.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector2(0.9, 1.1), Vector2(1.1, 0.9), Vector2(0.9, 1.1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Anchor/Face:position:y") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0.1, 0.3, 0.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [-24.0, -28.0, -24.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_j6cum"] +_data = { +&"RESET": SubResource("Animation_y4lve"), +&"hurt": SubResource("Animation_lu163"), +&"idle": SubResource("Animation_71vdi"), +&"walk": SubResource("Animation_l6fy2") +} + +[node name="Slime" type="Node2D"] +script = ExtResource("1_87y5x") + +[node name="GroundShadow" type="Sprite2D" parent="."] +modulate = Color(0.898039, 0.878431, 0.831373, 1) +z_index = -1 +z_as_relative = false +scale = Vector2(0.8, 0.8) +texture = ExtResource("1_cq7ej") + +[node name="Anchor" type="Marker2D" parent="."] + +[node name="SlimeBody" type="Sprite2D" parent="Anchor"] +texture = ExtResource("1_3j35h") +offset = Vector2(0, -36) + +[node name="SlimeBodyHurt" type="Sprite2D" parent="Anchor/SlimeBody"] +modulate = Color(1, 1, 1, 0) +texture = ExtResource("4_0qu0c") +offset = Vector2(0, -36) + +[node name="Face" type="Marker2D" parent="Anchor"] +position = Vector2(0, -25) + +[node name="SlimeFace" type="Sprite2D" parent="Anchor/Face"] +texture = ExtResource("2_ygydt") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +unique_name_in_owner = true +libraries = { +&"": SubResource("AnimationLibrary_j6cum") +} diff --git a/characters/slime/slime_body.png b/characters/slime/slime_body.png new file mode 100644 index 0000000000000000000000000000000000000000..4c54c79bfea3c25d19e6ef889f0cf65ec6e9628e GIT binary patch literal 2466 zcmV;T30?MyP)?H@A}uY%7MN=NoqEFVGDvT(lw zm8xa$S1ftr*giu*1Y6mI{Sn+ZAU4nsBe)IpMeIl45#sj3*oUt{Km;NfB^78@tKgGW znNLcPx3@ABQK(i?ybvFX+9Hm}1|cyt06sz1HXB52^Ifnv_S18Q6t9EFSVbc36c1s0 z|FN$Eb%U&s1e_Qh_Cq|gYRRSlCbPG}M|>4*Ie#;Q0r(cUq=GJO(=5PGX7S8K>I8}R z`zxa;Tom1BAGk*@`I(UTB3La86!cAc8C=jyLbYRZYzU@NJh#FLO#l0<)@y#$C_M{S zPcByRGS4WU+VeuSaxD?FH#frJgQ5 zSoS%QD7^ISKOr6+fiOTZ`1?nBdsBg~9o1C91;T7r|;2C;OiQul#lVj}SH*qEY#bjTE=*1B+O&1*_KvS>>jf;XMYC zm4y)(q9y3sQXVat=1%l@c%tEX^-Y|B5KKGYeoN5b+$f)8l2e77aYYRNPz#}dl#OG zPr);ZDVP{a!o={E+V3z{Jt#bcdpqCTaqlwF=w+uN2Ts&8#---hPRYESpC#)`K^Mrn zK3(4ijXM;q%tR}Dy4lK3#4vP+bHHeKt+!-_8Z{bL#=yP}tNDc!f<+?2vD8o2wSDje zG~VD2JVGOU@x=4SPA!#pzL~C5R;W>fYh_Z3baO+x*}~GmK)XZ#_=%a~H@n4S!8q=a zhEH=cLk$nIGP-BLiDtKG3q~f#afj4U*7(b#qO)MlZqXL3%yfr3e)-Qf(+Cdhqtt3H z(SYZjPSEZ!7}##nfEVmX`XPjH9BNIs{%C^1WOyzink`LA;q*X zmEp%4H*l^oX@z~2BIR^oQM<&zp(!gIk&rOxhtqLkxSciZ6c|}JHot6_$QT)=V_49z zER4qC14A(8n`t~ysj|EnPcZEggQuckVVV%31q&Hku#lkz3mIClkf8+&8CtNAp#=*W zEWv1gTurdhEO8uIg7rmudQF`R0e4n7mSC}H6g0u&tA&jWc$xE7!-3{s!X>Sncanqgqwp2SfP>u!cp_h%=PZcBT|v8%x; ze^#x^dCW*Y1H~l~sS+|iGH6d0@({(l?81>HkyTMU%VmYgq;)h~Uu^qM%X{fXFodhc zTnM^(g6`Yh%oi`+z0nk>#$yBc1&(LsS$cv@aK7VU$pBSSt_f@EePo^6{?bo~lo+iV3~u4}1rhXAqiO8mq5 z&cAm+i*|N6iA6XL5x^{E4&N#Rnt+iRC$R{2RIDc=thwwpN|=~nWZESd?NCZ%{9dyD zvV&dzS#0ypV;5JBdycETlja6CYSxwljT@A#su@px{#rO?uvRN?M=iK>rpp4ia`#~N zd8|XuNf0!1rjBtZA!~Y%`m?CV7(C+ps2UOvODZ!$8fpAP6N0QyToMbEG{#e!QrH8V g)@TfdA0jpL3oX1O?x)JGjQ{`u07*qoM6N<$f~o9>@&Et; literal 0 HcmV?d00001 diff --git a/characters/slime/slime_body.png.import b/characters/slime/slime_body.png.import new file mode 100644 index 0000000..149a77b --- /dev/null +++ b/characters/slime/slime_body.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dvgfmy6vtvjji" +path="res://.godot/imported/slime_body.png-0d515f9e912a0d42a36c28f828394f6a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://characters/slime/slime_body.png" +dest_files=["res://.godot/imported/slime_body.png-0d515f9e912a0d42a36c28f828394f6a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/characters/slime/slime_body_hurt.png b/characters/slime/slime_body_hurt.png new file mode 100644 index 0000000000000000000000000000000000000000..e6ad5274b8f2478787e5421a2e5c3ebbdcd4f332 GIT binary patch literal 2298 zcmVNJ6-cO3w-pF+Mal)2#BN%NyY>y5K0(tbi2DR>pP=ClxI}`+2@*o$ zf(C8?2^AwGN@=3FX`F;O-sw3z>&A9%@0tDMc%1o38?T+UZJQi1`Hx?r+=t$;rt;i?OxO$ECI zx3NpG3MrDBV9HgQ60Y8Xq}e;fr4F#)0PsBZyn&AmiO*&GwhsP_8C=FQ_~-!S#?(U3 zC&nOg9PvQReR~&DA{D{>qyp+?NXk_^2LLr%>PnnWQQ|O}MFDX+GY&8{4hc~K$QILR z+Y%Q{mai`0$KHpyZ54^Mjmy?vvI6xZiw>Mb(WY}rh(~Q3CL}8lAVCrp4BM*`{#=5n zP)OUT;W9vxdO_m7H>m`q@EI9jv=SslB7z0&6&*>pAPU1IR5$WDC0=ylmhqpwn?#K= zwqQyu2iq$#3%U%uP@T+70GvM+Q8+9vgIA0zS}eh|#L8k8m&0Wog>eFLcJcX3Od?)j zGO@XX%JVjN!(gPGRVb__YQNwZYHu0Q=_^ z=t27~a~~q0y=PSF&d3IJ#cD#LeXM)L9y6PmH2t;#aG(_#7O>A+0!_38!#}Xd>Sv96 zk-h6PjU}Ue3T2}-spJ3rbW2k-u_V{#wYoxV4+Q0=C%~y-P?C|0nLIqhD#x$8U>uZ1 zx_MQv8ME;wVXl3wUuQRlOmr%31v($QtnZ__-vh%PIHZN@l^{gaP8 z=nK*pO``Mr%8I#+6ij7>k{1d$c2!@b$-f5>n-_-E7CF$q*=VXvfd7(%g{JkA;swD zwf5J@VbvHe+w;sR26OqZ#%<5km1RBX+7Ao*Tz>)wYPV`#b}nUkpPg2f3mvGQ_~R>c zioiNh!T9ntbK~r#Zhf=v4pZ(5hfd$udN`q3eLvJl@teipQ51`yeZ>upJv4ah@MpWL znZnmYb}l*X3Kn!HLK0F6qg2@#Rk4~-h5w`T>M@kYbZ15X?Y+o#7ab{e#?B=He%J>1 zrKZYFt?4@bj$R{IJsDwVwc?*;XS%FQ#@NMS^W-iU`a$mceG@DZ;kyjo)wtB^vNngQ zOVk+suFkB`q6gn)>Nczv+C!oc;iZ0ZS9KpOG1=VZRX{wr+4}U2V1BZ}xtXq(K&RNE z}_>u7e4Oo6LtLS0gi{s8$I~jU7w{G59lpyhoCZrm(1_d)x0#W? zM$Nld_!Dwcf8l(TLG~?e_>&dn_}gdXGCjPJmmLvdDlpl7!*z*%*`PvfxEJ0kF;?a%QbQcUcZ&dE+ zq>>UjX@X{|#r3l}HI+wfWC=rI*Lsf%if{`o$)VqOE9{jmBwH-#0}=YbitAYtJICc zqD6)KhKQ4v`eOqxS>Yn1<*HU<&f{!_(}c=@SY-De4s=@JPULsj=b+J8z>lMmGi@8! zPSrp8i08A!=jAnsN#a-4_~J=#7CgTmN#eP{ozlvDD#2xg>saMj_piZ7K%`b)13e8c Uuv;EwWB>pF07*qoM6N<$f;k2~X8-^I literal 0 HcmV?d00001 diff --git a/characters/slime/slime_body_hurt.png.import b/characters/slime/slime_body_hurt.png.import new file mode 100644 index 0000000..8e0e9e8 --- /dev/null +++ b/characters/slime/slime_body_hurt.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://btbxea1f3vwot" +path="res://.godot/imported/slime_body_hurt.png-3f38b75e5ebee1f99a984b348a7e7f8b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://characters/slime/slime_body_hurt.png" +dest_files=["res://.godot/imported/slime_body_hurt.png-3f38b75e5ebee1f99a984b348a7e7f8b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/characters/slime/slime_face.png b/characters/slime/slime_face.png new file mode 100644 index 0000000000000000000000000000000000000000..c6e2736fa06ff1091c7a6dc79dbe20ec31ec8590 GIT binary patch literal 609 zcmV-n0-pVeP)ccHv4@C39}KnGRe4Z<6QlFDwW2puIIlx_kvghfbz z1ne+N6eO@stnAtXT@BaIe$~GyMa&X1`YWBiZyFsXcp{@m&0s&0HMm7$xAMN2Ns%NcOa*jS1veMG3g*Nf?~0|5_Z7>^bQe zu#AFn)suXK#JNQiQ4K}os3&cU&LaQnH58AN9)(X%ia}~4C(L|^!g151Qi9sZyEM3o zf^pT8F!&8-OA2U=K?_SvC(?x%d{;dQgHkNDVV-*{sl8`oPy()cGFvsvWIb4vkYzc4 zdncJ}7fIH>2DY>;jFNe8dMYYBK=91e!o-IB>z~>yX0$p{cQq@vKLX{A9|o@mr{*V` zoNRbgN15ITM4?D{(TXvfjgv@k!V|s?UWmce5sJucju^D$Qup6lMy&3H-JkHp2ugxk zHSP$F-UpP1*Jj%=oLe`^(Sk?5z#~`3H~Zr=KLXkKe=!71Xq|@LC3wWEL5rB&9se_W zNg!+Td(OwC9W!gE;l(;Uge`hY-V(a6a_SBV3l_30sQ|g(z_@C?{)Aszoi@~ vr5a>-w%h-z literal 0 HcmV?d00001 diff --git a/characters/slime/slime_face.png.import b/characters/slime/slime_face.png.import new file mode 100644 index 0000000..d5ebd0d --- /dev/null +++ b/characters/slime/slime_face.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c078jrp2yvc4s" +path="res://.godot/imported/slime_face.png-561a1f87b138570340118953f07aab21.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://characters/slime/slime_face.png" +dest_files=["res://.godot/imported/slime_face.png-561a1f87b138570340118953f07aab21.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/characters/slime/slime_hurt_eyes.png b/characters/slime/slime_hurt_eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..8d8958b2f12ee7505160d26d50fff8e387b48a53 GIT binary patch literal 406 zcmV;H0crk;P)wTAagEcuo2fCIF@+v-DV$U>HrFf05JRfM zvFh=HMqv&qq)xcMHZ3(4gb-3U9IF~HB!h)}g)|ArKC=D;4k1{&045b%7 literal 0 HcmV?d00001 diff --git a/characters/slime/slime_hurt_eyes.png.import b/characters/slime/slime_hurt_eyes.png.import new file mode 100644 index 0000000..bb6c1cb --- /dev/null +++ b/characters/slime/slime_hurt_eyes.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cai2ijnbypqtr" +path="res://.godot/imported/slime_hurt_eyes.png-711256b4a2a47dcea723d274f00b4628.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://characters/slime/slime_hurt_eyes.png" +dest_files=["res://.godot/imported/slime_hurt_eyes.png-711256b4a2a47dcea723d274f00b4628.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/default_bus_layout.tres b/default_bus_layout.tres new file mode 100644 index 0000000..cb230c5 --- /dev/null +++ b/default_bus_layout.tres @@ -0,0 +1,3 @@ +[gd_resource type="AudioBusLayout" format=3 uid="uid://c0r1synmqj70v"] + +[resource] diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..c398efd --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,108 @@ +[preset.0] + +name="Linux" +platform="Linux" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../../ShootahGame.x86_64" +patches=PackedStringArray() +encryption_include_filters="" +encryption_exclude_filters="" +seed=0 +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +binary_format/architecture="x86_64" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="#!/usr/bin/env bash +export DISPLAY=:0 +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +\"{temp_dir}/{exe_name}\" {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") +rm -rf \"{temp_dir}\"" + +[preset.1] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +advanced_options=false +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../../ShootahGame.exe" +patches=PackedStringArray() +encryption_include_filters="" +encryption_exclude_filters="" +seed=0 +encrypt_pck=false +encrypt_directory=false +script_export_mode=2 + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +binary_format/architecture="x86_64" +codesign/enable=false +codesign/timestamp=true +codesign/timestamp_server_url="" +codesign/digest_algorithm=1 +codesign/description="" +codesign/custom_options=PackedStringArray() +application/modify_resources=false +application/icon="" +application/console_wrapper_icon="" +application/icon_interpolation=4 +application/file_version="" +application/product_version="" +application/company_name="" +application/product_name="" +application/file_description="" +application/copyright="" +application/trademarks="" +application/export_angle=0 +application/export_d3d12=0 +application/d3d12_agility_sdk_multiarch=true +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' +$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' +$trigger = New-ScheduledTaskTrigger -Once -At 00:00 +$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries +$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings +Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true +Start-ScheduledTask -TaskName godot_remote_debug +while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" +ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue +Remove-Item -Recurse -Force '{temp_dir}'" diff --git a/gun.gd b/gun.gd new file mode 100644 index 0000000..29da528 --- /dev/null +++ b/gun.gd @@ -0,0 +1,19 @@ +extends Area2D + +func _physics_process(delta: float) -> void: + var monsters_in_range = get_overlapping_bodies() + + if monsters_in_range.size() > 0: + var target = monsters_in_range.front() + look_at(target.global_position) + +func shoot(): + const BULLET = preload("res://bullet.tscn") + var new_bullet = BULLET.instantiate() + + new_bullet.global_transform = %Barrel.global_transform + %Barrel.add_child(new_bullet) + + +func _on_timer_timeout() -> void: + shoot() diff --git a/gun.gd.uid b/gun.gd.uid new file mode 100644 index 0000000..213713a --- /dev/null +++ b/gun.gd.uid @@ -0,0 +1 @@ +uid://dl331nhv6dm0l diff --git a/gun.tscn b/gun.tscn new file mode 100644 index 0000000..5c1022c --- /dev/null +++ b/gun.tscn @@ -0,0 +1,31 @@ +[gd_scene load_steps=4 format=3 uid="uid://daagdf86t4bjn"] + +[ext_resource type="Script" uid="uid://dl331nhv6dm0l" path="res://gun.gd" id="1_dk5gl"] +[ext_resource type="Texture2D" uid="uid://cswb5do8rrj7q" path="res://pistol/pistol.png" id="1_vk1bi"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_dk5gl"] +radius = 356.051 + +[node name="Gun" type="Area2D"] +collision_layer = 0 +collision_mask = 2 +script = ExtResource("1_dk5gl") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_dk5gl") + +[node name="Pivot" type="Marker2D" parent="."] + +[node name="Pistol" type="Sprite2D" parent="Pivot"] +position = Vector2(85, 0) +texture = ExtResource("1_vk1bi") + +[node name="Barrel" type="Marker2D" parent="Pivot/Pistol"] +unique_name_in_owner = true +position = Vector2(25, -11) + +[node name="Timer" type="Timer" parent="."] +wait_time = 0.33 +autostart = true + +[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"] diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..26171fdcea44f2b5b3dbfc9c58036951627c3ddd GIT binary patch literal 7151 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 void: + %Slime.play_walk() + +func _physics_process(delta: float) -> void: + var direction = global_position.direction_to(player.global_position) + velocity = direction * 200.0 + move_and_slide() + +func take_damage() -> void: + const SMOKE_EXPLOSION = preload("res://smoke_explosion/smoke_explosion.tscn") + + %Slime.play_hurt() + health -= 1 + + if health == 0: + queue_free() + var s = SMOKE_EXPLOSION.instantiate() + get_parent().add_child(s) + s.global_transform = global_transform + + + diff --git a/monster.gd.uid b/monster.gd.uid new file mode 100644 index 0000000..eae22ba --- /dev/null +++ b/monster.gd.uid @@ -0,0 +1 @@ +uid://btk7g8n7jstwp diff --git a/monster.tscn b/monster.tscn new file mode 100644 index 0000000..afe3e12 --- /dev/null +++ b/monster.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=3 uid="uid://5dgdagljfax1"] + +[ext_resource type="Script" uid="uid://btk7g8n7jstwp" path="res://monster.gd" id="1_mrqeg"] +[ext_resource type="PackedScene" uid="uid://ogik4s70pgwl" path="res://characters/slime/slime.tscn" id="2_ga5te"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_vr0w3"] +radius = 45.815 +height = 114.012 + +[node name="Monster" type="CharacterBody2D"] +collision_layer = 2 +collision_mask = 3 +script = ExtResource("1_mrqeg") + +[node name="Slime" parent="." instance=ExtResource("2_ga5te")] +unique_name_in_owner = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(0, -32) +rotation = -1.57878 +shape = SubResource("CapsuleShape2D_vr0w3") diff --git a/pistol/impact/circle.png b/pistol/impact/circle.png new file mode 100644 index 0000000000000000000000000000000000000000..03b68f89116ab2aeae309cfac1d7b7bac07ad4d0 GIT binary patch literal 806 zcmV+>1KIqEP)K~#7F?VEvB zqd*Xbf2<(a0ja=Pfmp$npjUx*5UzsQfm{c76~qoMR*6TV~50+l!Pz5TuwJ>~zGoVKa0*hV4nti7CT3 zxL}Lf-e@=s+btEUng$~|UPrFAIe8%X1|Dc!$LkojTa1lFo^4Ch!O&Q0pwmC~Hsqcj zFeH3|N18q{hJa6;(0q96>sQd{AU@%LE>@Tq(ulh1I_RS70CqmX{G1n7eU$KN0I0~P z@n19F#~u5y!68sl+xtT6+aYLiKIB63egQv_PS#aZ$Eqy_w(!S!L40Yf4?YBdpZ*;_ zc2#{KYD$H@6tL2lrys&kBo&sN3R(F>T>%oI5dI>maPR(5DZs;uuZ=wwxC)5izw^SL z3S0#k_$_~zj1}-hc5($!G2RwJ4-4yal>&2a?jFid+2kppO#US)r@=C?wZDN*LP>!+ zc6GmtNCI#Py{xn=AWwl1ddUNzq4n3sLf!%d#dHpe`p!83P>uv3giz?zNpN{H*`A2d+MJA zLDaCJ@fS|6spz~-0~?5;6)`=>o8TL~reeXfq2n=BDC`;o(5oSI3{+H3G7)QKP5$m$ kJ})Lq=%4w0{)z#42Q-}8QJw0Z-v9sr07*qoM6N<$g5gJF&;S4c literal 0 HcmV?d00001 diff --git a/pistol/impact/circle.png.import b/pistol/impact/circle.png.import new file mode 100644 index 0000000..7ad4968 --- /dev/null +++ b/pistol/impact/circle.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dn80eu1qs371v" +path="res://.godot/imported/circle.png-a2fa3270dee1c1c7e1cb0869903e82df.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://pistol/impact/circle.png" +dest_files=["res://.godot/imported/circle.png-a2fa3270dee1c1c7e1cb0869903e82df.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/pistol/impact/impact.gd b/pistol/impact/impact.gd new file mode 100644 index 0000000..b971b6a --- /dev/null +++ b/pistol/impact/impact.gd @@ -0,0 +1,10 @@ +extends Node2D + +@onready var sprite = %Sprite + + +func _ready(): + var tween = create_tween().set_parallel(true).set_ease(Tween.EASE_OUT) + tween.tween_property(sprite, "scale", Vector2.ONE * 1.35, 0.3).from(Vector2.ONE * 0.6) + tween.tween_property(sprite, "modulate:a", 0.0, 0.15).set_delay(0.15) + tween.chain().tween_callback(queue_free) diff --git a/pistol/impact/impact.gd.uid b/pistol/impact/impact.gd.uid new file mode 100644 index 0000000..86bd603 --- /dev/null +++ b/pistol/impact/impact.gd.uid @@ -0,0 +1 @@ +uid://c6w1u8mii1jdj diff --git a/pistol/impact/impact.tscn b/pistol/impact/impact.tscn new file mode 100644 index 0000000..c5171c2 --- /dev/null +++ b/pistol/impact/impact.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=3 uid="uid://kcl4efkvrany"] + +[ext_resource type="Script" uid="uid://c6w1u8mii1jdj" path="res://pistol/impact/impact.gd" id="1_4vum2"] +[ext_resource type="Texture2D" uid="uid://dn80eu1qs371v" path="res://pistol/impact/circle.png" id="2_wp1di"] + +[node name="Impact" type="Node2D"] +top_level = true +script = ExtResource("1_4vum2") + +[node name="Sprite" type="Sprite2D" parent="."] +unique_name_in_owner = true +modulate = Color(1, 0.831373, 0.239216, 1) +texture = ExtResource("2_wp1di") diff --git a/pistol/muzzle_flash/muzzle_flash.gd b/pistol/muzzle_flash/muzzle_flash.gd new file mode 100644 index 0000000..8fcd0d0 --- /dev/null +++ b/pistol/muzzle_flash/muzzle_flash.gd @@ -0,0 +1,11 @@ +extends Node2D + +@onready var sprite = %Sprite + + +func _ready(): + var tween = create_tween().set_parallel(true).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_BACK) + tween.tween_property(sprite, "position:x", 16.0, 0.25) + tween.tween_property(sprite, "scale", Vector2.ONE * 1.25, 0.25) + tween.tween_property(sprite, "modulate:a", 0.0, 0.25).set_delay(0.1) + tween.chain().tween_callback(queue_free) diff --git a/pistol/muzzle_flash/muzzle_flash.gd.uid b/pistol/muzzle_flash/muzzle_flash.gd.uid new file mode 100644 index 0000000..636a90d --- /dev/null +++ b/pistol/muzzle_flash/muzzle_flash.gd.uid @@ -0,0 +1 @@ +uid://beuxhimda3hkr diff --git a/pistol/muzzle_flash/muzzle_flash.png b/pistol/muzzle_flash/muzzle_flash.png new file mode 100644 index 0000000000000000000000000000000000000000..2f6c8ba9531ba1f64d9009f229a1b6d2cee63d26 GIT binary patch literal 683 zcmV;c0#yBpP)+96?{dY-3xESv-*FIdPyowSNJvTYyRg zstB+KOvn+an5Fk~Uw=RVLPO}^Q46^mu+*OWJfUZ!T?o*K0{!#o7^V%z`4twu)0nu>V^RUUo)%-%@*(`;42aM!}#gERB#rp-V4D!@7;MYP_iB zAK?Oo6rPG{?@PaW%hYfYa@Aq!4P3)GqS1w)4VURD9B>eFi8BlLglO>D&)}`>4f|)~Q-kaP17Va@&vOD-2beD_OY8w7J zJcXthPM{O6wL{zl{i-TiU5F42np0v7Q%w7#Pjx#VD#a~qGbI|wum`6YdNzh@9hf;{ zPf5zt&=Uw@HIfzWn7s2^N-}>}+7YcLB6@zAAoE_c^zg_P{A)u9>yeC4#v%S3ayrG8 zn|#@uK;*#8k*Aku+-l#UEGmo86hVkaQ!)2>u4aD7Qo6991;fkqUsw~|%uMyXdk=bf zi}t_%vDIJuX~wB{!VT>NQ%aPK1}ASrIv92CDDgy@;Oup5vV>DLgr`%9-hV3>*^5&IOS8VYmMP#Cka)t$lCn$k|CY_FJu-QRmk zX~8kY?al7tuq4^|)JY*uQQX<=JNB?tFpNnea-^m>4cC!=X%*#mBu1Dr5@W$gj0Gbx z7L3GLFcM?INQ?y|F&0P&v5yf3c;}nLL&(I`Y~Qi|$tMhBvPSi#hcRm=rsn#Not~XH zjLF}wuI4qpwm=XWIEa6I40gg_w!6<_2FCDMsk?-WR&HN#zr1RSY3j|GpunuEe$_?Z{aVOX}+CeBO{TtLH?% zs$)S#*j{sHLo;}EavZKf)s|AJlH`{?58N)MDJ~?^7?5&l55HXd8pV5eQL7$y%yF+Z z7%gt&tw9L9iUDCM*{?n~2x*}=H2l5wbF=Tt>pn1ZD#zzLa0JS$ zlA%_HFZ1on^Vi#FjuOL%ZUeFL(-li8?Qm0?k2HS#;>`uP0Ly13bs`y5QU<X@rl0T zNY_*RKns^(Dn@PU2HwB4n4WpMk0{EOsukB{3u7)u3~w2|ym-E6)^Mg2E9J#}Hsz|G zkm)1Auv-tj``x&41%=!H?P*BuIEgaqvSc>C`{X)Yh(Qe37b$TKHn0*C$Npo;elaX1 zpTt?%fVvfD;UUZ#RZ-Z1@VFR3_Wbx*cwLNLox4&4H{l_Sw`&`EzFc2Y=e%`9W44sC z7&7WsjYH`w7ZEH_*iFVmWud>4a# z`r67nVhJ9^vhDD3OuVPWEaO2Tq`WGHIdY5sL7KvT9}=V^B989f=lMK}Yl;__Pdonr X9<-xFRFqJp00000NkvXXu0mjf0(mlw literal 0 HcmV?d00001 diff --git a/pistol/pistol.png.import b/pistol/pistol.png.import new file mode 100644 index 0000000..c258004 --- /dev/null +++ b/pistol/pistol.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cswb5do8rrj7q" +path="res://.godot/imported/pistol.png-ccb9a9487ce225cdf094ad33c19c2ede.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://pistol/pistol.png" +dest_files=["res://.godot/imported/pistol.png-ccb9a9487ce225cdf094ad33c19c2ede.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/pistol/projectile.png b/pistol/projectile.png new file mode 100644 index 0000000000000000000000000000000000000000..42fb536c43ec5e91b95d663c482fe231a642492b GIT binary patch literal 799 zcmV+)1K|9LP)u7f3V$ zBsNGyqJkuiJ-in;X=0CS%U_lHlWb3B#?Jix-n@BZ;F2J4fvAsm88gmfD&C=ySWqa# z8&!u|TX6A4tTh{Po>i!j;lRy71wuTczqYBS5_ywA8?M-e*{_SG_wDd*Iin8lRUl=R z2E%Wj2VO=JSdetL#nRhdeRIZ4xJ#7|z9t)Z7!ozHy!XssomxmDchS*xy@N4mSl5j6 zde_D3-qvJAA|aW%%Rm9&dccpKSDvIK>8U2LSOVr`@Lr!~VhPE`UB1)ckGeqteoWzs zxpgJjrqshxR5Nw=2HnL;<}P7;B?0YjyuK{-%RleRf+msTC7lUpL z8iaa^yh&q?5x3`p^X0@?km}I33K7AukhJ_d3D(UzRS9?S1VwS|AT@t9&k)L@IU+0+ zMO3Iw`V2}oC5pt%FSR2fs*R$^Ldd)(b)mFhqVK*!QTW$@BxrLm(UM~QU5iRJ6v6cj zg!or?re}N_&JoHaIr++8%z~-Unc{MD)=MU*Pz|x(=!|QJVq9!-1M-C5XemLA;d^w} zfU5I3boQyw4=7FNOjp^|E!(7#_Z=UO&-Nctu!y_!x);zU0|b-CFen?gU^q6#xa#TV z$wC%HWx*Wf*cJKEMm$OwSG}!o%8eCUjD@9ut@3-|t@@)?n>SJ%W_eD8g>0d=#Y*$V z_$M+TS2xrlXsf%D!B+P?a&yBoYNt_liUL0erFO#(B)QXab4S-$_?N~6ZrGvuP($C` d;q@Y{(|<6Q?h)%9rt|;+002ovPDHLkV1i!&Y{>us literal 0 HcmV?d00001 diff --git a/pistol/projectile.png.import b/pistol/projectile.png.import new file mode 100644 index 0000000..05d66a4 --- /dev/null +++ b/pistol/projectile.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dftkbqwsfd68r" +path="res://.godot/imported/projectile.png-e03ae856d530df914009475206433400.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://pistol/projectile.png" +dest_files=["res://.godot/imported/projectile.png-e03ae856d530df914009475206433400.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/player.gd b/player.gd new file mode 100644 index 0000000..ff6b039 --- /dev/null +++ b/player.gd @@ -0,0 +1,24 @@ +extends CharacterBody2D + +signal health_depleted + +var health = 100.0 +var move_speed := 400.0 + +func _physics_process(delta: float) -> void: + var direction = Input.get_vector("move_left", "move_right", "move_up", "move_down") + velocity = (direction * move_speed) + move_and_slide() + + if velocity.length() > 0.0: + %HappyBoo.play_walk_animation() + else: + %HappyBoo.play_idle_animation() + + const DAMAGE_RATE = 15.0 + var overlapping_mobs = %Hitbox.get_overlapping_bodies() + if overlapping_mobs.size() > 0: + health -= (DAMAGE_RATE * overlapping_mobs.size()) * delta + %ProgressBar.value = health + if health <= 0.0: + health_depleted.emit() diff --git a/player.gd.uid b/player.gd.uid new file mode 100644 index 0000000..265d1a3 --- /dev/null +++ b/player.gd.uid @@ -0,0 +1 @@ +uid://chd6vgc03ew6a diff --git a/player.tscn b/player.tscn new file mode 100644 index 0000000..aaa1fbc --- /dev/null +++ b/player.tscn @@ -0,0 +1,63 @@ +[gd_scene load_steps=8 format=3 uid="uid://4c77448gw84s"] + +[ext_resource type="PackedScene" uid="uid://pbmyh1qru7p" path="res://characters/happy_boo/happy_boo.tscn" id="1_4flbx"] +[ext_resource type="Script" uid="uid://chd6vgc03ew6a" path="res://player.gd" id="1_onrkg"] +[ext_resource type="PackedScene" uid="uid://daagdf86t4bjn" path="res://gun.tscn" id="3_i3pqv"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_onrkg"] +radius = 30.0 +height = 96.0 + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_i3pqv"] +radius = 33.0 +height = 104.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_i3pqv"] +bg_color = Color(0.162066, 0.162066, 0.162065, 1) +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hqtel"] +bg_color = Color(0.25499, 0.702712, 0.379593, 1) +corner_radius_top_left = 6 +corner_radius_top_right = 6 +corner_radius_bottom_right = 6 +corner_radius_bottom_left = 6 + +[node name="Player" type="CharacterBody2D"] +script = ExtResource("1_onrkg") + +[node name="HappyBoo" parent="." instance=ExtResource("1_4flbx")] +unique_name_in_owner = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(-1, -37) +shape = SubResource("CapsuleShape2D_onrkg") + +[node name="Camera2D" type="Camera2D" parent="."] + +[node name="Gun" parent="." instance=ExtResource("3_i3pqv")] +position = Vector2(-1, -37) + +[node name="Hitbox" type="Area2D" parent="."] +unique_name_in_owner = true +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Hitbox"] +position = Vector2(-1, -37) +shape = SubResource("CapsuleShape2D_i3pqv") +debug_color = Color(0.881613, 0.286763, 0.460338, 0.42) + +[node name="ProgressBar" type="ProgressBar" parent="."] +unique_name_in_owner = true +offset_left = -53.0 +offset_top = -115.0 +offset_right = 55.0 +offset_bottom = -107.0 +theme_override_styles/background = SubResource("StyleBoxFlat_i3pqv") +theme_override_styles/fill = SubResource("StyleBoxFlat_hqtel") +value = 100.0 +show_percentage = false diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..9870a6b --- /dev/null +++ b/project.godot @@ -0,0 +1,127 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[Asset_Placer] + +Settings/Preview_Perspective=2 +Settings/Library_Save_File_Location=1 +Shortcuts/Change_Placement_Plane_Position=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":71,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Transform_Asset_Blueprint=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":69,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Select_Previous_Asset=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Select_Y_Z_Plane=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":90,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Select_X_Z_Plane=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":88,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Select_X_Y_Plane=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":67,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Reset_Transform=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":69,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Rotate_Asset_90_Degrees_Around_X=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Rotate_Asset_90_Degrees_Around_Y=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Rotate_Asset_90_Degrees_Around_Z=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Flip_Asset_On_X_Axis=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":49,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Flip_Asset_On_Y_Axis=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":50,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Flip_Asset_On_Z_Axis=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":51,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Settings/Shortcut_Shift_Rotation_Step=45.0 +Shortcuts/Rotate_Asset_Secondary_Step_Degrees_Around_X=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Rotate_Asset_Secondary_Step_Degrees_Around_Y=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Rotate_Asset_Secondary_Step_Degrees_Around_Z=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":true,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Double_Snap_Step=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":true,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Shortcuts/Halve_Snap_Step=Object(Shortcut,"resource_local_to_scene":false,"resource_name":"","events":[Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":true,"meta_pressed":false,"pressed":true,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +],"script":null) + +Settings/Use_Shift_instead_of_Alt=false +Settings/Surface_Placement_Collision_Mask=4294967295 +Settings/Show_Tooltips=true + +[application] + +config/name="ShootahGame" +run/main_scene="uid://b185yicmacoke" +config/features=PackedStringArray("4.4", "Forward Plus") +config/icon="res://icon.png" + +[display] + +window/size/viewport_width=1920 +window/size/viewport_height=1080 +window/stretch/mode="viewport" + +[dotnet] + +project/assembly_name="Getting started with Godot 4" + +[editor_plugins] + +enabled=PackedStringArray("res://addons/colorpicker_presets/plugin.cfg") + +[input] + +move_left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +] +} +move_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +] +} +move_up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +] +} +move_down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +] +} +shoot={ +"deadzone": 0.25, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} + +[layer_names] + +3d_physics/layer_2="player" diff --git a/smoke_explosion/circle_32.png b/smoke_explosion/circle_32.png new file mode 100644 index 0000000000000000000000000000000000000000..e4fe575ab75a539bb0361538e0d97d0dfc1d8f41 GIT binary patch literal 417 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWND9BhG zY0W7>c)k3AhhvuuPoMn!5*CpMbIMGwI zwkxbc7hA2an^Vjjw4l{Hbm=SAKIQsu_r&hdtv3Fmm%8&xwO?kWW=j2X)z9qq_x*84 zcfN6;U-mA~!f%)5*DbF0wYvKI#}tvt()T61l&@Iy$m?;oL_|GFU9DM?%*6iWdAGja zm)ib61w1)356GEqcsSo=L$j>B$%Dl9=MoA3kDtBzQX<14!Gke5L*eYPhlXrYFA|QY zs^uiOJ2UU!@Yu%hXiSHW+|lhyYfh^_d4A;9`i(N5d*ia6Eao$PyFJA`BFF2w&yC#E z;XaF|-bkJm)1Nlg#{bX79JSuXM=rJ>db;<2c|^yW5}W_*slgNZ<*TpF2Zktvr>mdK II;Vst0P(J void: + spawn_monster() + + +func _on_player_health_depleted() -> void: + %GameoverCanvasLayer.visible = true + get_tree().paused = true diff --git a/survivors_game.gd.uid b/survivors_game.gd.uid new file mode 100644 index 0000000..69b07d8 --- /dev/null +++ b/survivors_game.gd.uid @@ -0,0 +1 @@ +uid://dw0g2r5t2fe8r diff --git a/survivors_game.tscn b/survivors_game.tscn new file mode 100644 index 0000000..0407d0b --- /dev/null +++ b/survivors_game.tscn @@ -0,0 +1,106 @@ +[gd_scene load_steps=5 format=3 uid="uid://b185yicmacoke"] + +[ext_resource type="Script" uid="uid://dw0g2r5t2fe8r" path="res://survivors_game.gd" id="1_qqaft"] +[ext_resource type="PackedScene" uid="uid://4c77448gw84s" path="res://player.tscn" id="1_y3pti"] +[ext_resource type="PackedScene" uid="uid://beit5tp4qdcsg" path="res://static_pine_tree.tscn" id="2_l26od"] + +[sub_resource type="Curve2D" id="Curve2D_7jj1j"] +_data = { +"points": PackedVector2Array(0, 0, 0, 0, -114, -125, 0, 0, 0, 0, 2103, -120, 0, 0, 0, 0, 2095, 1198, 0, 0, 0, 0, -108, 1196, 0, 0, 0, 0, -114, -125) +} +point_count = 5 + +[node name="Game" type="Node2D"] +y_sort_enabled = true +script = ExtResource("1_qqaft") + +[node name="CanvasLayer" type="CanvasLayer" parent="."] +layer = -1 + +[node name="ColorRect" type="ColorRect" parent="CanvasLayer"] +offset_left = -12.0 +offset_top = -9.0 +offset_right = 2000.0 +offset_bottom = 1106.0 + +[node name="Player" parent="." instance=ExtResource("1_y3pti")] +position = Vector2(1003, 549) + +[node name="Path2D" type="Path2D" parent="Player"] +position = Vector2(-1003, -549) +curve = SubResource("Curve2D_7jj1j") + +[node name="PathFollow2D" type="PathFollow2D" parent="Player/Path2D"] +unique_name_in_owner = true +position = Vector2(-114, -125) +rotation = 0.0022553 + +[node name="StaticPineTree" parent="." instance=ExtResource("2_l26od")] +position = Vector2(258, 872) + +[node name="StaticPineTree2" parent="." instance=ExtResource("2_l26od")] +position = Vector2(600, 219) + +[node name="StaticPineTree3" parent="." instance=ExtResource("2_l26od")] +position = Vector2(1487, 878) + +[node name="StaticPineTree4" parent="." instance=ExtResource("2_l26od")] +position = Vector2(1581, 775) + +[node name="StaticPineTree5" parent="." instance=ExtResource("2_l26od")] +position = Vector2(1640, 872) + +[node name="StaticPineTree6" parent="." instance=ExtResource("2_l26od")] +position = Vector2(1382, 221) + +[node name="StaticPineTree7" parent="." instance=ExtResource("2_l26od")] +position = Vector2(1471, 270) + +[node name="StaticPineTree8" parent="." instance=ExtResource("2_l26od")] +position = Vector2(1783, 516) + +[node name="StaticPineTree9" parent="." instance=ExtResource("2_l26od")] +position = Vector2(266, 506) + +[node name="StaticPineTree10" parent="." instance=ExtResource("2_l26od")] +position = Vector2(772, 680) + +[node name="StaticPineTree11" parent="." instance=ExtResource("2_l26od")] +position = Vector2(1250, 380) + +[node name="SpawnTimer" type="Timer" parent="."] +unique_name_in_owner = true + +[node name="GameoverCanvasLayer" type="CanvasLayer" parent="."] +unique_name_in_owner = true +visible = false + +[node name="ColorRect" type="ColorRect" parent="GameoverCanvasLayer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -191.0 +offset_top = -61.0 +offset_right = 191.0 +offset_bottom = 61.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.0588235, 0.0588235, 0.0588235, 0.501961) + +[node name="Label" type="Label" parent="GameoverCanvasLayer"] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -391.0 +offset_top = -98.5 +offset_right = 391.0 +offset_bottom = 98.5 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_font_sizes/font_size = 144 +text = "Game Over" + +[connection signal="health_depleted" from="Player" to="." method="_on_player_health_depleted"] +[connection signal="timeout" from="SpawnTimer" to="." method="_on_spawn_timer_timeout"] diff --git a/trees/pine_tree.png b/trees/pine_tree.png new file mode 100644 index 0000000000000000000000000000000000000000..48e8f797aad599d6e2911bec4b658373fc34cc14 GIT binary patch literal 2479 zcmZ`*c{tST7yo`|jA5j)hl?4N7G%4UC5$mLN;S!r!YD;lMv;;2YnLs>72-Bjk|s;E z$iyUxbmwL%#8|VXMz$G@;ePx5|9hVIyyv{jm4irtIp?{ z>K23ff1Yss{oVUt0c@xz86Tl_>z;^6W}aoxiMD{?CX=O$EG55T|WqUDQ< zH|Y(ABQhK2yoBpR)?q+nrtC*aDV7wHgga6>j=V#d%N_g_oOY~W3gal zoIDxm5gVhyDC0f;)s3Z(gSFEQ7_11|r@@Bc)CVkG6HE&6PIQZAW3kkO0vGx>bfExf z3H46g8O=VArIhd<(+07oI-u4}17=bL)oU;=aNR~;;%J>n=Tf1z8Xw6C2c%$%>}d9G z$tse-#dI1yFb_PRYQUgH(4QJ?a~Pk8qctJjnL_QtIpmi^(DrvqO^kvUW7^awbR+}(y%UILiHL_;1r-2s?sP)ZkqSKuyhY?26)#j;;j zs>DYV>S4ltNwU@q7lgYY<8(82>UYyQ!(nu7I81Zv(+_m*Z{p653G^bFP;k~NEIPc_ zq@QJwsKY+T-`MQf$9yYqN?DY8lIjLU^R?0)S87{jG?L>Kun@2rJT7fB_pNIL{K|Gl zDhWKJV}cm7n;Mp1$(SSX;-#uGuP9lgU{;eSRoh15nCZ&mCb6hL+S=JB24_1nta)ls z+|(Q(c?u{!l{MjM%(!TtR}K}T(xKhRJ$?EeVT!-Rl%|IC3`(b+PW~IeqgGF%xbC~j zkG3z!+E_!IFDr8=qSA=zOibxYtld27@-;d$7IQO>RgmR18t$7>;t&{ep_w>irs+8= zzei@iLj` z?}}5Nk7P84ds%{`ZN8H^C=#;f?p@-=gsvQN)XUQPu@`v=+g78{Z)??Vw1HgZcwOog zWZyrUd#Utk#}rvG%Fw(+O<>kMijN<}L-FqcyQ8zyX428uc)_F#+*iJ(3&|UHht)jO zzdCH?O(|D${&~)z7r2;}C-&-cN9PzGXHV?0@b=c7^m#1+u+8n6F3^3Pu2Y&z4LQMF zn{gz&Z`Cn9%|?cCTCeGg-;Wnj! zEK&NA)z`yD%7h5i@Q;1yy8M-sTP)N+rSLI?q8LTx=?37K*B;7Q#8@>wdE^x&x>J5zU*1N%qLXvw>L8vxnzR#%OtNym7= zu%>r}?5@lDs%?tE{%?V1h$fc2T^$0d8A8n;R>)8X?(6%R3V-gLC3U#pj@>^prgjD^ zd&331MWXTR-}TDd)w=>3i@~{}s$2i&UQD6)VA!?|oKDq;vjr;rVMkL#!`Ipr=wz{rvj~P$o&Ne#X)U(tjR&=Zw^To{Lij zjOP~Q4ZJidAxVRk*O~^lENr+wefP&b+=ul$x4$G^(tEN9q_m!7M-a7X4okhQZH&5w z1r~}mgKy3e)s!dOd!ZIrUoyrb&gZ2v8fLVX-;{axh1!spPjp{0@pmFCxXY4)#E`OS z+kchCQ{g#&9#`xr&@K4YBSpysdw$Wsdu&-ClC^R9c@Qid%8+ksd6PX3z6ez zERxTRuW(p0tbs$-8Q}A$HZSoKcBwvZOm3W=eD9s%C1b?5e>-TkrO3ZkvV=RB!&F9C zTxZBX>=&VFo;_ACu1uB~6q`uJ4V&iYwB|y2k_bBVvVizCzl9pwnfxidUcy@@T}(G-e-^IJ_(56 z+=x!)&~@B8I%Y}Z&4B`1@_U5Y^oEFZ#uDNntbo?a)BYzV=JuA0@2q|9OppiY}md>9-=v6YNuC@EthaXuZ?tTWP!sv&jxSMN`Mj7;9S Zh7AH-P6Wz`^base(w2`wu`)jjjLy literal 0 HcmV?d00001 diff --git a/trees/pine_tree.png.import b/trees/pine_tree.png.import new file mode 100644 index 0000000..b74c18a --- /dev/null +++ b/trees/pine_tree.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://caqfk2xng5v5u" +path="res://.godot/imported/pine_tree.png-d61929395d8fbd7dd9882891dc69101d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://trees/pine_tree.png" +dest_files=["res://.godot/imported/pine_tree.png-d61929395d8fbd7dd9882891dc69101d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1