From bc7297c6bc2706b579ba2dbc407493b232c402c9 Mon Sep 17 00:00:00 2001 From: redglow Date: Tue, 21 Jul 2026 21:53:18 +0200 Subject: [PATCH] feat: turrents and explosions --- Game/Background/background.tscn | 9 ++++ Game/Background/purple.png | Bin 0 -> 1474 bytes Game/Background/purple.png.import | 40 ++++++++++++++++ Game/Level/LevelData.cs | 5 ++ Game/{ => Level}/level.tscn | 6 --- .../Explosion/explosion_gpu_particles_2d.tscn | 41 ++++++++++++++++ Game/Projectile/Explosion/fires.png | Bin 0 -> 32937 bytes Game/Projectile/Explosion/fires.png.import | 40 ++++++++++++++++ Game/Projectile/Projectile.cs | 15 ++++++ Game/Projectile/projectile.tscn | 7 +++ .../Explosion/explosion_gpu_particles_2d.tscn | 44 ++++++++++++++++++ Game/Target/Explosion/scorches.png | Bin 0 -> 40365 bytes Game/Target/Explosion/scorches.png.import | 40 ++++++++++++++++ Game/Target/Target.cs | 21 +++++++-- Game/Target/target.tscn | 4 +- Game/levels_data.tres | 3 +- Interfaces/ILevel.cs | 8 ++++ root_scene.tscn | 9 ++-- 18 files changed, 277 insertions(+), 15 deletions(-) create mode 100644 Game/Background/background.tscn create mode 100644 Game/Background/purple.png create mode 100644 Game/Background/purple.png.import rename Game/{ => Level}/level.tscn (96%) create mode 100644 Game/Projectile/Explosion/explosion_gpu_particles_2d.tscn create mode 100644 Game/Projectile/Explosion/fires.png create mode 100644 Game/Projectile/Explosion/fires.png.import create mode 100644 Game/Target/Explosion/explosion_gpu_particles_2d.tscn create mode 100644 Game/Target/Explosion/scorches.png create mode 100644 Game/Target/Explosion/scorches.png.import diff --git a/Game/Background/background.tscn b/Game/Background/background.tscn new file mode 100644 index 0000000..b95ba10 --- /dev/null +++ b/Game/Background/background.tscn @@ -0,0 +1,9 @@ +[gd_scene format=3 uid="uid://cvwvwv55n00ce"] + +[ext_resource type="Texture2D" uid="uid://cx1tr03f8rjck" path="res://Game/Background/purple.png" id="1_vaplv"] + +[node name="Background" type="TextureRect" unique_id=701555148] +offset_right = 1280.0 +offset_bottom = 768.0 +texture = ExtResource("1_vaplv") +stretch_mode = 1 diff --git a/Game/Background/purple.png b/Game/Background/purple.png new file mode 100644 index 0000000000000000000000000000000000000000..4dd6f993b43d7a9178d858e5bfd6a1b403dcf8a7 GIT binary patch literal 1474 zcmaKsc~Db#5XXOy5CRe+mm~rzwSX3>1$8tkmY0x&%a8~nB1Z@}3FIY^lj{MN070-K z7LiKrg-ipf=NK96LkCen%-{j2jI%0eBq3mlGZ~>SD#B#UQ)%020Gz0{ew~0fIX$_d5zMkZ^*NlqDxNks zys{{=M#d>sglU9qm6}(n;#H`)6#}|AjU`VGkftzY=}bi`GbaHS=kBO1-Cb82eOMEH zSP@p1%_-4D*ULCxD7c!^=(@xJNmg({I!lqkQkL&&(8e|vMII=K*k2TRP{k`RiK>-{ zl_J4~dExugm~thrJToY7Z`2_q1Wlq#Ggzvm0Es+Iqu`chZ!al`s8({z#36-ho;HK6 zRC3Ex8M35+?BZPq^CPNKnQ~E}S`vZ^1J$Cy+%%RV&R--6DG~=4WUy69bcr;ySQ1(k z4~qmeB$<(u%9QcptOPhKnUS5skfpPf0-8AC-OEZ2$c~3IQy4jkbVNW$_;6-YfHaXV ziT4-9`3o0&%3@6oWCt;55z0Fg!-Q~W8pVQtBR4#;!lV4MV@;ZXhPU?GS=~2%vS)tY z0rIsf@m%i{GFkQFO$v5nntRkRe0SUDvz{kgI5|^oE<^rD+7;wu(`RSSCg}&y&uPZ) zw%?!kn42fRd^II(S+jg%V5<9qeqK2%4?T^Q0CP70S$^X!Lcn@F$xUhm>J-_ULUtGa zX?@du=_-#0Yxy2n7kEK=vw?!FWB@Z;^nDKeKhojM^7^O!dh8SL?mE@%K`e3~^`jlJ75@HrJdAET=?JKob-@yWl+W$;$A@YPE42fxde!cIv%rfe!2lZ9u>ch+xY$ zg1Jk#O7c1|ywcd(uXd8x-bUKcTE+@o|Dz_F*5RWMcmfBEKrjXmf(y#=mqs@F+}H(b zQlSrG-s7j^jTqExK}E07aE}gi`l929wO+R9K;Q13=`o#w8;b=$Ka-yIowqv)&CP4R zRlLP4x_a%IMc!yn(c7#25@I=t`)3DK=|#or2_&u+0wrB@prv$1XA3ua!4mzDH^Izt z#BUvGmNH^K0xkjq+DMqScLfE$|2c!N764#}b)#Ses{Lt-_yR=yXuH5;t z?O{$_!}8gWp^G}H-X62<_`UeluII0x@Y_mvkH$&J2)T4<&DWNf@fan8c+N>so7)Ly zxYylJ#4jbIv@wXhb8^+8L*h{my;-VPd&RgQy=l7)jWG@5k%q!`BoNSoZw*@^&|3_M zw+w=WNJF(bHkoPT;@0c+;!9w8syp8un7+O)EM8c-f2i8hB$IoXy-V& z6JY5E@O S<3e7Ujxq>hau}_2e(_&nSwsi` literal 0 HcmV?d00001 diff --git a/Game/Background/purple.png.import b/Game/Background/purple.png.import new file mode 100644 index 0000000..741a4eb --- /dev/null +++ b/Game/Background/purple.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cx1tr03f8rjck" +path="res://.godot/imported/purple.png-ab1cf2fd670db01a8dbd40ee0004fe5b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Game/Background/purple.png" +dest_files=["res://.godot/imported/purple.png-ab1cf2fd670db01a8dbd40ee0004fe5b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/Game/Level/LevelData.cs b/Game/Level/LevelData.cs index 7a30ac2..c1a075b 100644 --- a/Game/Level/LevelData.cs +++ b/Game/Level/LevelData.cs @@ -7,7 +7,12 @@ namespace GodotHostTest.Game.Level; [GlobalClass] public partial class LevelData : Resource, ILevel { + [Export] public double SpawnDuration; [Export] public double TimeBetweenSpawns; + /// TimeSpan ILevel.TimeBetweenSpawns => TimeSpan.FromSeconds(TimeBetweenSpawns); + + /// + TimeSpan ILevel.SpawnDuration => TimeSpan.FromSeconds(SpawnDuration); } \ No newline at end of file diff --git a/Game/level.tscn b/Game/Level/level.tscn similarity index 96% rename from Game/level.tscn rename to Game/Level/level.tscn index b398458..a4facab 100644 --- a/Game/level.tscn +++ b/Game/Level/level.tscn @@ -77,27 +77,21 @@ _serviceScope = "GodotHostTest.Game.Level.LevelScope, godot-host-test, Version=1 [node name="Target" parent="." unique_id=2101558052 instance=ExtResource("1_y7rhs")] position = Vector2(198, 143) -TimeOutDurationInSeconds = 2.0 [node name="Target2" parent="." unique_id=1009901052 instance=ExtResource("1_y7rhs")] position = Vector2(669, 64) -TimeOutDurationInSeconds = 2.0 [node name="Target3" parent="." unique_id=1433382188 instance=ExtResource("1_y7rhs")] position = Vector2(1060, 263) -TimeOutDurationInSeconds = 2.0 [node name="Target4" parent="." unique_id=1553596281 instance=ExtResource("1_y7rhs")] position = Vector2(961, 620) -TimeOutDurationInSeconds = 2.0 [node name="Target5" parent="." unique_id=46923989 instance=ExtResource("1_y7rhs")] position = Vector2(469, 591) -TimeOutDurationInSeconds = 2.0 [node name="Target6" parent="." unique_id=2092179937 instance=ExtResource("1_y7rhs")] position = Vector2(53, 417) -TimeOutDurationInSeconds = 2.0 [node name="Spawner" type="Node2D" parent="." unique_id=251404460 node_paths=PackedStringArray("Timer")] script = ExtResource("2_5saw1") diff --git a/Game/Projectile/Explosion/explosion_gpu_particles_2d.tscn b/Game/Projectile/Explosion/explosion_gpu_particles_2d.tscn new file mode 100644 index 0000000..7117906 --- /dev/null +++ b/Game/Projectile/Explosion/explosion_gpu_particles_2d.tscn @@ -0,0 +1,41 @@ +[gd_scene format=3 uid="uid://dfvr0g5souli2"] + +[ext_resource type="Texture2D" uid="uid://bhm7kb18b1tbh" path="res://Game/Projectile/Explosion/fires.png" id="1_e3ife"] + +[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_bfsaf"] +particles_animation = true +particles_anim_h_frames = 2 +particles_anim_v_frames = 1 +particles_anim_loop = false + +[sub_resource type="Curve" id="Curve_ytfwl"] +_data = [Vector2(0.00554017, 0.021126747), 0.0, 0.0, 0, 0, Vector2(0.14681442, 0.99295783), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_jyg1o"] +curve = SubResource("Curve_ytfwl") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_u8d0v"] +lifetime_randomness = 0.1 +particle_flag_disable_z = true +spread = 180.0 +initial_velocity_min = 47.62 +initial_velocity_max = 47.62 +gravity = Vector3(0, 0, 0) +damping_min = 97.494 +damping_max = 97.494 +scale_min = 0.099999994 +scale_max = 0.099999994 +color = Color(1, 0.11372549, 0.22745098, 1) +alpha_curve = SubResource("CurveTexture_jyg1o") +anim_speed_min = 6.67 +anim_speed_max = 6.67 + +[node name="ExplosionGPUParticles2D" type="GPUParticles2D" unique_id=1991976710] +material = SubResource("CanvasItemMaterial_bfsaf") +emitting = false +amount = 16 +texture = ExtResource("1_e3ife") +lifetime = 0.3 +one_shot = true +process_material = SubResource("ParticleProcessMaterial_u8d0v") diff --git a/Game/Projectile/Explosion/fires.png b/Game/Projectile/Explosion/fires.png new file mode 100644 index 0000000000000000000000000000000000000000..ef8ce17c9c74fcad47ed4ea0f08a2407767d07d7 GIT binary patch literal 32937 zcmb4Li9geS{GYScSFBPN!b(`=N{%8-giuz5%n@=Y$K*b;C}*+AT{M-m+$KjUM`Dho z$Wf|cG?H_U-^=gu`27LD#U5GA=kq>Zujlpd-bIshyLSohLLd;k4fN0A5ePQ;D+1P0;n9MJ5?oHMBc+&gAsJMz!-qPD*D;)1MwX*mLPv0?*-Z`Kk zBE0;4q@iu(w3f@|M{fS_5oQ(fmk-NcFE6?_zMqXpjAYOA;o~Q|ICdv(p2#O^%gj^n zWPQucmrGMQIKJP$a0R>-QJ@=ip|}Mi5E8C+Sy#S{C%p+RQ%=Lqxz^P zkE0cjy+l#Wj=Vn`yEGxPxu;F;!FkM;gYm-uJ;&XdS$VTHeyirXy<4C0uGYvu0>hhV z4)%JjiW|dYZPg>{Z0oeu{5^)y4+m{zaeitUXVd zFfZKK&YwGr*xLT{xZzm}yt4DAzNIe$A$w%|lP!Rv=?^dN@G~&h-7&pm|2|>a*yB%e z@X|p)T?;=QFHcXW8-55KA18Z1Cr7bcu6{0J=M0Q5UWw!tKp?~r24}S|2MoN)fwQ1|j?5L*n5dgq-ETT!DxpVpZwq0jkv% zh8v;e|MkV1#Bn5M{jhC#Rbx79U2>y%ldLR?Lz3}YScL2If!Esapk9W2Yy0cg1$B?6QDI>gOJ$6aGP>m!8hYr>K+c9_0z$U#aqbFB zjPyB;VEDpjPUcgz%B!(Uo_c&&81CT`kH406g|eQuGcUM4C_6v7v?C;Uqk++&V!!Ep zGAz^i_ueS`(S7WQPoisqWuMbB|9;&Q@wKeehGn_DkaGB**WW-f+r{4)k{AhvrCc5) z{;lvpkWlayhEpH=gzOV)&xSBGTs6?#XCMDCTh8Xkq0f6F!xDy+P*?QE8Nu^ing=IB zEgfA#n-sS;Etfy}D~|p1jcDS|M5_FqKkvJ~J3o?yddWD2L`0w+#7WKZ3Lc|NTzZJ1 zQG$?YKnLx%kiaHBWc*mudeA{cMfm4N-09@tH_KtisvTyRDb7p%^3SC?=0u0}U9{@E zV&YI%UM|Dct#5TG{P*$f-D)?6%?+>*@w;|mE)G{SmUWR|%@B7{wC>yN+e-DWRYYt(NOqe3I2*blX769!9c zlN6$}d_Pr}l>46cRly%#s06uv&uPP+U1|gEk}~^vzfa(4#af;VRPj4nlVe`5amdga^+$Jm*E0{9-PrtgUT)+leMUMs z)%Kb3$Xun{iDh;~L_>o{h`+xCgKF-7gAc>$&x=GL3P#IR1hkO$!_|G`i0k`y+quN+ znwjB+cG}q^-8mdLk5NKoiQltYsHG40mmnzo-{f!7HirJD7#_I7*mnuLuiPR2yOWVt zeMZH+M%u%;0jKsxwX_4b&U%gt`KHPiA-~vOGQ>_i`gHxq-)A0(N;BQuf6UfApKg0I zvk%rc4^gpDOtu%gI7thMfwAx>JoEcgeMX*Ja*}FdYB)H)hc3*4h?r2Vm5NoSEtI+n zz6d{XAD^*zBE#q%`s&1v-=STYS9QCV)Z}+qp1C?5OaA*+u5q@tAl8WlW>OUZL-*j`2@Q z83+d+*W^8K(Pb(JF`UP<*oK74`Z+l+mPWp%{S6+n4c~(#-oZpv*{g6jbN@r(TCvTY zJO~_8u@yznI%_I!J?PZP^o2^1QEhdK$)@nVt{KWC)KfCMalgLwj7nv(HK+Fpi<; z34=%RhGu4F&P!L$-RE|<;^@eHijUfFnY+i$Vd>jwxEU+42^YsZ+ZTU_>yi8}B<7{= z@0Y$e5g3xLsnjL5n}jqZ<}Q=Pi9?>te?V7FyeYiH0IS`vR4%ovL#-`dp}3yo0pU*t zp7SvopXHm!$Mcw6TGGg+cqT0h#*xB*$6nvhan5?8_xg(|uJ)yYUrp<)V!mf&V&z_T zhMQNp%vvb4-p5lDC;xGodkd!(-)D38eWsclQ=+!0iMOPI3sy*cW2?_i z6z7d)o>yEb++0QO#>dlV&XktR1ecaSC0jjvEU{aO$84d&%*+6LR8>_KMMB*#coAfp z82+`)(}j^n-qS>G(Q16!*>vV-=H0@;FYyYFh% z##3M5I{x*mWePpeArNs=n78BFt4Y6UyVo&=3@dZ9DqhxG`LlsJMF~DV*Z1qWwm9Kq zxBRY&r+vrdUPF9#et*`~e`CEo??FKnTu5P|;Xw|lVfN@^l~lXKENpEu|khky6%ZBJ3$Yre(*WZ=RXt6!m@W&L54< z+j3{9#i!jlyb1ZWLpo(Ga+w>>HiJqD;v~CEJ8ufdtTbLY=)jF6W%*viyBYJP!uBE( zZk^g{fqF!hT~JSgdX!O+T@ZY@TkRlk%nfvOUSVOiOs9l#ztsZAV|t)!;)IEztCr4l zGP|y+AI!l-wx3nR$pDx5Vc+o{C)`;%1bfq~{kJdFuV3P4M2h;T* z_?nPVAC(Q)F4S87sgkQ3@I}Z;@4S(EXzS8bMD?zuj%<~MjRav&!rzH3hc@q*dajgJ z8zFm@*WvxUJR%NNyfNs8! zWCp|5_7)a^@emYfMq)hB_6UR)Ru_R7Q0iJ+cogn6e83|$UPjJ7_`llkha#{?Zlv-w zb);?S+BYiPN8zMMTHJOO-k4#X;c-z4e_+lzHTqdY>>k`jq;{Uvk49!(SQFFuS$`xw zP}U*-RAS2>oEU9^>UkB`p_v)6dik@H^?0DjfHVJzRw)XsR!#d}&?c?C0kA`87sXldGVUzUl$hXGZO%WIP$q&&jqA zhiXMT#h19R5C%I63$3!-d}#}3Q=QBRgU4~mX!}WODMO5;WoEX!6%ALJ>U6Xf-F3a< zNOzrRn>UcNMrO(zJ2CF4Nd5lGj`Cvoz;;5vw&zgFXn*(g1l0-(TOs3=(?DddLz;cO z_8_tOT6W1Ia%Snbm(Qu2>2#H}FW3K`GHDU<}=q}3uYr_Fkh zLPEVmJ7}YNN=iz!`E^6Flpk3&**55jczo<|wQhbd@)qG7t-ISTC3>nbMbXKggp!HP z>!t25_=ha$$A+!_bEV9SQ(i^UvvM{y9{#ytYA#u{c5Hd^zk3Lt3R=O%8;CG>W*fSt zk?DXy^gR{Q$KJ6_ty+rev-ynjyoiqexE%V2)rjVe!C*)?yAMJsasKaM=d3F4f;tUD zDlXd9U_)ap20cOHR1;f>oLVT{%fdq0&hldh$<)F^y_n=5lr$SbB<7}NY9VYC*9?=G z#B8XSH+gvM93Lt?F-x`56!L9X>Dj8Psd4()xQn#1;KS*Ud>yzd=U&1^Q*qW_kTEuN z?g>O7?Bbuy2Yg&!TKe|O$I{vI^P@OARhAXkv=VoEY_$B&>6s?VSgonA2H$T#r{uz)CJTvW4f_bVpr z(}MaQ&dABdpfjy#R-+s=$(tKQ3%=ln9458YF5dLepChekQ$se|g76?QyTeh@qQu|ZVxnIb9@E9XSGMx- zF{}4@o_{E62Vz*t5F7dD{l{|Jq1&J{gDraY}8+={DL&0O2WrtDPNva(tfUd zn3l9W=V{8Xrnxb7!8W(+I^8vc9q`r*EZf#-l}o^m>3wTw8w0tadzSpiE9V*#D7$r( zq-BV$PQQXTM02tc32EHgS`sM+^4TWAr2EiM4sx;yCAH;{_Xg!iwoZ6Mn?XC|snq6^ z4m($en=m^Qhs-B?~5AC(=|u9U4(S&%b(`f7Z(;9CqFecd?U|;rI6$Gjsz|L z8G%_znuco_R5Cu1ZnU-$rgZK2{gvkMZaLs~q|+HAwV^ z#^8B%acS5qS0=49QGr{H9_`Dn!nz!P>B}en6+J=3>5$+^!w+rz7DkVpesx}?5BmiN z2j83>s_OXj=Z`tR?x>5BPhwJ%Ll;VX?Y2X9=YRboAJv>o89o&LyLs)G47FR)zJxUQ zu<-rS_O&%NgZ-=FX-<~CO2)&)>|zG>0Iny^HZ0H<`(DZAC&?ZiltaI4HZYkxaMJil z)5fgVh1fiozv@h-wc?C|2NHV~0-L6kl%D@}t4cOcNwFuD@V!$ZIR4blrCF22kQe)v zL{IP(`0i6L`@*R#yLIZl+pu|+XOZ6|U$KPfd-Md0#X2&!%tB(IH4j&NGE{j*dARe# zn#Ptx$D}*)dvQZDoq|`1hUeJMhTFImnn1h!asUu`{Vk>m^IP4CPkP9inHg0gp(cku zpC@(7_o&}NydYxOO=QjD*ql?(8%-4syW*_urmup*2fkEn{*t2H^)>N`dSdE787ShK zQQ)4Tm+EB6hPXLg?UX}LFyD3UlxF@&#Z#j@_LKeu$(R;4SvNV%4UXHov@Cp|VBg`m9Ep zEXq1{c`9Ga@%} zDM#V9hitXRJ3un%n>!ajG!XYPLM}s?r0K9t=ASZ*HXrQ1&;2*%=w*K6mIiIV*KRMBplKN`2_8dEZ$+L88AaFZ9z{6J~5k^ z4-hBagerRnC5-4fp4RE7Donk_932T<`!@w#IJ)J#D)RQlEuOt?-qwRe--X{@4e$`s zTzSJcI-WJ5nwX+a6GBAfk=X}{ds;23Jl&%#+DYVsqMo0TLfl%Rf{&MoW!$eH@A;6( zuEO}PbuLm_)#aQH?P05pQuF)QHS|D7FR!v&P%KBHqN0X#=v@6%e$GmQyI~DDJJVsg z{|Y&i3#Aq9pw82>c~cb%FX3mPjUo1-w_<+p^DF$i4+>l#7P!u`8e7z!c@F!pt?#8R zOul*Z<|Lx|FAye$UTrh8>@HV%i^z_xS^w{4w|B>Cwsl3Pi8aw)%-sm-gyfz@omlVZT;FF;Lh^mXZ=&WbZZn&D_Ojb zj9&_Bxa-?}Qs||xaGOwq-VxZ?69IshHL#QnBZ-t=7k*(;QQC0z!&9PXf!5)WUF9Cc zkdSpw%;jB}Z-59&+y_eu!4nB8n?!O$_JJ)|8n_S?YXbb zyHrj53z48KlC&XiaBPs6o;c@%j(#a~{vyAwJC9jL!AS>?k)*sAEq!xWKQ?-qM{MT5 zjxBqK_#&Qg{vEpc=&oXSz1-FC{zYf?rxU7Yk#DG_DSJGdLthXYVV~^+m>D*@@Q4)6CZkn{HKw z2m~I>wV+=1L)B&{2AW`(hjM-U!s~ipdiS9=@4StTjjIO9!kPhd#v_PtlWlPjo6m*+;t>-JSBfP%UQic{->DTi?6TmYAu|UVR;tPkDcDCDdNb)dk9&F z)w*7qvAuHs&Ax=ACBwCgy1J!|zi;e7WNg3oO4U|2O#y*`P4gdx>==JfDmEI{F8!fX|1bav2#8v50%R~x4M1lJnnpd!Y=27*1!iFpcDXfW(wzUanccXxMZeSN)7t3{5u0p-Zf z@2ZK9Or8Pel^5oX0X(x1I+m38T$EE=uCx5#RR6OW<9@`ZheEu<>#&U=Kj@p9ad}cy zBIC0$BH|N8lFva#L?g&gGjZY}zOaZv-Gf6>$ZokiIrZ~J?IQIgw#*7R-QI>5$-WL# z=9XMh@|q*IbIWoR6*mSxwhS9r?2tWgu~27!h>U-SZsFD+k>|aOk5%gQ?dt1)i2jJy z@f=o0JD_z<0apye18)d`U^XzPsi`U4Jvf*Z;rqwS%WLc=;R^Jq>z37dLiQz2(Ayr~f3B^S7wLbXVBg7Wad$+Cpj*oWr3k1s56b?jH_+gn$af5fSi zMo9e=GW#eZRqA%ogPtd|-YT-1pC~$yb(}rWp;Yx9J27YX1=ccIHcexEPyxw!w^tVL ziU!O`Rj{#%+I4sTWCLt+BdMVM!T{!QL$VvR6!pm2!bkQ|8S z_wV0Z3b*Y6*6jn8ci59V1+8QGI&iFWJo9y{uqT^C>2{> zSa=!ft(0yQ1n@=EFRYu<%2HE8txcDtR>|>@vS@j+5m9-CiW--y{5x8q`?B7k@OGhmP#Q zkS+}pDW)UyqoX1tLqmf5aF;DpiKhIzC{9D<_rs*|D)+$~XTsK1AK(kc4XzUg2V66* z>sgB%_u~dbcOOT){@tsHaZh!sQizR-iJ_QqMR4;(-r*`f^t!7=p4N3ZFT^$5A@}C0 zCe50d!tbDUxuxoU#>YEG0|qs3 zjG2@yZYgshE^v^z8+Z2r$S8zo0J<-zq>!B~KZ7pP-`^kb%7Sc&wKF_(iu3ZR@;6z& z)~Qaz#1X3abq=RAC2oS@&dp;w5uHkFa{U1zy__Now{#L;9nK}Dg9IFZDhc~y`cs6< zE8ZW0B7-X^;7C9}NcNMHp{6U18d4G1yN{|qg%M1OvoBx;^wBfzDfT%Zi;i|%a4wKp&f|oac zsWh#2dBwDRN8;{=jPb!o*XpO3MCdt|83l1)J^Z;5lQ%}FCtZiDtz^?+q!-=G8kS0+ z65LlXz|$ch&)e&JkN$yY~K58ul`qTyRgzYcD`TfGsT`W! z{wV}bKQ>P)wbRKw)#)m~E^FqlbhFxy9J;*@diXNmX8C9O=iSd4U*!#wPi_p{h#L?L zZ4bbC%HQ8fm!dqC>5N9BEfWst5js?e$Hz^Y3O&<6_AO5cyQ6^tHxt(A|JuoATeu zq2C*DGYiUTvkhDQHM=|(zQsAIw{N%pwNP)$0h!2*@I*gxv6ClWRouIjsbf^EIhdgL zn4?qw81b)ZJKj%a{5Kbk-Tv!-9l>Dy#ia7c0Ksw7BrB9|Tp3EB!`BL3eqvB1N<0 z03|l>KJ|{Z=QYVp+Cp48Z}>${uz#|A9jn|*H9%C>H(brKDsnAF;ZQn}N&;gG>O;)s zZ5jZw{prLOs1;%q5>O|>q_z~;DqqIN#zLnkX^qk(q`$wv&60XqlU2!qEZ-#GKN)=G z*0Q;ci=VGHneAx~--hLlgngU)p*L9ZUJI!T?j03y^4 z-|p;`l$5p$xo1KFZu<{am%y9*@4>CM#PC6N`^sEChr(4^$aLqN2@NVHCs%y+fUgus zg0>B%#0k5x$q1dA%{-^M);nhOtbat@AQjLP0s%XH>7WDbw27M0 zAjUGR*@DI8-(8u*01ESim;W3ZAdV=u-Yr!IG7^otO)bp?THm!QZ|nk%K>+bMF)^{5 zz7Xi+XFTu7sF(BUUWUb>$d+Vp^GG+E2%%*RGbjCC?Ht!QV-EVRe1|=TFBv ztCBDStW$%H*C!?8F7!S?-dk{oWzb^|#OW?i_U12Zu8c>u%m=8?g=zu<2fP~K9Tpb$ zfF7up*|j%bff~y45AgH53@FB}0kK#2f$bo%!a@d5TOhe|17$KnNB07fqZL8(Za8?5 z&ui%7?nsvuhk3K(?y?h3QYT-&KT%?8)f3D6m_gNdKU!?|Sd3&?bjscxE%_;$40JL< zgkh13#{d{bGw8=CDs zd?Dx`$#~q@vUf&-;e|x}QpKwxHo3#$U-!JFyH3uF)~?z`t<^8F>;3)`-`>}YkUwcP zd+^>#%NP)T^Q8W^$p5>8%EB9lj?n?C);BVD0Pd2eEfg}S*WBG1M=6&EZ@i1yhDaE&kB- zM0I;3P;Zq^U64rWXe5_E#2*GR6_)ocf{LH8q=n3Z1#yGlmZ=YQP5G%4e68N!9$CLC zENoShIC%IHiZjtv{%`15|2ThLZLR(^)jZWmttV}(&eSzC`rjAV-=D`-*5*c=t|=Ls@Q^g1v*{W(#6b)Rng<5=oP+i$athw?^$26}HgMDqJ9*^w z3d>}1gFmXgCoh4IeaT-m>P`YC?!blu*OW18W#J}!xIEG&+~WK`0)ZV>a=eKiXo2O* zEHHJl1jX49!zscW(>S5}b~*Hxv-7iX*3v9P#cNd9KE9#ab3Z)`qzO#xqtC=_DN2Nd z`&_l>dD;Sdcik9~urK<1?I6P#W&ogHKxlaQmYtHI=WgyO&#~nl018#=ON*{oe0^bZ zJ|KtgG+dqCnkp9Te;V8RsM2#-j3kdCQA>qf?Ic0-NSX-n2h@1NEE@W@OlNGl%&<)7 zv97r&BiMpnh&_A|YNWZ7=oY~{ zY%0%w36^ChMgTV8qBK-hSI$sAy+`lst`ms({S)C}c3Az<4JN zF0wW@T@=%2G(*?^J@p(0Idj|Rpel$YmA&^4`KGiRItjRK?Nd`zA=~47^X6PK>Ma{$ zTnzaQ5Q@w3?TjA)#lW0f(JM|KR1NPhPZ60o?OY|lr6dK;6~2*`u2%l5o9%faXC#Ye z0!4UlYk_!`nI0PTrrDlGT6=J#(N5RYabZ>6b@+giaX;WSLHVNw$pOll*>I6=KN7&t z7)CqXMjalKx*V@?B^Z`2@vXeDuBp=RtYG8*pE#s9Tvco$q;`J#2%nR0Rdp~T*{gn{ z9JVksi&Q9}x;+5oo0FBLu5tQwJ)km~&T@b&IW)TTp`{lcjz5GpYfUru|*XCF9XqQf{_P4{cm;f_Qwm)zXm0$CrDZB0U}F@gh(mlP9X1k%n3eVb&Y2H?WDk%&*64urNoJz?>Au`M@5?ZzoqWu zB|UWPR_GWXaoX|S=^m$gv zc@hS>=)&v>H`+qRvkSRE1S_dq93D&RA<2IiB=_9je8e%gBaN+O{(N&rd4=rimyaha zR*3}ZBOhLn@!BZ#fcfC$9|2ucYN@m;9ZG@C}W!Iwt{2SYVHW z?b;2Vyyvia8tCKk>L41n0CN%Kje&HNdTgFul@$d7GU1C?!ry~JKlc;dJR=OLXE}86 z*gywhr$O8B(DJ6Ht*G#|XW?sJt{LVA$=go1A=XLnLArMSQl&T{cI}JHf?UdCjR7m{ zjsC6R%3-T_92idFHVpM^0eH=<4OKc&Jfj+M1mZJs#Jd|{%Ae1lKSNReZoB?Npr~Bt z{BBj>RT^r zy*t|r*k*$=pxb<@j6}VB2H-$VP@$JLSGJcdufZunWYK*1C`^r8gAHt9Zh}pF3 z6`&EjRayOlVgtoGb*7HM7QlNkwD-~c1-!+kPC~P&E@wINSi9_)Ma5@w*Ip$IWC3?* zHwQK3fOS+>XvpsFQJphEhrJE55p4Wq@d}yFEv6j66 ze#||3poY7l-00-RC~%@-w-mT$1m+0%bVJx~b-ToiqHvR-h#hn=0#r2CzMy`*Q!xfr z08Hh~U-b*HZwgZ}};0Boiin|B67nr0m)isO`&KNT@f{de1LuJ}Fa zZ(-ps+QQqoxVRJ`R%4(mK&GcQ6gsvF$a|HEk9!)96v2!>)mcL#?1J_=nwjm#aMpNU z1^zxwEwzu|iFGQ;zjhhaOnRW_%R?MrhDt`19sY9t5X(I+H=Y!W@IbjaB**q05dCsu zNaoJvv)H33T=637GzqmAcN3^NZNZwr?gtT|-rn8~5Sb{vgYK;s-&tX0rHp9+pf>>o zJn{{@8XS}*-mzNGY-ELxy$)Qs3hE`rLnR^mkEj;+R5)w4W^1gl5D%&a;G>^SFb`WV zJ%=GB5R3m{USx*D?nk}7{>q}*|JJQ#5aWR?@7#cm*&#Pu;4FP7FJGw<*DH z_(wtJSuyNUI`osM{`Tau7N^F~t@jv1fF@?t^e< z@EFU#X^gpT2)w`>`g9-auIu3zfo2OW*Dl_BxEg#z1~l63%Av$ni;cZDQ0-X{oDakX zC@{Bf-71@9GRG+7Q%KBhg#yqCEdcE3(>4~ORS z12*rLK5CT=Faev{mklyNdf?JV9i#lb_R7L-!v0LzKXti_hQu1Lv9JVuY`)YG+t!%` zGe~2>71RSjF#Ia`Z)7bVi4d#0sLuql^~X-$ZftX@W-CZZuz?$M)-|IWeoBJ$5^8Z+ z06ez9vVAJGYf3c{jPb?MU}i%;*-a^eG)`#dmRwYc=~}52>AZUs<>hk=(N1D z5&(+2)9bqHF~sWl%7eOHYLdw93yW|@3PjsKWi4@$P*8AT0l~z$C}n_6>3X40 z8~MiXl*XL87wBc&zp{-aR1UT6tO{_3K81F;8s0;;h3dWw1MEF~ocib8%Xz;I+v}G8 z^S$RpH@b}^ug9ClD}=4geP_ZpDtOag0>uw(FVNcEk@mAxS#!gVCRTk@y);S8TUe#R zhVK?3MxB=8n&A)GFAyvXbUs>ybF8Ji-Q!N=!L*OA(4SJ8WH{^`*yMcJsgh$nAFYMB zkLN{pwN<~lrjhv|#(omi=o@N@IxX^kHsKqKDj=}s;0sUO&IJ)tQ81wz0CH@eKJ4J! zpMj0XVy}Vbzs+fG*#u2dn6Mfo4WRhu4Y(0sSX^q!3Is@%gx=i#UevAaHs@wpc(%j?DCj}aXoD+jUnxG4Rt zw1|U7Rg@^=pX4#Y^oz&p3F8ZxS6d<&er zGz`g3IrC6XZmuZYC``tWK%4MW**CiA3lrc!07lq2(^-C5=z&L_wG9H%U0<34NF8Kv zJ>(m4g9GQzo#TUsePgUKbYwwY&LG(Vhx7z}Z$VuXD&>20KhTF0t=~XCi-Q0{cB&sZ z3I}<(!-U(oTEFPWm}NwjiyYmd>?hjTen&H=bIZDeHod8M(vG89J6?gO<$h*eXb#<5 zgP${VXa&H|(?P~=CCw}x5<2t4?t5e=%N`xgkv&0#K*EO5$bTYs@jxXyyuw+-Tbtkm zjS;M^)%B1sq+$!m_{Mt~R!-hHCQ;;l+?e zL+0LWK&WO_g7Qfh`Jh}zh(bOVd-$r%0f>Cx@bbDq#!DF_zu%VsAR%&hqLx})`&^kg zu1bI8oA{x8#z->j347+5UH@s_&i#F~QR@d^Nbk(;l9J~-4wYlf7_Zm!t;>A8yf$M)Lqm`}W#N!s;KBn@*Df0r;sgF2uK=Mk zx@g$ScNS<1fe@SG!jKG-pCX@hduQo0-v{#R_QGJX(Z4ywgS;{^;8yjiK_Hg zY8&tma_DBj)y&MGR|9I##wJ+pou4k}A5S^Pl^e|YxJC8iV3q6Ti$Xhitr`$LN=nue zyW9?7p7!UHA2V5tLSC;GLf2Qkb^W^Z4R`h_8H4cnlspUM=~Y3$;YgmEQ#^!GPN}P_ zU+Dh_!d#d!y>}4|nML)oGF=@Jm#LSTzkf`}l9UL6rwEqeBh$K9vV1S3k%2=T+>mp*a(Jg5V`y`~P`cklUC zZXU@e=M}h8<$1X1SySd$fq+Sn=KM~o_VvvgfG`NcT~nIV*SE_Xn*r*Lo7*@#*SPKqzydkB6{-RG!nvFI2jo+#u^^z&0v@$)6@ysvlo zV?^k6#Z)uBP!ldUhu7>GWAG`hIxd-0UuPQ=ecHFJCiHg1WbMztcN(LrI0X7@4Bvlcw7&%p3?c<4DU~j^jp^< z=(peCyiWJ;q?X-0cA*wQ4I;1w|Ks46+k>d%7llB_Az|T{t09d!(T=w^(qB#G&=tDX zz}ecNJ&weX(sLhIiLGU%na0?EIYB=jn|J)UfF!h|t)_5RO*l&v0zJ!6A&;xlL5>B0 zlu)U3brEW4%+_DIt-n`k3+25omEi#aE5o*1YlB;Z=R`yOnE&h0BM=FI`%|5ChpT}u z!DN=17oEN0pr27t1WbU0%Idnl?az68dn=sQ&}e{K-4yWmXGb0WLx7JF5(Dc`z##dj z-qG5^!X@U`CR38xux#VT^Q8B@Qt~{oEpyJtjd+R2v%ijGTIg@X>p6OEaP|s}KIbmM z7Ds<|YL&~*%K8aQ&dJi8YRO?Ae~-x$p=bSvQN|=bItgzjasox-EWXA4qk#G*5%Xf zxAHRv*v$O=e2Bsn0f;Fteng{B`P6*`*B%ncNX!c88&|hhlD1YfRgC+^4HUxxqrIZA zi7omauC$gFI-Pet{vf+hrS7#Ro)G#a1w@rXTF0p0ONIYNHdU@pecojoSu&I7ytB0a zy%fd5@Ws;d@(vJ#@*0#SNIhUQJ|_Es0@flQfl7w2u(5~FKwsa3o6FA5j)Kpt@d{9x z;6M(fu;_t%Ikm^Ug@LiD8~2+*G((Z!p7HikkM&N>x;&30M1Kaoh2@OHD=7Bg zsxQ5SLtb~g1_?aC2Bq{s?Hu}12O~~xV4t<9!{b@?kc6-JIx`8VFA64RLdn>-Wb-Gq zD^vbJQ+^^?N0W7jOF(kJ= zIuVKa$m3T-E$8{Fhc`TA_@d|RVSVg-0RaIZBa%r~4^n6dhKm^KCL2P`xIbV!_h^|4 zgI8P1*oSj5<#!z2QTI>}Kz;v^RR<;O8@KMFaoYu;*!Ya_2i zD>GaLoBMh0#I)vpRJlmlwWn1HKVJ1N`U=NPoqzXNU2YG~rOw(sd^Ih6b#~hxjDpO> zKY$-_y{7!2Gr_^PNNIZDy?4haOQ%#1}5rZ2Qq~6J!bq+{1Y>$Q*MZ5Y(MK8J}pX-DPG6 zdjc?5pZZj&z0=pQJn5j1)rEBbLnqg@&qr}c!69jSR&8nLZf%lgN)#rC9tZ~pfP~ni zsbqYf!HE)bxtZaUDL-lj1OVwnRqkc=AP{t3-W}620^nq{j6sFNIRG7EwxLxBh@JKJ z=s(xuE#X`ZcvIo?aklGaWPH2Y@?Uk^ZxB@Pf>O`duapg#%GW^#HZR3hFc%0Clu5`3 zLBVxToLI4X(jFgW2!7}pFp-x>Ll(NmWI=I-9Ats(P*@W*7ZZ~daRbN3r zg}{1=LcHFNX6lUHK7Oj>BZ-g)->VO2YpNnvc*e&w3SM{Y=lc>M^nY0Z`8^4)uF8*n zAO~)ldJ^}%KPUv6;37m*m>nsS&fdb$@P>B3)uy9gLForL?gy-X6+Hppf#Z zSYM!;7XYD%k%*~I@3)Br-muiX=xfs^qiM6yH3N*SRw4mTP>hAKX1A7TTkEu~PMxSh0> zIY5W9+y*oymzD%FCmbozHHFZi6L?9g+h*2-KbM@rAWo_F`~}kZc4yJQd-d_pw##

