From 324e140f2d71279b04b6bac6729c661ec84ea429 Mon Sep 17 00:00:00 2001 From: Rendo Date: Sat, 14 Jun 2025 21:20:28 +0500 Subject: [PATCH] Atrocities --- NewLON.csproj | 6 +- NewLON.csproj.old | 8 +++ assets/fonts/pico12.ttf.import | 1 + assets/shaders/CG_color_blender.gdshader.uid | 1 + assets/shaders/greyscale.gdshader.uid | 1 + assets/shaders/gui_masking.gdshader.uid | 1 + assets/shaders/shared_outline.gdshader.uid | 1 + assets/sprites/atlases/atlas1.png | Bin 33468 -> 39237 bytes assets/sprites/atlases/buttons.png | Bin 0 -> 3297 bytes assets/sprites/atlases/buttons.png.import | 34 +++++++++++ ...mertime_saga.png => background_summer.png} | Bin ...ng.import => background_summer.png.import} | 6 +- assets/sprites/bucket.tres | 7 +++ docs/ideas/location_ice-extractorium.md | 2 +- docs/to-do/codebase.md | 3 +- project.godot | 2 +- scenes/debug_location.tscn | 3 + scenes/debug_lvl.tscn | 47 ++------------- scenes/entities/Zombies/bucket_zombie.tscn | 22 +++++++ scenes/entities/Zombies/cone_zombie.tscn | 28 +++++++++ scenes/gui/choose_your_seeds.tscn | 12 ++-- scenes/{ => level components}/pools.tscn | 2 +- scenes/level_button.tscn | 8 +++ scenes/summer.tscn | 9 +++ scenes/templates/level_template.tscn | 30 +++++++++- scripts/Cursor.cs.uid | 1 + scripts/LevelButton.cs | 2 +- scripts/LevelButton.cs.uid | 1 + scripts/LevelController.cs.uid | 1 + scripts/Sun.cs.uid | 1 + scripts/Utility.cs.uid | 1 + scripts/components/Armor.cs | 54 ++++++++++++++++++ scripts/components/Armor.cs.uid | 1 + scripts/components/FlashComponent.cs.uid | 1 + scripts/components/IEntity.cs.uid | 1 + scripts/components/ILocalTimescale.cs.uid | 1 + scripts/components/IProjectile.cs.uid | 1 + scripts/components/LevelGUIElements.cs.uid | 1 + scripts/components/LinearProjectile.cs.uid | 1 + .../components/gui/FastForwardButton.cs.uid | 1 + scripts/components/gui/ShovelButton.cs.uid | 1 + scripts/components/gui/SunCounter.cs.uid | 1 + scripts/components/gui/VeilResizer.cs.uid | 1 + .../gui/choose_your_seeds/GridLoader.cs.uid | 1 + .../choose_your_seeds/LevelRunButton.cs.uid | 1 + .../gui/seedpackets/ChoosableHandler.cs.uid | 1 + .../gui/seedpackets/HotbarHandler.cs.uid | 1 + .../seedpackets/HotbarPregameHandler.cs.uid | 1 + .../gui/seedpackets/ISeedpacketPress.cs.uid | 1 + .../gui/seedpackets/ISeedpacketProcess.cs.uid | 1 + .../gui/seedpackets/ISeedpacketUnfocus.cs.uid | 1 + .../gui/seedpackets/Seedpacket.cs.uid | 1 + .../gui/seedpackets/SeedpacketHandler.cs.uid | 1 + scripts/components/level/PlantField.cs | 3 +- scripts/components/level/PlantField.cs.uid | 1 + scripts/components/level/PoolContainer.cs.uid | 1 + .../components/level/RuntimeLevelData.cs.uid | 1 + scripts/components/level/SunSpawner.cs.uid | 1 + scripts/components/plants/AreaAttack.cs.uid | 1 + .../plants/ExplosionComponent.cs.uid | 1 + scripts/components/plants/Eyesight.cs.uid | 1 + .../plants/PlantEyesightLimiter.cs.uid | 1 + .../components/plants/PlantSunSpawner.cs.uid | 1 + scripts/components/plants/ReturnEffect.cs.uid | 1 + .../components/plants/RuntimePlantData.cs.uid | 1 + scripts/components/plants/Shooter.cs.uid | 1 + .../plants/ThreepeaterShooter.cs.uid | 1 + .../plants/behaviours/AloeBehaviour.cs.uid | 1 + .../plants/behaviours/BaseBehaviour.cs.uid | 1 + .../plants/behaviours/HpBasedBehaviour.cs.uid | 1 + .../behaviours/PeashooterBehaviour.cs.uid | 1 + .../behaviours/PotatomineBehaviour.cs.uid | 1 + .../behaviours/SpikeweedBehaviour.cs.uid | 1 + .../behaviours/SunflowerBehaviour.cs.uid | 1 + scripts/components/zombies/AudioDamage.cs.uid | 1 + scripts/components/zombies/EatBox.cs.uid | 1 + .../components/zombies/RuntimeZombieData.cs | 22 +++++-- .../zombies/RuntimeZombieData.cs.uid | 1 + scripts/components/zombies/ZombieMover.cs.uid | 1 + .../behaviours/BasicZombieBehaviour.cs.uid | 1 + scripts/debug/Cheats.cs.uid | 1 + scripts/debug/Clock.cs.uid | 1 + scripts/resources/PlantResource.cs.uid | 1 + scripts/systems/effects/Effect.cs.uid | 1 + scripts/systems/effects/GarlicEffect.cs | 1 - scripts/systems/effects/GarlicEffect.cs.uid | 1 + scripts/systems/effects/IEffectHandler.cs.uid | 1 + scripts/systems/effects/SlownessEffect.cs.uid | 1 + 88 files changed, 305 insertions(+), 69 deletions(-) create mode 100644 NewLON.csproj.old create mode 100644 assets/shaders/CG_color_blender.gdshader.uid create mode 100644 assets/shaders/greyscale.gdshader.uid create mode 100644 assets/shaders/gui_masking.gdshader.uid create mode 100644 assets/shaders/shared_outline.gdshader.uid create mode 100644 assets/sprites/atlases/buttons.png create mode 100644 assets/sprites/atlases/buttons.png.import rename assets/sprites/{summertime_saga.png => background_summer.png} (100%) rename assets/sprites/{summertime_saga.png.import => background_summer.png.import} (69%) create mode 100644 assets/sprites/bucket.tres create mode 100644 scenes/debug_location.tscn create mode 100644 scenes/entities/Zombies/bucket_zombie.tscn create mode 100644 scenes/entities/Zombies/cone_zombie.tscn rename scenes/{ => level components}/pools.tscn (85%) create mode 100644 scenes/level_button.tscn create mode 100644 scenes/summer.tscn create mode 100644 scripts/Cursor.cs.uid create mode 100644 scripts/LevelButton.cs.uid create mode 100644 scripts/LevelController.cs.uid create mode 100644 scripts/Sun.cs.uid create mode 100644 scripts/Utility.cs.uid create mode 100644 scripts/components/Armor.cs create mode 100644 scripts/components/Armor.cs.uid create mode 100644 scripts/components/FlashComponent.cs.uid create mode 100644 scripts/components/IEntity.cs.uid create mode 100644 scripts/components/ILocalTimescale.cs.uid create mode 100644 scripts/components/IProjectile.cs.uid create mode 100644 scripts/components/LevelGUIElements.cs.uid create mode 100644 scripts/components/LinearProjectile.cs.uid create mode 100644 scripts/components/gui/FastForwardButton.cs.uid create mode 100644 scripts/components/gui/ShovelButton.cs.uid create mode 100644 scripts/components/gui/SunCounter.cs.uid create mode 100644 scripts/components/gui/VeilResizer.cs.uid create mode 100644 scripts/components/gui/choose_your_seeds/GridLoader.cs.uid create mode 100644 scripts/components/gui/choose_your_seeds/LevelRunButton.cs.uid create mode 100644 scripts/components/gui/seedpackets/ChoosableHandler.cs.uid create mode 100644 scripts/components/gui/seedpackets/HotbarHandler.cs.uid create mode 100644 scripts/components/gui/seedpackets/HotbarPregameHandler.cs.uid create mode 100644 scripts/components/gui/seedpackets/ISeedpacketPress.cs.uid create mode 100644 scripts/components/gui/seedpackets/ISeedpacketProcess.cs.uid create mode 100644 scripts/components/gui/seedpackets/ISeedpacketUnfocus.cs.uid create mode 100644 scripts/components/gui/seedpackets/Seedpacket.cs.uid create mode 100644 scripts/components/gui/seedpackets/SeedpacketHandler.cs.uid create mode 100644 scripts/components/level/PlantField.cs.uid create mode 100644 scripts/components/level/PoolContainer.cs.uid create mode 100644 scripts/components/level/RuntimeLevelData.cs.uid create mode 100644 scripts/components/level/SunSpawner.cs.uid create mode 100644 scripts/components/plants/AreaAttack.cs.uid create mode 100644 scripts/components/plants/ExplosionComponent.cs.uid create mode 100644 scripts/components/plants/Eyesight.cs.uid create mode 100644 scripts/components/plants/PlantEyesightLimiter.cs.uid create mode 100644 scripts/components/plants/PlantSunSpawner.cs.uid create mode 100644 scripts/components/plants/ReturnEffect.cs.uid create mode 100644 scripts/components/plants/RuntimePlantData.cs.uid create mode 100644 scripts/components/plants/Shooter.cs.uid create mode 100644 scripts/components/plants/ThreepeaterShooter.cs.uid create mode 100644 scripts/components/plants/behaviours/AloeBehaviour.cs.uid create mode 100644 scripts/components/plants/behaviours/BaseBehaviour.cs.uid create mode 100644 scripts/components/plants/behaviours/HpBasedBehaviour.cs.uid create mode 100644 scripts/components/plants/behaviours/PeashooterBehaviour.cs.uid create mode 100644 scripts/components/plants/behaviours/PotatomineBehaviour.cs.uid create mode 100644 scripts/components/plants/behaviours/SpikeweedBehaviour.cs.uid create mode 100644 scripts/components/plants/behaviours/SunflowerBehaviour.cs.uid create mode 100644 scripts/components/zombies/AudioDamage.cs.uid create mode 100644 scripts/components/zombies/EatBox.cs.uid create mode 100644 scripts/components/zombies/RuntimeZombieData.cs.uid create mode 100644 scripts/components/zombies/ZombieMover.cs.uid create mode 100644 scripts/components/zombies/behaviours/BasicZombieBehaviour.cs.uid create mode 100644 scripts/debug/Cheats.cs.uid create mode 100644 scripts/debug/Clock.cs.uid create mode 100644 scripts/resources/PlantResource.cs.uid create mode 100644 scripts/systems/effects/Effect.cs.uid create mode 100644 scripts/systems/effects/GarlicEffect.cs.uid create mode 100644 scripts/systems/effects/IEffectHandler.cs.uid create mode 100644 scripts/systems/effects/SlownessEffect.cs.uid diff --git a/NewLON.csproj b/NewLON.csproj index 53cc1f1..8eebc1d 100644 --- a/NewLON.csproj +++ b/NewLON.csproj @@ -1,8 +1,6 @@ - + - net6.0 - net7.0 - net8.0 + net8.0 true \ No newline at end of file diff --git a/NewLON.csproj.old b/NewLON.csproj.old new file mode 100644 index 0000000..53cc1f1 --- /dev/null +++ b/NewLON.csproj.old @@ -0,0 +1,8 @@ + + + net6.0 + net7.0 + net8.0 + true + + \ No newline at end of file diff --git a/assets/fonts/pico12.ttf.import b/assets/fonts/pico12.ttf.import index 9f7f70d..281683e 100644 --- a/assets/fonts/pico12.ttf.import +++ b/assets/fonts/pico12.ttf.import @@ -23,6 +23,7 @@ allow_system_fallback=true force_autohinter=false hinting=1 subpixel_positioning=1 +keep_rounding_remainders=true oversampling=0.0 Fallbacks=null fallbacks=[] diff --git a/assets/shaders/CG_color_blender.gdshader.uid b/assets/shaders/CG_color_blender.gdshader.uid new file mode 100644 index 0000000..ca88a52 --- /dev/null +++ b/assets/shaders/CG_color_blender.gdshader.uid @@ -0,0 +1 @@ +uid://d0eo5uuj222c4 diff --git a/assets/shaders/greyscale.gdshader.uid b/assets/shaders/greyscale.gdshader.uid new file mode 100644 index 0000000..bad2753 --- /dev/null +++ b/assets/shaders/greyscale.gdshader.uid @@ -0,0 +1 @@ +uid://mt7vheq5modk diff --git a/assets/shaders/gui_masking.gdshader.uid b/assets/shaders/gui_masking.gdshader.uid new file mode 100644 index 0000000..d9ef27f --- /dev/null +++ b/assets/shaders/gui_masking.gdshader.uid @@ -0,0 +1 @@ +uid://dcp5tqcec2oi3 diff --git a/assets/shaders/shared_outline.gdshader.uid b/assets/shaders/shared_outline.gdshader.uid new file mode 100644 index 0000000..3a8919a --- /dev/null +++ b/assets/shaders/shared_outline.gdshader.uid @@ -0,0 +1 @@ +uid://bk8uy5se3fo0 diff --git a/assets/sprites/atlases/atlas1.png b/assets/sprites/atlases/atlas1.png index a33fa594f93798cd24173e11c2a1c5f0ee06d5aa..da6a360c500fbfec098ba64843b5c81db179499f 100644 GIT binary patch literal 39237 zcmX7PcQ{+`|Gr%sO07^c)T)u9rE0HMOBHR6l9-{bO-1ZIDs8DEylthe)=F%#H?iA_ zy?25Td;WaBzkibJoSasJRfPMXg&DJanKfHPZK3X0T!Pjob2BA}ZMfFsve7TZl# z2|{(cEPEb!ot7-dPv87>#`uSex`{n64eE{Z62(M7<@GGkUIWHW_n)bV@fDHvQtlrr zLNQDWvOxyJ4Sz#sBzW@H} zf7$ybva1vKZfenk9(4}@45w??kIJ1PUBM?~V%t)W6-n`^Kr6fsD1|+9>gpQKUi+Dl z4LXMNzVZp`OdTdxc^7tROIZIwiiIqb%V7^EXv>`F8|Ko#uM z>dNR;)i!rm>Bo#ob6Rl9NZ?C7_dCA<2P(&uUw`nPpL@OI>n&|Ji(S?b^Ac4*!#M#3 zQV&lm58q}pfOG)AbQJFi*o+sP7JV{$|0J3eEmzm>2roXHIM$((YJV{NA)O%#Xukfb zAE-r-zS&&@e4XB3nPwe|VLr`XrXgVfqmg*lL~A{;1Lu)TNyk&SUy~76H}lM88?{;H zFtSk!A)~JuxYaJb{%F{u5)Mm*qNP-J)==ALOECAL9jS-HqS&M^9)W+!7|!aEbCl7m~ezN4DJ&k7eWilk55MefwL0=^>J7C&s+lb!%Kf&iWLBgvEqEG?PZ8Mfn!O`7!fnZV z$NTU7AJ0E4t%UZB&-%Yra+32q9dysm2-vFa2-GV@y@iE#q|Wcu8+7eJdgq@m$k%ap zO9{Q~M9O^V2inDIyel5_zj5A&?3JZV&8(QGHILje!4G2)E$?RU8(2 zCH*U2Y0_;5GVLiDC!vZcdqPIwZqL_mRVwZikH;Q~r%Oee^GcpF-4n$om^!?ZC{O(Dfn<~^TRByuiG|4-3E!qKPUJw)YVsRC*7v-N^grs85=qI=2a=n^ zECpUMs&1zeWsf`9z%rdNGL4Y#l7g+l1Dqk-{J#3P-EigenENAI2!^VEI*2sx&WE6J zk;ECFB2uS=Vr3tuZvnZu1FqWaEm_#{waMxl907n~cw|ZD%7dPp5I_M?onuE9O!kkq z)kA0+ych7ao)Y=80+_{mdTssQlINI7B_=i&;N!MF3}PQERUwPF>wLU=-(CYQR!;@m z%eJc^mwbXDX$PnwfY1| z;7^S=AhfB2(x&cMN?7*<_O*SPb<(-VSS|U47=hIt}5Aj+f=0TaN1kt2g;fb(-#<%+(Yo;824mn<+p{zf8z25QZZ34t_l32{w6uno!mV3&rpxTC%?8OoST9_gZ{vKEWMD(izc9Vee4{r+=R^QIY+$V-5$7 zF^5Rjqp!igo~rE(cMOd(B|LNU_D=85_n%+BN5j#2`r>e7V6he1lro3;GQStBc8h- zE8B4H28dd<6-~HAbG_%MNwidi!4L=`-Bqb9-so(=rdgw)pEgrdgAo=qs9iCFAyF(40bzaR^D$Hb#X8C znB!RE{mleR8iyndV5c|{!YEBFXXlk0clC=V?_%*%0ckM_$Cn&|~_f zFrr)=K#(nUm71(Aq(V1G2Zd7x&Zk~B*#GC(k+4{!z=`h)B__V*ZpAFK1q8zL&D&@b3C^-bfB>n{sS|xxRtFH_p?N zK48~t?4`de9EIWecJ(P`;@?2r!p?#X7o&fuSEq`tyME??*maFpD~e#bqRVigh6IQ~ zm!34?`cwDoaqeuCqU0nfxH8qZQ$4VOJ`TKq4>`~8DM&w^?Fyo{Skq+*_lde zx?}Ef!|1=wofmy9n*MCi_m4@kG#)~)rhmeBu3ZFsb#j-W5TP%X(w7V7UTcvjMij8f zBAIWJ#%}t0aA{M2W5bb2#+hcv2*Eae@%$unWxm#wMV2&sN8cc`YXMBCjJE9Qc1Us{Jp$j9^Lscjd9&WN^sT%l7GfbvYp+U z=5`9@0|6LU>i1?0Z*!n>g^j9XcFf+rYxVKZ+^>IIGI<}?ko#;T-7%LN>R@p+&$&Sc z{O9O5{CL#KTeYwed$sZe+A-MGz_U{xhw74wJQd;gJgfp@T*TC0H)zO7fqi-5Z8UyS z1P`~Q$T%2Len|o+oQdhN{$~~=cD_82sqVS(wu8`#P{INQ(ezI@xt;1AcaOT%OUxhj zz}V#j@(nMibrXaW%(rMGgscpT!aSeK+>XB*9$HiQaa0d<`;6`55Xah2=|Rb=!4od+ zFWk_0ZEHgNSFY-Yyv+qh zEs;^`UfZPN!4oDW2z~H+&S{E0;plDRox@~-3nwK7Wb&4bLp6c8m71_O0PJ?-TW6vi zCv(q(Yzh=~U#xRXdz=&0l#ge`)GZmYkyPun6n_q!?7NHliP1TGLN3vGd+Z2l#W1`i zSs&SNvtrjCt8}Z%nHE!^sKhwXQt}s}mp2IC(j!qb{RJMvdS7`)$CBrg#8$UY*$gi` z4Ju$ar*F-iPW$-9tYIu8lA#P9O-ArZy=|d7`MCw&IIkT8)Sb{l#dgbCjM^vAD&bvM2t-S8!Te!PSRQFma(k@F22cbFvMhUna|g@d5b=7 zEt3D+fs-k3FOpvpOxQNU(}nKu+=?Em1UWU4aBO)cdn=}8sS0m2LHNS`|&14^Dtlui#I@5>JtgcDvwJu~j zzKCcymgMJz*tF;LL@&~^U19CNS{@SENCKL%!0bJ>Oz#l`$0>&pPB01L(SEZFs4dyx zO2U`=IU2?ww0*5f^${OUeS!p~P?r3EC9rzy9Y7(K*-`yc4l5mNQn?F9Aq=6015D_F z!MA@3!$<7ZWDE}$k^waGQK*-Ugx1GN1sl0buZKGjsKJFR_yVfQO4{?{?L zQJS~0=XM3vZ&Q44lDs40L5m&ur&65_Ype&=I@~3TxCx@HP|CCjxqEkE*dd13>y7MZ zF$Iz_44HRF*bu#MVWl-*dE{)&H+CM12g5bZ9egQ6;dd8Tu<{AI@12`HKY^NVhgVHA z6)8u~;CRD69Y4Nlm-Y^q6^hqJzf5!GZZSfPM7ogSBY>7l(0Haml{0k#p4tATv^%xB zFv%|*@E-~~ryd}Pp||4Y;veYhxP7}5>ct#5--S83w5e;zRP8y2d@x4 z_I^H1_4Vr|=U#dwgH@}eE)JaGwp~1X z3vS+W1{9#ebo8dP-R+J1B^nc;kBCkyyyn|u^GXioSQ^L;yXhOmTGJoy#XkzAsIgEY zPRA_BZzoEe6ZSZL&Gt5T=6d#uoAfF8tl`JwqN-OBu@_86YL zD_Aj>j!(7ixaV+Bw4wQFar_-E4A##z{n;sTbbX+iXH;$P`?Y6=M;|_gbcXtwrwGC4 z(S79t+XK}qA!6S$?rXa=uHBGqxGhqd3)12Au^HpEiuFX7wIJoy^|dT`rP|I)!iY1c z#v!lMrh{4>x?cLHJNOkZnONDAo{OnuY+u4_n0NZ;8=n^qEKCrnYh|POz4YfJlq{6zw zoy5h;KQOotkbQ$LCzFWLCp+J1jx)+jWTOAq@n`Zr&f@+O)O$kkKl5%hWn@-Em?>=5 z<2PleXB~{w_Fyp~bS>)f-C=pe@~WS>QEiEVO|1U4IahL2SF(~3 zNbg7zg#0Au4K{#(D^o`T7XYNCxaVgR-;412!?b;K{)MV5Db8^QZuC;ZQuc&-uQOWD zN%dbgj}%vDM?EMz)FO#2l333AAM8+-1;92~Zj)uy&M_tja^d7yzv@%P@k=;4Gva|A zkNLG_!H4{M>XG&Fc;fv1@hqp@gMj(s6T6;W(*><3oTs|qI;G*t(?KpR8f$p3JGcB$-J_^16GTAi_ zI6U;srTgIIqx+2n$lq(`O+a)>R$szo2oUp5m^MY*!}VqHpZoITQ*8$s?8d!r*NN^t zV}p=QXEdN&yu9Hfm(_qz@A!*ARUi4LqmOe=`t(*T9>cJ`Cnd!2Itys}KU#_L{wSC$ zU(%cmrXgXnZu*voY!~o)a3Q^IN3XsqelGkoAW)CwmE&M^n|`97OAa(%slml<`qyMN zKZ=kaY}|KT`K3(SDkf}Gka+Q^wrZ(crdg@E%wpEd6CL7xn6^3!+!Al+40om`moY9? zmEW-M--8R)M{)ys4#F4ZYsge1Jrt&oWCymG6ev3I(X>}r?&mZP!5@^$6mBspT2Gv3 zerK`bNwIWmMDr4|m=ckKsL}>Q9j3DFo2;|JIqm*$D_gue^k_!IJoh$T0ZZ-I2l#At z+!{f;+=-Xi+gz?I65~u@jEhD=?c$&76ip4$GYEHJZq&*lz1SyMrrdt24cK#AUaR|a zFKpW#f*{&K{oAHlG|i<|D_D3;w5j`W|9C|n zOEC^{fCa&UOZ3GZj()~q`7R&A`mK5~c58?{YF-g_m0vKZH$^t|Bw zP)B=qllC(Me?*{k!oP$)IcKDOYe<#tt#IcyyZDY*KVHl)cZjh=rb0()z-e5E++!@J z!J9Ri2NshV{@B||^Tn(t2UtF;C&Q{<&m3-23O2-&v+5MSd^vwr<=Z$XdS8bxVY&EE z2;SshWee-q85VTN%W`shugoc_GiS{d2G`6iVU$hVr~2eYoG=>L;KPEIwqU@tvZ=$m z>v7H{MrJ%p# zV4tpb*9B)|eS@-BJl?tcP60l;f5Mc{o&PV=UgB>Esy)R%OI3~XWLvKD(JD9esq~CS zmQ-pr{dj-NQ%T)_NEgPW!$jQr)I+b@mALWXP73ZB(dk=)4M@(}LSko5_oIAYYN_l5 zYstptqG3{#q5p*7B%>yikCVndjewn=gpY8D)#KUWtcL|%;4CBMJrn^ZYz561}+o0#kJ0$6nsjW*mm%t-}2a_`ub5? zj6U(fMkL}2;4rBcQZB?aMuN1`+SJMt-?pgGGqej`6=-D9r#uZ&cFQ<$nU6=~CqD+d z<+yRj`2PBsUJd_-BdGt|^7e$m-SF=|Vb88Dha8YnyQ8}FIpCL?9n>JRP{1ksqbd`-=0?YAcQhPXXU!k;k$a)BTXmr}2jBg-cXbNv+!Q zYCl4k2@7Hqp!$<)^`^nUbBMcWr=+F2_}gTRrDfhTvlwCM$#^Al_sQ2DaD86tjD|#m zyn0K&h5uyl9lQXw;^h=n- zT_>^VT?a4SzrstMksA(4x+`(OQM;8}P?z}2sX7w+WAe1x2N*(oNzWm(PbPHj#OZ9b zV6D@rweH<4y_uss2rI9XkHQ4(_J{!mqICr)CuOz!8waRoYO3(F0+9ExR3}9`qy4ln z=JTT@(24qn6d(e8t;XkT|wJx9DoS!X}N$ShPE--Tpdqy~xVnuM&gw z>YIQ|Hx$LYVn%par@xgb1$k{y&scpVU#W`8Qfjl}4R7K<<#}|KHE?Fg^T(B=ZR9vz=}pUA_LT$4edy(Hv*;fzf}s zcl&{8t0`OpLyIXd~3 zt4pv++Z=RefDGA}1;krR;z2&Q&>dC>&V-8*&KLpGoGq2Tc zjLv0u;0{&yYOQ_dw^=1op}TP)ktmEMXWG*{Iqe<|c6p*j%wet;J0fRoOq0@~Bl@Iq z_}`S(XOr&V0PFq7_zJ%^snTRU(oy-rc{;o1WBeq91(wLsyS@HB++wU6v@Xrhwpf>i#KhQhVC^J^(C+lk| zXCY&$>^gc2l0WG+sKPX`c#X;| z{_{)tldS{61|=^>mz7cbf@=NoeJ}3BiN~s-i>TY8<>uFHQ6U@O@P@$$_3LneaALkd|9Qq9e{9Ex(v3s(k%fkY?LfQ{qj;#uH(q1NYDA)+(uBwv-!w+j_ zFLZfAn>34x_p*Xc{T0w9NB&w1;}y;kwEIGWH3}O4R)aIsNB=VtsZIIonQeJZ@1K1~ zl2-;Yd2-C3eHzpw)7?wzY@F9Jl4w7$TWg6)gm5OV-9c~N;$%jIzd|1~1?QB9_-~HCh$# zcOm~fV0d-Lj4@38vDT`N+3J(0{t^Xfq(0*)D)EZj{;l?6W5iU25GS+#8t$4>t-t;( z=mtJ)!TH;Vvv70He{pU+^+Qa_ys}p)l0LWSjVxZnv;Ex2o`$4xYZuqo+vY330A!H3Y`<-Zip8X&$rbtmM_4r3l z1H0*?jkd^TYad*R0iCt{fNbntSSsbsM-2+6&hoA10^7M9^HuGQEW5m&N<3_%R~j4B zzr{iPFEYvk+Uo|XaYL;Jr!%@k%8K1XPJa~=;SCUQ!v&5;=O%FI`)SkjiTAV=Nstgm ztw(|PXu}QD4yL*F+^XsL+kzT_#0iSDPcZjQ45&vnzhpfiYVZ~RwF|`BhFRV(e~+xF z&s|oXg4H05`|CD_X6E;CrA>kpNYD>IG#RK;GP_TkcjKV)Z%Y$r=tG3(_U^vXox$Uy z!-x^fYA~1dREE8JHgH`ke1*tuo_rndbXyVpA8*%|xi9i9|zpjT{>i zZp(c-^Ez#RZl%k96dDb*{Kyt)uIa`7z|hrVj`jiF1P|*z`-5P=#;yV8tUoIFotER8 z$EsMa)#EP@53y>`RnW}4znBpLxq6U$L^X!ZY?&OQiN*D z#>sA(MpAp8lw4HTb9&woPGzR?(3*nL?f;U*7g_~y^p@it=y1^TXdLx7D_8cHna^L1 zbs>%2TtgqG5$iTvcD#FVztkUN>AE!6yxRoG{QT;#%Cd|su9`iJXg0)N`H}Q^D*zGJ zI^ZxDy7ML6{T_asoQG;{N-@XE&RRE1AMA&!S;r?|DNU~Y#*gY<;1XD|ri0V3zK!-y zH@T``GPt@a*Ux3`u2%zhO5^?dh{9tsv$9I_4Az-+Mt6 z#o>AHL`FL=kJYoM%ce^39o9hYcgHg^R6vXD<&K@!#V$ub^vCSquMp@*Nyu9f04!>3 z%AgedxVD+aXQj7Tz0qzd#aaK~AK-slI|Wk{Tz3$c6Anw1@eGM4iJ9R(IjU94+VoKD ziccTohu5t0sM{-*XnSZ_7JE=l~i8x`t*bXubo~O6w}ZsoNQTgna8>k{i466dc|0k%Hx!gIQSr zE~|2XkyP`y&D4MMF%E0mJp=X@yw=^fe#q5LJ@39fuQhokH(%Pt{`AhG2r2of2~US2 zCU)1KhXnrlXSQ7z`&xolDMW)3t-4)r#%|liK#MY_ogif$zHD+jB9ieG&5z%HN!YVf z<$rvHzdKnO*2UDjlhLfpv%Fc^^%%G?`N*HLH&^9zh$MD-K@bxA5;*29Fn9m&I$#pT ziwFH+a?KhVs@(Ik##0jVZiJI*_K%JuxuMP860|AI^9W+N%lvXo%%u_KL2H*E{4tpt zFpu9}&@Pl{l+GoQe0KLKnhdi`#r_tD-EHIP-7|@uXf2_H?9CP&MVD#0EGu$E<^hx* zEPgEhDjy=6$yYwjWrxwP)zxs=$qi$sn*0~)<$Sv4bu98c!=Uj9%bZH5rhzy!zsrnc z5swLZ-dYD&2Hh2y7NCgab!}E#$5?}Ry0B5Js?m%AC4GR?WBU*N0<55Q-Mgm~OV;>b zu`u7sUYX`Uw1N%LK!$waHej^NNit_|qFIU3Z;AG#*j<9o7!g=?t}>83W26*{Pm#oe zq7i+jPaMqh(uIqBa?GiCogsn8S3hSAwoHL1Kxw)>38ZEPkEyQD>33Qnj+jW4fFnI% zIUZNTtKC=&=ME>Z40I`+uG_ zZnu9CS3u3DD?bGDADJ2Dtgi>=t2+ba)K&GeRffUKAtwrgG!jm=Vec4m#C$eJn*$)i zvCaBmIrOsv)H!HS^>E6|kiQm_PA%|Tcc+7PQY{_-6nxRit>F(!Va)KZhikxBk5fyM z_Do>`#SY60BG*qvea`H768MTDywD{Ssk1NZpA5WUu0!0>(tGduhi@Su+v>9V8DnY4 zbjeR#{e>;l9Jwdtk>5t}XT;9(s_TaNypJK=WbFu<{R`ezcznX z0*-Vo+bl0_YjS-4Z}+?TI+Kq(Vq_lM|K6Q6V);1SXw(<<=IeCS-bv1x9q%+hOVYHe zFSgh`egsLPVl?N+u_Vm=i9Z@~IJJhD*VA<_^;Vv6i6qQCTmTdiUtiVJ*g5SRiof_y zd-l6&VZ)_N+NZRiMw}x|J~69cGveic0|o;^q{#Klaxz^klPlLsKK-qo`FH$zkjG^b zYIJvL)p&zyuCPwr!stfWrtcSNjQM(0pqIHw!_ij;$=b`!Ce?=$*j%C;-#8OQ*v@<> zYUv8n9MYYt8Ncy6)9|`E#)&e{xd|$Rnr&YR-x62cfkf&oXSP!Ng>4`87B+(%mTjzp z_ii5xE-A=4yLzMD-?t@%JZSl$W#qcG_7?`)yEqo9m@^Eoh6Pp2!E?Jg6-Jzed^_d= zG+4Ic+*RV+L4^1o$N?|*N&qT*l>2DI(OYX(C4P0tiE=Q2mr&>}Y5Ewosyz5A6rKYq zwEZ~b)koetR-*l^>~>zGd^9%>`1^lVP2v~J%Y&{0`j|R#^P0~lMLvq9|T_BwN&N+m`*lb$pn>3{kFPS!#kBa@jyeyT%wUi!NWQ62C{(8TM zv|@EBJ{LG^GB5|5Zp0VvOC6jq`~6p^5EEIA8{`W;{8gg2Tj@QU_w4A*@Lz;ipeo#Y z;k*kS?N@}iei7QF=Hd5K$~L|1lW5nD(N7n|MjPW8-$14dvrqsg^snaI^%I+loM(k! zQDQHMK8*ACL#@_zzvFT4$$JCZaQl%Dp5VqR9-Uvj%P7U{s4C;n1EF3?OXl3qpN5ZT zQgWLbklP|xDF>1lB34iMzN&^?g8q-7_%rX&q^giq+!_)a_Fcf>)oOi5aLulH>BA;F zm|YLCrRUQ*SYT7ukXA`Ot!vIVocUYz+tB~HwODf02w*5P_o;uwS#&%84~lp~EK2TA z`e|oT#JjT$Di;)~sG3n|*WsF@juMc1@VRJh!d9=Z%?v($Y8$m~Df@{l?Ul9Se?_$wS+3g*);s>jI*CMPsBBY;v{{2_U zWl%n)d_ljba?$jjH{r(3*NPQ4dX4`>TvR5zo$?3dG6so~&b2MTS-HD{@IG@yJq5pf zbI3s1r>?VYK6zZ3T2{m4$~vP2v9XkTBKEMm6nW0(p9w{HW{mqa1HiFQO85?K#;^Q~ zKkM}Vo(rP)#}#iz%47w#z{eDpTxLt1p6B1WxyB}WHCcdlS~0b4{>lPW9^fPavQUoc z(4pyd&NPs!Hgi%AvIU!WT+`D*?6jEZ3J9n?Xgv2@M+3!K9(LNV);5XXgto8vG)l2S zL%r9uytKy-r*TLQh@^BV%)8gTh$3bQ=yOl$yGPdR50x5E=?7cP{Ze$5vQ7*Au_`|{ zotWNORyQ0#PG)@}>SK>b!w2al>zkjt&$ja5NOq8m;dY}aR1Zt|dE0sdkt(hj!i<=Q zCDM?+V8Eh}q=OIV9yG|BvHNeeiFR4SRODuyJI@KR)bg`o&le-f(%OZ0wCRdH9BcqO zfsaQdMBnN2=?_hi77w61&xM>e?ZaGQ96)kF%Y+UX+}{ zD?#-P2At#l_(1}_05ECQH}Qc>*9SFwb8m+YPWgX;akEMSj+7F}GtrTX2fDW=(Kzw? zpdOjGLJjOQL;guK38dHKFr|ekpphGa9<0GFI1e$_vdaPZUK*tkVx7PGtkBZ>4(BN| zpDBGK!;VR<&QE$|XiK@O3q(Nw)oX&eDjrZ$i>jzcWBsIW4Q?dkAxw5elfTcLS9?KJa&)7fgkw8Dn>c* zqJ%y`aHtfPNRFl3j7VwJ>Nb+P`Z z=uqQ+9$>RPf;8hm?OhPUl}Yu$DHe=K!# zvBus+>g*a2PK{mWctz~TDr#b!zlwbFBg*~d9`W$YR^yzMUAldjBN_CI{WiG1@l@-^ zm0;IahfTWWuzpwP`#|s4j;G)*3;q$nIvQ7W#wx}0Ei_WD;Q~NK)7Lb6`z7btZj!m9 zYq3LDBoJn-xKe(mQYVY}g{e1%%eJG#cQX!1J`0uOa%yePg#9#21G2gHsi}0E@V%azP#J&37n+9Jh;VUVbR$ z;7xk=K_&{(M>YJ&|92!FCo^|yI1XqKFomBsYD()qMHDAdbvrzTQ(8+xfw-ma5ZaA_L-n;a*iF>V)S9~H!iqDJ$Y(Hj+Jowq`v)oZ$EkUErn9^5TKaWi$EL0 z4F%}B6EXTnjV3Z_wjv3oV*%^9Fmnr=DB$U=zU+p*Dp~E3*2^d0T#rr%;N1SiIjwm8 zm616KawGjZxQr10WjNc#&IcVH{Wy6(txbDw59ux)4f^s@nP5MuBwYV^%l}^DYBVai zk_&#P-aYt@EZ@>DAL|UG-H84dbfR5(YnE;|V?p%|Q+V-OI4l7Yei+vZFc~3W`ORIF z;!%+1x@NSy)urS)=!zg>C`G+^>de>(#WuNI8Ane%T#VmXs7E);2ur=7CCG?9?i$JP zu-hkvo1z*cOP<~)32XYYmIwZr8VmwjavvV+*iAaf(lV!zyEtzd@iyLWip44iX1 zyc4Y?H2ys^Zv==JRg=AUhr_Z{oPHr3Vh~ar(IxH{cb+$A7@VnT#fi&c`v$W33n}1 zLH?P7K!Ap9{c@r+QcmLJ-H+A7(ubwImaELns)f8b;n9JIt&;_a&U~}hbmsq`KM|l} ziAY)-wJ^OOl6KX%t=X9X(g4zA4DRjSXzQz)PkODK|Hf+;VTS>@L@SDXGYu4}*ZP>m zs~OPo*!KgT5aRRg{rECSix9c?0s*Q>vM{9XTYSJ3PBM9aNo=>fdt6*hX!E1rR?+p= zR=mdG9+qsT5w;x2kK+tsWY+c9#-y`C=oxO)m}m^6$Mq6fXJKEVtc1>y$XxxB7_adH zBGq;GlGr>xRw(Gv)2Bm%m_AlPVVf=qbd>>p;8^{U2x0Nn!eoJ7C#DAKp^Zo*QBB2= zCR}86@zguT!VRo5cMQa8oQ> z7U^FaMFM@abrZ9A(JPB-F4ug;QHagVx#Q`(YqbB6&TKAxK_5z0-8RuNJ65%{RZ;|o zf68DF&uT56>q%(il7|rxH~g{_8+9ITixFMdjzD|iN~n=3kP2a1lvy$l8|%z1-rytQ z|7BZ{l;KEvH3yais~h$Z?t~r@vFyOzr4jv7>DIP=Zpf3;C}7A9P*r@*wpvTh9+f1W zRW+eVR;Ti*IU39@JMpwM-fP%uy^fE4Bxxzn-RF*7*?_``a_L8BKI1Jm$=|u+NSHnT zDlImU_2IiuoM$s5c+{<>ui=w($)w@ z^S3&7)e&XF&f|EF105Bsz@Fu|!pX;fqleV2VJ@clufi3#U#09(#jHFBa$n2_C7&d}r-v55(ETr6hGQJ<#&hfloFG@tDamr2Uw>%LY z1GXW?wQW6s$5K4lD(2OPcgRs%MBWo3{<-y^9jv-AHacJ7euxEE1xe<$s020(0IvT@ zFKhMRjE!S?t-`m-Yt@0IiozT@kKq`WssH5@3N~7#N(%sCWv6W8UTP(uNGs~m*Yc2a z2ytihJEI5o7-zH=&Y+l?h0U57SDg%%Ead(17c=?nj?nsxB`G+ji|l8|7ItH{0E4Z(HDO~y|x zzHiMV_r5!rr9p=8*QZ+UoEHXED&MyN7SObnob2TBP+>g<|KNh_;1hPbsI#8?>i3U7 zusu&FUVe0r+j%AY_Y+98PK?)ou&^vzNatywwD=1#9B%O|>FAea9cM|5O(&keX^L*H zCg1EML+>}{*aBvi4(jK`qfgQV?Y?qC(yOXypWI+TwV9y|M+C>r=A?Sl`UyU$imU56 zE(yx0ZOl$&@Ui7mWS2Q(A9Nq;mXSGe+V3BH;QUC?L-uhB4!6}IaCF*}($+e7d0jf< z0m69g`s6C77Z1*VQil2BEf5-P_KA0#mVNrF9m~Z`8CtGK+3X^AN09baZ-Knb1=XdC zX0ae!T?G!<&H#fez*q+QkS=?kmWAypSgx@uUL+4Eb$0_j4vE`Z6u5lwWSbuC73HbY z0@^D#=IDN7*N|{~k;{d;+@fa4SL6z}A)oMk4(cHwe;Cg_k|$n+?=(Ni8f*TcFqgf4 zWcI6X&#uXG{k(vA%hCbfa|h<9ZTFUz-R}CZ?mf`$MwZt)PyIE2x;6qd4g60dS7TuG zA*xc5T)=NEP>SKuF|R2)xt4BvARs^sqilGj0^#8dktzreccKL@o(UuCj?za}tdHkI z4F6|BHf&o&<<`T>zp&Bphm5iZ8Ve?b1XISU=7!@a50o6ZM?RKeuyIF3nOvgjPJWv& zAX?;h1=L?USHbuy3bA8Obx^Z_s;Gi^NcHXR)>KZeR@B|22W`l`nXkOkT;5A#ew(eVgAkxXiqlWK%nAJ+OaWrNvH_p%_^EJ| z4yf}#TjxJX&))q`SbpXMi~aCZYuuMyq)Yv>6$j$Cb7rJrf<4hc% zezh?{QSZ@-!M@5PpqI5xoIgB4$5{Wzq5}P(`Ur$hN!?pXS*&82Qkydxk&NsvNG3(Q zaV@H-H!+#|OVoa}b7U^tQV-ZWN3IVxZ9MzR9C8%Vdn9u+Y3AkJk3gDJs!5-TZkez> zR%rVbx&U9JA#cioyNZ}GL*JFD8P2~=-F(bz{drU9Ui_e+)hiRlsDe7Vzc(SzpZdSx zUVdpw`T6%Ro_`+l%iK;iT|P8=$>kQ%0Jnr86;NdCu=y3Hsi_5M)>e{R{~b0KEO8Hk1ly}a4&a?;q8VD-pyEWVn{n(c*yu6?w1hz<#$v2}1)#bg4Mpb;VWG+y8DR5a>2rhfZ)3+78 zoV{(zNGXp?oc3IVag8|3SAUerSGX1{AtchEre!molyfiaIfP)Ca05bBwOW401`u4ObRK||NR=yTgz-0}q z>)v9uG&6J@XALmXX1vsuI_QvkB?B*7OsxWqb7=j|tsK?#@@TfVTDXKvxA{{D~=m=HT9R7 z7#IJ+7+_w6qwRbCl_7s(k#Dhg_d3Yyt#mzv`nbXZ`c$T7C1sm~vVQMCmnV(0jUveN zn5>N6eOG{=$${zOM^^h?`g-jqyF%Qu3q6b+ufiqTpQ%e`uPJ#EqQ)YE7}levUJpZj z##NUqB5>&WId}8L2iZVZH0G9np57fP^Vu82t}zgwF}nZ9*joog8MI%+v>+hOg5=V@ zE+|MyBPb10!UEDr=?Y7ONQac9G)PHz?9$yJl1mCmcc<^o^ZdT|eZTLo?++Aq_uiSg z@0qz~&UMb2R@>7RD%n*nWw*m|NsHgE<{@Jz`)*BxT5$g8CD*3auWN6Fwk%vVb^nN~ znRz>Lw}A_R4F+TYz^$}eD{fodehyo7OBflWVfCAME>RL+!CdL@CvDA!yZcj@$Laj zxNU8jI%>81$J8T&7K;lAof)g#&LqapklkRp*<-=)u?swhCA`S#ysMpu;P1d~1&0dv z&&Z(Y|Gst-ecQ|DKkbgVlla^zvYQPK^1Ic0X2r%`5kg979v8TA#*ef&!S8oadd?r- zpXmW;qY&})X_f=wExM7r*-IFriY&bmmxSrrHYfxvdLb{%^)LsW?#?ZRP)Vz>-FEn`0|I}JQk+Q8z?^@hMw z1&d?bQ?xxgO1R34N!B)y>cTeWZ>*CK{9F8h!&J$?zHWlxg({l2f78}1>83e8*Jcl` zt>STIr3@51ZEy%fnj54MnoOp*#vbu&RI*RACSZ7!CM4{M8q}YzTV-F$$$lrFOZu!w z_Fn2>H_AaT0-Lun0LvD;(l(zv_Ve*y_U6xMYdVQ&_3GrMm%>ai=|Z)>QitFN1JO;7 zYNEiCekX|JwcTt1D?>oo{&;2ZWEO+cgpL}&l=!#*l`MK02st*gCBy#)kGew$vW6mL zO&z8J>C0igaH2_*y1nV`EDQ6LxcNLZ>Fv9JZSV2_83)?aG9LI|b=6Ui55^Uy4TaQH zCDG7U_!?qQ_hd} z{`Q?ToAAAF^po(%s*@ z=bK@81eK`*9l5vdPLjQ<5mNh^*45eD+S~ z0!W`J5wLX%IUhfMz5#OWGl9V^MC9ioRFpbPYc&r66c021(>AGW2)!8Sxz$U*p~%{J z1%NG_F|<=#xM=OlUcJJS5MxAH5%FVoCPH64Je17r9CCOqny~p|y|^gcJ4Wv3h(Mj( za?K1Z8X2|w)x5VAE*4)>W7=R6|tstWg0inAO)2{Bi1I(B)T-EKAHjYe#qVUzhXdrY-YVDryF07y^e6Qf0b3mrtS)-Lo(2C3HCI(x#+#FVZCY6+Y$KiZdq+7LY@lnAw{;`<=M-6<;IP zV?-5orv^$%We2~-lNuNAv*j7EFxe7o@Gp;4qWxjbY-i)$P6QDnz0UL%U?nBkSGJXp3 z`DkF$>-2UZ{c6nYu-(RRn*~}OhFOuk0i<%Kxq>KPmkve+QWvKX^R7fe z&u-eXSKVWZQV6jh7c3eNws?vdsdN{DK08D?p+{#Qn-Mvra*_^foa2%9_iNdhzauCi zDd%^rOJxrrRUUcmy#zHUForLcil=5Y?nknq#dW#2v5-#nOi6`-ox02ah&mrZkUM|+ z@}+JMWz#ili*D!sLf^uw*2*dJ+hzJP^$XHYLu&wldJ?VY41Nx8`YM7tDe4-nT2vI+ z*zt-y9ZEwK)_e7={s&!lXq+Eq9gsL9vjWS0QRbQ;hk-kJDl3`1bPrm21_a6t^dp4s zb)XH5uOZ#LwX>uY)e4$=Y@n_rw1J|V4Cq%%BUy>^GOp+^G!D=;%_hczGo~>BgO8aK z)&^=`6bt}d!O^U-a;6cxL&CvoQ7B ztH6saK=fV**m*FvkdaD4V3y6)(gK%8@OT**Mv=-E3tll(3Ozvr&IB2K3X_xmbdzRY z*JwS}(&j6}Z+4{(rK#hkyrDx%kI0lBSjgRD^`AI8QZfhZx1V;1_c(NyCockYGH?KX z4v8WZ5c2$b{LKh!rs<&FHC`L(cC(TJiZkxr1M<1Ewo`ba79tUvZl5-_fFEtQK!DFF z$24dbwhwPrDdXfovavT|7%T|n*3mQ23#0Q8wZXfCRHFi2pUBXZK-^=v`aq2v4TDsG zKLV=uKU0=LQ?7P4*VVw+dUj8%fdfdhA2ogs$=o4_lmey%5v#rMDO%&+~9*7m!6 zoIrUY_9t<8P~6z}?6t~CfZ$NpKm8YT0PwndrhRCVl^Zuw*l=5@MpY11D~?@GyCCc< z`%Wm<&2i`3qs0;$lc)J6UUpC-OSOsNs|y4*1z@2hPwafSfe|7rDkjEE>P-kK|Akge z4C3&O8%-S53AKRzRs-@7vLT3#KV#&)1m*$cF`vdCTY$!OL`rilKquU&@EhJalA9gl zt|y9Y6T|P#cKJB&EA$w+Al8!1I6}@NJefUCm$wmNtmFYa%oBc8nfU(Kt_unG|9dhe zxNkmQqgyo_8-ckg+C@ApD-mC*j7oP&VJgz|rqOhPc7aFcy2bb4JG}UN#*M#TqPZ;_ zYMy183b?iG9Q(W)Z?DN9E;S^S7!skD3k8~u5A{j7TW=GNYU&5C zTQ8YMie}QIdvg$p;0cu~FN&jj@W{ikIT$Yc7HwKV?`TPHK`8AFJ;Loxi6rf7`)-m*RU=gBO6`56X6+N(|l7a53l@zw>2O0?NqD69Lza z6SM3((q4Bf(ALGT&`&USE2=~SUKz*VZ&>x21Ru8(en>>WIGbh_Y1+kYk!m>X^3}pw zdX9xfbXe1A0h*a#e6i~IE#vCY*CgcR%TGrlZhKI$!uXo!9A~(VwTh(iVXP-k2dldQ z%y|dDVy;+)X+h_T&XBjo;m1m>vcTeHw(HHZMMmA7ny58{iqPngUw{QDJG}lNaZlv3 zUuv<0s}6rNcPah&aDSxNQHKMtmqCh@tM8+hL0_Y!ZtC(^2h`uVMY$gqiaW$rRk{BegDl$Sq&AU8uPL}~DsY^;B+ePBm8|3=NiCf*%b`xQ zy${xK;ht;8DPc=q$|{Jle;^oBt8EMXyg?aqy(fq?1cf-NgspP}^0OQ!ukokpH@Q;$ zL2~g6?o8Xdf1OK(u%J)qaSPAmw z*4e~;=PGR}VBGg?<67_R9|O6rBdtRl1jI3GamfMNG#UV6ehyWT6Izf~%;6<}Q`JaDv z@(F3v9z;*ifdw0*VIh0O>b{OK-tuptWu?TDNY5j?789jXcDAOZ$X6dtM9MV*^_qLf zsjp#V*QOkw+>hB;`W(O0r*Dk7C^#i|q`ttvTr%?VfRhiEj1nk#k!&H6TTH|JWeB|e<6+&TLgFvF{v(!8NWjpFC*P`J&;J3H-0S`9DiqGGi+2XB;t`{A zH{CECOC&d|Y|muAe8C&zSNP5zcZQEAG%cHC)6(iPj&m`eChz&5kd^QQ4Fo@!d+*`H zOe!UnoR&S$7Nj~DIe277fA8%gkbun_4aMC3qAxCo>1C)j0DtvLp643x=7^^cOrE&b z+7cz2O}NFVM}0pPq;II&F#`TXbp+AIVfz}U=eS{IIBwL}D#lFFh9_fPIo)pBkNr+q z;1-F4yyNJ&BuZCYz~l^{Ebg@gR^%_cD%2UlV?Oj7mQMxmt!>aoYFd_`%8y9<|B&M= z*}E%wnEx`b`b?hqaV08k4k8XsR$xFROGN@B8A>mVzkiviW8JBBvyO|rqKd>+g5168 ze}wFO?f11gxks2p+_|nVUT@w&O_jrQ4`Ddw1h`rmM0wjDItS4=CM*CRK_W%o8>%GV zQx7Oc`18u@|9oM2^7YbXV~fmE7t4V(g#T{s5iP8H>aK^0dcO#Q=B#xP=F3|1t`=ge zD&$Myd?T#r(RK04Tl1*;Mc#d#h$@9p1KlI(=P{eawi#Eapdq3*C+{!E1ij;zOvjo~MFTunp}B<$5k5dCp(9o1n)@UA$q3TR-?bMgGz-55NJP%SFm0yYS^*-|st6W=+Q#U>fQgyu<0EHjE zNjN{NyEWFVO*Nu%TTO~LCP^QSzQ(W80c0LT5XXmdRwC;!YbaqB?%~ZH9LVt67n=uP z%^oqAMUciVBvGE@;wD1f`y~}JTTbF?HVq}+W>uWi6dYcw*vvG$*HE-;ai%27CO58S z7Ok|oT9>aP;(^6=6fvzaFTnc*BX#sQPyZ0kz$oMNUJkSN=m%|63MpV(g5(gErdD+& zCueQOJ#YRUcHT#v$RYArv%858Q!2RUnAI8{g#r;Qi9%Yg2%P7uyzVvWv zewqrdS;BjY^CJ-o$*bJ<`~7zF)YM(x>w54+*3sMm*xOr1mkO@9IElT#5~@w4cCn)o zIo=p1mF@XT8m?$CkU)Rk%DFf9uXNit3u*apD`P0Qy>@$&eG}k>BpDqIsZWYMiuP6z z!Fvs96vE&|dGXO^{8|FQxx{BT{7^nvw)bp;%Ki;;ojVk#x$!8q8Ja*FEL#}dcMZNR z0)l!QIFPk0wO0SP{&ExLeEe#Ap!w6}YJzfUn%8CKIN+Ux*fsJ$dOhRaj$G93-OWia zR~)-j_jdMnkLiQaEdnqlCfap4M9xr5wX>g zK;+MY4SgC@w;uEh^lf&a6V&Y&PeW?$c`T-^<-y3M)o<#?i6bV{?4e5`i9U#_N^EsP zD-XJwD!^6~Tz=NaQCmWDDp`~iM znVnEg*}MdA5rVe6;^tyxS6hYEXL;CrQsFXZ+uNfFpCsld-87f^#f%tdZ#0`@!G$-@ z4AHJOUIJ^iQy^)28{xifa7I0ardk-L^vu^6$!*H}`OPRz8vFC0W|?z53&N(8Ai-Fi zaUbJ#l#8%Yy>C(PzIwYl z2#WxQnXO;#vLXcJpL34WA>E0440kwq?=Eoy>o$k%j3pclB)j}XN|voee`k0LO^1{4 zJO0HU@on1~ICd}-zquLx#&+<701m99xOygKQnqT37az@;!=r*Z5K~ubgcp1v@BBilcUbAoMmPcykH{|5ToavL)`UwAC?-Bmb?R zh9SZ%^M=2$5$<i7=)G*+lyCw_wKex{)KiWhMR3zfd0I8_Z}0!E2o)U3r8>L^a?DInx@WE zv_kFFBJ1}lrgEtV$Y>OI&ifTX1DHq&<|mPZkj7^cXS*UJ5+!ZlSP4aC{RMT_B)l!R zlXh{7(l>Xt5Xdh*uPJ6ul@NjY^d$j_U$(kx2x=ekHpjtuo8kc z*^;VOxL(Tn#2fl;|plFgFo}@qI3?497+aVE}%=xSb^#S8qjKZ<7}o4Hsw1 zJXN9g%JE*(#$3&8iu#>LD^UcDyxdwnk&VxQMZjZ1NZ?cUhCzWY7Q8L5&b@0YGs1-r zmkV9dzX){|Jo0B?cWtd0l_=v6-c}-PO{%~~dCJ`Np|iPZ9!SF@X0zmaHHZi5i1j1U z?{1hz&G_c3PkgbWigf8-q3~SqxhlB(=?H7@x$otm^&}EvE&AQcRnF~F z!HQb0mj_T1+qFpu9Q&Qpxb((E^Muy8yqVCend{hHua+}d@R*qwyPniu_a1go3~L0U zNjB4Cg0i744>z)xZ#47yet+vdn(5zwPsJ3rU7xU8cFYv0$lYk@`ARocxsxf-m)>RHjIrT5Q zKDmhcY=)L`;eddh-0a)IDl@wr0T*BDTC+FooG#KZX!5ckoetXAauY}jG+YbU6cZE- zykz*DCKJ*HBnM_DnAsbt=MG{YD%*IcjNP^~Oo2p-FYU`3MfmVCCU6JOs6`?g=qA7S z^0L!zi+D3aX8jI)%|54Od7a}SsLDU21E}ho%d4vZ0~0Hs@Es@746KOHJ7$al-`1WC z>r=*=n4u}dIHYa1Vq+8Zy+*|(-_AVb9pC+uKCVQ%H&|Y3@O2x{qv;Eo)xtO2jqTNG0 z5R@VSBw4)5S?{=F1`mm`kkRT%;Y+rb6kj{w|Zzgzf?y0mrJ zLuxPSqTcS89`ubYxbQS$#C8!qp;6Yu>o3^leC$#CKBfu4p+n=)8vo+!Tw(!Q=Ua@n zKn(2Hn{Jii#RpQSqssBwz-Qut`MNm^#_?w?sSNGEy zapCM#=CJ4VS_QW5<_k)*4L0?co|tTBvPrB!UL9n$vTZv0#sPMGGTxbsKE0v=G8 zu=7Qf0P-Awr1vE*mS7`#w|!2#SJqF$sf_VU6ZOc+7mQ|bp)wsNg!#|6IMw)i5Ppi* zWPsYHs59~lo*SQDsD+OBtAZEICt|}sJ#+&VPhfT5913QAI|Y<$o=ps!wUfruYv>t& z?+=@ooGg5={(3{&UX->JSS^&cP5g@|R$QT9@ zcrRH*_yJHeOIF(dLdqb_?7P! zSbeSma2-s?0c8-O^`(M z2XQ_f8UK4(;Sy341K3-uFzpic73KbH0$v z0Nj<#fhW`t)^cE=7~gSxZAK#Dphp^KVpyi{`$!soOUgnYyYSC@6ry@}4-$z~K)I@z z*&1lFm2r>?Cj>uAUe8ezuSEm3`@>@VU^XUpw&EMBf^jX4OBen&X+quc=Q4^Y0rO1z zQq&M(^@H8Y-IKDm_9?sdYj4u_sZbYLGS+o(YFWMqV?+?&Ssc;i364s_G2%W)l>$G9 zaEBFrzXGd1fs0{-ZOr0}$D6x`UiX;>xIKfEDx&3|<~N3ajWyBl2!DXc2b-I8;ox2x zvw6v^V$JEE#k*BoIq*cD02-b9 zCLjQxjGRl}P`@Q)d_wYJlP~_{ehx2NlPpm%poq;;Lrl58y9ghd7mJ_2hqQ%U__Z@& zbH%!I^6)Da56s-US50Ie%-`~**u5es+Wkj(AB@Y3VImxZ-ljtNS$tdi zG_r=;*Jaz@c9tw`{4T6)@*$F~XYg|L`EHF%CVd`=Uw>M1Rx^KIblRm62Tc;_LcP6M6IW~xIoq50ibL`Sr`q5MdGw#!i;#eU&|*t(;1D7Nev~y z&IIdqY3|n~Ex^dP+2^vCl3V&SRE?~8bC!X^$_*3ww45IBQsR^_O}q8I za_d zcDBQYIOj;hy~L!I++L+kS*{1-Pe?u8@foF{3(%LKQ)`bqs1yeXiAKPd|6O@DKm*%P z3UK{Ch6^6Ug;~7&^aJF~)|^H6I~wyPV9imc>*kkeJQ#d{1p(Y{N9El>3NRpxYwpC^ z-NTI3`Sq8eFWuWAmC2)Njzo^Mh<=l}Nuc!-Vf-k|ffy6X1Uxgo1Y%CpsdltHqAe-V zm7|D`0`^O%4qFK@HV!3QEKMH*9uA}vv5$S06k}}V23-tu(y>Ymz;VD|4Ou0nu@i?% zvMrbJT0>ifh{%)Gn*8S~_95JIgBg^k+z^5SkFbbLp^RLT_RU-=iaYi+6HXj!jMmUf zsDs$v)|;$8%2|KJ3?kP3b-{cyF}QQ9Vp&d*vx6{c?W?6*6A+VRN_T?pJZQEbz351p z_}cbMCumB`8p&YkDc5cn8p?-MTq5DSX{ps&j+)47ThRitS)S==BFKhTHZ@q@-q!|w zR@0S00`=_WE8|>0{jAVT0&6|1QnPdm)aRp9YmGkexr_cvJFn>DnRC#*rMMl{aWy98 z#k&2sn$n!gxI9{bI3b1rf)r&w=3P#cGPko9ZIJQkQHfu5Cj;_{_C)O|9>fVhy`dZz zZ`qIl21(4B)wD5xYt8tE$oF%k2e$tQGFnxLH>iUf$vsf}afcVPhl zPk}+Q0n-_b+L7jy8i!c90e zpnmE00=f+Yag~FN-87-q5_gADDFD&5)i|tzD0xA^0(9Vb2ql0d^_^isasZS6$g0MK zxC7nO0f&?|e#HlXI?`|pzYN3&zT$A9e+}FU2_eqqPZ^%?KVrTL1!k3P%fxN4`S~o; z#4utC%z-lh22%z^!wSD8ZL_$+GtaUK{~iY5DGz_Oi8el2SzGCc{{X@BO0jln4aEog zuy~tdji8h}hg>sMW;7}pzc6M3>sgqKbpUgGyfttW&M|W%tbb1sqmNIX;uittS4+gD z%Dli5qI^iONZe^=2=`0)9?^40AZG^9{w#Q;C>Q9*Y5)oTAiWJw;}0GrVK5p&|lYkKfMclu|6v*SF^} z!yr^=R9Rb=6qsAA<-Bd>QQ>0%+T!10q$M?Swq8oiZ(O<{=sIpbT2Z*T3~#T?;h|P2 z;4i#yK+x;MT_Hucrq#Fgz_ZC~r$d?wXamX~qB6_xyOxOBM{6F&aFP9*k#-?e!wjsw z83m*&msb8Y-&v3y1Cq1=dRMasftIV_xXVYeXOowQFdffIPL|C6w$8c-kOFZQWBL z>j`+JN@WT$8+8mz{vf?l-`?K2)X&uZ^*lRQmF6Q76JD&90;XfA1tl&kvz>AbprS^A ztM5^J>xd3V8Jk`bC^=0r+06tfd1w&6x*b^~-Q((K3$4>e#aV&STl{3&hK zhp;S{M)W8FT_n%jgCJL!k}Y-~w+k^@E8@-ec0?L38n6Rz6d<+1`@FhWH`2iw5qFYZ zgat$a`@LPK>!v?tanY*=wcaB^KkXcv#uuL4-O8Yp2mjV$;1;;(}iZcU?F z@J|W=W26UQkkq0s>=YW}b_5Ld@J^~~G%cL$PL@x%K`w)|kOp1EzWa6K&Yu@Gm_JuR zl>?2*^SD`(ZR*Wvk^Tx7=BC~wSx3MIA$j2+YAGjhquIPtkt`jgG8rYR1nIxsBV?2i z1&qbQ++neX`5?5=-SW1AhSxRqyrl6pOY6ulA|O>;HR1?w zaiQFnB4;OobGy!d`|5=6Zh@uDTa?M2H*R6`%xbxuEAQ4tw}qaG1H!Jnolxe{3!Trv z0S9$U0zLoUgPW7OFYZR_^OBtWD1C1SGm`HQ^%;-I0~zyS*Y|xrARtjq_bK1)FZren zDOqIidgut7NwXHOU`i=|Fe{OZ>ATG%KeZ}RD5GvmYF2MwZ%aJ0pl>SLHU0-T-ax!{ zr-a0GAjUEthOv2~DX)lFV(xUY76tA;QsIQ64b)U~nq}hS=7?=V{~(xH{6ca0Ov5O^54@$kNg?3e?rFdHS0 zP^wvtPSdm^K4cr;K1LPtY#@q62_kq&k40315xfMaD}aEUZB6U&t|9LM6Xptl&D=oK zBbY*vE)qBRP0hobEE=Z1acFTIv|HT2r4@2dC2=3ucf+*kAyn74XDF^Ss;(SV+Q+a= zJh(mbJCCgl1Gh$FsU)Aa5miLhW-7}mdGOyWedAzvF@ZySpGfafxCCQ*(yofsdTM!`alM z-H-2b_@n3PH)}5Ln!K?t{R^~A$!It?+LxGUL)=qIF4x3#eUL%f?-de{y)Ymhg_gjS zB+ul`f?{J6E<9KpcpvcY`x=7{qK?3;1>E%f(ak6$g=9ZZrJsJ5r(6NV>Ctf<%<5Ap z2u%qX%`&${8;|CmXuZMgqLR5JCg4l__Qv48iX>uG#_CG?_HkYExTN!zF)-zgBzJz#^n@glriW#ua(*Lg zxT-%ux6YaiXZ!3I+JrYnMill;^LcJ$wUsKHyE%4pj|MT&AL)QrbV@`YgvGZhmvyNH zcSAcHX|D1`pLV&v!;nO#5OyZ~@f?iu{Q&=a++r932}>HCEiS8U0xtU-7@${7sq2A> zGx?hT%Zy1Rt3SG$CZ<{F z1+GkY_n2Mg+~ZTMdTw_;NqmZcDcXn@@MzaDv`$g{WYx(FuSIAoKC0LyiZN%p=uEpA zSmwXp*CaYzr$U#`y^ZisRWaxL7Vb#GtovXRSR4cTTdIGQ=YYs3CDrG!q)Xy1^ks3H z6yo0tjt5LPp9|v{;k{Wk$fup(8MzqiM^CPnkZjn_f}@#s`Bt?R0!4-(hQBdLt* z_nd=%D7bNDl>c0y=MU3_e&si(1srLIhTB0>2wX5F$VXVsvWR% z>BlfE#4R3~oCrMlB6b~=jb6Lsv`h0mip`wx{4l3-{A9+ z?Vby${qcJtYqdaM;fg59_k^keC``x7%AJaT_LsXMdUEVf6R$OKLMaY$<$xp6MvEPi zd-a#Dn@s#k`u&k?fF3B5M(Up3@R8`=a))*dH*5WJSlMmc>XV$3Ti0mx!9%Fy*7@>% zwETD(35#K=7GTYPr0uvUBIS&g@Mr&%qnqzN{ zU|{_-orr1<(epY%B{SDDZ4ODf8bEPUM-H~pVzVEX1NXnXQ$qr(Z4>cA0Cp4H-LQT{ zV$Otm_!t=50P)n(@okQTU*4ZMLq#200Vlb%+LM{dpKHwdDi4cICWgt5dGmdI@3p+Sj{wI% zVh$EQ%(%86E;v!f9Dl1faeZC7T7v5{9A%}(U_&xXHDCI!QR2|UKADYpc9wG-ab0k@ z@HJ3*;V7)nB*Qxc{vH%J31K|RleG!m9mdGA6eZd6x-CO+Mn^ADlInixiPnTS?aaax zN-aeKEp&llLR!d=ie^>PE$hh&iNb z)zGiT8RUeYJ4U4X&b-{r#h0^j5`T|a)I|7!{zgl?`VF112;2iYcM96?0M7=-9yvKW z@BY$8PM~o#gkO=Itj z0w$peVX7uvibSMudyA;_L&|o4ezwdaass^e34cuC{Q!OZn_MRFg(af(`T9Hj3gRw_ z%nMzGjA^=nTA#}vV0irP*>>spPU@eRB8dvOP-Q!0!%|w8kg25>$pKdyXc)eTKGp{c z!E?4Vox;PZY#O|fwW5tS>n~w~r)e`C{LLcE;2?azrfgR7Aq>Qj z8Q#e$xu|k;6n>H)No)zA-g#2C1(Bo$BDy_Sg9blqk&>ShHpT4P4L__hPDEi7M!&aH zL;mdVob}tyQ))WPBJ+%x%r3aDFZ(axjCo=sIL4_H#jYKs7xGSMi>NHIj;C)Y?mLW< zdRA91CizU$>gTs8bviQATz5qZ+0zpSRs4x@*ZUp=6I5GP5Uyg;7NrTA)D3AQ{!F(( z1I%Amy_e$z0L6sXB?u(d0(rv$j!2HJKd4Q}Bo;bcIPHmncK^-=0G{w@$`lPL4JGm)T!B=1b7JpL6`u`w&ubeotj*DCoeIP9!)v>@Fu1VG z=`HHazc%jAkA|L#de6H%MJ(VqBR(F2e&Z%{Cfe1PKPvZ&$TNiJ&Zlb6V@s~qP+2^i4MC^{H|i>HwaaXFYd@H zEETM7-vW4g<^4=6JPS-P7fUQf8;HOQ$JM}Bt3Ms2xOxIe&3|Yn2K`o5ZxE4`X|^A1 zZO)}-W)-F09CEOGGVu2G{?i*t-opOT;op8X2Mb@5bA0}E!iyzUb4wsMc5T&8E2Oiu zW_cjiawQj3nn#`ZPK3r<8fI^X~k|F1W%$^fT}kJ%L35ee=O_p{|Ie=;E4 zb?E$nSKn*>;sw4sHR39YGr$I`bF@Dz11}ZyR#^S#Y|LAZfDJ}Ka%Gmfky1dz4-k^G z3sOX307hpGC6l2w9>WEUw7EKXI}gS}xnC+PjRr|aDn0V6sI5v0VP2+!0Y7G!8i{!K z6ES|p@Be&>FsrD%Z1Ol*uojWBQ8G89M zZMU$056jX`0d!x^Q5JYsxIMucC9lpJQ);0X#!s`+jbcU3a4c{IJ7)pdtj8W^FbaUYVGq^K*k$(yZXH&XsScsF4#$#sjSa&#H`MewbR)> zb4aeMIWM{3@bQ;zRxB4lzv2L#VCOI|xv^by-^*a5Q3rXI!qF9xm16Z8K`enyPu8F8 z6AI2+nkaMq=b0Dx1oN*CV6*@SHNt%iKe4a4*;OvSa99w>+c5K;trQkxEmyzx_)k3z zD+QhkNrfk--mR~x$3}|W{!Q;9meBnvT)dx9Hlnh!ooRG&YTeIXOW~oKJ}unH@;gWv zZGZi}zL|3(ofvI@urSGfB4)@CW%ql2ANHFpyYKE~yK@$*EnuGUdnSJ^oAx^@p%(D% zAHx+DDZxw_SGAKR%IF5jDkrj-SIq?_SkZw%;Pt?Ufj?-IoACuiD&Q1+k_b8z$>Gy_ zWdnO@U_lvh#)-8-4;*z2<@inj5qy?7bT&~1jUohBzU*am&pI&pNn^t_8+sO$G_?&_ zXXdhSsHHXMku9nOOxd!oKdYPB{}C?Mn7P{k)K2n##0JS0NuugE0?mv;?a`*c8!~%v zK8}G-SUR?H2J2rkJ(ytMuzsOC*&N}=(PIv}X6P|N|L1zBT(~z6FwBYkCIK=~`+APi zQ_#bIO-8(%tc7Sv=tnF58dX@u%AL(I#GLnUjapA6lGRr?g#fBR6*D^gW5c zp5G&xP>d`0*Zwwvx104L=cQ83q0mGkIt7Oa8kr*2bC)ymprnQJ$Z#y)X7k+T|JJ#+ zJrD#M0q#{h+Z9<|_RS?iGxPRl<~cQZrt9uY#D&Vj;GMpi?aV>*O3mbk?5IVHwukoe z`9GtLjk#%!=D(7_8P#JgB?M4LY93Vmhdh?`>@8gL9cjRLsy%2ClGJ@Omr;_a^Hvyt zb}bn=Ve@6mZF-n4jNt9Bu7)wIjA6PLu_}CFdZ<;#wdtLYTmdwX!pRl{$Lqn9fJ7V) z`Po|?Seb5~JM5F?9N77=5^F3uhT4Mm0Uy7E&Gp-qy>phE#t__o0b5VU;$MfXz*OvR zU=#!bsWI7se%TfaGVFl*1$+@CuLcBvZPm~*f=Kp;S(8BjXA@`Gk82~fiUnU!p`~Ugk|KA@H zj_=@86Tj(9TiaMI-ZlKTJ;{xZbGK&&RkK@X4CbU&?EX$$q$+5kA7Yv8hCh8Z(O5W@ z%rn(xhtZt=##6!pJ&KSDs5PlUg^86(byYFl4Q|$|drkYsnaiGxWEt+k0BTv8??4G) z*nb4DIy1kS8{&@<&v3E{SV5$Y^5E|U-GP0nB1G4vU)Yin-5co8H^X^s!&w`cwWv0K z32U8#J!pyA`mI^xX#X$2-{tVJbV0iQ{}kN$pMvM6OaSD9?;&u{R+zT~R=eyM*ClKO zMd49q3&fDy_XlP=`S#j*Xt!gz0a0WvX5*}yz?m77XPT&G;}`T1x=_4@zu0v#hr}r3 z<8=DAoVt4|sV7QhyY-MV`){KNFolmzG4VXGGRDSlij)_B!r;YVx4oK5M|Z|rFoySJ z9$~;yJ)bPx2xqo4po$UBGxmK%Zv5Yl;D6=q23gdMw9v@6r_k`FjW#iICaeFD$o}^s zI(pVeEjf3sA1#dcWZyh)v@vAP<&$ZePI>BAd2y=%my(^lm63%`m&Z&b2y}!z-9r^x z;7E2l?h+lBfO3aWg@#)j2A~(nll-PIHY$e~YS(h_$%cj3H$_h+gw)14C_PkBOMdj( z2yoMM_1T|3C;d&8HRmz_Cl$LEgLa;%oK+Jf?@ph@x>6ftn1vj#)h=lM<>eKcD*DDrW3eUd%ke})ie>C+$gxBc0q!m7E|-^ zF`{|xvg@#S`OV#9z>lN72Gj2&Uy4>3XRZj_P1e-AIvM+0VOf<#q;NubAPv8s!?lbk zM*t1WX<(vRvRqmvOvAX7yXn)&*>?v;OYwXa#m@VRCrTrjMGKV(GzuhG=TOLbkghLPKZz^L%9OdVO~&;1o?1tzAkFB7B-UFhz{MfYU0yO?mf6{3 z2a%5RjSbq%5nVTm?0_aYf&RdUsmzK(xgBE}52y3$GWXxNj`byeE`_{&1!;ecVDtjZ zqy^}B2kHmTtIC~<9mD$*C5PPQF6NbgpA7T@=#$FaaH;Uvxax`ji3+v~R1MWB>mSx{I=bq{^X!&1S}2IY6LKPXEy(c@Rq2^!#3=G3;e}uZ?uB z_}SN!?wSEFW>gowx?Y|kxxf5j-_u=oVydm1RqAuq%*MD=G^2P$>#6mLj`eRq$G(vh z&t&7@(N8$-*R6ZWYO`j3ZZ445Re7tSERZ#wYam7@tawCYHx|e;q_R6qr3U${*Fx6C zwvTse2d&^;glcR_Ag?Dy#k52qRXduKB(0`PsGCkpPo)w%jxuLWKfB-J96rMb94&e$ zN;{>baz9O03P}Dr9{_alak-0R``^{-{RW5DH|#2lBHlH#=J8C$$XEaxYLXP>DIgB! zitzQzew6^g5>}ea2-j3vKX5IvcEPQbFqU&sGeM41HtFaYZjM?fWv9*e$}GLJzDnnf zflJTK=$d=IY6%4ZMz$>g*symgnT-E9%hw&J(z|{6X>c639;v%C0YLpQ>fT@I*Tui5 zZ-(rXHGB%5w>0q+y^ks%mITsPB0EI|f3Kl~liKCmrQYugB6$<-8?y_RgB;oygUCA# zgTnEnFyQBne2x##wTL~$zk9jYXd(08aUQj+KAYLAiE+)+%t}fbDXcZ~TvvgpI$^Te z${q8yP>U@r2P@W;{JbeAw2k`A`}>;+)Y&H333Jy3SvWeS+l)BuGZQr?iBmYAbz*gJ zlAC{7XKb%D^k;Ehf;F3Zz>q^TWW4+Nw|c>&1{5h> zwj}^*aA{LdzU{)pezSiJM7!xG3sg-!<^}*;!=7R;(!)-2kEd~TRjx<`q~|@*^k@+D z+jH%g$Ori>hMN7Z>-jvPg{*$cew~KBf(#z7-S0Ydgi$R~70L|YpIiAE^QBs5apZTI zvCwo8?QrXquFMOK2AjC}GN-SlG0%IjUy5`yBlMlYc zaSb3aHzm zaA&t!*6;`Cn=oLk2hP~T!dW;--v(>ebV+hG_s`VueS0V6NJ?nzkSeAieJ<0Jm`i%* zgOZmCK+FejOu7^m%`F5K<={<5U{DhCpWfH=?d`mwDtJ#gU(bl%A6-HD$Yab) z;qux;34RfEpQj4yO&Ff<90vAqkoXpim@Z}1+rbMw=J7b#f-U+IsFd_0lDq(2bSxGt zUNf=Cv@nyU@9FiX=gz-y=B-Ygk#zzB75fmydHX9s1^K*Dw*5s;dF6uz?_X+UCUuaW z^Ie0X6&eU596)8Mna>8<0Kesw4w2Oml-;V~Y2!lUH?{9pmP@|hoQ6L+|D z(YkyZ$S~93aN`rGzGJw0!~vit8UY#`XiL%-@&u(b*2O~)xp5);qOjn5NXS4Nt2DCC z6tKuj#Tc2Hn?XgL`qJo==NrbcxB1Q5E1}b`I?EV#OT;ntUYtFEfRMVA4wgB9Z>4uI zg-*zl4=$J2{sNxX`)Ds|VWK?$9?j`=+PA`p*mpWz+5`G<|y_NnGF5!t;Q$(~{F z;i518av=OP?v_*)q13y`KU^*~THSYY=>-*HQ244%fK3cIc|QMKR9xBKmTuf=x47fS zqm+pJ*&9ujhN1A{sqVx;eU@hk@uIqr-E?K+m%ksPH6!{)fL#(S34kyRzMqc8xZUIi zBSN1XXod=aZ6uC{R_Iv%-s>4^0cZvf;meUA=3Z+Ba{_$k2TzB;Frd%&dV(543utvL z!Z&M=E>pSQicEn5kPtFYiv9l9bf3)mU#elWF^)I{GHxsIIDi&FGv6D~!_;!&nN#Yn za(VvG7hwhQbZkm%EKRuv?=yd;R7--+Az8@CAM#S4=d46lL zvT}l2^9ZR{AT_iLm68u+o)_Yd!CnA9<8Fv0N2qAhzY7;1v@5DtLD8wAB6ANtjdYd8 zPB1lJyu`q_PP=n16upy$IC~jgs}ZXWe-8t_lqTu^OSU3D>re~+g9!lh3(q@b1&~$xH{k&;$bZkTtP-?w z|1S!_11}kf94`vd*j%S#7QNw}1;$8X)8gJ%v^eg5H4}w;td%kG{t7cxf@9-xSCy&=;>dO^NIE zbBmMtw0olqUcVNhw)hKJX6qtRg5znfQSUVV{u3#P*a_i?Jt<>|WSjk6o6 z&UL&zm=39w+*O~UBUKb%;H1%AP7W`7iyyt=H0T+e2wllECC((P<){Mezq##n1vp5ZUw24Lb0xiVWSkAt0R$rr4WZRHh`nxy&tK+S+WnnV8O^>^Z6XSJ>i~Zj z?nQz;eptET^PNcFRpNt+&KLHeYqPE zf(UB5P^>^f&JD+W1F$X9=M_IDWJ(XQ6VR_V!w{a;YBzlNW8oc=&ti}O9O`RZPy0^f zGX-x)RoHjp(&R?VUMo2a>b9%tWkGvK=LgU$~-ii8xwP`R%~cNoQ!06ps$hMs{Y&# zd69e#9%*Ds_Hj&1N4K%h=5a<=hsq)V?FP+IvUDnk`py%TC9hU$-0o7fuPl_hA$g}y zV_mX^w_(hBrM4X)2fCMnU7&NTj=XIc2T+yA^wiYXihpLzKMq))x363756~kV3I=&G z9lU}rZ=`l?z0y)FgwF&s%exQ?oOliJH#4p*a?#T!7oHO$Uk_|+L2jz;RIpwilZN_% zSh1Y}2|awg-II8!-UNH%T4RQlf%TQ8?LNjJ*Zf=f{AV!-vOE*2rA;5C{iq+cBvclC zkh(4Y&g?hqlBhxTS@jO(G69dK+RhTIXDiQcDeB?%36HX17HDsO2Y<8d>m#<;g>0Q3 z4~NCo*6rmFm4L)<0QBBX86rC=vlys&0Ng(|P_6gke%&}@x;7ir;%>&OO&n(|wVF$O z24a&<$(BAe9fG0|8Hec`Q3R6qxFb9Q>_@A+w2-FnZHtJ{rTeG*H==Y$U#5+mesn;f z^lTogX-ndDhh@{7YJutjcu3b_Wa&4q5v)j-GF>IRkD%J`hmw|q?w4IT!c`NBDS0hG?+O1;P zCw!*VpK(i_G;|=kmyw&Cyj??+_TQRcbL8B1wnKD4PT}A^S#toTWKzlsq~y@*OCVbb zA(odLvuzrB8K84eKz^C3t@vEm&%BHoE1Xx~Kn7>^yrwBcm#YF<}(nHOHXXZNe9VJZ^~ophe75tw))S0j0IpQ24Dg&bOVIt?r+@%%7j!Ko1{Rz&= zA|`NYu%&F`YzgkU!O#M?hclhB6*X^>?Giba;s~Q=0`la^+@vkM9CORR)mV!2hEEvt zCq^uI-d(~Kv)C`WtAwGXN)}I7xF>lf3h0y7vmJl`{&Ym<`mYv*eiy0n_i#9aUf-?= zWU|{A4SFspO>a4)Q;!bKoxLu?vDHj3?0c$A_a0L`K3WRpJ$@iY2YpBp zkKnv}c`_qN5PcDBTIb8%78@GX9SCnpAHtiRp1958Pua$-bft3i>c|JknE1C5uiYQXu=MW{0~ zbzpDj{`Dd6j<_Z0dVXThs2N6U*dZpvq v_mAD)(6VMtoARNfqvLR}yy|FZNOuAJ&jfy) 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/atlases/buttons.png.import b/assets/sprites/atlases/buttons.png.import new file mode 100644 index 0000000..9f51d9c --- /dev/null +++ b/assets/sprites/atlases/buttons.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2c1erdy0xhkc" +path="res://.godot/imported/buttons.png-3aeb713c6d839208d95029b5a2b993c9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/sprites/atlases/buttons.png" +dest_files=["res://.godot/imported/buttons.png-3aeb713c6d839208d95029b5a2b993c9.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/assets/sprites/summertime_saga.png b/assets/sprites/background_summer.png similarity index 100% rename from assets/sprites/summertime_saga.png rename to assets/sprites/background_summer.png diff --git a/assets/sprites/summertime_saga.png.import b/assets/sprites/background_summer.png.import similarity index 69% rename from assets/sprites/summertime_saga.png.import rename to assets/sprites/background_summer.png.import index 612f026..d23f720 100644 --- a/assets/sprites/summertime_saga.png.import +++ b/assets/sprites/background_summer.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://b0tb2hjum40aw" -path="res://.godot/imported/summertime_saga.png-a514e890c4a5a9aa20ec33143673fe69.ctex" +path="res://.godot/imported/background_summer.png-700d604c57ef18a3dd284f06667ad7ba.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://assets/sprites/summertime_saga.png" -dest_files=["res://.godot/imported/summertime_saga.png-a514e890c4a5a9aa20ec33143673fe69.ctex"] +source_file="res://assets/sprites/background_summer.png" +dest_files=["res://.godot/imported/background_summer.png-700d604c57ef18a3dd284f06667ad7ba.ctex"] [params] diff --git a/assets/sprites/bucket.tres b/assets/sprites/bucket.tres new file mode 100644 index 0000000..a788e30 --- /dev/null +++ b/assets/sprites/bucket.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://ce04l60l6mhfk"] + +[ext_resource type="Texture2D" uid="uid://dvldjlg0nr355" path="res://assets/sprites/atlases/atlas1.png" id="1_h38vp"] + +[resource] +atlas = ExtResource("1_h38vp") +region = Rect2(356, 16, 40, 41) diff --git a/docs/ideas/location_ice-extractorium.md b/docs/ideas/location_ice-extractorium.md index fbd3d98..a9ced14 100644 --- a/docs/ideas/location_ice-extractorium.md +++ b/docs/ideas/location_ice-extractorium.md @@ -8,7 +8,7 @@ - Промёрзшая почва не даёт обычным расениям вцепится корнями, заставляя их скользить по поверхности. Зомби могут это использовать в свою пользу. - Вместо защиты отыгрывается нападение. Игроку требуется уничтожить все ледовые экстракторы. Игроки всё ещё могут потерять мозги. - Игрок находится на передвижной базе. (Не влияет на геймплей) -- Снегопад +- Растения может засыпать снегом. ## Растения diff --git a/docs/to-do/codebase.md b/docs/to-do/codebase.md index 49d31c6..db033a1 100644 --- a/docs/to-do/codebase.md +++ b/docs/to-do/codebase.md @@ -1 +1,2 @@ -- level scripting \ No newline at end of file +- level scripting +- !NEVER REMOVE! Documentate \ No newline at end of file diff --git a/project.godot b/project.godot index 937e7bc..91bd447 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="Liberation of the Neighbourville" run/main_scene="res://scenes/debug_lvl.tscn" -config/features=PackedStringArray("4.3", "C#", "Forward Plus") +config/features=PackedStringArray("4.4", "C#", "Forward Plus") config/icon="res://icon.png" config/windows_native_icon="res://icon.ico" diff --git a/scenes/debug_location.tscn b/scenes/debug_location.tscn new file mode 100644 index 0000000..77dfd92 --- /dev/null +++ b/scenes/debug_location.tscn @@ -0,0 +1,3 @@ +[gd_scene format=3 uid="uid://bu5ryqtgqwjp6"] + +[node name="DebugLocation" type="Node2D"] diff --git a/scenes/debug_lvl.tscn b/scenes/debug_lvl.tscn index 44f0aff..5f43c5d 100644 --- a/scenes/debug_lvl.tscn +++ b/scenes/debug_lvl.tscn @@ -1,14 +1,14 @@ [gd_scene load_steps=10 format=3 uid="uid://crxsvv7drckpw"] [ext_resource type="Script" path="res://scripts/components/level/RuntimeLevelData.cs" id="1_i3bf5"] -[ext_resource type="Texture2D" uid="uid://b0tb2hjum40aw" path="res://assets/sprites/summertime_saga.png" id="2_vmxhy"] -[ext_resource type="PackedScene" uid="uid://cg8713v6c5w15" path="res://scenes/pools.tscn" id="3_jv7x4"] +[ext_resource type="Texture2D" uid="uid://b0tb2hjum40aw" path="res://assets/sprites/background_summer.png" id="2_vmxhy"] +[ext_resource type="PackedScene" uid="uid://cg8713v6c5w15" path="res://scenes/level components/pools.tscn" id="3_jv7x4"] [ext_resource type="PackedScene" uid="uid://dpxxjfd5lv5sv" path="res://scenes/gui/choose_your_seeds.tscn" id="5_5e78h"] [ext_resource type="PackedScene" uid="uid://devn21c7luf45" path="res://scenes/level components/field_controller.tscn" id="5_lwpg6"] [ext_resource type="PackedScene" uid="uid://cfnmspei3k4p7" path="res://scenes/gui/runtime_gui.tscn" id="6_0baou"] [ext_resource type="PackedScene" uid="uid://bpekho7leatr5" path="res://scenes/sun.tscn" id="6_ay12k"] [ext_resource type="Script" path="res://scripts/components/level/SunSpawner.cs" id="6_lkguy"] -[ext_resource type="PackedScene" uid="uid://co11v3w8hbwgf" path="res://scenes/entities/Zombies/zombie.tscn" id="9_vwrdf"] +[ext_resource type="PackedScene" uid="uid://xu4i6tmkv00a" path="res://scenes/entities/Zombies/bucket_zombie.tscn" id="9_u7o5c"] [node name="debug_lvl" type="Node2D"] @@ -49,44 +49,7 @@ SunScene = ExtResource("6_ay12k") wait_time = 5.0 autostart = true -[node name="Zombie" parent="." instance=ExtResource("9_vwrdf")] -position = Vector2(806, 134) -_line = 3 - -[node name="Zombie2" parent="." instance=ExtResource("9_vwrdf")] -position = Vector2(824, 134) -_line = 3 - -[node name="Zombie3" parent="." instance=ExtResource("9_vwrdf")] -position = Vector2(779, 134) -_line = 3 - -[node name="Zombie4" parent="." instance=ExtResource("9_vwrdf")] -position = Vector2(848, 134) -_line = 3 - -[node name="Zombie5" parent="." instance=ExtResource("9_vwrdf")] -position = Vector2(801, 376) -_line = 5 - -[node name="Zombie6" parent="." instance=ExtResource("9_vwrdf")] -position = Vector2(819, 376) -_line = 5 - -[node name="Zombie7" parent="." instance=ExtResource("9_vwrdf")] -position = Vector2(774, 376) -_line = 5 - -[node name="Zombie8" parent="." instance=ExtResource("9_vwrdf")] -position = Vector2(843, 376) -_line = 5 +[node name="BucketZombie" parent="." instance=ExtResource("9_u7o5c")] +position = Vector2(729, 257) [connection signal="timeout" from="SunSpawner/Timer" to="SunSpawner" method="Spawn"] -[connection signal="OnHPChanged" from="Zombie" to="Zombie/AudioStreamPlayer2D" method="OnHPChanged"] -[connection signal="OnHPChanged" from="Zombie2" to="Zombie2/AudioStreamPlayer2D" method="OnHPChanged"] -[connection signal="OnHPChanged" from="Zombie3" to="Zombie3/AudioStreamPlayer2D" method="OnHPChanged"] -[connection signal="OnHPChanged" from="Zombie4" to="Zombie4/AudioStreamPlayer2D" method="OnHPChanged"] -[connection signal="OnHPChanged" from="Zombie5" to="Zombie5/AudioStreamPlayer2D" method="OnHPChanged"] -[connection signal="OnHPChanged" from="Zombie6" to="Zombie6/AudioStreamPlayer2D" method="OnHPChanged"] -[connection signal="OnHPChanged" from="Zombie7" to="Zombie7/AudioStreamPlayer2D" method="OnHPChanged"] -[connection signal="OnHPChanged" from="Zombie8" to="Zombie8/AudioStreamPlayer2D" method="OnHPChanged"] diff --git a/scenes/entities/Zombies/bucket_zombie.tscn b/scenes/entities/Zombies/bucket_zombie.tscn new file mode 100644 index 0000000..f6be64c --- /dev/null +++ b/scenes/entities/Zombies/bucket_zombie.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=5 format=3 uid="uid://xu4i6tmkv00a"] + +[ext_resource type="PackedScene" uid="uid://hhjbqkjqpt7x" path="res://scenes/entities/Zombies/cone_zombie.tscn" id="1_mwqpo"] +[ext_resource type="Shader" path="res://assets/shaders/CG_color_blender.gdshader" id="2_3mrqj"] +[ext_resource type="Texture2D" uid="uid://ce04l60l6mhfk" path="res://assets/sprites/bucket.tres" id="3_0nlp0"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_wdi07"] +resource_local_to_scene = true +shader = ExtResource("2_3mrqj") +shader_parameter/blend_color = Color(1, 1, 1, 1) +shader_parameter/amount = null + +[node name="BucketZombie" instance=ExtResource("1_mwqpo")] + +[node name="CanvasGroup" parent="." index="0"] +material = SubResource("ShaderMaterial_wdi07") + +[node name="Hat" parent="CanvasGroup" index="1"] +texture = ExtResource("3_0nlp0") + +[node name="Armor" parent="." index="8"] +_maxHP = 180 diff --git a/scenes/entities/Zombies/cone_zombie.tscn b/scenes/entities/Zombies/cone_zombie.tscn new file mode 100644 index 0000000..7c9edc6 --- /dev/null +++ b/scenes/entities/Zombies/cone_zombie.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=6 format=3 uid="uid://hhjbqkjqpt7x"] + +[ext_resource type="PackedScene" uid="uid://co11v3w8hbwgf" path="res://scenes/entities/Zombies/zombie.tscn" id="1_3dq4c"] +[ext_resource type="Shader" path="res://assets/shaders/CG_color_blender.gdshader" id="2_2dq8e"] +[ext_resource type="Script" path="res://scripts/components/Armor.cs" id="3_5s7in"] +[ext_resource type="Texture2D" uid="uid://ceqvdmude7cgg" path="res://assets/sprites/cone.tres" id="4_qdhik"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_sat5k"] +resource_local_to_scene = true +shader = ExtResource("2_2dq8e") +shader_parameter/blend_color = Color(1, 1, 1, 1) +shader_parameter/amount = null + +[node name="ConeZombie" node_paths=PackedStringArray("_armor") instance=ExtResource("1_3dq4c")] +_armor = NodePath("Armor") + +[node name="CanvasGroup" parent="." index="0"] +material = SubResource("ShaderMaterial_sat5k") + +[node name="Hat" type="Sprite2D" parent="CanvasGroup" index="1"] +position = Vector2(-6, -88) +texture = ExtResource("4_qdhik") + +[node name="Armor" type="Node" parent="." index="8"] +script = ExtResource("3_5s7in") +_maxHP = 60 + +[connection signal="ArmorLost" from="Armor" to="CanvasGroup/Hat" method="queue_free"] diff --git a/scenes/gui/choose_your_seeds.tscn b/scenes/gui/choose_your_seeds.tscn index a0470f2..e64d202 100644 --- a/scenes/gui/choose_your_seeds.tscn +++ b/scenes/gui/choose_your_seeds.tscn @@ -3,9 +3,9 @@ [ext_resource type="Theme" uid="uid://e8n88g31w7x7" path="res://resources/themes/ChooseYourSeeds.tres" id="1_bfo8i"] [ext_resource type="Texture2D" uid="uid://dr8a0rx42o3qy" path="res://assets/sprites/gui/ChooseYourSeeds/PlantFrame.tres" id="2_so2bw"] [ext_resource type="Texture2D" uid="uid://dycdvvgmgmfu6" path="res://assets/sprites/gui/ChooseYourSeeds/FrameField.tres" id="3_rn5vx"] -[ext_resource type="Script" path="res://scripts/components/gui/choose_your_seeds/GridLoader.cs" id="4_i7sou"] +[ext_resource type="Script" uid="uid://eq3ecja30mlj" path="res://scripts/components/gui/choose_your_seeds/GridLoader.cs" id="4_i7sou"] [ext_resource type="PackedScene" uid="uid://10b1egek6upx" path="res://scenes/gui/level_run_button.tscn" id="5_n80ic"] -[ext_resource type="Script" path="res://scripts/components/gui/choose_your_seeds/LevelRunButton.cs" id="7_k6b6g"] +[ext_resource type="Script" uid="uid://d26waisd3v488" path="res://scripts/components/gui/choose_your_seeds/LevelRunButton.cs" id="7_k6b6g"] [sub_resource type="Animation" id="Animation_0rps3"] resource_name = "Hide" @@ -91,9 +91,9 @@ tracks/1/keys = { [sub_resource type="AnimationLibrary" id="AnimationLibrary_tguwa"] _data = { -"Hide": SubResource("Animation_0rps3"), -"RESET": SubResource("Animation_8he0w"), -"Show": SubResource("Animation_omiwq") +&"Hide": SubResource("Animation_0rps3"), +&"RESET": SubResource("Animation_8he0w"), +&"Show": SubResource("Animation_omiwq") } [sub_resource type="ViewportTexture" id="ViewportTexture_rmoaa"] @@ -113,7 +113,7 @@ theme = ExtResource("1_bfo8i") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] root_node = NodePath("../Panel/LevelRunButton") libraries = { -"": SubResource("AnimationLibrary_tguwa") +&"": SubResource("AnimationLibrary_tguwa") } autoplay = "Show" diff --git a/scenes/pools.tscn b/scenes/level components/pools.tscn similarity index 85% rename from scenes/pools.tscn rename to scenes/level components/pools.tscn index 30d031e..81df8d9 100644 --- a/scenes/pools.tscn +++ b/scenes/level components/pools.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" path="res://scripts/components/level/PoolContainer.cs" id="1_31ggc"] -[node name="Pools" type="Node" node_paths=PackedStringArray("Zombies", "Plants", "Projectiles", "Structures")] +[node name="Pools" type="Node2D" node_paths=PackedStringArray("Zombies", "Plants", "Projectiles", "Structures")] script = ExtResource("1_31ggc") Zombies = NodePath("Zombies") Plants = NodePath("Plants") diff --git a/scenes/level_button.tscn b/scenes/level_button.tscn new file mode 100644 index 0000000..cb91dac --- /dev/null +++ b/scenes/level_button.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=2 format=3 uid="uid://dylfqmo3d26ce"] + +[ext_resource type="Script" path="res://scripts/LevelButton.cs" id="1_qey5e"] + +[node name="LevelButton" type="TextureRect"] +offset_right = 40.0 +offset_bottom = 40.0 +script = ExtResource("1_qey5e") diff --git a/scenes/summer.tscn b/scenes/summer.tscn new file mode 100644 index 0000000..b1aca74 --- /dev/null +++ b/scenes/summer.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=3 format=3 uid="uid://ccrr8drx0a7gy"] + +[ext_resource type="PackedScene" uid="uid://dd3yegl1xo44m" path="res://scenes/templates/level_template.tscn" id="1_53h7t"] +[ext_resource type="Texture2D" uid="uid://b0tb2hjum40aw" path="res://assets/sprites/background_summer.png" id="2_8hj2g"] + +[node name="Summer" instance=ExtResource("1_53h7t")] + +[node name="Sprite2D" type="Sprite2D" parent="." index="1"] +texture = ExtResource("2_8hj2g") diff --git a/scenes/templates/level_template.tscn b/scenes/templates/level_template.tscn index ab15fdf..ffd26b6 100644 --- a/scenes/templates/level_template.tscn +++ b/scenes/templates/level_template.tscn @@ -1,3 +1,31 @@ -[gd_scene format=3 uid="uid://dd3yegl1xo44m"] +[gd_scene load_steps=6 format=3 uid="uid://dd3yegl1xo44m"] + +[ext_resource type="Script" path="res://scripts/components/level/RuntimeLevelData.cs" id="1_31ltw"] +[ext_resource type="PackedScene" uid="uid://devn21c7luf45" path="res://scenes/level components/field_controller.tscn" id="2_w4oj7"] +[ext_resource type="PackedScene" uid="uid://cg8713v6c5w15" path="res://scenes/level components/pools.tscn" id="3_r1g7l"] +[ext_resource type="PackedScene" uid="uid://dpxxjfd5lv5sv" path="res://scenes/gui/choose_your_seeds.tscn" id="3_xy2c6"] +[ext_resource type="PackedScene" uid="uid://cfnmspei3k4p7" path="res://scenes/gui/runtime_gui.tscn" id="4_okro4"] [node name="level_template" type="Node2D"] + +[node name="Camera2D" type="Camera2D" parent="."] + +[node name="RuntimeLevelData" type="Node" parent="."] +script = ExtResource("1_31ltw") + +[node name="Pools" parent="." instance=ExtResource("3_r1g7l")] + +[node name="GameUserInterface" type="CanvasLayer" parent="."] +layer = 10 + +[node name="ChooseYourSeeds" parent="GameUserInterface" instance=ExtResource("3_xy2c6")] +metadata/_edit_lock_ = true + +[node name="RuntimeGUI" parent="GameUserInterface" instance=ExtResource("4_okro4")] + +[node name="OverlayGameobjects" type="CanvasLayer" parent="."] +layer = 6 + +[node name="FieldController" parent="OverlayGameobjects" instance=ExtResource("2_w4oj7")] + +[node name="MainAnimationPlayer" type="AnimationPlayer" parent="."] diff --git a/scripts/Cursor.cs.uid b/scripts/Cursor.cs.uid new file mode 100644 index 0000000..a321807 --- /dev/null +++ b/scripts/Cursor.cs.uid @@ -0,0 +1 @@ +uid://c6ucy48qwaxuc diff --git a/scripts/LevelButton.cs b/scripts/LevelButton.cs index 600120e..b93198d 100644 --- a/scripts/LevelButton.cs +++ b/scripts/LevelButton.cs @@ -7,7 +7,7 @@ namespace Newlon; // Button that contains level to load // -public partial class LevelButton : Node +public partial class LevelButton : TextureButton { [Export] private Script _levelScript; [Export] private PackedScene _levelTileset; diff --git a/scripts/LevelButton.cs.uid b/scripts/LevelButton.cs.uid new file mode 100644 index 0000000..fc3fe99 --- /dev/null +++ b/scripts/LevelButton.cs.uid @@ -0,0 +1 @@ +uid://cn3q18jh2rej7 diff --git a/scripts/LevelController.cs.uid b/scripts/LevelController.cs.uid new file mode 100644 index 0000000..c719e7c --- /dev/null +++ b/scripts/LevelController.cs.uid @@ -0,0 +1 @@ +uid://v8gsvdqhbtml diff --git a/scripts/Sun.cs.uid b/scripts/Sun.cs.uid new file mode 100644 index 0000000..cb80f00 --- /dev/null +++ b/scripts/Sun.cs.uid @@ -0,0 +1 @@ +uid://qgeovvluk8yj diff --git a/scripts/Utility.cs.uid b/scripts/Utility.cs.uid new file mode 100644 index 0000000..0ffdeba --- /dev/null +++ b/scripts/Utility.cs.uid @@ -0,0 +1 @@ +uid://ccaap8m63b62t diff --git a/scripts/components/Armor.cs b/scripts/components/Armor.cs new file mode 100644 index 0000000..ab2a656 --- /dev/null +++ b/scripts/components/Armor.cs @@ -0,0 +1,54 @@ +using Godot; + +namespace Newlon.Components; + +[GlobalClass] +public partial class Armor : Node +{ + [Signal] + public delegate void ArmorDamagedEventHandler(int hp); + [Signal] + public delegate void ArmorLostEventHandler(); + + [Export] + private int _maxHP; + private int _hp; + private bool _lost = false; + + public override void _Ready() + { + _hp = _maxHP; + } + + public int RecieveDamage(int damage) + { + if(_lost) + return damage; + int returnAmount = 0; + _hp -= damage; + if(_hp <= 0) + { + returnAmount = _hp; + _hp = 0; + EmitSignal(SignalName.ArmorLost); + _lost = true; + } + EmitSignal(SignalName.ArmorDamaged,_hp); + return returnAmount; + } + + public int Heal(int amount) + { + if(_lost) + return amount; + int returnAmount = 0; + _hp += amount; + if (_hp >= _maxHP) + { + returnAmount = _hp-_maxHP; + _hp = _maxHP; + } + EmitSignal(SignalName.ArmorDamaged,_hp); + return returnAmount; + } +} diff --git a/scripts/components/Armor.cs.uid b/scripts/components/Armor.cs.uid new file mode 100644 index 0000000..ae22cc3 --- /dev/null +++ b/scripts/components/Armor.cs.uid @@ -0,0 +1 @@ +uid://fd4im1fmwc5n diff --git a/scripts/components/FlashComponent.cs.uid b/scripts/components/FlashComponent.cs.uid new file mode 100644 index 0000000..c0f482d --- /dev/null +++ b/scripts/components/FlashComponent.cs.uid @@ -0,0 +1 @@ +uid://c5vfccegyy01t diff --git a/scripts/components/IEntity.cs.uid b/scripts/components/IEntity.cs.uid new file mode 100644 index 0000000..c16d5f4 --- /dev/null +++ b/scripts/components/IEntity.cs.uid @@ -0,0 +1 @@ +uid://cjdeq452vk2ll diff --git a/scripts/components/ILocalTimescale.cs.uid b/scripts/components/ILocalTimescale.cs.uid new file mode 100644 index 0000000..48a6d9b --- /dev/null +++ b/scripts/components/ILocalTimescale.cs.uid @@ -0,0 +1 @@ +uid://bxu6ljkmmlgd5 diff --git a/scripts/components/IProjectile.cs.uid b/scripts/components/IProjectile.cs.uid new file mode 100644 index 0000000..6848eee --- /dev/null +++ b/scripts/components/IProjectile.cs.uid @@ -0,0 +1 @@ +uid://blbiq5r0w17hf diff --git a/scripts/components/LevelGUIElements.cs.uid b/scripts/components/LevelGUIElements.cs.uid new file mode 100644 index 0000000..5bc1a3c --- /dev/null +++ b/scripts/components/LevelGUIElements.cs.uid @@ -0,0 +1 @@ +uid://cwa1eydeiy3y4 diff --git a/scripts/components/LinearProjectile.cs.uid b/scripts/components/LinearProjectile.cs.uid new file mode 100644 index 0000000..4df9b6f --- /dev/null +++ b/scripts/components/LinearProjectile.cs.uid @@ -0,0 +1 @@ +uid://dxlwvwy3hj56x diff --git a/scripts/components/gui/FastForwardButton.cs.uid b/scripts/components/gui/FastForwardButton.cs.uid new file mode 100644 index 0000000..ac44d85 --- /dev/null +++ b/scripts/components/gui/FastForwardButton.cs.uid @@ -0,0 +1 @@ +uid://cwn3bd2k7mdq6 diff --git a/scripts/components/gui/ShovelButton.cs.uid b/scripts/components/gui/ShovelButton.cs.uid new file mode 100644 index 0000000..9d9a083 --- /dev/null +++ b/scripts/components/gui/ShovelButton.cs.uid @@ -0,0 +1 @@ +uid://d4dbg0us5ngxy diff --git a/scripts/components/gui/SunCounter.cs.uid b/scripts/components/gui/SunCounter.cs.uid new file mode 100644 index 0000000..b8b7372 --- /dev/null +++ b/scripts/components/gui/SunCounter.cs.uid @@ -0,0 +1 @@ +uid://dwxohya1exdkh diff --git a/scripts/components/gui/VeilResizer.cs.uid b/scripts/components/gui/VeilResizer.cs.uid new file mode 100644 index 0000000..1a8f177 --- /dev/null +++ b/scripts/components/gui/VeilResizer.cs.uid @@ -0,0 +1 @@ +uid://ddi84kmmq1qla diff --git a/scripts/components/gui/choose_your_seeds/GridLoader.cs.uid b/scripts/components/gui/choose_your_seeds/GridLoader.cs.uid new file mode 100644 index 0000000..c6a4b42 --- /dev/null +++ b/scripts/components/gui/choose_your_seeds/GridLoader.cs.uid @@ -0,0 +1 @@ +uid://eq3ecja30mlj diff --git a/scripts/components/gui/choose_your_seeds/LevelRunButton.cs.uid b/scripts/components/gui/choose_your_seeds/LevelRunButton.cs.uid new file mode 100644 index 0000000..a16b379 --- /dev/null +++ b/scripts/components/gui/choose_your_seeds/LevelRunButton.cs.uid @@ -0,0 +1 @@ +uid://d26waisd3v488 diff --git a/scripts/components/gui/seedpackets/ChoosableHandler.cs.uid b/scripts/components/gui/seedpackets/ChoosableHandler.cs.uid new file mode 100644 index 0000000..ae78fc7 --- /dev/null +++ b/scripts/components/gui/seedpackets/ChoosableHandler.cs.uid @@ -0,0 +1 @@ +uid://b3sut12n56w1y diff --git a/scripts/components/gui/seedpackets/HotbarHandler.cs.uid b/scripts/components/gui/seedpackets/HotbarHandler.cs.uid new file mode 100644 index 0000000..55bf04e --- /dev/null +++ b/scripts/components/gui/seedpackets/HotbarHandler.cs.uid @@ -0,0 +1 @@ +uid://gvgt14v1hndn diff --git a/scripts/components/gui/seedpackets/HotbarPregameHandler.cs.uid b/scripts/components/gui/seedpackets/HotbarPregameHandler.cs.uid new file mode 100644 index 0000000..4bc1c70 --- /dev/null +++ b/scripts/components/gui/seedpackets/HotbarPregameHandler.cs.uid @@ -0,0 +1 @@ +uid://bnygd8pcmoewp diff --git a/scripts/components/gui/seedpackets/ISeedpacketPress.cs.uid b/scripts/components/gui/seedpackets/ISeedpacketPress.cs.uid new file mode 100644 index 0000000..69fae63 --- /dev/null +++ b/scripts/components/gui/seedpackets/ISeedpacketPress.cs.uid @@ -0,0 +1 @@ +uid://o0ly38oqcuwu diff --git a/scripts/components/gui/seedpackets/ISeedpacketProcess.cs.uid b/scripts/components/gui/seedpackets/ISeedpacketProcess.cs.uid new file mode 100644 index 0000000..86120b4 --- /dev/null +++ b/scripts/components/gui/seedpackets/ISeedpacketProcess.cs.uid @@ -0,0 +1 @@ +uid://q2r43hym7s82 diff --git a/scripts/components/gui/seedpackets/ISeedpacketUnfocus.cs.uid b/scripts/components/gui/seedpackets/ISeedpacketUnfocus.cs.uid new file mode 100644 index 0000000..682c53a --- /dev/null +++ b/scripts/components/gui/seedpackets/ISeedpacketUnfocus.cs.uid @@ -0,0 +1 @@ +uid://mdm8cepvvo4t diff --git a/scripts/components/gui/seedpackets/Seedpacket.cs.uid b/scripts/components/gui/seedpackets/Seedpacket.cs.uid new file mode 100644 index 0000000..d1e23cc --- /dev/null +++ b/scripts/components/gui/seedpackets/Seedpacket.cs.uid @@ -0,0 +1 @@ +uid://cn6ddajdtf4ep diff --git a/scripts/components/gui/seedpackets/SeedpacketHandler.cs.uid b/scripts/components/gui/seedpackets/SeedpacketHandler.cs.uid new file mode 100644 index 0000000..243fe0c --- /dev/null +++ b/scripts/components/gui/seedpackets/SeedpacketHandler.cs.uid @@ -0,0 +1 @@ +uid://cr774updc04fu diff --git a/scripts/components/level/PlantField.cs b/scripts/components/level/PlantField.cs index f5ec69b..f8bbc11 100644 --- a/scripts/components/level/PlantField.cs +++ b/scripts/components/level/PlantField.cs @@ -25,7 +25,8 @@ public partial class PlantField : Node2D _slot = slot; if (plant == null) { - _plantSetter.GetChild(0).QueueFree(); + foreach(var child in _plantSetter.GetChildren()) + child.QueueFree(); } else { diff --git a/scripts/components/level/PlantField.cs.uid b/scripts/components/level/PlantField.cs.uid new file mode 100644 index 0000000..4496205 --- /dev/null +++ b/scripts/components/level/PlantField.cs.uid @@ -0,0 +1 @@ +uid://bj7rw2f6qu1lg diff --git a/scripts/components/level/PoolContainer.cs.uid b/scripts/components/level/PoolContainer.cs.uid new file mode 100644 index 0000000..bb5b09c --- /dev/null +++ b/scripts/components/level/PoolContainer.cs.uid @@ -0,0 +1 @@ +uid://bso32xkw738sy diff --git a/scripts/components/level/RuntimeLevelData.cs.uid b/scripts/components/level/RuntimeLevelData.cs.uid new file mode 100644 index 0000000..0e99437 --- /dev/null +++ b/scripts/components/level/RuntimeLevelData.cs.uid @@ -0,0 +1 @@ +uid://bndu1h5kgcde8 diff --git a/scripts/components/level/SunSpawner.cs.uid b/scripts/components/level/SunSpawner.cs.uid new file mode 100644 index 0000000..ad6ffd5 --- /dev/null +++ b/scripts/components/level/SunSpawner.cs.uid @@ -0,0 +1 @@ +uid://cslqjdd5wq4rc diff --git a/scripts/components/plants/AreaAttack.cs.uid b/scripts/components/plants/AreaAttack.cs.uid new file mode 100644 index 0000000..2c8cfca --- /dev/null +++ b/scripts/components/plants/AreaAttack.cs.uid @@ -0,0 +1 @@ +uid://co7ttejdo2qot diff --git a/scripts/components/plants/ExplosionComponent.cs.uid b/scripts/components/plants/ExplosionComponent.cs.uid new file mode 100644 index 0000000..81501a4 --- /dev/null +++ b/scripts/components/plants/ExplosionComponent.cs.uid @@ -0,0 +1 @@ +uid://bhl6o2m3fn4xg diff --git a/scripts/components/plants/Eyesight.cs.uid b/scripts/components/plants/Eyesight.cs.uid new file mode 100644 index 0000000..7933517 --- /dev/null +++ b/scripts/components/plants/Eyesight.cs.uid @@ -0,0 +1 @@ +uid://dn53jvpjyg63l diff --git a/scripts/components/plants/PlantEyesightLimiter.cs.uid b/scripts/components/plants/PlantEyesightLimiter.cs.uid new file mode 100644 index 0000000..21a60a3 --- /dev/null +++ b/scripts/components/plants/PlantEyesightLimiter.cs.uid @@ -0,0 +1 @@ +uid://hccb0aee0x0o diff --git a/scripts/components/plants/PlantSunSpawner.cs.uid b/scripts/components/plants/PlantSunSpawner.cs.uid new file mode 100644 index 0000000..55d10dc --- /dev/null +++ b/scripts/components/plants/PlantSunSpawner.cs.uid @@ -0,0 +1 @@ +uid://b71gebny84s81 diff --git a/scripts/components/plants/ReturnEffect.cs.uid b/scripts/components/plants/ReturnEffect.cs.uid new file mode 100644 index 0000000..7a02632 --- /dev/null +++ b/scripts/components/plants/ReturnEffect.cs.uid @@ -0,0 +1 @@ +uid://bmtukcq10m8wo diff --git a/scripts/components/plants/RuntimePlantData.cs.uid b/scripts/components/plants/RuntimePlantData.cs.uid new file mode 100644 index 0000000..07d0448 --- /dev/null +++ b/scripts/components/plants/RuntimePlantData.cs.uid @@ -0,0 +1 @@ +uid://dli2i6albvugt diff --git a/scripts/components/plants/Shooter.cs.uid b/scripts/components/plants/Shooter.cs.uid new file mode 100644 index 0000000..43979d1 --- /dev/null +++ b/scripts/components/plants/Shooter.cs.uid @@ -0,0 +1 @@ +uid://ceprqkraw3v6m diff --git a/scripts/components/plants/ThreepeaterShooter.cs.uid b/scripts/components/plants/ThreepeaterShooter.cs.uid new file mode 100644 index 0000000..9314942 --- /dev/null +++ b/scripts/components/plants/ThreepeaterShooter.cs.uid @@ -0,0 +1 @@ +uid://djpc0kvagpadv diff --git a/scripts/components/plants/behaviours/AloeBehaviour.cs.uid b/scripts/components/plants/behaviours/AloeBehaviour.cs.uid new file mode 100644 index 0000000..9eb6922 --- /dev/null +++ b/scripts/components/plants/behaviours/AloeBehaviour.cs.uid @@ -0,0 +1 @@ +uid://cljytsmqac0w7 diff --git a/scripts/components/plants/behaviours/BaseBehaviour.cs.uid b/scripts/components/plants/behaviours/BaseBehaviour.cs.uid new file mode 100644 index 0000000..d23f061 --- /dev/null +++ b/scripts/components/plants/behaviours/BaseBehaviour.cs.uid @@ -0,0 +1 @@ +uid://3dbmgnr7qxee diff --git a/scripts/components/plants/behaviours/HpBasedBehaviour.cs.uid b/scripts/components/plants/behaviours/HpBasedBehaviour.cs.uid new file mode 100644 index 0000000..b3a7b81 --- /dev/null +++ b/scripts/components/plants/behaviours/HpBasedBehaviour.cs.uid @@ -0,0 +1 @@ +uid://btkmd86pn828y diff --git a/scripts/components/plants/behaviours/PeashooterBehaviour.cs.uid b/scripts/components/plants/behaviours/PeashooterBehaviour.cs.uid new file mode 100644 index 0000000..c83a83b --- /dev/null +++ b/scripts/components/plants/behaviours/PeashooterBehaviour.cs.uid @@ -0,0 +1 @@ +uid://bdk5iqtw4xbkl diff --git a/scripts/components/plants/behaviours/PotatomineBehaviour.cs.uid b/scripts/components/plants/behaviours/PotatomineBehaviour.cs.uid new file mode 100644 index 0000000..5e9971d --- /dev/null +++ b/scripts/components/plants/behaviours/PotatomineBehaviour.cs.uid @@ -0,0 +1 @@ +uid://c7qfh4py0uulo diff --git a/scripts/components/plants/behaviours/SpikeweedBehaviour.cs.uid b/scripts/components/plants/behaviours/SpikeweedBehaviour.cs.uid new file mode 100644 index 0000000..e035e12 --- /dev/null +++ b/scripts/components/plants/behaviours/SpikeweedBehaviour.cs.uid @@ -0,0 +1 @@ +uid://dqquodxaijmem diff --git a/scripts/components/plants/behaviours/SunflowerBehaviour.cs.uid b/scripts/components/plants/behaviours/SunflowerBehaviour.cs.uid new file mode 100644 index 0000000..3e1957d --- /dev/null +++ b/scripts/components/plants/behaviours/SunflowerBehaviour.cs.uid @@ -0,0 +1 @@ +uid://bth7gah4tn7uj diff --git a/scripts/components/zombies/AudioDamage.cs.uid b/scripts/components/zombies/AudioDamage.cs.uid new file mode 100644 index 0000000..958b64c --- /dev/null +++ b/scripts/components/zombies/AudioDamage.cs.uid @@ -0,0 +1 @@ +uid://bsg4utgc0u0vo diff --git a/scripts/components/zombies/EatBox.cs.uid b/scripts/components/zombies/EatBox.cs.uid new file mode 100644 index 0000000..6bf3c25 --- /dev/null +++ b/scripts/components/zombies/EatBox.cs.uid @@ -0,0 +1 @@ +uid://dqyony6jxt2p0 diff --git a/scripts/components/zombies/RuntimeZombieData.cs b/scripts/components/zombies/RuntimeZombieData.cs index 17893f6..49f0b21 100644 --- a/scripts/components/zombies/RuntimeZombieData.cs +++ b/scripts/components/zombies/RuntimeZombieData.cs @@ -16,14 +16,13 @@ public partial class RuntimeZombieData : Node2D, IEntity, ILocalTimescale, IEffe [Export] private int _maxHP; [Export] - private int _line; + private Armor _armor; + private float _localTimescale = 1.0f; public int Hp => _hp; - public int MaxHp => _maxHP; - - public int Line => _line; + public int MaxHp => _maxHP; public bool AbleToEat = true; @@ -54,8 +53,14 @@ public partial class RuntimeZombieData : Node2D, IEntity, ILocalTimescale, IEffe public void Heal(int amount,Node origin) { - _hp += amount; + if(_armor != null) + { + _hp += _armor.Heal(amount); + } + else + _hp += amount; EmitSignal(SignalName.OnHPChanged,amount,origin); + if (MaxHp > 0) { @@ -65,7 +70,12 @@ public partial class RuntimeZombieData : Node2D, IEntity, ILocalTimescale, IEffe public void TakeDamage(int amount, Node origin, Utility.DamageTypes damageType = Utility.DamageTypes.PHYSICAL) { - _hp -= amount; + if(_armor != null) + { + _hp -= _armor.RecieveDamage(amount); + } + else + _hp -= amount; EmitSignal(SignalName.OnHPChanged,-amount, origin); if (_hp <= 0) diff --git a/scripts/components/zombies/RuntimeZombieData.cs.uid b/scripts/components/zombies/RuntimeZombieData.cs.uid new file mode 100644 index 0000000..a532fda --- /dev/null +++ b/scripts/components/zombies/RuntimeZombieData.cs.uid @@ -0,0 +1 @@ +uid://dildme6epx8l4 diff --git a/scripts/components/zombies/ZombieMover.cs.uid b/scripts/components/zombies/ZombieMover.cs.uid new file mode 100644 index 0000000..9ed6584 --- /dev/null +++ b/scripts/components/zombies/ZombieMover.cs.uid @@ -0,0 +1 @@ +uid://7hdj2k14lfe4 diff --git a/scripts/components/zombies/behaviours/BasicZombieBehaviour.cs.uid b/scripts/components/zombies/behaviours/BasicZombieBehaviour.cs.uid new file mode 100644 index 0000000..b6dc54c --- /dev/null +++ b/scripts/components/zombies/behaviours/BasicZombieBehaviour.cs.uid @@ -0,0 +1 @@ +uid://cgf61r46dgh4m diff --git a/scripts/debug/Cheats.cs.uid b/scripts/debug/Cheats.cs.uid new file mode 100644 index 0000000..a53b15b --- /dev/null +++ b/scripts/debug/Cheats.cs.uid @@ -0,0 +1 @@ +uid://cb8n22kkqa8ig diff --git a/scripts/debug/Clock.cs.uid b/scripts/debug/Clock.cs.uid new file mode 100644 index 0000000..259b59a --- /dev/null +++ b/scripts/debug/Clock.cs.uid @@ -0,0 +1 @@ +uid://d2aq2wjq0gt7x diff --git a/scripts/resources/PlantResource.cs.uid b/scripts/resources/PlantResource.cs.uid new file mode 100644 index 0000000..e2f2360 --- /dev/null +++ b/scripts/resources/PlantResource.cs.uid @@ -0,0 +1 @@ +uid://cyenlko1knygw diff --git a/scripts/systems/effects/Effect.cs.uid b/scripts/systems/effects/Effect.cs.uid new file mode 100644 index 0000000..2f6e368 --- /dev/null +++ b/scripts/systems/effects/Effect.cs.uid @@ -0,0 +1 @@ +uid://bcc7skl7ts6sh diff --git a/scripts/systems/effects/GarlicEffect.cs b/scripts/systems/effects/GarlicEffect.cs index d48a60a..9ef375f 100644 --- a/scripts/systems/effects/GarlicEffect.cs +++ b/scripts/systems/effects/GarlicEffect.cs @@ -47,7 +47,6 @@ public partial class GarlicEffect : Effect tween.TweenProperty(zombieData,"position:y",zombieData.GlobalPosition.Y + Utility.TileHeight * mult, 1.0); tween.TweenCallback(Callable.From(() => {zombieData.AbleToEat = true;})); } - } public override void Process(Node target) diff --git a/scripts/systems/effects/GarlicEffect.cs.uid b/scripts/systems/effects/GarlicEffect.cs.uid new file mode 100644 index 0000000..2aab27d --- /dev/null +++ b/scripts/systems/effects/GarlicEffect.cs.uid @@ -0,0 +1 @@ +uid://bb6lv1djnqjaw diff --git a/scripts/systems/effects/IEffectHandler.cs.uid b/scripts/systems/effects/IEffectHandler.cs.uid new file mode 100644 index 0000000..8c581ef --- /dev/null +++ b/scripts/systems/effects/IEffectHandler.cs.uid @@ -0,0 +1 @@ +uid://eeqk3fvjwg31 diff --git a/scripts/systems/effects/SlownessEffect.cs.uid b/scripts/systems/effects/SlownessEffect.cs.uid new file mode 100644 index 0000000..e4e32c8 --- /dev/null +++ b/scripts/systems/effects/SlownessEffect.cs.uid @@ -0,0 +1 @@ +uid://dyc7fc5bfkdii