S6$hViPxR~;nPxSfhKwZ~!m~P<0r1;V z@gQ0cQW9$PZ;R@3pElOTARhqd1!{~S8I^k|*ChglgGMJ#Tex$86T+wEV@y7X@~y9j zh_ubC8zd{y79OGSP?d7pyt5$d3O0!pWpit3)WaZoLVe%jm*sX1cV?9!3c)Und@3b; zg3vx=ZNR5^;pwxUk-B7~wwaH2Jd8TEIBs)B+7uPJcW9jOUq;^I(-c??Ry_59OG)1^ zKN71F_2lae?h2)TYg29vcl7bI0k^MNzS_taaCQ@^5owYv{t6B`(6gK^QxE8BBgTGc zEp^(w4p4x55hINQe*uu1>ePY488(g8ATjRe1Ba_mTJCM^KC8t_bZIh?KHk|U7F+hc zP{^doy|?XmC8F_qNdgVM5A9G2>I}7XzWX%uAB01P0RhfZOS{lTJ24an)ud=(I^syY z8#)@YM{Mehz4GgcsM`+lAn~j9Ds=?_PTR_$(H-s%vH5MyS2)v50N<=3F+?Rn4NVP= zjUN@XGpsT&d*UYoj*^~hy$xI)xMI7(gdg97d+bch3FShTFKx$p1#ovEmlOgK!YkxJGa)*Dm%K z0g3<(VRa3ZYIeb->lphpp6~;{}d3wuCE`45M=xWm_qEf*49Rs%^q4HGMo-#JMppij-ef7 zS>k{D&abygsEo&0uif(79Lz+riyUhWIF8(Pa#|48hu&Sn#?yCD|Jo26Z?Q!xrE1vI z7s}2Tx2hm5#7^)ZFWf;@O{kWxpRseZ^XX0(W$Zw=+UX@SB^~))-~;ZdJI{|7q;Z|DpcZH$L{IsfH+9g%BlMV@+X{ zvWAZ(Wh<0@S4j3KO_D5ykdO%3C814puX`N4VD_yo7Ow@ayJM4rzr&VR4yE?c#&B(1P`TUPFCHTk4Q~cRT~~u~KJz)D zl274JwN~8d-74MQR))Sh%)Z*&)9SbEt1O&wl|Ze3GxjBS{_>-hjg7q#f}V6+i}oV` zoYIU+s!=sO5-|JYt!88#^o#$vj{HF(9;H}3$4K1Ld(G?J)OplF(!U+Q5pQ6W@W(Z9 zu*Zi=I@#ovrW9-E_teS(q$qFHX#fL1e*KDGeuhhXF7raWlwc}rmR&Y^=Tu+QirfCW;XIe|5q`VQl()uX zvRggMS$bVpPbK9L%q)z!nC|30Ja#gl%hy#nia)i8ev9D+fur>)MJG-gaRsUFkZv!v zoDDoUDno?4QS|fulP$uLlIpsN1qDG87KLUV1J2yIdjxju_^I;;l<<_ngZ+rs|5Gg< zTM8D8v;|csCRz<)?5B~=Wm>?Y<#Z^w&B_mqxI{Hb{+KADp@!pir?bth7H5~cYmmGS zeDv_x4WNb#<<%}4aqY7ltN_rbGUBd?QK2kLTn8QefeSx>{G6H^netUxq4i{_fsP90 ziwE77KzfnVPs+Uh2GYIpZ@VouwF~r$PER)8C;idfqE+X{DZ-#pwzEWoQ}a6824`>0 z7c#Fy6e4}BOO=HC+&9xljg z+tVl6Vcg7<_=MPk`hqB1}IOXO8++z;_`)(lRcL851B4tU%WL?P;r}MhQos*yu zXamLC-l8%pjA8bOP~`8ZYbMVM8HaM&=4sTh3Ulf#t4adJI!M2t%gM7hyF|e#ykW&W zbg+niUK6ML`}wCRrP-3Y>A4aIRa8o0s+LLaf?d2xC_6WybRp=_(%%m0ow$P!!*li$ z7`t`+P{0Kl9syL8%9DlZlQng;002olI=`I4pPGvhlwlM4^7pT|@A>nykbG`zY_zQ@ zLd@$jRrb&wy>4E+bzJ=PgMQwh(6+gcl%y{lH7W=F&qg`6{8h0&KwV-05;q5>e8Bn1 z&XDCl#b9GsZXE2{fZG6)5!@KZ#!tULAnvtJKfdDL>Q`wg)!%gHCif8y(Q(-DLeCG8 z2yYZ#@u${kGaNb9etGbn{Awjb6$in3G1x)vq0=`fizI~qzt$8XAw4p6UbCaL)4ggK z5Amr3Pt<_=&3wFeqGbRxkyz>&!HRAdbkPiOclL~d!pzn`;&6ix<$u{L|q{}!6?eyG)w9evO~bIQrYMgbx-%Uy$W-@tyb zN+flRzo>Mhp#f14*pz5iFu?Le%Er`mWV$wq6wad2TOrvY(GmYOAbt7M=8$R`{r`TQ zf7(4U;q=dI;@&?XN_ZUKHiyhNHkL~6ZCfzJD-_9vlYRiwEQOV$<k%JeIcRzML-)&6TMb0Hjz&+q+O0;SHJPOE6(6@#Y4c#By>qA>8; zhhUzl1FS+}vfapt^Vs>37>#*^OWcN|h|Pyt?}=z*kBaoy=>^MvGB~3TQ|Gy_yp9=D z8o0JidMm6Yz&*;&Rm1oOo~HTKosg6Qii@BVM<(|H#E&E6J|h<*0xHs6iImi4%fYFwM{ZhKTc=AGG0wB8*KjxUsHv!^ zFj`$1JOA{V%W$O;R};ng-?|XsB{0YC=8gw^j>L#nIc~=(S3eQobc}mT*j$X8?^Bnr zaY)H!>d)()t|h$BokYXOaGFm~!U1*~>&ERc`b|u^j~G4H`o4DkV4Z

fK3An|l#&e@ux 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¨0VNhZ5xOw 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 z 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 et+dj*x%GehlG1Ask{Tue0000 _timedOut = new(); [Export] public required Area2D CollisionArea; [Export] public required Sprite2D Image; - [Export] public double TimeOutDurationInSeconds; [Export] public required Timer TimeOutTimer; + [Export] private PackedScene _explosionPackedScene = null!; + [Inject] private ILevel _level = null!; [Inject] private ITargetCollector _targetCollector = null!; @@ -25,7 +26,8 @@ public partial class Target : Node2D, ITarget { Image.Visible = true; CollisionArea.Monitoring = true; - TimeOutTimer.Start(TimeOutDurationInSeconds); + CollisionArea.Monitorable = true; + TimeOutTimer.Start(_level.SpawnDuration.TotalSeconds); } public override void _Ready() @@ -39,18 +41,29 @@ public partial class Target : Node2D, ITarget _hit.Dispose(); } - // todo: hook to collision + private void OnAreaEntered(Area2D _) + { + OnHit(); + } + private void OnHit() { Disable(); TimeOutTimer.Stop(); _hit.OnNext(Unit.Default); + + var explosion = (GpuParticles2D)_explosionPackedScene.Instantiate(); + explosion.GlobalPosition = GlobalPosition; + explosion.Emitting = true; + GetTree().CurrentScene.AddChild(explosion); } private void Disable() { Image.Visible = false; - CollisionArea.Monitoring = false; + // can't se monitoring/monitorable when inside the collision code, like during OnHit + CollisionArea.SetDeferred(Area2D.PropertyName.Monitoring, false); + CollisionArea.SetDeferred(Area2D.PropertyName.Monitorable, false); } private void OnTimeout() diff --git a/Game/Target/target.tscn b/Game/Target/target.tscn index ed47502..5e07510 100644 --- a/Game/Target/target.tscn +++ b/Game/Target/target.tscn @@ -2,6 +2,7 @@ [ext_resource type="Script" uid="uid://bv2hat41dyxiv" path="res://Game/Target/Target.cs" id="1_ouani"] [ext_resource type="Texture2D" uid="uid://m4pvy8kkw7k4" path="res://Game/Target/towerDefense_tile136.png" id="2_olsqn"] +[ext_resource type="PackedScene" uid="uid://cd8w4ydeugrxn" path="res://Game/Target/Explosion/explosion_gpu_particles_2d.tscn" id="2_uqpd1"] [sub_resource type="CircleShape2D" id="CircleShape2D_uqpd1"] radius = 60.033325 @@ -10,8 +11,8 @@ radius = 60.033325 script = ExtResource("1_ouani") CollisionArea = NodePath("CollisionArea") Image = NodePath("Sprite2D") -TimeOutDurationInSeconds = 7.0 TimeOutTimer = NodePath("TimeOutTimer") +_explosionPackedScene = ExtResource("2_uqpd1") [node name="Sprite2D" type="Sprite2D" parent="." unique_id=31059524] visible = false @@ -30,4 +31,5 @@ shape = SubResource("CircleShape2D_uqpd1") [node name="TimeOutTimer" type="Timer" parent="." unique_id=1079777109] one_shot = true +[connection signal="area_entered" from="CollisionArea" to="." method="OnAreaEntered"] [connection signal="timeout" from="TimeOutTimer" to="." method="OnTimeout"] diff --git a/Game/levels_data.tres b/Game/levels_data.tres index 6167fc4..02a99f5 100644 --- a/Game/levels_data.tres +++ b/Game/levels_data.tres @@ -5,7 +5,8 @@ [sub_resource type="Resource" id="Resource_bbjqm"] script = ExtResource("1_bkfnq") -TimeBetweenSpawns = 0.5 +TimeBetweenSpawns = 1.0 +SpawnDuration = 4.0 metadata/_custom_type_script = "uid://ywe7vkywrdvk" [resource] diff --git a/Interfaces/ILevel.cs b/Interfaces/ILevel.cs index 5d8b597..c1bf0a0 100644 --- a/Interfaces/ILevel.cs +++ b/Interfaces/ILevel.cs @@ -4,5 +4,13 @@ namespace GodotHostTest.Interfaces; public interface ILevel { + ///

+ /// Time between successive spawns. + /// public TimeSpan TimeBetweenSpawns { get; } + + /// + /// Duration of a single spawn. + /// + public TimeSpan SpawnDuration { get; } } \ No newline at end of file diff --git a/root_scene.tscn b/root_scene.tscn index 8c814eb..6faf007 100644 --- a/root_scene.tscn +++ b/root_scene.tscn @@ -1,9 +1,10 @@ [gd_scene format=3 uid="uid://vsburk37p4u"] -[ext_resource type="Script" uid="uid://bvjvojer872c8" path="res://Game/Root.cs" id="1_iqet6"] -[ext_resource type="PackedScene" uid="uid://xfd48ep5qi1k" path="res://Game/level.tscn" id="3_bbjqm"] -[ext_resource type="Script" uid="uid://bpes6mnv21f2v" path="res://Game/GameServiceSource.cs" id="3_iqet6"] +[ext_resource type="Script" uid="uid://bvjvojer872c8" path="res://Game/Root/Root.cs" id="1_iqet6"] +[ext_resource type="PackedScene" uid="uid://xfd48ep5qi1k" path="res://Game/Level/level.tscn" id="3_bbjqm"] +[ext_resource type="Script" uid="uid://bpes6mnv21f2v" path="res://Game/Root/GameServiceSource.cs" id="3_iqet6"] [ext_resource type="Resource" uid="uid://c4ym7vrpgk4e6" path="res://Game/levels_data.tres" id="4_t2jh2"] +[ext_resource type="PackedScene" uid="uid://cvwvwv55n00ce" path="res://Game/Background/background.tscn" id="5_bbjqm"] [node name="Root" type="Node2D" unique_id=920849082] script = ExtResource("1_iqet6") @@ -13,3 +14,5 @@ _levelScene = ExtResource("3_bbjqm") script = ExtResource("3_iqet6") _levelsData = ExtResource("4_t2jh2") InjectedNodes = [NodePath("..")] + +[node name="Background" parent="." unique_id=701555148 instance=ExtResource("5_bbjqm")]