From c5603fd79884abd76f413bf89bdab54f4e701029 Mon Sep 17 00:00:00 2001 From: AndroBetel <44546836+AndroBetel@users.noreply.github.com> Date: Wed, 20 Mar 2024 01:48:27 +0300 Subject: [PATCH 1/5] solider --- code/__DEFINES/mobs.dm | 3 ++ code/__DEFINES/xeno.dm | 5 +- code/game/jobs/role_authority.dm | 2 + code/modules/admin/game_master/game_master.dm | 2 +- .../living/carbon/xenomorph/castes/Soldier.dm | 49 ++++++++++++++++++ colonialmarines.dme | 1 + icons/mob/xenos/soldier.dmi | Bin 0 -> 6483 bytes icons/mob/xenos/wounds.dmi | Bin 39595 -> 42384 bytes 8 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm create mode 100644 icons/mob/xenos/soldier.dmi diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 67c52379e8..dfddb2599e 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -375,6 +375,9 @@ // Hellhound strain flags #define HELLHOUND_NORMAL "Normal" +// Soldier strain flags +#define SOLDIER_NORMAL "Normal" + var/list/default_onmob_icons = list( WEAR_L_HAND = 'icons/mob/humans/onmob/items_lefthand_0.dmi', WEAR_R_HAND = 'icons/mob/humans/onmob/items_righthand_0.dmi', diff --git a/code/__DEFINES/xeno.dm b/code/__DEFINES/xeno.dm index 878a591357..a3d5e476f8 100644 --- a/code/__DEFINES/xeno.dm +++ b/code/__DEFINES/xeno.dm @@ -634,8 +634,9 @@ #define XENO_CASTE_HIVELORD "Hivelord" #define XENO_CASTE_LURKER "Lurker" #define XENO_CASTE_WARRIOR "Warrior" +#define XENO_CASTE_SOLDIER "Soldier" #define XENO_CASTE_SPITTER "Spitter" -#define XENO_T2_CASTES list(XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD, XENO_CASTE_LURKER, XENO_CASTE_WARRIOR, XENO_CASTE_SPITTER) +#define XENO_T2_CASTES list(XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD, XENO_CASTE_LURKER, XENO_CASTE_WARRIOR, XENO_CASTE_SPITTER, XENO_CASTE_SOLDIER) //t3 #define XENO_CASTE_BOILER "Boiler" #define XENO_CASTE_PRAETORIAN "Praetorian" @@ -648,7 +649,7 @@ #define XENO_CASTE_HELLHOUND "Hellhound" #define XENO_SPECIAL_CASTES list(XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND) -#define ALL_XENO_CASTES list(XENO_CASTE_LARVA, XENO_CASTE_PREDALIEN_LARVA, XENO_CASTE_FACEHUGGER, XENO_CASTE_LESSER_DRONE, XENO_CASTE_DRONE, XENO_CASTE_RUNNER, XENO_CASTE_SENTINEL, XENO_CASTE_DEFENDER, XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD, XENO_CASTE_LURKER, XENO_CASTE_WARRIOR, XENO_CASTE_SPITTER, XENO_CASTE_BOILER, XENO_CASTE_PRAETORIAN, XENO_CASTE_CRUSHER, XENO_CASTE_RAVAGER, XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND) +#define ALL_XENO_CASTES list(XENO_CASTE_LARVA, XENO_CASTE_PREDALIEN_LARVA, XENO_CASTE_FACEHUGGER, XENO_CASTE_LESSER_DRONE, XENO_CASTE_DRONE, XENO_CASTE_RUNNER, XENO_CASTE_SENTINEL, XENO_CASTE_DEFENDER, XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD, XENO_CASTE_LURKER, XENO_CASTE_WARRIOR, XENO_CASTE_SPITTER, XENO_CASTE_BOILER, XENO_CASTE_PRAETORIAN, XENO_CASTE_CRUSHER, XENO_CASTE_RAVAGER, XENO_CASTE_QUEEN, XENO_CASTE_PREDALIEN, XENO_CASTE_HELLHOUND, XENO_CASTE_SOLDIER) // Checks if two hives are allied to each other. // PARAMETERS: diff --git a/code/game/jobs/role_authority.dm b/code/game/jobs/role_authority.dm index a50e25ae9e..000551ba51 100644 --- a/code/game/jobs/role_authority.dm +++ b/code/game/jobs/role_authority.dm @@ -761,6 +761,8 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou M = /mob/living/carbon/xenomorph/predalien if(XENO_CASTE_HELLHOUND) M = /mob/living/carbon/xenomorph/hellhound + if(XENO_CASTE_SOLDIER) + M = /mob/living/carbon/xenomorph/soldier return M diff --git a/code/modules/admin/game_master/game_master.dm b/code/modules/admin/game_master/game_master.dm index 947c49aeb5..8607f856e5 100644 --- a/code/modules/admin/game_master/game_master.dm +++ b/code/modules/admin/game_master/game_master.dm @@ -29,7 +29,7 @@ GLOBAL_VAR_INIT(radio_communication_clarity, 100) // Spawn stuff #define DEFAULT_SPAWN_XENO_STRING XENO_CASTE_DRONE -#define GAME_MASTER_AI_XENOS list(XENO_CASTE_DRONE, XENO_CASTE_RUNNER, XENO_CASTE_LURKER, XENO_CASTE_CRUSHER, XENO_CASTE_FACEHUGGER) +#define GAME_MASTER_AI_XENOS list(XENO_CASTE_DRONE, XENO_CASTE_SOLDIER, XENO_CASTE_RUNNER, XENO_CASTE_LURKER, XENO_CASTE_CRUSHER, XENO_CASTE_FACEHUGGER) #define DEFAULT_SPAWN_HIVE_STRING XENO_HIVE_NORMAL #define DEFAULT_XENO_AMOUNT_TO_SPAWN 1 diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm b/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm new file mode 100644 index 0000000000..4a93b4609d --- /dev/null +++ b/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm @@ -0,0 +1,49 @@ +/datum/caste_datum/soldier + caste_type = XENO_CASTE_SOLDIER + tier = 2 + melee_damage_lower = XENO_DAMAGE_TIER_3 + melee_damage_upper = XENO_DAMAGE_TIER_4 + melee_vehicle_damage = XENO_DAMAGE_TIER_2 + max_health = 360 + plasma_gain = XENO_PLASMA_GAIN_TIER_8 + plasma_max = XENO_PLASMA_TIER_10 + crystal_max = XENO_CRYSTAL_LOW + xeno_explosion_resistance = XENO_EXPLOSIVE_ARMOR_TIER_1 + armor_deflection = XENO_ARMOR_TIER_1 + evasion = XENO_EVASION_MEDIUM + speed = XENO_SPEED_TIER_7 + + caste_desc = "A warrior of hives." + evolves_to = list(XENO_CASTE_QUEEN, XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD) //Add more here separated by commas + deevolves_to = list("Drone") + + minimap_icon = "warrior" + +/mob/living/carbon/xenomorph/soldier + caste_type = XENO_CASTE_SOLDIER + name = XENO_CASTE_SOLDIER + desc = "An alien warrior." + icon = 'icons/mob/xenos/soldier.dmi' + icon_size = 48 + icon_state = "Soldier Walking" + plasma_types = list(PLASMA_PURPLE) + tier = 2 + pixel_x = -12 + old_x = -12 + base_actions = list( + /datum/action/xeno_action/onclick/xeno_resting, + /datum/action/xeno_action/onclick/regurgitate, + /datum/action/xeno_action/watch_xeno, + /datum/action/xeno_action/activable/tail_stab, + /datum/action/xeno_action/activable/transfer_plasma, //fourth macro + /datum/action/xeno_action/onclick/tacmap, + ) + inherent_verbs = list( + /mob/living/carbon/xenomorph/proc/vent_crawl, + ) + gib_chance = 100 + claw_type = CLAW_TYPE_SHARP + + mutation_type = SOLDIER_NORMAL + icon_xeno = 'icons/mob/xenos/soldier.dmi' + icon_xenonid = 'icons/mob/xenonids/drone.dmi' diff --git a/colonialmarines.dme b/colonialmarines.dme index 9872ffc48e..3a7bae346b 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -2046,6 +2046,7 @@ #include "code\modules\mob\living\carbon\xenomorph\castes\Ravager.dm" #include "code\modules\mob\living\carbon\xenomorph\castes\Runner.dm" #include "code\modules\mob\living\carbon\xenomorph\castes\Sentinel.dm" +#include "code\modules\mob\living\carbon\xenomorph\castes\Soldier.dm" #include "code\modules\mob\living\carbon\xenomorph\castes\Spitter.dm" #include "code\modules\mob\living\carbon\xenomorph\castes\Warrior.dm" #include "code\modules\mob\living\carbon\xenomorph\items\iff_tag.dm" diff --git a/icons/mob/xenos/soldier.dmi b/icons/mob/xenos/soldier.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c6d878e73d191abbe9ec06d12af178b3d2368842 GIT binary patch literal 6483 zcmZ8mXEl!H$ z5s{FCW8>9L-^|ELr>m=ro12}1mP*OYjo})Ntcu$$Nd@7Xw?P2`oZNi!YNkRr1#}%L z2bbXi4|2G2W{erxG9}yA3^WLO_XnLft_iuc+EN$rb z^(9D<`+I#@YsZEA!r6OeRNa;04F|Z7Tb__n>d$b0wyV*c&sFsl+4AJnwWQ>%PdERG zMp96FX6Q1^-bsDy+4p*~<0t+5JXLhF;#S0*an5~W2uI&6$xox7jzuIZb~z)|8TTcR zrogh@PZrsde;-p-5BYgGM6=zZotG*7z~OjIJ}w@<*J3egN<_qdY@n@S1<%`klaPt4 zpjS7Jt~5#yNUP2NMKBFZBl2}lt+!mu^E5W~VbtA;@++ymyOv>TqVyMj8JJ7WM1+|4 zFd3dK+kdge!aBp-)d{;gn`TZ^+xg}$m4CjD*gClfjf*u{5q4v!lSCkpFsS78mA`wj zeAvat8R!UhHsyO=%&(m1x08A>g#6&7|McRsxAXDB<}B|Ccb^iSdq1UXg4DEz&?Ng; zex|vlMDh5VWx*|%;?U#v+NT1M9dqG2!4Oz8p~y}{Gps?~#%$r9XN@IW;yZw=ZiUqQ zWjmgjh7s?AaJ{f1F}kCgmVIM;(lzT>=9PxLr za`Cfxd7kB4wB)l(z$UEj@g>DYgRU?A{V$7!y4zHx=d$LI2h|zT9Zod`R>x*lHzqq9 zPq=pm)hLt6b#KkYr*4gqtuy-Ecu71kN_4NQ?b3XUu_B`7ba>jgfnQezRrvHrb)vk> zl@9S#^0Xq|%DV@&Mtc29?*el^sHeIK_-FhP-!Q!UWS348mXYsLQ0Mu&4tzGRYFq?Nyz0k@|eFM zC8q<8UL1?srO2}SUF2A%8CK*P+aKfE%LBB9X{|d#*T-=F?T#xEUm|{ga5Q$0HyELz z>VhvfZI-_|aYt}|9$zqJ%Ha{%Cov8$hO0P*$AZmMKq-JNEg$4D_f8yHE1zDiU~5vU zW`$JXsGlEQ4kQ>qyyeQSc}aO(<*++Q_KGA-;==vdSVmmGqVA)i->9Vgpiw2U9c$Zb zK0k1zW=28Sn`8bI$}O#3D}cTiVYfAwrTIAQ_43DU90zxltAdp-N3D7|brg~heD{mz zu>s*I{g@Cm8@6k6`lN)V-to_+W<(h566p#7Qr_3W? zbm|e>YWZ=ShDYxBdOIH-&p^7yRgkdimMOQ0xb&jNh=%L1t@j_*ZdU*)SB9;)Tu{Vv zZ$Nm9=xWIIO<1?m@p;Pd;j|a%eY8x3zxrxkM`s6bp`90f4|%zn26*Zy^b+6T1$Own z4Xcb*=l9rb3@^C^l9_QYLS_yM&6eq@A;M6|W;t3gDBe~BM+9(RIjNfk)%Qf-)gHM! zC>(oP`}Fd-xU3R!EO)gmX&Myo#wmTuh~+T0wgS!EWB+5DT~YFmrnH#Wjr3jp6tM$*#&eUji9z8SW0cmep<#u)OCFUOQRj zJ2z}-C$V9-xjCn8Yh7{UzIk*BZHnDsr_4zhdD(IQX>PcZ{E8YCv!Z+YRTPF)7d^yi z#q&xtjSfAmsq0tGv49hPrLcy}fz8Jx_EqMUe=P0+fH!~7;&NG)tZ^U1^~g`%C#$gK zekW_E+#gYXrH@qUFpJ0RGhJw$r`P!cyZALvhaDoW#79^FTkDT!fmd0AJA2yGAgQ0M zzF}yL!QxU!;CBd}Xz*0oSZp^P$3w2d=83HVPWvtO(5tt5ALVGy#L@RE1!Vnc?`!F~ zTv2eta2;1>M`m+P%W%QzO6Qi^^Gc~!m^sr+?)TnWE{Dt&RuLZDGX{GhjLmtl$A`si zJzqCu{;qXlIAWCO?;$9wMsGhmM4Vx&)g2BzX5aHy|*$F!I@X}-^&wjUjx z(4hHG?C$&9Ssl=GzLnfzrESeV6jQ!*%-v#L3nCTeK&NHO3@0&b%mdlyTbzZ#YK0_k z7_DD%*t8|_{_FuQ%YfrTgtthOB&;z2+5PDfkXlc!>YH__)#19nzsS4Li@i>Q9YJU| z+?C{Q{BOgC#MAK`5L1GNZ=UPr{>7C}&jSqM-UC9fkkR|gFMXmcPU79IZqn6!Fi`Ar zgtAhtwh-^KtbbbSw|PSf#MNWz!aXRed-K8sRa7MY}3~4f1DPgE(-W z#@?^HKCC#G6A7f;K@ZWQj?_0&xB&%T()Rn49|3|J@AKJ<{Yh&3RxtXEzCE_5E!K?% znc1Jh?Qj9NVClq*Iz?GO8q+XQ)NL4fQj&1RW>!Zo4LLtaRtdRbr8cAL%B<>#%X0#x z$YG*C*y|C40QZRq{D~IOqz_pouiaEIa3TLn8|(8pNG9&B0Z=MJ#w~^Rp)4tSHMS0e zq#okY2AXss?}vS=qt6VkI%IZ+U~0=l+eV+~n&n6+w<%nt(OQi<2>_2O;@xjEiw8qx zg`)h8`jBnZ3q#RFBw4vTN;&J8oJ%g6mKyn>ZAa_q5KxGz3qAZUq*+ za>~o?Y&<)$Ui+X)Y=t_{bM%<_{W%wy$pG5#Jtw*TtSp1>^X4B;+V7%>+tOWk4C6Z+ zio*8?Ch=JOtA}*++z1)?i7)R)&!h9NXOHmbcjtSa%+%tx#e>4_;vS2E%kz2O?{dPA zeeM%?8eY?~0l+{{wnCeDtOA6HH{&5uGcH)@zG8L6l;Dy5&ApjYv~i5zJ3&tXO5DVg ztZUw1o=Z8Ik<6kNlr7*;QxI|pt&GVLgQ zd{5F%i{iUj97VP&e>M2-Arod=^b}SuE_Af74v_Jed>QTZe5Jx-@%ADbk;xX+ik7+` zw9V~H)X$)cnkv4{YFx^v?_U~v-WTi>p6;zXIW%c?FZzy=3$^H>FD& z8JR<)LbuP0-0^*U{uJR&&P^4M@bD!65{&}JmMyIykF=S!H2e^WE-o# z4y-=A5nyL0yDy3AWuVn}(=51&MaSiDYaQ?N)b>TW|F)c%o;Hma;hi39zdic!zT?iq zMDWSSF1(WNZB8;2MaRb=awWS@*IZto6;(3FV6p~~@cN{Pq)o3hTSZy%4$75W+thRg zd0%+w0KN>RNMj&tCKUQYOG1X@6$!)C(Yx4shDz+@;OEzW2hy&UTHBJnjjJ#@JBSCb z#9cclcpyzct13h4Ci_D@v|fi))@6G`Pu*6=8|>bWmv&hq5BzbbLJ0sFCr&BE98J)o zfImEG>m=w!Ts5+D1H>;Bt5$RH*;c$gT5PCmlmXObZ)7^z8-HU8;tT!NQ{o{cmH=pQ zW}c0+wgS5)B-!!POo?9pq7^e|5*c&qKGo@!Z-2HDrhrtUh!d-W`;b&8lYxbM&)g76vN$tnXuq6AIRj>t@C#msqI?7tER+xeBi#GG6^rIGX z8>T5mA0Wnb6_V>GqLe(P&HS3bujc(KSd(iIIH?VawfE^qmI6)WjE^l*(-5eE5$^xd zg5RpRUUV(z%|!tcyz+E&Dnd9P^}nS5D~(ay1!A`S046~dbf~oW0q?g7j`8*f#ahpx zLkcV4(7zFBqmZ8up}VJnC0dNNrG2Qh?12@Gc4f1Bel_L~f{}N4N>Ly&n#Cp!qiB>< z!F&MC-Pzm16p3=_&1)n9sJwaDjD>L@6c%8~^zs-*;PZY|TGGJEgtlz{gX+uaA7-fo zRP0^J9Dm0@&WRrkRHBAUmn7uuZfM8#*mp|euYZ?K@DsU}Z22~!3WYq2+4(*BRpDYA zQ&c!ZlH|HNrp{UW-J54H=t3N5PTZO(z^bg%JenlB-~kd+&WQ6@PP(Zjr_E`zpo?=d zX7eg`BP6I~5oT2nz_J&!5j2>h#D;_~*iee65z8N60NlNK)C|oF6Tm1|<1fu?j#*YN z5%#2(Bxrpuc$rFVMv1?$gifSr@Nht1jhIvJ$TzXIubt$r#fF_Y`Ayo|j3R&Szx~5F z2pJh$okZi#a+JNZZ&NDsr&X{wmtLO*i&wFAY+(L~t9Fe2kjlj!EM(tHIJ5CnF15B% z+CXYO%d?z{zQB8e7;06dJAv)nFg?ncFYGf@r z(&}7i5^v}&ZWa9=i|^jWwBzJdn-23yA8*!o^0o@vf*%JW1QP)6QItcri7Lh!>mMf0 zFb-$HYur1&gEc%7%=Z(_h5gGUIaTyWExvmd3y+rx(&)#QE>CYPEFonK7rFk`N?-bs1Jr3N;3u(QHWR^Lr*~E%&9~Oqqz$LE zaq%3i9C1yjV;imA;p;3#^Y&F@W2m%JVQ9v7|7okb;gxZ%b+rg8)w&$)0?yEAiifE3 z4WHDU76c66D$n~LI2=37@A~@0S-^9T8a-B46iIidV=kA(H@$gK57*BgVuV<4qvx>$hT%YQt*@C`B zso4YU28f(5SwZU!=xgJ=e)}{Y%8Kxz-rA;EO#=L zABd>gD3I!OalgLC`A*e4NlLe$SCHuw#ga;`m4@iX_;vaHzG$(;PBuRCfSbby9~wC) z_);yhH#Vv{a{4ys#_?VDwtTPIL#OAWIq1;W2r)n;9Tiy5bPW&vK9(X8( zXT_D2Jp)!41?2x;FK%>#tOmM2zk~DWnwC({G?fkPEV>w!&!9qM8psQ(YWws?UJxb~ z(EQwu67FUR<0pBcB~bqFpc~h z-${HEPht3Z;FGG}hvX~XGwKDbtW2|!tYVN`S%p)^bvC%9Lp^=!gS@}#-9XE#(k*tXtnc5W`HT*(;dNQ-?IQQz4-t7 zGWB0aCKd!bPxSr>RuP4KA$l$f-F$^&jTSwZgl>AFSkpz%)u5YBDAp9wbCZ9}RhI{J z)ApawqrZ%GvgrALHdI4r?%=?2y*2lNm{uH^vbUxR$T)WH!4KVh3^X~D{g%k7_TZoK z8Q>3~H*RLMu@H!!#VAVk)xd!m1?bQV+9xIcOt)Y$_Ws_*4t`~Cyz+t;p4)q;57uD& zDK4G?&E;y{q~mhOyR7{39Q**eDN-J5r*dA!KB%`;MY*467o192< zrwOx9A5t?(Iiwdr8u38!v%G35bK(B0dgcekheVqGjW6hu*Z) zb&Gf-YPSOZ&U(#HIZU<)+%BJ5$_>~w~bD4ZUz5 z%YElQ}0MUharpwEF7OQP?(_G znk1MV6Y|vvYCxN7<&{@1JBGW!)&;Y6N};6{Rqtf;@+a#s&;MwQeCj-?^ePS@5Q;JI zD-%q%#D4hA|Bg3pTVCa{?G3VTc&~R9d^U;!2~I2@5y=2X@f%wjB3w85VWT&nC`A19 z8T@+DV3vpXlF0FLBa2JOTU`amQ(MVp8@?VG8e|uu$s57Fuc!FzHmisT?s zU@gJQ_=yx{_li4 zY&Y&$k$Wzx_=~;!_ppBb&EpZzD*5COy@6rNEKmHEs+}(RKnnrxd@7XNiCE zNU3S;DNjfX(Tlw1S2mNxF$E2|)ln4Xhyb*sq7qNHYfgFx%HLzb@@WqYZ;79>n@pS` z*Pr`{$pboTSpIiWyef}UuW7=wN#E|AmqRXdH8(bpEzqfZ|^O{)K<$RmwoFIb=ObwF4Qz4-jmkoI z8FJ&$o{mRfDc|q`gV7|P!gvX;J? zR*JJjhVEe537j@*D<2S&EkD4V`GD|!ounWXTe(o#oj~;|mD%pH0ws;hyl2(cQx@<*vsH*8Y=?nN!1-A VGnbz4S3fa`40KGiYc-vs{sZFmm|Oq= literal 0 HcmV?d00001 diff --git a/icons/mob/xenos/wounds.dmi b/icons/mob/xenos/wounds.dmi index 65c5a84fbe6309d89452f56bddaaeb525d921069..828a73e4bed41e9fd00a6d4e24e5563916086ceb 100644 GIT binary patch literal 42384 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 From 6ef0e82c8451599e1167f2ecff06989286664aee Mon Sep 17 00:00:00 2001 From: forwardslashN <150570209+FslashN@users.noreply.github.com> Date: Thu, 11 Apr 2024 17:02:03 -0500 Subject: [PATCH 2/5] Soldier AI Behavior Adds all of the soldier AI behavior and abilities. Still a work in progress to an extent, but mostly feature complete. Also fixes a few runtimes. --- code/__DEFINES/conflict.dm | 2 + code/__DEFINES/pain.dm | 5 + code/game/objects/effects/aliens.dm | 28 +- code/modules/admin/holder2.dm | 2 +- .../mob/living/carbon/human/human_helpers.dm | 14 +- .../living/carbon/human/life/handle_breath.dm | 2 +- .../carbon/human/life/handle_grabbed.dm | 20 +- .../mob/living/carbon/xenomorph/Xenomorph.dm | 2 + .../xenomorph/ai/movement/base_define.dm | 3 + .../mob/living/carbon/xenomorph/ai/xeno_ai.dm | 41 +-- .../living/carbon/xenomorph/castes/Runner.dm | 2 +- .../living/carbon/xenomorph/castes/Soldier.dm | 260 +++++++++++++++++- .../living/carbon/xenomorph/castes/Warrior.dm | 2 +- .../living/carbon/xenomorph/damage_procs.dm | 5 + .../carbon/xenomorph/xeno_ai_interaction.dm | 40 ++- code/modules/mob/living/living.dm | 97 ++++--- code/modules/mob/mob.dm | 2 +- code/modules/mob/mob_grab.dm | 7 +- icons/mob/xenos/wounds.dmi | Bin 40154 -> 43014 bytes 19 files changed, 430 insertions(+), 104 deletions(-) diff --git a/code/__DEFINES/conflict.dm b/code/__DEFINES/conflict.dm index d69f0891ff..c0c3a9b996 100644 --- a/code/__DEFINES/conflict.dm +++ b/code/__DEFINES/conflict.dm @@ -3,6 +3,8 @@ #define GRAB_AGGRESSIVE 1 #define GRAB_CARRY 2 #define GRAB_CHOKE 3 +/// Alien-specific grab, somewhat between an aggressive and choke. Limited to AI only for the moment. +#define GRAB_XENO 4 //Ammo defines for gun/projectile related things. diff --git a/code/__DEFINES/pain.dm b/code/__DEFINES/pain.dm index 8c84dd1070..5867eb52cb 100644 --- a/code/__DEFINES/pain.dm +++ b/code/__DEFINES/pain.dm @@ -15,6 +15,11 @@ #define PAIN_REDUCTION_FULL 80 //oxycodone, neuraline // Pain amount supplied by the action + +/// How much pain is dealt continually to the mob being dragged by the AI as well as when initially grabbing. +#define PAIN_XENO_DRAG 10 +/// How much additional pain is dealt when lunging/throat grabbing. +#define PAIN_XENO_GRAB 15 #define PAIN_BONE_BREAK 25 #define PAIN_BONE_BREAK_SPLINTED 15 #define PAIN_DELIMB 40 diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 0b44c0bb44..df9e15378d 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -316,6 +316,12 @@ flare_damage = 1875 icon_state = "acid_strong" +//Similar to strong acid, just not quite as strong other than barricade damage. +/obj/effect/xenomorph/acid/spatter + acid_delay = 0.6 + barricade_damage = 100 + flare_damage = 1000 + /obj/effect/xenomorph/acid/Initialize(mapload, atom/target) . = ..() acid_t = target @@ -328,6 +334,21 @@ RegisterSignal(acid_t, COMSIG_PARENT_QDELETING, PROC_REF(cleanup)) START_PROCESSING(SSeffects, src) +/obj/effect/xenomorph/acid/spatter/Initialize(mapload, atom/target) + . = ..() + if(!acid_t) + var/obj/structure/barricade/B = locate() in loc + if(B && !B.unacidable) acid_t = B + else + for(var/obj/O in loc) //Find the first thing. + if(O.unacidable || istype(O, /obj/effect)) continue //Not unacidable things or effects. Don't want to melt xenogibs. + acid_t = O + break + if(acid_t) layer = acid_t.layer + else + animate(src, alpha = 0, 1 SECONDS) + QDEL_IN(src, 1 SECONDS) //No point in keeping it if it's not melting anything. + /obj/effect/xenomorph/acid/Destroy() acid_t = null STOP_PROCESSING(SSeffects, src) @@ -422,8 +443,11 @@ else for(var/mob/mob in acid_t) mob.forceMove(loc) - qdel(acid_t) - qdel(src) + animate(acid_t, alpha = 0, 1 SECONDS) + QDEL_IN(acid_t, 1 SECONDS) + + animate(src, alpha = 0, 1 SECONDS) + QDEL_IN(src, 1 SECONDS) /obj/effect/xenomorph/boiler_bombard name = "???" diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index e7559f3aa4..efdec300d3 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -105,7 +105,7 @@ you will have to do something like if(client.admin_holder.rights & R_ADMIN) your if(!other) return FALSE if(rights_required && other.admin_holder?.rank) - if(check_client_rights(usr.client, rights_required, show_msg)) + if(check_client_rights(other, rights_required, show_msg)) return TRUE else if(show_msg) to_chat(usr, SPAN_WARNING("You do not have sufficient rights to do that. You require one of the following flags:[rights2text(rights_required," ")].")) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index a98de60d3e..8061c5fcb3 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -198,7 +198,7 @@ if(istype(brain)) return TRUE return FALSE - +f /mob/living/carbon/human/has_eyes() var/datum/internal_organ/eyes = LAZYACCESS(internal_organs_by_name, "eyes") if(istype(eyes) && !eyes.cut_away) @@ -206,18 +206,18 @@ return FALSE -/mob/living/carbon/human/is_mob_restrained(check_grab = 1) - if(check_grab && pulledby && pulledby.grab_level >= GRAB_AGGRESSIVE) - return 1 +/mob/living/carbon/human/is_mob_restrained(check_grab = TRUE) + if(check_grab && pulledby && pulledby.grab_level > GRAB_PASSIVE && pulledby.grab_level != GRAB_XENO) + return TRUE if (handcuffed) - return 1 + return TRUE if (istype(wear_suit, /obj/item/clothing/suit/straight_jacket)) - return 1 + return TRUE if (HAS_TRAIT(src, TRAIT_NESTED)) return TRUE - return 0 + return FALSE /mob/living/carbon/human/proc/disable_special_flags() status_flags |= CANPUSH diff --git a/code/modules/mob/living/carbon/human/life/handle_breath.dm b/code/modules/mob/living/carbon/human/life/handle_breath.dm index 7dafdb6e17..6e5f99badd 100644 --- a/code/modules/mob/living/carbon/human/life/handle_breath.dm +++ b/code/modules/mob/living/carbon/human/life/handle_breath.dm @@ -8,7 +8,7 @@ return if(istype(loc, /obj/structure/machinery/cryo_cell)) return - if(species && (species.flags & NO_BREATHE || species.flags & IS_SYNTHETIC)) + if(species && (species.flags & (NO_BREATHE|IS_SYNTHETIC))) return var/list/air_info diff --git a/code/modules/mob/living/carbon/human/life/handle_grabbed.dm b/code/modules/mob/living/carbon/human/life/handle_grabbed.dm index 14d2255741..6f8d2526a4 100644 --- a/code/modules/mob/living/carbon/human/life/handle_grabbed.dm +++ b/code/modules/mob/living/carbon/human/life/handle_grabbed.dm @@ -1,11 +1,19 @@ - +// Why is this proc in its own .dm file? /mob/living/carbon/proc/handle_grabbed() if(!pulledby) return - if(pulledby.grab_level >= GRAB_AGGRESSIVE) - drop_held_items() - if(pulledby.grab_level >= GRAB_CHOKE) - apply_damage(3, OXY) - apply_stamina_damage(5) + /// Rewrote this to be a little different, so that the normal effects don't apply to xeno grabs. + switch(pulledby.grab_level) + if(GRAB_AGGRESSIVE to GRAB_CARRY) + drop_held_items() + if(GRAB_CHOKE) + drop_held_items() + apply_damage(3, OXY) + apply_stamina_damage(5) + if(GRAB_XENO) /// Alien grabs inflict pain when the human is not incapacitated, but not the other effects. + /// Ignoring restrained with (TRUE). The grab does *not* restrain by itself. See /mob/living/carbon/human/is_mob_restrained(check_grab = TRUE) + /// This is too allow the human a chance to fight back, with guns or melee. + return is_mob_incapacitated(TRUE) || pain.apply_pain(PAIN_XENO_DRAG) + diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm index 33ed75f36e..fc32be86e2 100644 --- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm +++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm @@ -247,6 +247,8 @@ var/evolving = FALSE // Whether the xeno is in the process of evolving /// The damage dealt by a xeno whenever they take damage near someone var/acid_blood_damage = 15 + /// Does their blood also create an acid object to melt the environment? + var/acid_blood_spatter = FALSE var/nocrit = FALSE var/deselect_timer = 0 // Much like Carbon.last_special is a short tick record to prevent accidental deselects of abilities var/got_evolution_message = FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/ai/movement/base_define.dm b/code/modules/mob/living/carbon/xenomorph/ai/movement/base_define.dm index 4eaff010c2..f561094567 100644 --- a/code/modules/mob/living/carbon/xenomorph/ai/movement/base_define.dm +++ b/code/modules/mob/living/carbon/xenomorph/ai/movement/base_define.dm @@ -8,6 +8,9 @@ var/home_locate_range = 15 var/turf/home_turf + /// Should the alien try climbing barricades and other structures, if able? + var/do_climb_structures = FALSE + /datum/xeno_ai_movement/New(mob/living/carbon/xenomorph/parent) . = ..() if(!parent) diff --git a/code/modules/mob/living/carbon/xenomorph/ai/xeno_ai.dm b/code/modules/mob/living/carbon/xenomorph/ai/xeno_ai.dm index cf951007be..3a59199be9 100644 --- a/code/modules/mob/living/carbon/xenomorph/ai/xeno_ai.dm +++ b/code/modules/mob/living/carbon/xenomorph/ai/xeno_ai.dm @@ -34,6 +34,9 @@ /// Cooldown declaration for delaying finding a new path if no path was found COOLDOWN_DECLARE(no_path_found_cooldown) + var/ai_active_intent = INTENT_HARM + var/target_unconscious = FALSE + /mob/living/carbon/xenomorph/proc/init_movement_handler() return new /datum/xeno_ai_movement(src) @@ -67,14 +70,14 @@ var/datum/component/ai_behavior_override/behavior_override = check_overrides() - if(behavior_override?.process_override_behavior(src, delta_time)) + if(is_mob_incapacitated(TRUE)) ///If they are incapacitated, the rest doesn't matter. + current_path = null return TRUE - if(is_mob_incapacitated(TRUE)) - current_path = null + if(behavior_override?.process_override_behavior(src, delta_time)) return TRUE - if(QDELETED(current_target) || !current_target.ai_check_stat() || get_dist(current_target, src) > ai_range || COOLDOWN_FINISHED(src, forced_retarget_cooldown)) + if(QDELETED(current_target) || !current_target.ai_check_stat(src) || get_dist(current_target, src) > ai_range || COOLDOWN_FINISHED(src, forced_retarget_cooldown)) current_target = get_target(ai_range) COOLDOWN_START(src, forced_retarget_cooldown, forced_retarget_time) if(QDELETED(src)) @@ -85,7 +88,7 @@ if(prob(5)) emote("hiss") - a_intent = INTENT_HARM + a_intent = ai_active_intent if(!current_target) ai_move_idle(delta_time) @@ -137,7 +140,7 @@ return 0 return INFINITY -/atom/proc/ai_check_stat() +/atom/proc/ai_check_stat(mob/living/carbon/xenomorph/X) return TRUE // So we aren't trying to find a new target on attack override // Called whenever an obstacle is encountered but xeno_ai_obstacle returned something else than infinite @@ -338,28 +341,6 @@ #undef EXTRA_CHECK_DISTANCE_MULTIPLIER -/mob/living/carbon/proc/ai_can_target(mob/living/carbon/xenomorph/X) - if(!ai_check_stat(X)) - return FALSE - - if(X.can_not_harm(src)) - return FALSE - - if(alpha <= 45 && get_dist(X, src) > 2) - return FALSE - - if(isfacehugger(X)) - if(status_flags & XENO_HOST) - return FALSE - - if(istype(wear_mask, /obj/item/clothing/mask/facehugger)) - return FALSE - - else if(HAS_TRAIT(src, TRAIT_NESTED)) - return FALSE - - return TRUE - /mob/living/carbon/xenomorph/proc/make_ai() SHOULD_CALL_PARENT(TRUE) create_hud() @@ -414,3 +395,7 @@ if(cycled_turf.x == min_x_value) min_x_turfs += cycled_turf return min_x_turfs + +/// Override as necessary to check for more specific triggers for an ability activation. +/mob/living/carbon/xenomorph/proc/check_additional_ai_activation() + return TRUE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm b/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm index 6e4660881e..90554391a3 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Runner.dm @@ -94,7 +94,7 @@ add_temp_negative_pass_flags(PASS_FLAGS_CRAWLER) -/mob/living/carbon/xenomorph/runner/stop_pulling() +/mob/living/carbon/xenomorph/runner/stop_pulling(bumped_movement = FALSE) . = ..() remove_temp_negative_pass_flags(PASS_FLAGS_CRAWLER) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm b/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm index 4a93b4609d..10db4fa3b5 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm @@ -3,20 +3,23 @@ tier = 2 melee_damage_lower = XENO_DAMAGE_TIER_3 melee_damage_upper = XENO_DAMAGE_TIER_4 - melee_vehicle_damage = XENO_DAMAGE_TIER_2 - max_health = 360 + melee_vehicle_damage = XENO_DAMAGE_TIER_3 + max_health = XENO_HEALTH_TIER_3 plasma_gain = XENO_PLASMA_GAIN_TIER_8 plasma_max = XENO_PLASMA_TIER_10 crystal_max = XENO_CRYSTAL_LOW xeno_explosion_resistance = XENO_EXPLOSIVE_ARMOR_TIER_1 armor_deflection = XENO_ARMOR_TIER_1 evasion = XENO_EVASION_MEDIUM - speed = XENO_SPEED_TIER_7 + speed = XENO_SPEED_HELLHOUND //Faster than drones, slower than lurkers. - caste_desc = "A warrior of hives." + caste_desc = "A warrior of the hive." evolves_to = list(XENO_CASTE_QUEEN, XENO_CASTE_BURROWER, XENO_CASTE_CARRIER, XENO_CASTE_HIVELORD) //Add more here separated by commas deevolves_to = list("Drone") + tackle_min = 2 + tackle_max = 4 + minimap_icon = "warrior" /mob/living/carbon/xenomorph/soldier @@ -30,20 +33,255 @@ tier = 2 pixel_x = -12 old_x = -12 + + gib_chance = 100 + claw_type = CLAW_TYPE_SHARP + pull_multiplier = 0.2 /// Pretty much no pull delay, for those quick drags. + + acid_blood_damage = 35 /// Strong acid blood. Should be a define in the future. + acid_blood_spatter = TRUE /// Testing variable, means that their blood can melt objects in the environment. Primarily barricades. + + mutation_type = SOLDIER_NORMAL + icon_xeno = 'icons/mob/xenos/soldier.dmi' + icon_xenonid = 'icons/mob/xenonids/drone.dmi' + + target_unconscious = TRUE + +/* + * ==========================================================================| + * BASE DEFINES AND PROCS + * --------------------------------------------------------------------------| + * ==========================================================================| +*/ + +/// How often we inflict pain on our dragged target. Targets need to be lying down when they are nested, and pain helps to knock them down. +#define PAIN_DRAG_PROBABILITY 95 + +/// The aggression the alien starts with by default. +#define AGGRESSION_MINIMUM 0 +/// The maximum aggression it is possible to accumulate. +#define AGGRESSION_MAXIMUM 100 +/// Aggression required to go full-on lethals instead of capture. +#define AGGRESSION_ENABLE_LETHAL 50 +/// If there is no hive to drag people to, this is the aggression the alien starts with. +#define AGGRESSION_NO_HIVE AGGRESSION_ENABLE_LETHAL +/// The cap on aggression increase when something significant happens, like taking damage. +#define AGGRESSION_INCREMENT_CAP 10 + +/// Threshold for lunging at a target. Low as the alien wants to do this early. +//10 +#define AGGRESSION_LUNGE 1 +#define AGGRESSION_FLING 35 +/// Threshold for stabbing them with the tail. +#define AGGRESSION_TAIL_STAB 70 +/// Threshold for headbiting/instakilling a downed human. +#define AGGRESSION_HEADBITE 90 + + /// AI behavior variables should probably go into their own datum. I thought about placing this into movement handler, but these govern general behavior. + var/aggression_cur = AGGRESSION_MINIMUM ///How angry this alien is. Higher aggression means more lethal options are open. + var/aggression_min = AGGRESSION_MINIMUM ///Aggression cannot fall below this value. + +/mob/living/carbon/xenomorph/soldier/Initialize() base_actions = list( /datum/action/xeno_action/onclick/xeno_resting, /datum/action/xeno_action/onclick/regurgitate, /datum/action/xeno_action/watch_xeno, - /datum/action/xeno_action/activable/tail_stab, - /datum/action/xeno_action/activable/transfer_plasma, //fourth macro + /datum/action/xeno_action/activable/tail_stab/soldier, + /datum/action/xeno_action/activable/fling/soldier, + /datum/action/xeno_action/activable/lunge/soldier, + /datum/action/xeno_action/activable/headbite/soldier, /datum/action/xeno_action/onclick/tacmap, ) inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) - gib_chance = 100 - claw_type = CLAW_TYPE_SHARP - mutation_type = SOLDIER_NORMAL - icon_xeno = 'icons/mob/xenos/soldier.dmi' - icon_xenonid = 'icons/mob/xenonids/drone.dmi' + . = ..() + + if(!length(GLOB.ai_hives)) ///We check for this first. If there is a hive, we want to make sure the aliens drag people there. + aggression_cur = AGGRESSION_NO_HIVE ///If we do not have a hive, bump up aggression to go lethal instead. + aggression_min = AGGRESSION_NO_HIVE + + /// This is so stupid. Mutators are set inline with new, and are not created on Initialize(). However, pull_multiplier is then overriden by the personal mutator pull_multiplier on Initialize() with recalculate_actions(). + mutators.pull_multiplier = initial(pull_multiplier) + pull_multiplier = mutators.pull_multiplier + +/mob/living/carbon/xenomorph/soldier/apply_damage(damage = 0, damagetype = BRUTE, def_zone = null, used_weapon = null, sharp = 0, edge = 0, force = FALSE) + . = ..() //It will take the previous arguments. + + if(.) + /// Fire gives the largest aggression increase. + aggression_cur = min(AGGRESSION_MAXIMUM, aggression_cur + min(AGGRESSION_INCREMENT_CAP, damage * (damagetype == BURN ? 0.2 : 0.13) ) ) /// Multiplying is faster than dividing. Go figure. + +/* + * ==========================================================================| + * MOVEMENT LOOPS AND BEHAVIOR LOGIC + * --------------------------------------------------------------------------| + * ==========================================================================| +*/ + +/mob/living/carbon/xenomorph/soldier/process_ai(delta_time) + var/mob/living/pulling_target = pulling /// Let's see if the alien is pulling anyone. + var/mob/living/potential_target = current_target + + if(istype(pulling_target)) /// Our soldier is pulling someone. + if(get_active_hand()) swap_hand() /// Swap hand to either tackle or harm. + /// A little bit of a copy-pasting with intent switching, but saves a tad on processing. + ai_active_intent = INTENT_DISARM /// If we are pulling someone and are not too aggressive, switch to disarm. + if(prob(5)) emote("tail") + + else if(istype(potential_target)) /// We have a target. We'll do more thorough checking in the main loop, for now we only need to know if they are being pulled by a hostile or friendly xeno. + var/mob/living/carbon/xenomorph/other_xenomorph = potential_target.pulledby /// Are they being pulled by an alien? + /// Need to make sure the alien dragging is friendly to us. If it is not friendly, or not a xeno, our alien will try to grab back. + ai_active_intent = (istype(other_xenomorph) && IS_SAME_HIVENUMBER(src, other_xenomorph)) ? INTENT_DISARM : INTENT_GRAB + + /// I had it set up for slightly faster assignment, but this is easier to read. + ai_active_intent = (aggression_cur >= AGGRESSION_ENABLE_LETHAL) ? INTENT_HARM : ai_active_intent /// Override harm or continue with the previous intent. + + return ..() + +/datum/xeno_ai_movement/assault + do_climb_structures = TRUE /// The alien will climb structures, if able. + +/mob/living/carbon/xenomorph/soldier/init_movement_handler() + return new /datum/xeno_ai_movement/assault(src) + +/mob/living/carbon/xenomorph/soldier/ai_move_idle(delta_time) + if(!ai_movement_handler) + CRASH("No valid movement handler for [src]!") + + var/mob/living/pulling_target = pulling + return (istype(pulling_target) && length(GLOB.ai_hives)) ? ai_movement_handler.ai_move_hive(delta_time) : ai_movement_handler.ai_move_idle(delta_time) + +/mob/living/carbon/xenomorph/soldier/ai_move_target(delta_time) + if(!ai_movement_handler) + CRASH("No valid movement handler for [src]!") + + var/mob/living/pulling_target = pulling + return (istype(pulling_target) && length(GLOB.ai_hives)) ? ai_movement_handler.ai_move_hive(delta_time) : ai_movement_handler.ai_move_target(delta_time) + +/datum/xeno_ai_movement/assault/ai_move_target(delta_time) + var/mob/living/carbon/xenomorph/soldier/current_parent = parent + + /// Moving toward target grows aggression. + current_parent.aggression_cur = min(AGGRESSION_MAXIMUM, current_parent.aggression_cur + 0.1) ///Fractions for a more gradual aggression gain/loss. + return ..() + +/datum/xeno_ai_movement/assault/ai_move_idle(delta_time) + var/mob/living/carbon/xenomorph/soldier/current_parent = parent + + /// Being idle drains aggression. + current_parent.aggression_cur = max(current_parent.aggression_min, current_parent.aggression_cur - 0.1) + return ..() + +/datum/xeno_ai_movement/assault/ai_move_hive(delta_time) + . = ..() + + /// This will mean if the alien is pulling someone to the hive, they will keep tackling them with their free claw. + if(. && parent.pulling && DT_PROB(XENO_SLASH, delta_time)) INVOKE_ASYNC(parent, TYPE_PROC_REF(/mob, do_click), parent.pulling, "", list()) + +/datum/xeno_ai_movement/assault/ai_strap_host(turf/closest_hive, hive_radius, delta_time) + /// Want to make sure when nesting, they actually have the grab active in their main claw. + /// This can lead to some funny behavior of the alien standing around with the victim next to them, but it should be fine for the moment. + /// Something to address later perhaps. + if(parent.pulling && !parent.get_active_hand()) parent.swap_hand() + return ..() + +/* + * ==========================================================================| + * SPECIAL ACTIONS + * --------------------------------------------------------------------------| + * ==========================================================================| +*/ + +/mob/living/carbon/xenomorph/soldier/check_additional_ai_activation(activation_threshold) + return (aggression_cur >= activation_threshold) + +/datum/action/xeno_action/activable/tail_stab/soldier /// Specific to soldiers, so that not all xenos get it. + default_ai_action = TRUE + ai_prob_chance = 65 //So they are not spamming it quite as often. + charge_time = null /// AI soldiers can just use this whenever instead of having to charge it up. + xeno_cooldown = 11 SECONDS + +/datum/action/xeno_action/activable/tail_stab/process_ai(mob/living/carbon/xenomorph/parent, delta_time) + /// Short-circuit. Will return the last thing checked or FALSE if it fails at any step. + /// We do not need to check for distance here as the tailstab itself will do that; that distance being 2. + return parent.check_additional_ai_activation(AGGRESSION_TAIL_STAB) && DT_PROB(ai_prob_chance, delta_time) && use_ability_async(parent.current_target) + +/datum/action/xeno_action/activable/fling/soldier + default_ai_action = TRUE + ai_prob_chance = 70 + xeno_cooldown = 8 SECONDS + +/datum/action/xeno_action/activable/fling/process_ai(mob/living/carbon/xenomorph/parent, delta_time) + /// We have a home turf to fling to. + if(parent.check_additional_ai_activation(AGGRESSION_FLING) && DT_PROB(ai_prob_chance, delta_time)) + parent.dir = parent.ai_movement_handler.home_turf ? get_dir(parent, parent.ai_movement_handler.home_turf) : pick(NORTH, SOUTH, EAST, WEST) /// Pick at random if there is no valid direction. + use_ability_async(parent.current_target) + +/datum/action/xeno_action/activable/lunge/soldier + default_ai_action = TRUE + grab_range = 2 + ai_prob_chance = 90 // Want to do this often, as it's their way of saying hello. + xeno_cooldown = 10 SECONDS + +/datum/action/xeno_action/activable/lunge/process_ai(mob/living/carbon/xenomorph/parent, delta_time) + /// Want to make sure no obstacles are in the way so that the alien is not lunging for no reason, or bonking into barricades like an idiot. + /// Maybe in the future the actual lunge can be stripped down for the AI only? + /// get_step_to() should return the turf of the target if successful, with no obstacles to block movement there with the lunge. + if( parent.check_additional_ai_activation(AGGRESSION_LUNGE) && DT_PROB(ai_prob_chance, delta_time) && get_dist(parent, parent.current_target) == grab_range ) + var/turf/T = get_step_to(parent, parent.current_target) + return T?.AdjacentQuick(parent.current_target.loc) && use_ability_async(parent.current_target) + +/// Override for soldier lunges. Similar to the woyer grab, but this one only inflicts pain without stuns and has a shorter range. +/mob/living/carbon/xenomorph/soldier/start_pulling(atom/movable/AM, lunge) + if (!check_state() || agility || !isliving(AM)) return FALSE + + var/mob/living/L = AM + var/should_neckgrab = !can_not_harm(L) && lunge + + if(!QDELETED(L) && !QDELETED(L.pulledby) && L != src ) //override pull of other mobs + visible_message(SPAN_WARNING("[src] has broken [L.pulledby]'s grip on [L]!"), null, null, 5) + L.pulledby.stop_pulling() + + . = ..(L, lunge, should_neckgrab) + + if(.) + var/pain_to_cause = PAIN_XENO_DRAG /// Basic amount of pain caused with each grab. + if(should_neckgrab && L.mob_size < MOB_SIZE_BIG) + pain_to_cause += PAIN_XENO_GRAB /// Neck grabs cause even more pain. + L.pulledby = src + visible_message(SPAN_XENOWARNING("\The [src] grabs [L] by the throat!"), \ + SPAN_XENOWARNING("You grab [L] by the throat!")) + + L.pain.apply_pain(pain_to_cause) + grab_level = GRAB_XENO /// Alien-specific grab level, with its own logic for escaping. AI only for the moment. See /mob/living/resist_grab() + if(prob(10)) emote("growl") + /// The actual pain processing for humans is handled in: /mob/living/carbon/proc/handle_grabbed() Other mobs don't process the effects of the grab, like aliens. + +/mob/living/carbon/xenomorph/soldier/stop_pulling(bumped_movement = FALSE) + //Let's see if we can ignore this. If our direction is the same as where the mob went, we likely bumped into them. So we lasso them back. + if(bumped_movement && grab_level == GRAB_XENO && get_dir(src, pulling) == dir) /// Only on xeno grabs, so if they are on GRAB_PASSIVE, this doesn't trigger. + pulling.loc = get_step_towards(src, pulling) // GET OVER HERE! + else return ..() + +/datum/action/xeno_action/activable/headbite/soldier + default_ai_action = TRUE + ai_prob_chance = 95 // Absolutely DEAD if the alien is angry enough. + xeno_cooldown = 30 SECONDS // Don't want to chain these, as unlikely as that could be. + +/datum/action/xeno_action/activable/headbite/soldier/process_ai(mob/living/carbon/xenomorph/parent, delta_time) + return parent.check_additional_ai_activation(AGGRESSION_HEADBITE) && DT_PROB(ai_prob_chance, delta_time) && use_ability_async(parent.current_target) + +#undef PAIN_DRAG_PROBABILITY + +#undef AGGRESSION_MINIMUM +#undef AGGRESSION_MAXIMUM +#undef AGGRESSION_INCREMENT_CAP +#undef AGGRESSION_ENABLE_LETHAL +#undef AGGRESSION_NO_HIVE + +#undef AGGRESSION_LUNGE +#undef AGGRESSION_FLING +#undef AGGRESSION_TAIL_STAB +#undef AGGRESSION_HEADBITE diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm b/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm index 7c8edace81..02da1b0c6a 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Warrior.dm @@ -64,7 +64,7 @@ /mob/living/carbon/xenomorph/warrior/throw_item(atom/target) toggle_throw_mode(THROW_MODE_OFF) -/mob/living/carbon/xenomorph/warrior/stop_pulling() +/mob/living/carbon/xenomorph/warrior/stop_pulling(bumped_movement = FALSE) if(isliving(pulling) && lunging) lunging = FALSE // To avoid extreme cases of stopping a lunge then quickly pulling and stopping to pull someone else var/mob/living/lunged = pulling diff --git a/code/modules/mob/living/carbon/xenomorph/damage_procs.dm b/code/modules/mob/living/carbon/xenomorph/damage_procs.dm index b6ceb20434..e13bf0755c 100644 --- a/code/modules/mob/living/carbon/xenomorph/damage_procs.dm +++ b/code/modules/mob/living/carbon/xenomorph/damage_procs.dm @@ -281,6 +281,11 @@ playsound(victim, "acid_sizzle", 25, TRUE) animation_flash_color(victim, "#FF0000") //pain hit flicker + if(damtype == BRUTE && acid_blood_spatter && prob(splash_chance)) /// Only brute damage makes sense for the spatter. + var/turf/acid_loc = pick(get_step(src,rand(0,8))) + if(acid_loc && !(locate(/obj/effect/xenomorph/acid) in acid_loc)) + new /obj/effect/xenomorph/acid/spatter(acid_loc) ///Don't want to double up. It will target barricades first. + /mob/living/carbon/xenomorph/get_target_lock(access_to_check) if(isnull(access_to_check)) return diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_ai_interaction.dm b/code/modules/mob/living/carbon/xenomorph/xeno_ai_interaction.dm index 177cd07433..322d74e9a7 100644 --- a/code/modules/mob/living/carbon/xenomorph/xeno_ai_interaction.dm +++ b/code/modules/mob/living/carbon/xenomorph/xeno_ai_interaction.dm @@ -127,8 +127,32 @@ At bare minimum, make sure the relevant checks from parent types gets copied in // MOBS // ///////////////////////////// /mob/living/ai_check_stat(mob/living/carbon/xenomorph/X) - return stat == CONSCIOUS + return X.target_unconscious ? stat <= UNCONSCIOUS : stat == CONSCIOUS +///////////////////////////// +// CARBON // +///////////////////////////// +/mob/living/carbon/proc/ai_can_target(mob/living/carbon/xenomorph/X) + if(!ai_check_stat(X)) + return FALSE + + if(X.can_not_harm(src)) + return FALSE + + if(alpha <= 45 && get_dist(X, src) > 2) + return FALSE + + if(isfacehugger(X)) + if(status_flags & XENO_HOST) + return FALSE + + if(istype(wear_mask, /obj/item/clothing/mask/facehugger)) + return FALSE + + else if(HAS_TRAIT(src, TRAIT_NESTED)) + return FALSE + + return TRUE ///////////////////////////// // HUMANS // @@ -150,14 +174,10 @@ At bare minimum, make sure the relevant checks from parent types gets copied in /mob/living/carbon/human/ai_can_target(mob/living/carbon/xenomorph/X) . = ..() - if(!.) - return FALSE if(species.flags & IS_SYNTHETIC) return FALSE - return TRUE - /mob/living/carbon/human/ai_check_stat(mob/living/carbon/xenomorph/X) . = ..() if(isfacehugger(X)) @@ -221,6 +241,16 @@ At bare minimum, make sure the relevant checks from parent types gets copied in return SENTRY_PENALTY +///////////////////////////// +// STRUCTURE // +///////////////////////////// +/// Allows this xenomorph to climb most structures that can be climbed, if they are capable of it. +/obj/structure/xeno_ai_act(mob/living/carbon/xenomorph/X) + if(X.ai_movement_handler.do_climb_structures && can_climb(X)) + do_climb(X) + else + X.do_click(src, "", list()) + return TRUE ///////////////////////////// // WINDOW FRAME // diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 6205c4f919..beaa29e815 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -168,34 +168,34 @@ var/pull_dir = get_dir(src, pulling) - if(grab_level >= GRAB_CARRY) - switch(grab_level) - if(GRAB_CARRY) - var/direction_to_face = EAST - - if(direct & WEST) - direction_to_face = WEST - - pulling.Move(NewLoc, direction_to_face) - var/mob/living/pmob = pulling - if(istype(pmob)) - SEND_SIGNAL(pmob, COMSIG_MOB_MOVE_OR_LOOK, TRUE, direction_to_face, direction_to_face) - else - pulling.Move(NewLoc, direct) - else if(get_dist(src, pulling) > 1 || ((pull_dir - 1) & pull_dir)) //puller and pullee more than one tile away or in diagonal position - var/pulling_dir = get_dir(pulling, T) - pulling.Move(T, pulling_dir) //the pullee tries to reach our previous position - if(pulling && get_dist(src, pulling) > 1) //the pullee couldn't keep up - stop_pulling() - else + switch(grab_level) + if(GRAB_CARRY) + var/direction_to_face = EAST + + if(direct & WEST) + direction_to_face = WEST + + pulling.Move(NewLoc, direction_to_face) var/mob/living/pmob = pulling if(istype(pmob)) - SEND_SIGNAL(pmob, COMSIG_MOB_MOVE_OR_LOOK, TRUE, pulling_dir, pulling_dir) - if(!(flags_atom & DIRLOCK)) - setDir(turn(direct, 180)) //face the pullee + SEND_SIGNAL(pmob, COMSIG_MOB_MOVE_OR_LOOK, TRUE, direction_to_face, direction_to_face) + if(GRAB_CHOKE) + pulling.Move(NewLoc, direct) + else + if(get_dist(src, pulling) > 1 || ((pull_dir - 1) & pull_dir)) //puller and pullee more than one tile away or in diagonal position + var/pulling_dir = get_dir(pulling, T) + pulling.Move(T, pulling_dir) //the pullee tries to reach our previous position + if(pulling && get_dist(src, pulling) > 1) //the pullee couldn't keep up + stop_pulling() + else + var/mob/living/pmob = pulling + if(istype(pmob)) + SEND_SIGNAL(pmob, COMSIG_MOB_MOVE_OR_LOOK, TRUE, pulling_dir, pulling_dir) + if(!(flags_atom & DIRLOCK)) + setDir(turn(direct, 180)) //face the pullee if(pulledby && get_dist(src, pulledby) > 1)//separated from our puller and not in the middle of a diagonal move. - pulledby.stop_pulling() + pulledby.stop_pulling(TRUE) /// Mob was likely bumped by the pulledby. Can lead to additional checking, if we don't want the victim to get out of jail for free. if (s_active && !( s_active in contents ) && get_turf(s_active) != get_turf(src)) //check !( s_active in contents ) first so we hopefully don't have to call get_turf() so much. s_active.storage_close(src) @@ -207,27 +207,48 @@ if(back && (back.flags_item & ITEM_OVERRIDE_NORTHFACE)) update_inv_back() - - /mob/proc/resist_grab(moving_resist) return //returning 1 means we successfully broke free /mob/living/resist_grab(moving_resist) if(!pulledby) return - if(pulledby.grab_level) - if(prob(50)) - playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7) - visible_message(SPAN_DANGER("[src] has broken free of [pulledby]'s grip!"), null, null, 5) - pulledby.stop_pulling() - return 1 - if(moving_resist && client) //we resisted by trying to move - visible_message(SPAN_DANGER("[src] struggles to break free of [pulledby]'s grip!"), null, null, 5) - client.next_movement = world.time + (10*pulledby.grab_level) + client.move_delay - else - pulledby.stop_pulling() - return 1 + switch(pulledby.grab_level) + if(GRAB_AGGRESSIVE to GRAB_CHOKE) + /// Probably could use some refactoring for the CQC skill, traits, and the like. + if(prob(50)) + playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7) + visible_message(SPAN_DANGER("[src] has broken free of [pulledby]'s grip!"), null, null, 5) + pulledby.stop_pulling() + return TRUE + if(moving_resist && client) //we resisted by trying to move + visible_message(SPAN_DANGER("[src] struggles to break free of [pulledby]'s grip!"), null, null, 5) + client.next_movement = world.time + (10*pulledby.grab_level) + client.move_delay + if(GRAB_XENO) /// Specific to some xenomorphs. + if(HAS_TRAIT(src, TRAIT_SUPER_STRONG)) /// Superstrength means you get out of jail for free. + . = TRUE + else + /// If the living mob is skilled in CQC, they will get a bonus to escape the grab, 7% per skill level, or 35% if maxed out. + var/skill_bonus = (skills?.get_skill_level(SKILL_CQC)) * 7 + /// Then we need to determine if they loosen the grip or escape outright, or struggle in vain. + if(prob((65 - SKILL_CQC_MAX * 7) + skill_bonus)) /// At most a 65% chance to escape outright. + . = TRUE + else + if(prob((100 - SKILL_CQC_MAX * 7) + skill_bonus)) /// Maximum 100% to loosen the grip. + visible_message(SPAN_DANGER("[src] loosens [pulledby]'s grip!"), null, null, 5) + pulledby.grab_level = GRAB_PASSIVE /// Loosens the grab into a passive grab, being able to escape on the next go. + else + visible_message(SPAN_DANGER("[src] struggles to break free of [pulledby]'s grip!"), null, null, 5) + client.next_movement = world.time + (10 * GRAB_XENO) + client.move_delay /// Grab level may get reset, so we want to keep it at a good delay. + + if(.) /// Our living mob successfully broke away. + playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 25, 1, 7) + visible_message(SPAN_DANGER("[src] has broken free of [pulledby]'s grip!"), null, null, 5) + pulledby.stop_pulling() + else + pulledby.stop_pulling() + return TRUE /mob/living/movement_delay() . = ..() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 3df4c8b83f..12fd1c6559 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -513,7 +513,7 @@ return do_pull(AM, lunge, no_msg) -/mob/proc/stop_pulling() +/mob/proc/stop_pulling(bumped_movement = FALSE) if(!pulling) return diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index a5caf0ad06..232d9afd07 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -24,8 +24,11 @@ /obj/item/grab/Destroy() grabbed_thing = null - if(ismob(loc)) - var/mob/M = loc + var/mob/M = loc + if(istype(M)) + /// If a mob is qdeleted while grabbing, the stack will call for stop_pulling(), which will call for this item to be deleted on drop. + /// But it is already being deleted through previous procs in the stack; so we don't want to call the function again when it is dropped. + if(M.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) flags_item &= ~DELONDROP M.grab_level = 0 M.stop_pulling() . = ..() diff --git a/icons/mob/xenos/wounds.dmi b/icons/mob/xenos/wounds.dmi index 0e526df977c9a6651f16248fac3b9cc9e914eaea..7b47a9fbfaa4d0090ea799e0d37671d628aa384a 100644 GIT binary patch literal 43014 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
    {dx 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 literal 40154 zcmc$`cTiK&+wU8?6hT3XbfnjS^cqA#=^(v^UIZ!9TLL0Qil~6}UZr;skbv~wr4u>= zQbG-oa`AW0d+wZn?#!Kg-nnbCXU|I3+G}OcUe9`-@AFAM>S(>ZPeM-u008c*zIyQ* z03huAcih7R002jhwi*Bcj*gCozA{!+^zNl%N%Xx{A+eGb2M4Dg?oUj@0!b8o2_}9C zzQ@Dx;i;~8sDZ@ScHBtFmYqmu%+l2Obh#J zlwM(;U1J-S{)_@}uXXT4Ns~`}F|z~oA;mpXWsuSXVzTHIetu~}QZhCYQdVe^_)}Vu zj7rNtH>Ixhg4}EzZyA9t1EHbGPw(Hm&&0~#+z%lqCV$Hy)H_xXlci!{Xh(Mc2_p-i zi?^tX1xaR=Rce`OPMH@CBXjRms=bMmDBV*&1~xioR$3+&v$yog#YWBj(5fGa*;Nje zZGkitl+dK7{ESa}CX+*x#Ivhyp35t?4u(I(C28slp}@H}zuwx?4{h!b!D2C1hGx+j z5_$CsuI?Q5zxWm|0AKTg#Dvr~0ZbGG6!o1Sikmz-Mq;`KE7&`m`PUYz^P4)nWejJE6V|Qd?R#^fo&iHJEjLU#m4s^@uh@l5k~g z#&NtV0ApUYT+d&2Sf1syRa}+o`oV9r&X^;H<@W+=Z++TQUVr}{)Ow3ZrDObTRgmv7 zHgp{r7u+EB@UEWt&Z6ZbXSj;>K%OpLoztU8xjt()o%KFzPN}diwapruSHglJ$=YB6 zlLpG?%#}T#Rr%T8A?(+uv_2SZNA-8j?pR2UTUz=!ZX_6soFW)&Y__Ilt(5ckh1v8f zj=SyR_rl#NsJQ!>xyWPXH8QEpQbB(?#`;ECyeRu?v8FW28*{FL=m~I2Q2*t4_1J2F zaO_Kze`YT`Mt*F=f9YYsB5uNj|E{>$j|+}?c>!lvYt?%4o#vdKz4^WSr2&lC2(fY6gl2H5@Rp*Pu>P7{lcuRyQuK9I z%4*6%k9&gQh>X$M{Ezhhu~|9aqfgvfPuaMV-qj+q^dH1c`iKCnu}|;WL?`ViKo5iK@L7k&PaiLwQIk- zy!P3AV0!=Rw44O|6Zc9_(yFvGAlU4tq^G|68?z7BlN7lr zofkp@h2QUeX%XZ$Yk5e2{3DXfFSD@Lh%-Kf&-r%&N^4q>n1S5`)}}YwSRuV`Eaj5<9c=D->lv>)c)Tr zqDGmH1}QtAU>DDU{T`kVuV(3j$hcM5?vH&^;?RntAdpA-1X58f z3SI_#XBDp&lY*oVI&{MB)A7|1Jtt_&)A_7LM%|K{hifFNZ#*>Ec3Rn&M0z;dOuzA7 z*vvlRyWeu-w~o9g}NdXDnl78oWA#NW{rS()UZr?Vwuux^Fr-@6dMDeeM7H2&^Ir>}Y z<4Z^bdUpkj79<)bpkp!s09XO4FP`c9XZ~Fw4d;;kHh&?YI#$I*Qy+gQLiU!#m$sF* zZ_Wz%_Uv>~z+uF`tNj`S|1jilZ|7j=@F$bXvv3A0=~q@>u1AvP|L4P#N4imW#@!%L z58);c$TcZre1VGx@DI?7>w0Ac07%9N{Hr4a5_i}o`D z9r8*Z@11sY2wU-gABa0yC~i4FdxaYwUM_IX!D$il4d1X1w!H#yOzwxy7}ltwM3zY$YG^|`C6lJx~zu_lfmnZA&yza$O!}RJl z+~`N5dTWi#h% znDD0>U6e*azf20ROL@1a2x%qyA+akFfp5>=@P&4V>ztY=QHKRo4K)W^5QgaQzad(7 z@-rV(Di`Aa+G(2X=2q=0js0t(zn>s6g6e^ysdiX4`Yx11HDAwX2{bsoc|u&FtA0kZ zVJPXmeH(&gpLWQcrNp|Eef!yPGK=uit8iW)yDC1i&!bL|Ozd222==pY<2T%hk$j`8 zhX8Kn>YjWHGO%tmftZ*Vl*SoHV@gXto^D4z!)88nr*AarXF&7f`pM+l z8``^^XD{e{JwT-LXmNfHVX;45UOH{SQ_sg4WRzoq(O_oropTEChRLC22XpgfGB+n8|g+-?bsNP4w)PH->W%K{;hm!LbIU-6LbSj+1 zuRxc7=lTi+&Lu(yg-k!EU$Mq6*Jz^7>TeILsHy3&9@X3*X5gf^DBEagICpg4`OhLv9qa@=s2%_p$7 z3uZrcNwTS30(trYBm~41?Z!@zg5Fs40m~$Mp+R&EX}zGf$G#v4p{3ExV~sWy;81_Y zOJuf?JLamOIQX8Y=Cxcx{Y0YQw7U$hsM>Gq`eu)}6?@2TgcB`nPxVB>JzuAv1yufL zLn02lkR^B&EI3sKnZ|Fj$&rcA*$L_Ebw!@HN7e?@sT^3}1gN;t!iGLG~W8rc7hA0z$*0N3QU6+9y#Pe`O zRO}Dh4MVa7?$}L`n^ZSSH&bd2F+tqq|agxrBXhjwG&be@?N2@rwUjR7ru(BiPPVr3A)gA_lq1ORkBkO_e6w zf9QEhw0WA~MXq5>+(C|gvPY}T16kynvzirq|gj$tO+)8 z)6#!eAHX;cd0&cZ-Ah2pP`4M_rFHuLB%*Wc_%hFjAu<@n43^b@TYbft0^-jRDb_UF zzLoajr=0h>_SVI?SG$G&fO5kIdcC5d?{2AmY9FeW9-fs4Y=YwB@wVFag>zKfXQ*FtpF_yNOxj$HEd`xQG>MK#p zRBD$Jmak`&9X6^o&g=@&dBhX3x0!gcf+s6L&QZu02Oe1~(nI&OJ>o+Z&CqIo%aqjY zx1dE|x~y@L%0t9Ay7LvK>9wt*_O_r{Gb`mDpu_26&vbbE9I(35rpQTj>__k)sQ7%J zF4!?I&Tl%gvuPW8(cerkRD^B2VRv*5JJq~bRus#BBiqg181s#;=NLwHO9vg?MZHuI zL^M1fFf#e0s@8fVKOio2ohy#5TksB#(QyciETM$xq>bxe)w0Pz>dDkfGNuUp%&XchG!8CT@ckqoz4U z(x*G=-l;l=etC#sa2w*4RFilAev|K8??W54q{#!6ytyUqESrgUS>_l-Xbq1 zd9hc~cBL19O8*U0LUlg3r5POJwEdzGHrNlo+p@)$!g`Hb@Cwohup|gPiu)!UqRH)= z%J4o=9o81VDbXRQM&Seo_Cf8dM{nYd#=L1EinRH8{|86gJc=^^97IXiBzm5ELzHgu z-SGiN1&%+MAvFM=?@kRp9UeUnBc7%uCiBk^)nH8>G~V0No>9qsxk?__8Omh`BC*&z zkkny16i_+}!vO-l6nl}RvXf&^>}Z|%s#*xeGA? z|C}|&_^*CP7m1CMae^bX5L$V&|k*Wp41FRL!kVf-new|hBkU`6Tc+Eftm^Vs$ zp8olWoXnQ5eh?5ElAM13(*hQdYXBW?!|9->fSKW35y>-eWT{8kH&QAR)5Gc~{E=u9 zo;REyw)rFcAY{4rwIftZ=i4ZB%Aw4>juSGd7gPa&E!Wg+x&2z#M5#|dP<2*382U>v z_4iZ1=kP>o;lD;s~NXaA-vSQK;Xk6xU|v_+!;jFuw4TeMiCcJ;KR)2ChtXm^}#*KXzZ%k zyUpGY8SXC{>3X2Ep$3S=4ggirnC()mCQ6!?_$`>P@Q`G56E>Z@KqRmMZEbJli)T^n zU-O{U*ByK2`VczsLy<|dkm(v3mvY4Tt)k(7-OMdf z-*4|*6UH{_jEHP~K(e*u7J!1==+#VaZ~L((T`aLsT^rOJ)VuR(`P}5CCxY5yv;wa? zaCZ47L!WPQ#7vvJ9q};CL90Rvu1Qq5l z$XzcHrB!2VKO|fAT9eGh-2xw}XBuu^gcwUfN3;i(d;_)*$rpQQqQE_$q4EL? zmG5yOd0$;nq1i4JTn{_a$8crlC~3f2&@|m}_rvhb1eA{6(?^^8p{g_Kn}g!7k<&GSCW4 zwrssXbr6>FZ8aPJW;5hL!}Q8>2qSb!_O0`I;-ut4g0I&nkRSaNQWFQkPtH4sG|TBT za77KnI>h~oSM|!^++r3=lH%>jJGv;2ns=F&_=VXWhQF3Rd?-dfhk(EK4Q?GF`1=&c z5JqjAbZnRd_je@jwU>r73pXmyfxBG`@v0OAD{OX+xLU_s6NryFRh_bs`b}+PU1Ox1 z_9~*lCU1?Or>({eM}!(-=hGo$_O@Rf^ZDVEYND78tyjl`)2fN<9Zcf8|7}) z2eOx77f9VhQp$7ml@#uGQOE^}aBPk$-KX<83JL$p#d`e$YTkChYCUv3cqKn;~0aU2;T;3V0OSiqzi z4-hKAtEQ$*dAB>H@lbz(0RXG1Jve|;N@6m==kL)1odPcaid9d(hSoe(ZeV)wK+`Oc zt+F33Q+@~@dU5ZW(36naIC8R@&vOweQ|k=U^ylnc7P?-xg%(0$E98 z8kgGmM6Y2UM?fNL@KSOys_754Tb~i<{T8+TPQ9_J&o&|!Ee1s2p2~WJ_j0Y5+g7FL zS8w!K-_lY;4Jq8Fp()-dsKj>aLu_rPmsISb``1TGi)#%#zLD$Yqtasgo!Tz;7tG6V zdC`Fa-|HmrKbmq1=j1#^2LW@!hR;;L~$ZsmnC>#25A5td@qO5?St z{8HrVgQ)-fT1Ie*vz&S+OkIXDe5@puyu#(BC6U`hsK}g7W)oBdK`IlPA`@1QL`nuz zt--%`#Gm8_6u8kU1LX_Anp{CLU?@>*^9W4kQiou&C;fN#PeGQ+TazSzG;L}kBC875!Xek=U1QuZOT;*?UfOt! zZ-=lVkz416zCZk(;r6WznNW;TJ6dxiMXV@k5HFqutFnaU@b;4sZ{(Z=2o>^v$iQ## zCPuvZGW~|E%jQK+K@vIYq>V{^G^q|x9Z$C!KuW_u>3o|}>W}{m;okXfB+oS2!umR* z2ZOc7TdhEi@!jfx*qn~YSRCV5h~d{^K#_>EufGC#xJ=~$ zxt6=m!N>1^fg6n|q5^3!O(@rW;S0y_06?zb!LghmwL${?{A%JU{ny(7K<6+qDg1lc zpq(#u>hK_7f@T)r`aQcsY4Aw*@1v{iR}_E~+uz&6XPgky8gsq#6K1q}6PC0FQn3P@r1#A|q#pyA>lqwb>85wA-U(qR`$O3TNC~py7kjbz zgaDxPfH}0}4_V(mGJuEuh#AcDZLjDu9v(pdqe(O%ln-&|;pM8GB8(&n|4-VD|J?xj zTTiy(gckh1!v5au=Xi_Uqi@qk&bgS)r@^1JeEl{U;^G0W|iyML$ zA@;mtk6hpatnbqK279HWkMhaxOlQLWzoVgYQ~!e`psjLsUQ196 zx`M4ls4f%MfCASXn z!)kkGr~{E(12)AAb<7C6CCAU&kU1G)LK?`N430VGs!i@cELCfUULa`wP{;b@e~kUs zToOJg1$xwzyVfXFyfzF)Ja)BTf^%V#q;b3qpYE5il&0o%;>gw=b(Y(%gw6Hwp!8^k zcy?AomU^Hl#$VCgwI8e%$`W=Gp!%Q4mrI#dDURS!hWHPyLUN#_t>qAw5ta9+Z!)9u zZ#KaSD8?aLk4L$t4sD-uiGbGQ;`^XhX7f7lUCh#!vINs09Y>%aJQ87~hNaVP-W_Hk zisob_DE&5z;Flr-uA!Fd@P=954}8t8#Z6xu5`qlgo5|`bm|0Y-uq+CrdF->c{uxTn z9QC?G;2UV>3kX--B`ovm=E{K%iXn~z9U|O)iC0UR8~U~Yzx6kk!>7WUVStzSnqnJ0jOgC~zG(iNYl@`#cMeA5-86pRVBmo$51Nh1HsVs_ zLnh;cTj&9TJw&|BadRAA$R zC&sVlOaf5b-fQGU9%oF(6GqkzSSskMrIXLhw|6K<$?htwqzO*RPu2ob?f&pCg-mkZ zKL_6>G5L4Ti~PI;Rp>&C`I;_D>8i(Sb{gc9Ikl@|0*M#fTYM#-yd7M zZwj?}*frx`?L2+{7_Is$JtVnI67&8)13O^_OYqJ?=e0PHFKV} zK4gxId>7St`+nin)#2%H2B-*=|8Hj3W-QHg*pFU#vjtVy;9bA&obsy9)T~aLcPMS@ z3fEUsv^BQXTz?0tEY~!gm^j|$J@SZz;~#qa!@l*?a1H9 z(Q30S(8o;vM;NC@EMJuPa zTX{jXi_;y2V>jIVor`N-)74s<-;k-rpF*Pjmd9o~>|=t`Y^{5j6Sms-R+1Uki>OWq zMGnG zWvYxr_WZ+hN1Pi*_|_7*(soC2n^9mZ{3pb)BxbA#)Ql0bebVU6ou1Z7mLlLdPckUa>ZdHGG>Ar~7+jE)V>s#LHIEA}ewJP! z&A>SEQSQ>Xe&!OUvnYib6p53?l5FTEpyI-Sf@<{mg+X;_8H0N$672$Doc)P6w-PA7 z;m$xzW*|C`E?W&RcWaOMZ3IBv&H-MD!>+_(xPV+k@3sFP`?LJ8ok5s(x-6ln#Zwjl z=rv0bY2p*A8uk4F2)+5!_mnrCeC@Z9;Y`azKn*OP&c^tan zjE2}8An<^!)L*C!o1O@t^6MO_h%834F~8-TdKUvOzrfc*RXy|E9eXR#MG% zIN;VdX*H*crk$lPmBwge!&C)nPM_8pV1#z?BaxD*^N`AZuw*Q`x%Y*C9%tG`p;PVs z`&#yIKEd<%REXsy!(YatEGCG_5OXwGkCPcjC|aN|pT<$R#Fx>lb=q6*k68{mFTRhY zr8|ntmD1mhP#dl$O;jm^vC-(#`s!%}2!vQR}EpkSkM*yf18*lbrBk8o;U`HYF| zh!00H=J!;op8rH}CkD-NrC2=`^>6N)dCRf^T*L1JVxDTPEpLuj9b~%g$HO38Of6l! z1Nz;q%mFt^frB9gt#0i*$Wb>AzQJ^a=Fep|$T1aNHBwzVjGq;=EVO2xzkxh(oD4I| zB#wt~X|XpxmgBp#XON8W@mxw1YC}iz)UC(Qd*VBlJ)} z=44#&;aduf0whsB{v177lFgu9Acix;1S3EfkvYr8oi<+)YwSFZyS`SRMzBNyPV?{i zb)+;GU>)Gd@{+^O>2qaHbMz18kKELQGt96-ffpgTAXJoW3PUm_^se9RwK^}iM+c(B zcN2=!8cPJ8HSne$aG5xkrN0XqU65iEfAAgZu;CTTnVt4I329ld>^D04uc4^;10Yt0 zJUp{GR~L1f_DGIwgO^?&SD(LtO6uA<_3Ya005LcI=VA0CJ0{N=&73JwlfZkrNQQld z;abw5r-6i}rgw|qw^JB#H?n@*dS%>_0{8&?a(lb6Vs)MI#oVv_Tj^+3l&U{x2XG7Wpn2pC zmMXLRI_D?Tegb$2v%hJy`d;T7Hlbm7PIQd-&^6puHdr5pzz zyiqm9IJQ^cKf!mTTURz&PWzx00$3phs_17%khKuhOvRm*xFT7C-&qe0lIGM`ZYOkp zMuupW-*;OBpI7(3yu#4cg8}HvCZ_2BVgW!UXSSUeULYJtD&(7xLn9{a1QIlBxPGR< z5N>dcej;-bBN{+nW24*y9*VbPHCnk{owz|dF4DVh85mxbHBTWQ#NiV6f}5!$b~?Ir9w zgy-~ncA-BskS}NOIobM6#-ZBV=eJ_Hvj@Tev7(FY?msv}{amRtYb&_edw^WcRf;JC zIM#>-0GNp(H~vWdf7+i?to)CH{W;q1pPD@Y280HF=yk^d@R-LqzcSwf0-O?>j<5Jx zT1lg}gaDxw&V(|_3{UA)$pAXEPiX;S{OEwCZ5)8mIs0etnOWVS06-{FY)MW-0w8vn zDE2h$Whzdtl7vOGKYl^hFNJSLBOCY9Pw&8n4tc-VJL9$OVlh?0F&bNUc2df3B>Ck@4*7PY$s<50sfR;D!ZlV4{=AiKI=3wjeQ1TLo#a`^(A=DVb5Pr1j&NQ>Ngx zuvWT5DL6T6Vw$0EAG==hM!Uy|%x~fwPBH(@%SG}lgdP}7ToPH%nt?u3qKqc*k#&x} zTH^y=${jlt?j6M6Mb$eu!%jnB)v1_fYhg|`@LhVNMyw+$3%`kwT^PWl+;UAw;Xy$L zAbCgw>y=*`Rl)~YJ=c^YA_Vx$|2K!){|~#i;=-NB4*&@5A7KyNp@)H}FW)i#`_jjxR=R7ZxVZy+Qc#O;{aG|H~g%t@@Qp>1=my;)$y`N znZoD=&5UAi0G3XD1c6bFF zOZRcl*D8&2Oi|^`>d3w8`ZA~zNzJa47!hbRyMX}#Ii%vVX?20%^1ef`;y9>LkqQQ- zBf20L*bO3l>MW0GESYXiye#o)bq=`=;`u)6wuIH`3p|N~S#r8cYZLTBJ!O8n;orO_ zs)=>L%duvvA$c=*L+C1x`7Pdt&bZGAEV@9q+*$Xzn@e~3e**A77V7`sLfX}a1K5%Z zUHXl@#0E;eIF?W>Krr1+G6NJE-;4#P2HSxu-Lb{tP=X!Vlj-jI(#_^0JgL=S_Ue3H z-z8Wzmx5+A+nB=9SnK09E)O&YyHd<1&TscJ>8U%Wo?R-b@z>BB&FsBDiA2^Az?=lG z$griYGD0Lk2{p)XQewbruyx^Tx7I}+M#&HeDlK@yLW zoAW}E@{j+97!sW{py&Lo2$@>0E-9?@2oU`RPwpPS%nn`e4YhrO9KPsNd}i^t!t>Z! zgXMFmi}sr4Er>Vc2&k~~XPoBPkFahgLQdvAbOh9_BcV==$njfS=Pn=b9FwhSxaMT+ zl%%da>LjB8l^n7-#C}QvS=M(3=$go$m%sjbzcmt?!gX@2M@<=d3%hxc8PRxzzgmYq zGju0vsu3rrxEiF0t5)?aLuJ2{+UQ+BId$qQB$kI1ehtHft>)+}+iUA##{Yo6@eJ*v2zgmqIZ3{hW^4}&8 z_7bzioLGOn=ts#PA%K}$>SLYW{H%=34slTpL>?JSppofOo!1@`sF037!qowsA*lRA zmS0Mu38XB+8%+Z?qkb88aW_;0EYvYr--4}{4+C0bo7v`(+yt3nnJMUyy(kLxk(dFc zlLTn3q-6+UQ`0!KxLnT{KZas0cI?*fqR)KU{)OX)kou(|9oXDVc=c1)QNPyI=^ zV3SPP3P#w^{T&?Rw;bE;TNl~OxfS*ndE264)ha5rj)Ao+&vDiGG|Imod7$y)ZWX44 z;6f~?xz1AE-i)q4!2V1uPR0>Pp{yEYNuO6HI!TPr2?BsBPl!_vu^MjuT&C}DDAQ~3 zps(KH7MOf`gEbPoz64?#4SLSVUNlrx@~wg}*Q(Ro<3==KOol)h(e~`~_#pQC<>S>G zHRznSm2bbjwgrKCX+xl}Nx`Eh)CKgdqMzS3HM`>Hv&-R4SA>40Y-tgsP`$*p%&U!g!W|5RIL`qT-d$B+Xo&GRMfRcmmPOiZ4;i;^XFEe;a#bn!*uWc zc{x+5Ll~|PK2gfli0>L_WJL`I2`}+GX<4!n##3Hm(OK0TflavKfmNMJCD-!C?YNe< zqd!$1y=x^Regh6_Y-Xv{)8eSY0!l%+$$j1Mi)SsTrFi~f{T&lOmk-sQ~)w>9CIRQzPiLM{{g6jR|XrcUJE`ydE>{J$dYVrFt-Op*->%a{7HmV8z{92_X1lObJ=a!-3_4G{lu{d{) z_r3ictlRE8_DD;B`J>Ol6+?6KxU8fA#cV-Jow0JUk)d(RXGMX@cMON@t?o4)*@+?g z;iGNG>JqB8w;SM&er!0^Tko-gn%rP2;qCzzIrGn8XD zXhqNqQ5)MQ_LHHBD;R#eVBgMl;AU&#ZaS9M;)yy~Ek)-n^+NXv3mdbBl$8+?)`l$D zaQZfAAPn7^aJ>DOYTojmUCm8z>0iaoQOUH1pM6*Jz>vW1t@Oy?90j=^U)9Hn zQ2xw=D|qsz7P*gvn$NMa3w)Qq*8K+hIe5tx#w54%DC7vQEMjOV2O1LNdwo(Elvis( zR8^tMsIr34CR+7ecjS*5B_RQVoO|>5Kjuq}Y~-vCw<=(!QKA;8?mGLvPdNsf2Mpso|Yi{il@hT&< z)iE6>_0+u%1f0+4dO<7ShK}TS5zujMD|j*jEW2~4DVbqzh>?4|j+EyP_u;01Q*UP= zd>=TnDeL~t-TU5eO)nKaZU$WrPF(n~1d#-WtyDW2h;t#JDOjatuQup8ZST_!tb$83 zrs!SNNMc?D1?jLhG0y?I310H6?o{x9fZpOxq6t~D+LI^NLNJe(o3oqUauQIvtG(bN z5}MkB4ME!vKw4L>hGEr$!3lv%&SOzP!+GJyY>o^gmL(i~@T6u4DGNYPN9V@%(he|IC|3 z{u*T7gIBfrPZ4GKPL|BiA{Z)Tk{^$31?Gt+(*E*u&)+f#9T&mvCYAO35Ma^ez|_Ba zVD;N*5Mta5G-Fv`{=h3*84KlUSRsu-Jh|hwxa@qp403LSF0RXv^}x^z_!to6u$>q1 zgXOaOSv$D{TRySiMTmOs(IYI{m0kUP!oiC(e{wRx3C+Ul3b=WyKU*p(G+U-a2E+7Q z&prc}Au$2gDnh3dp2dQH<~wcEwX_A*I0Nm+-bKHFJ21YRQx2e*tS=pX7p$E867#*Q zr1p^mO1~nL-?zs;0IWF&f6;?T|4ZOco=YH?ZSF#t&=NLM`{Mj&6I}p+G0udCpEh3k zKV-cg&Cn|qJ>q|jhowm?$5eK4|20oBp)pPSCC8U=N#J1+uu7nf)eT`md-ibcmR^EwHh(Scr6#n)Z%V09zJ5P5ekq; z8Bx;dWZ$WlidAPiKZXM^xH%6Ptfk zaPdf*Y;JDI|D$D!7Oh-Dwx9bww6X{gVzYU6K=sR#6XMKmLl0uFkx*^k{l5IUE8D1x zgWQ$xxM6XhL$0SlSJSiywo-zqGvo#pPui;9ywTHkcu6m)h1SC=&qhcxU_UFp`NYD# zH=e;W9zJ6Hq!kV2-!@3$IAumo>{w2W-teUOC@FHJ)0-BG|!KWe9(0n(veinde!rJDco z*fiCiE9;qhF|ZE;0UE3Q?uH5jfqGg_?c~M8xi?6?HpE5Dj<`%wgZPH{EqA>>fm5Ib9FTfc^6Sfufy|I=rg(1e%p`O)x{qARsD@Ta(TXY8s^pGW71o_QUr(m^Zud$9(OqO)`0;PlErpP-xT7cugf_rB875zHu|zB?-=5TD!T$cC|8$H9^Yb%Tu!Ou`yVQ6d$6zx zgnc#A{Huj4gjn~6g_w-N2|XYg7&=@_%q8yMtZ2HrW!>TsN6Z6TMlq)fhkWS_RSE#T zG77;8lCdrahZFS#Y#nyqBlEZL&Q;5&ru(ObEt-7z2cNV|{C{VREeGzPk~=5A2d4iB zQ%&Ag!3F@>eN5M#pBq1Q5PaO*Jzm6uUAEE%gvK~e{i5OJWQLfOU5zE+07hS%6Kv7Y z13D9IjO$04YI;edDX=(zi6_dqn_rm$o$(Hjl<)SQ|5^NXE5|wiX)B|oUz#Z^GjtHY z4!&O?arF5jOoNI~W-H353(`&r<$Mt=b3Ncy62OE+6pk^f#E{xVJj8y^bte1{)dP%d zgJ_c?S4&wShd1V5_63`0KdBsArVziMouW@*=~Vv+_7!4z9ryi~%UA%U*RW4K8aN{^ z-(rDX2}A+poGG>sPMwcWEmrqsDp`4}?S504#w+?7s-VgYXMSwpFpf|e`(jRns_i6Q z3di=iBYIehZfjdu0no(^I-~9SAiU$#H!4j26%yeK`c%o^Pk7#_T1gP;)cT|H>FeoI z#*e}qw(rvk){mY0@NhyFh!xjxpXk)4dK1-nUMDRPI}bDP6yROysh~DCW~=-FM7Ji4 zjmiD|tYJ8fuSeHjf6Ck0R<2L{IgF=ydm8IU8l2VxI*#}qj6vnKT(#Gq7TWv{yZoMu zI!y_RUC>h<=uP)KPY{ccuWDoPN&qoV%@9@Z$BpM`nd3`UDjaj2H;fJdbC^;0WpC7V z3E2-#UZqD}b=TgIH-sX)QzNGq{nCoc-{1EF<2f@bI*zDjQ~cQ8elB;1M!jY(wo9;O zJhZg_s}`_PsBoe3SYo;|f8z+g&Ulo|*T<>e7dw3?W0_3cH#Z6s`aL z$Z^l6b(vOa2*}cUnj>p*FaNZLvmI@`cl*+fQF~XbKICLF)e5url0If1H8-^avOx2e zZ8i|kBFc~6qa;`I39cxFHd78`=MY!Nc!Bg#I$GBUSX~iZ`ShfeX2=gzx~8?G@q$#A0_UNnq@=&QJO;R7o4rK`-PAVKUBbnxDBK<8g=Y! zR8ab$>KNZWgkGviIc5rBmO1Jep>y9#5IN1Me3;m8(cYE1-zZ|v+w?7E=)UPuJQ2P6 znL*3rd;FXuT>5Jzs#S8~$6PDDDl<%;&li1}x>vn$^=>1@^X9$NBS~>EQp%AQI=581 zdHl)hE$TK5?l4;s10DhKZJ7|gSZ;x5XC^E8x2sma;bjD5-W>(X?oYrrP45( z+G3QhNynp8T0q2l!ULg5+nmQ0W9p@qW&U~=-hnX%NBQZ?XF%(IkW`K<=}|@k;>vHm zm!H*#{Znn#UDD3Ca|F4oIxdF^`Sej%I>?8$B0QHvsUNd+Kk z7^2e1!q2x4lzOoT+>~aKsWZC1f)-DEGEVhU7^NJ?YB6;kArgoMynaO8--I6&x_#dq z+0)qld4)V|J$0sYUgfG;lsN-UQDaBI2!hoQcmr`pPg=1hfBQXmB;B;Yb}KLE2yz&{ z>Q-UXx7-U-t9r!fq0)65$GGIykVcIfjAiE@+m6xvO=#!E4>MnEP&@tm!R%e)UsQh( z-Om<1i^@fjzc+wdD&ThHnqF+kb(zRj#t^wK;D_6%%g^$Og$GJe*021olqCq>Tx#fP z)sE1%z=eFi!CKuEA3{rkn4w0xGmCMdPnGE=7igsuIrq>+AJv@Eg7^u!45Pe0UI(li)< zI2Njq@OAZ8=NGv-hl-WIYV+CWl}gB?S1x-+)K!S9YJ#z7(02$a-C~!#uvlIwep5z~ zan|Oz`l~v)bvU62>BDNFW8B~TEo4p6NH0s$nWJ{utqp16_VyhIPYYO7;RmD_<-BiY zXY7~%#E*cAb*Ya8|FzToKb=FvI)St}0E(B#gi@j(bM9Dh<_$0(3HB<(dzEDYo12>e zGR-0QOAi9fsLx^{XaV=%U%P_jQ06z+IeT>u<5ds(Z#MoNJnmJLtd~8PcYzDF9`=qTuA^l6&gjBCHn((Fe zyN#HikSnT-{W=kB))tnP~!xK`e)GgGN2p-Ba7)Sl#Ip zBC6$)z+I3@TR#j+`*DKu6k-z>WM=0j;~8!?0F}X!%n2t86r)g#0A@TP zDwbp-A453*W$?SxqWVsx!Oe3x5aW!z+YmLit3?1Vv{X`==sqiY-%&@Fyf|dC4jT+++LY_bO$2AVq(-jmm3k~Z^9gb%$H>ay&D3$qAE^x-h^1(vEk!ki$W(Q zChw$KJ|F*Iw7qv!Q(x339BLE$+535(14UN!Zh=Ya zWS&*;2Sw?rBOQnqW}b;Is93JK{8lMMTPjPT8DffZ)wC3_xQ==#uTCju0~C6wBemJq zY>+f{!tp|J9-AHB-Rg(7I`r$z<%Nuv5TQ6|mT8kD_4iR?yFR^`3xCP)$YvN<2v_{; zz5QU}uc}FpDt^klaX0)vT~lYU!H1yaXTvaeb)LPk{x2-R@l;73ho3?kQ#EOLjQ?x? z*7z+mPGD$10NRC|`J&PhA6u%(_j5hxpbZN6?{||{>y5jm5Ez_EO4M6aMZxnJMlM&U zSl*0Pr7o=9x}0y$vIDMP7z&-UF%@9?J#S_+%b-0caq-fY(ScV7<>cgeQCqL; zW5H^@lNaSv8+%tG?QWq{co5?e-qT*whpj7TN}njz(+~~C1T!pDNRz+DLr+coyh9li zvZ;;9fQrAQjaiqGWXQ1H*0sM^-4Ped2U$UyGm9;=w;R;2Mp9pVDZ0n=62_!XB{c&P z7Qb(`Qx#q{1Jz9osQ0jxH>-Hof2MRP*>+zj>5ky;G?=$FDx|CU~&=nT)R!tTWsISJn- z7*{ffLfPjKU+nFFtPlchKi$g@;CPd})k7BSUcm()L`|>%$w6ggL+Mpc03MDdEx*(= zQ7}Pj0SzL0WVDGcq$IU@_i^;*+xGX_-MHf7UuxF9?6lw?O)?oiiz*igKOm0y@(16j zQ#-rZ>~!J8EFA#xkv<1;Y1ZSbpk4HX>!jy9Jhv>&%v+Y&Z7~ea1Af zBC3iWpxO?RwN2tcx>~R0X?f(E!re1X3LVH84T}IC^co*08_%Mt9bV!`r>a6V&5QN z@#cqEr=ZA`c^~H#vtHYW#7=^D@oi32#j$CgO*r_+nX-UBN5v4eV;(3}-J>DC&(Cd0 z$aE4PLjHP~SHK$!d;0X@Cbs~l5x+uK+9~&A4Jh7IIDD(4-4}&FJ?Q)U(V`(Sg#XcU z_{d?CxQR}Q_bHQml#mEF{b$w|f-N7FA*A3YJF9N1HPrWZH9sD`@Ni?wB_^F{?2z1( z275Az@t{12)9Fgqs>|EyKvAeFhhoa{+nFt6?c|r`R~JoP0_H*t?@_F|C5sjoABMUW zg-o>_+;jhm=hpPO5>e+aRu(i3esCAq+7MqguF$}&j{U>j*ET4S?--+3gGF}WA5qlQt)GI`P%lC!8`AA?X|z3F4^-x5LzXC){19q z{&xvh@+6SHc+K~r2QM)IcMs%TZt><{o{Lhv+|6kWM z!tWfo(lQS83lEsvSWjWtK;=mHUmUGx_Oi=yIenr-K(07&^QVX4S}#LET*v&T{p0%= zjed5Y`+An%PF6!^5we&FF_Z40yPBFI6U27vOOTnh06KE<*>ThOo8uj{X_CU_*AZ=AV$`RUeU3Xzgdy(^Xdi4jrf$c^ zXiL7_n^@kU8Y*$79!?bILpY{(Q5~&HcALg4Di!BCPPIvI8c-H~>B!K_o_qZg?O`RH zU1?s@7uCN964$Nu-{Ff~iZ4YbM#q!BIv_@%ACA88UIs*_C2LKx+s;9+X#eC zbh%#%DN*NJx_?|P=BP2vcG(*OX}i@HzbqD2dxsk#9fQ)lkuNh{cw28dpFhG*1Z1~# z@W!vM|MXM*%eK+tY?{OX zh5C*>r|zG7p!e+y!e_=(y9Tq#;x}=Kop0~XK)PDC6wDbS3!ht43`P6jLLcFyHg0C0 zu2~8)7Fjta*mSVI?jq{xOT>qJKlBI5t2Y#~o)A6j_=gXo){SvqS#Nx|AoCZk?{7M; zNoi{1{tWGveLE=p)8#PTX-9eszD>#Q&W9r~| zd($NTHfyP2Z$!SH(e%0Otj4#j9N)?$wz&~l&~kbXmCdrd`^QylgnUlRZU5*y=8|eCPkFZ7N(65i2jhkCs_W!o2 z(=OW@NtYo?{qh!O;eNSnun$mgq{um+dAE0REyGX@Xl401XSPJ+ z5#9RZ@v>CwtJR_aYEw$~Z5!M5b-DI}kl=VyYJCCo?a?1gQ)}i#+x~8i)aAyfNhLw= zQE&S8I{0#qt(`r44w8xe=J9^(=)?EQyGh0d@3>|p`9HQsIHk)<#S@UixLls36xZ0o zj6BYUGkJZmjU3A+YO8jaKam=OnYNpk?CX-AWr|r?WYA>Y2ahmqv+X|(WWr14GEADv zScO~gKY3z}OZ%b7A^n@GhmVhGp}d^5&{M-6h>Do2yfhWK?wQlk*Ickt)3PnW7ho>- z1?8%8a_i3vytEXA1dH&Ngxy967)zC3?o(l=(HgbEl8%uL+dX;P%*ljygmuiW|9tT? z{{iKp4%6tp6Tc84>^15azL@Qu+%LU|06m1}5CmP&b_fy(^^Bbttn)e3m(;mF@9`S`ea90Nz6~;)Sk!-q7OXPhg)J>lA5x95W6(G zlU(9>G1r~5;3bz`^Us5ha9xfE;Ih&s-$pLkm*t#%OW66TnG^R3tGWh5xs2>hn^9+!dcOjE@Km z)@^St*hu73c1M4Bu__Z--@dVIG8g#JSi$s#rS1*`=)kv?jm*B#SMIpeTs4Fl=W7%+ zVHnPpMDX8Q-S-KOlDjaT(ORX8RP>T%!%`WheFEs^JFmte`~`}X!f#8Jvw~tbLRkO! zQHmSsvUB*FO~*`Js0zuYcR^P?WLVXq7pzi-n?@2CnLiu1A#1}GSw-H_PyOl$lzW5p zP&Uo8KXv-d9kC0af+(~sFjvqg-)6z%Wur;AYrQt}nlC;_NG+yf8PXAMR1Zm`c_O+0 zzv!4~{)wUe=diX$|L<9@`1-rj#{~T4#Y*m<55^{GY>PUf%P=a-@9;01Z8pTn-Tp-y zL;ajv8(cf7 zPYi^F77OF5-%$#s-&Y81!(lTIqCWl5HLUvWOO`6SMPp*Fb|55Ql>e#WfXfPi%R4NR zwtQm_30`o=}^ia9K1qg>TPu1V`vBsfmH89x@r`^$D1XpYC0Oeg1YG($LBfa+;lNMmP3z|}(*{h7<$?>%Pr&6BaX!BAU$G~!)mzH$KkN?~ zIaRA08NR;qnwNjli^_p``%3DXsolAL3IZ}(L%UeGQ}{YovcO)NP1&~<`e45o7(&nU z*Ci*Ux7wceyx*Uez^@Jx9to=*Sd_5%C3X0fN7M`=+V$`=VM~KTh1PV^*6w~iFQ+TL4+$`BqJ_` zC!}%AKl6c)Wey)c{4f# zJF@>t34r}IP^8U9F!Kp)lZ-MGp);Bbo0(uzz5hBCf%F}d zkLCM$`4_9+UCy+3;>U>ApAs8??fwPW$MzMuZ}E)kGIlt+;Z^17VnTCL1wbPcxrBePJ^rZc4`_6_#w>86$P=+ZdpE;wi{+GK@7~_dLnX8XRJ>N$W+0{S+w} zku-7vyZSI^sewdn$>dse>Ql<+K#kLu*b)Zht+4cFwg&-BKLa7VHZ5rjTd|@l?l{H` zU4`J%kby2YV}pci?m)8JfjpAxWb)!RVt-WQ@b5n+5qPeGd5R4G|x(% zL($_+%SfOkTB`EUmhq|yaOxhdrdZs?e6P;}3s}ZOK#t=qeuN8`O6=j^kAM_1)k*lm1)t4Vh)Cx zn630Y7#r3US~3WaSqDVpp+QujuEAhk@uI=vUlT0zC9gWykb@R$3%;%pboJ<+ zDlL>oc9};L1AdL;l}g)cSen9UYx&;ENxpM45@~xdGS7) zI})VQlb|TVVHW~6Mi_Xf6|tXR-M0*q6bdtKK4JT(&XjVO?O*1dgzI%nKA_@dkfD@s zG`1P=e24u*fcj@UT2)V_KYJDnL4UutTU3i`m7WlzCjIzDrm=1E_N!IHu{pn7*#70- zCH9<=y8Vd{0OJMW(vejK`6PxZwXpy2wd{YLwg$jK5RXlbd?{Q9U8pMl>7&$9;6)~y zH>;IKjXw*a+YpLkn99xasYRr<6x4Mf=X|QW+&m9qs7usZnh1dQTPThZvvUTM3qVd4 zNq@dQN}{vUqDOj>yO3Gi(&@La)AWa$@4RFPklp}pI4Km)<<%C7e7{l`!+m&+N$O{Z zBXtTQuI*aX0`7;u7X2f)ZavmGXvfysADl8f)ME(SYBn(H{xm{o?2S~JLL_Suays@*hCUa6f0{+ZP9!XE2e#G|}@Zc2+Z zGDJ7@04WXDGPMdDP+Su?uSClsqa=HqT1X%BA3i#2edAaFrL=OIrHfLDFS~cnt(DjG zt}A`w#Q>w^Hv@D*Mc07nE$t?4dhRTAov&>kTlYFTGsVfw$oMlkvg_^0=|>3R)y$t= zchB)_oR$-7l?+?CDP6hTXPy-nqX$<_X)+L-t-}EYDdb1+80M;`3#fZrUh|SKV7E8% zwL6?OfLQyL!}F<&Gu!9^0Sz~re1$?h{}+!^H*~|&ama^=+KDCbTAuwj!0~^?N&mY+{9gQ}VuaFP zOlEs#aron+f-6|G$`wnut9)?3`6=p0i>R`gm8Jg?!~Bc2u75^c&(yZ$<#xsj(-T=W zm`6`#M9}DMa+)3|*FRTVv|eDhcaBoT(wYpIgRdS zo;!}g>gVyb7?9AY9$GF$3-0pKb;z(@F#LzkpUiRdOom85xuS_d z&wbBsK7z4{5|jM-?#IXu{X!TVUTJq5PPpqs*M05f~qTm{uiVXrsAq zDUu&*+~wwe^ydP=%tlc7%sY=&bPN3##x~PWKv;Iut?44peE(V&H{I9AE#BlE)bod> zyO6)@{i?98D?dA4jHA6_iNm-PhXL)gC0I`?&Hds9#L5*B!xMs%5b<7c*ZoiN%#(ED zm!+IK6%IY32#Gf$-z{-iQv{7JqXHSk6*OGs6;lfosod~U-xz(SD#NL+y?5q(w+(Ij zo?{gX?wLf4JNbDXexgZB3w>6%c`a9QhnJD?s?xu-Om?r~@7g|IG&9p9*c_F?$8 zAs=c^8Rs<(E;#<}N*vrr(Xb`4&4#|4#-j%voz$TZqWKVAn6t%)xywlAXx=8H#N3ah zCFG1!NNuBr$8@Y>GE&ORD|h6AV)e$7!diQWTh6X)=>CtH0Lt}OW)}`y!dPC|pD4^9 z;4Qbhekup?&Lcpz0*IyeJ7JBe6pPn4a%A!=h9IqvTEnm2X- zkyd5-q{J8lZmqmK!MEh=7TUr5IJ@=6iTEfDYQ|om8*1zCAb^+ri!;lvQJwwltf6~7 z?l`-I3mL#0YRQmC9DBDMH(R{obj%ja)uk`8WKR7k(~CFtC1g3VwFMeKl)H&7+IG9g!3z#+KSJ09CiclquT zU}PCFLPSh7$eH6YmGk0#rgb-Wf>^iymHT6Vwnd-ix~WoDiwwCBqMP%4b|eUZCsSXEO`oBIHq>uRVa<|LoC z=y^j&6DZsT4TaH}X@HBaS%g)@Ah$pMM|t_bn~nbed@Odo{ zP7SHP8R|>B5Q>hXiI;qChrOa#=>WuhTWOmgz?n?#0uI561gsPPPl_%CI(Zh_ad03c zvNOyMa{7JHRDFbP2SV`o$DW+hS3mc2pAQWG&1_13-w8`UKqxGnN7c)OlnI99-TXQ< z|6PVf>aFom<82NqHEJ`P(i$Q{BjW{gx@l5KtO(m!$K#I_qlv7GOyTB z+Z*YQn*ooLMA+7aPwFAXWx(X-yh%GyW>dF%WGZl2li5j{UMsQi4P30=+XAzhKQdv$ z6v^noO%X6o#JDNd%l7j{U9kJ6n3&`2DGr535Ro-`S`;BMLbQStGK6%tO_}G(L5&V8*wX2t%GIL*W$nBN@>XmFH0nwbD8i}ZQ z3qx=W-0@JRBA<*jm{{q3L)Nc~hWoIQk~!vn$B+ef5u5LLu}MTieGQD{AeV39&y5wO z=G+{hQQn!v7^DN}2}?B9UjsHkt^+y6p=X@zZfY=n+WsbEWFx}dyu11Mb($A%RxjJ7 zlEu0CIfBHUljWT182LRzo8*TSRMuufJD{81ZiELM&jVAhMW}+`%$Kp99QrW=)LCdq z@#afGfmp}U-k9jk$hD+|dTm99%;&c{clpl`iY=V1&?w^rLAk8i9V*zM`#7FHh6t^6&12N z7u*GeG%!w1mc_s<2urK0bvhRSyQd?E&tFm2(|dUCy&@^!IQzBBZ4^i}HXt2wTnhI- z^Kz8W+xwS|4NmQ%%-O9M)~x?r4%5Y>P_#^G)rb)q7P-ElfJeor)?(a{o`+Dv;bi)1 z@FdB%;q3TQhf=xqDv`?1MYg>F@RAv zMgkPGIt>JaR>EhU-6fxnM!eI;lR~~)hAkS>ZC^b4(e#Y#{&14Q`F9PcYfxuCgt`0| z7Cy^00V1fBuS>>8SdBjdoP$ubIt21PjkHbKRci4Mr%XF~+zF>#&%KuH{X3|DA;xpP?*R%= zQVkfI{4bPyO7A%oT(#kH@REiG4_wQcrN8|-tZ|PTcsp}0jz2ZVl*xc1+Iy^mHNCDt zUH>wvHERui)Zi+8$qM~>(TsRyU$@>ww-`f~Psj*bB_g8sD6i|@%{B4PedpBHI^C3H z_qy_hg0j_#NPZxroG$EFX&qsVw2$22L+w}JJH4%y(L2elyi;5ORv3YW6-!W$VW=M1 zjpd-N&Yg48;o_n@ZEKBM>`u8Dg~xQuBQ3+d%b9Oby?Hi16pnf7&ty%NYu!A^ z4%vc|%U1_w*l?V%p&KE~*PLtnMHdq% z{9L`?`5cOL{px>)J{>ak`$r6xktZQ9XJd3yF8H?Rsrb3^xN&| zX+Uc5m*<~VsMUxIM;3J*_dJ%J&gNB^pw5eng`Mu5El<05rPOW~#JqedM)mM-l`yHW zY|znzLoNC?$07j=lgH<-TlaLS$=NseaBxe%zvJa0U!d8N0(G9`0ULz={GjC z7}T+y#q=9szOSa?uNO+Y?9GmPic_z9O4QR99TxY>*aa zPEKyUmS`kKJ1dAI%ecFcOYN>O?FO(k(Layhr=4PN2s?!3Q^){S!_KK`;yp{KES zzQZD3Iz2%c&_;!Gr!K@Z8{6jzv!#5awe!K>qKuTY=$d?Acul(z`sMW3viJq${i5M} z=9kUm=$ZL`cPsJ2rH;={nl?JJ%`BO5UM|(KjWIxn3VjW2&A*QikpDT-sc7++7es44 zzI+hkf82cTfn~9MYz9W3iJDz*)Ojb*bDi*p%5CZn{nn-!C%_Y6ZF{z zRXqLQD{HdC@KaMpoEEPFWtqf-{8s{5DZQ0dzM-PP#;4=VvFI!&FTuTiPZXg~7H>jr zBlL(?QKIj$m@#@_dFM@2JgA=~fd=fC5F*#G$}W|xhfkeAqYjs)LmF5lLi)8YGHne7 zxrN%z$Wd?C@;GNcPy)#FI@!RDKzH{mrK%Osiat|C&aD%L$>^Qtu8#yC3Es{jqnz*Y zj&Zr65nhDF-aqjHF_itGpat*^b>MmV$LM{a3&>+Z4hr<{qo&weNs}Xy;8D~uEJDXk zYSc4&I#@B<*O3JVft)N~#~bgZ782@34<;zG_)Q)bvnnbX%BVv3RPollGd2u3fo1?b zLEq(%dH^pfq=?fV30O;-aKo4@@%NQ;Td&et6Y;u!3T;vQ?p<=!TAGG~-1VwBL{)fS z_uX%zmBwo>3nS4FIm^eblZ;_pQx1hee~J%LCe3hAh}%s?aX4yuo081UlI3-{T7P@P zoG;+y@cmKO3FHad<~ezBuZ;J#!y*kKqV9@M^zM?O{!@Q_-`IZP_rYmS>3qzuZ<}mR zlw^QJ3aHX?KG`)*rvU5OfO$22A2DjR$y?o51kg|KAvfSnC!9a{In@-wmV_Ex^$X$J zu$yz^vbvN&ekqBtX2SZoxKR#qBSnv{5BM|8ngKi?2?yT-^&oulZ8mmu;tF5|<-RZd#*rC* zERnkXZYVIDD4EeF)8xE=Xbzont&lCENiHg_ZE?8Yc0P0sO4+s<{P`onhdIuPQo2}$ zX_=9USyEZ$8@d)}Jj-4f?|b}VlJX)SUBy(AeAhTlZyc~=@vD4{vC(dpecr`z$kmOF z>8e|mr<{A=sxAr9{bhI3u{ybUC6_clX==SEl|3*7&69e4&(>JNFFQ+VKN{i7-%~H4 z4nbWFpP4xzP7Zh+Z<>|1<|~H0RCnGTTZ4xCCB0tK;&H81M2tDv3+w^5huQj1IVgqw zz^sy8nwry?mE!;oaue4%Q8l5~l8J&tjEKIq?LC3s%ald+OZYv^`x)2otG_o@^*BtR zfjpQ(i)^Q$SPTYgV?EhufAOd+D4`oeb2@HX=C=bEZjb^a$%m3iq`RABq)&n^WtkI@ zxr8|2{T%Bj3jf^1UBl1FcA?jV`sBD`aUZskf5qn*yLn(QTd@vQkcOrlXxh-Zr|tKA zQCX={HdR)A&3#Qx0gE@L9IopQ@5jV=i7#wkeZ0KL1I>7=^#0gS-W#vhG@gz5CsTjl z<2|Zr@unLCD`4=1q~iRV=jYqGeeU-^_e?SPmFzh!fkld}F*SwbgO>nQZH6L-I3|q` zVAax1pd#wQ$HYU@y_64w`Ij?d2ZsGRXJ4bdQqM*#C683vAQt!#O4XIH_lWKNdO|1? z%#Q7~q$7DhZ#Bjr`_%G4NNqutvpK){w7v1LG!)h3+x}PH%u8KHCwo@kbW z#Oh+mtPmEkFhzemUQ|~o29NBOT8D25#sya5ztUQ zO$1*MyOTQB5wXvGjG7e%D)(LOt-}odKot)EL9k!g>yg>JLzl6t0F?YD1m&_xuArLU zt#d;^ui~0GEP{Jh^Yey`+An*JFRD0T$#`~NPo-O_)Rqlg=3x6^XQSTI)L1v1q+^5L z@QnUQ@AHkLO0J>Q%Z*q()RTGt>GqCxA`q;$XdAutP06QVAK}%Kwa>jBCZ0g46h%yq zecHyD7^5z}=*B*_{Wjz!48_HRA=NAs9qSH{S@Cq)xA~;t>^HxVV{B5E?iUYFLo^N0 zSNX%5Un1*|vzrAhvrs{IzTwoqJ9cjCEk`3A$+Mvu$?2Yf- zkP45gcxK_rU}~3Nn%(<59;rR~T@5ND3hVWkW5wGV+YdbKcsqPWQ;FVbBkl{w*5TAU zN;T6XPOG^m*Xx4DLViOrEUiO(E_J|HVfZ4q`laRUX6zoY{3orQ+&*b0H;q*`%DhdP zJZRIQpD?n@_l(}b3mMz{TP!}e|B{;#l|Qu>f^w)UI(Z#6HXeZ#Qw0+&lIuc6_7To? z{{Z4nbMR&x+=|fH)g!8mNA1puzX7-~iS(J=+ zimP+hX*QGhoc$i@iG#2ZDWvIP;+blvo{hlI9ZqR2O!xEZbLx+6@%fRA_hGF8DpyL*>`!rA8_ZbMIQp#qeoZb|f3JI}ZN08q z7O+|(e+H}W4^MSRs5!p-s&vVAf%2!qhSNg$Ve<t zUk8rPiB_3?Xkax&gFMYsR{bZeK!&E$-bAkB?+vZ#1DAtxLQe~`PQ82m%RG&q**VAB zOZz^OfI_=%SHMmY^{mjUX-z zHxsI-pAhPS;(}JojFpW%e;Z$qCPgrLbG{P4?xwpovkx7l9WfG_oWv>olRmEuZRbMg zlq@lBr$B3Kx0-HKury#hul|wn z(|DZR3?rz_wOJqanoV>X9+ubl8nU$Pbdu9;PszWgKBPZ1F@Kf=WbxHo80UL09P+5^ z8F&@&@9h+QObu+Yy5owQCQe!gse5EB3Ltn}S9NvFI5|K!_BO6+0r}yB_*q883)NTxo>XZd5eQg#`L7`zmQ(o+6rr?P#uLAX-9HEs`vt zlqT-FKuF4Jnx3Nf-Xe@29=%k|kQ8(+WbSg;qHL5OXt|~OKi`4VVI*l&` z8<@n77bTh!g-Vpe4wPCbWmVq4bejAazef-4Rk~0rLk(J=(bTt_F5Y*oVz?pype2*X z7}i>cFi6gGeAekzo06FpAt0DfYLsSvYLHTXvfQgJ8;uGEU`r)1ulY#JkqTchRl;ij zB@UQkPR3d`TNDirm?OJNDySkkG6T5uXiS>bveS)benp!V{j~X+BdX(NST#d@{>OFn z1swXjicc}c_EMN8O>=7FRT`M?R(O$NenK_kqpuLD*yEd;>tx5!dwJit+-a&dW<>R= z&RUjF`B$~TlAfQ~Rm-#do_YFU=EUv=gG}`W`#jcdwK zz1T8Xn0(7oVg)L-6WTS_G~f;^(KC4Dl@am1kuLnsS)in*mk=npDtj74_$mQUnW=~w(VKY+_FBxoc|M}K zu7<+8RJnTkak$_5#Vep;Cs#Y4u*Mnv}ZNG^?3_(y}4>6>)>MXhA5=Mx}R1 za6(-wYjuF(RCtAyc9mElSBd!Mph*1d<#MT_b~?U3Kf24?DV^jZFEO(tzbgn6EEDIs zvHcW-7wq$owMg0f?MpV5&IFm%bG~p=)Pp%F+qMjwl#aioO~Yq~-C|#k4O^Se{!gN~ z0m7+yE)$tUAG_@aPD>`)pf#iCpBWURTMyHF^0n0v*=)$rYcpZqNB5ow-fnE(CXoJt zKMw?H%pM%x+-BkWVdXzj$qU(kz^Bnvb$?ObGOT&IH_G0AiB6+`gE^1K?TvP(&ki6K z(jkg5`j&ob9$kS!oFGp%_E==2O5ei-BAPSXjUSw2nXj{{T&+_02Q~4{^4#J9L9Va< zm`W=_(B=!C^Fb^-bUv9j(TCOyxXB~**?16l)p_@n0?1Jjo`cE0Q4x#yDg+C1Tu8V z7f>)8p36e6u0b4yXCuZF!y9SFb=* zMtl5qclExvFi5>_a5rpd;b#h${+@sdiF+_FUdNo_2i`G3AMz_QU2$lwMqtxJ>li0P zX%m`n0BNRgf1AS@x^?5*ij*HII{^K0gB%xrs)Q~d6Q+`VXNJtlaifkwu@-bfX9eGe zxL+`1&}(MUR|DplMt4pgQcmt~{dA-~vqqgjFryEs7FC4}xhGZ5yj7)iV@6<#9o_N~ zK~BWdMO(tzrk;Az&v>*)YcYbNFL3^EA@ON(`G5TrZMYD~0E)K<9+(SnqiE41skNQC zr}jensqb`RJu~B45+9Es;Ay}{s%qY{Ze;+2{=p`Sstvd$bGdxML>!rN6fZGM^>qMv z<>BjDzc)DiRuvNdKGiHgGPg=M9p5&LXEhD*VN)zmQT(CQSd)6o9z8QfdrXZdHxZ!w zWUTW*VDo#|@lIa(`i5cZYX{m@GU&$PQ8tOz8IgYknF?`D%5j~t2y+3R@|Jse&uoL{ z(rn#;9te7bYCQ6x7O1Ojxx+9K-9#rg7OzG$bQfv&p^Y46CkNMWJ#}Xh>|TYq7t8$q z+w~9-7!-XG>>m1Y?E3V)>)YE0YtbJnrlt{QGi2+A{^e$ge$Ue-{;p>OA?SlqW28X? zxkz#H^OiT6V>4dS_3gF}Y8!?PDmFAsU!5|T{A7&^p{l(xvpsK<~Iyv&nYW7*j;2bI2miHO$}B6P9zVz$bdbywwaA zOGg~&l%6vqv8Tf;O6ji6R(pbXa3I%8QxD4@8}Z%qmzx$cOLB+WPVaDlTpQd1KyG%p z1hXH*)26Kby}B&!eL{cm7oRKy{0xd6#b5hErBBmyP+&Y?s+~%Q2&Xdb3cRmsj3~WK z^tR8|iuOLE@@k|gC{80|Ct&tvMAl}i@5SEX3k^eq1dypb!=Dc2%DQT1+Nn zORqC%e52jzygmf9s0n8OpZW7{+3s#m9SF2GCpuM&qgA5N)&?o>e}X_Vxgm6*t40|u z#81K?jUbjt8qr7b;)xpzEqH~VdR+E*(01LxOAeES4-xe=&hkUi{EcP*0IaB2WHitasY?v77o86!qj^QZ#MnQNgK7=j7T~Jc(!N zKw`hG9nuOCQ~LO_)D|#m_M_ex)?z01!)gq+&%4mE)P`GyLDGuS9SM17ONZY zL0;-ddFwuOm!1(oT>67k^*Z&UCBxZM8vKn)#q#9l?e)r`_b&C zX=AZm56VoYZbSV1pv|Ou_>gqV`x=>zi?v5*AIH#+ZnE>u&tRBikvemOTsq!)pt-8a2?4)MVw8!f=-NlIEwfVTnf>sQqHSey9mlzyI)ZfPtOW zz&vsfac22l{X;%YwduxHAdQS550)!6;@)*^`m%=65bhY@JAv#K;R@d2!et+Qbl`_E zddygk-0+zWAgO3w{om zT^&FB=o5;<@#XM!JOg1o>?AeFCfx&*G9jF+e%ag-U9>jA37P5KTBg^PAuS&)b`^x6-<6iSKCmkjn3Ox7Fu@t^0QCh?sW1t zp%3hNa-IIO_S-4OWBc6X7wy&4kNgL73M8)=vP16OL^WVJ%ZS`z{0Ks_AE{+()-!cY z=u^%GG?wz9&00OwvO10PjiFSh{GDAptAnjU_ZJ`#7w+M`+eRxb1N>rF-j7Q{nu*dBE=_PjfjZ>{5|RXG3+Rk%nOpfX@0=wILv{`K%@EWl;! zyJuN(19{A5?CZf+Grg={UNgEZ`Omjy+O{NdQvHfO3G>emL*28z^y-n0?s${fo|gPv z>sopdzhY(@Fv@}1O=I|x>s{GD4a(b~N2X}4XSAdvSJ%g70>7=1)ceE~qyh_1oEVk8 zl82~$KG-AswoC)TQxCXf|D%fe%XX>2qqn`>OlP_-2HO?#y)L{DPZZ0tzBE=nAAOEz zm>U5tO27S&$LZeQAUfF~!E0eoa1DLRiM?IJ8~gK-j!bC1PZ6j1*cAXFw)8n#Sr?u1 zX9?N$zrZnl+#T$uv2y()=xp<>@1^d0$q%@gK#FmdI2p5$ln#HaJ1Eq&9{AAz^`cVJ z*RI8%6<`pr`Bn#e$gl022pnh0@7Lo*GWI!Wt;ephoQM^;T||V+TBZW8ju}FuB{F!F zDgHuxla$M+dw3%9C7YI}g7tGgpn944A8h0&EQGS8$XE8wM{e7{GLA%QQhPa{``8t|3*})V0eHH8A%6Ig;vGzx3+caG7LZBpjlIkecD+`Qo{Fod#f51)gG7^=^SdBzQ? zNOY*FgC-#@wO3ru$zL-3<0iqI$^DUOw_8lSJ9(g0t!3s$6%yBWxDm*@m=b{0poaDA z1P{A2`moH`6T?_u)^2$+zal-q7c{;pIatcBIUOh^MB530svom_I+8n{CKSpy;v9S` z!!8I(qd6ls6^(G;=L#O0s9(cx7xGR|a?1t^qY%c1acmltl(0?rp^=#!yJF%9!b+Q5| z$0h$6GF*pT415Zt$Lp60Ga8_OTdM^Hq3T5M}HhZ=~*d;#w!C`Sxrx= zfv_``&VbJe5b6Y^KdgAG z0!(a*Iz7E;5@+Azhu^~L5k8Ar>usz{%cGEY{hpkHy@Q5}9dj_=s;mu&au!pIK# zIPuAUA!^s279#4$UYQOG~ z`s4oNI`8AS|G19hI?wC=ey;C%S3De%bZ%rPPi~n-j)KN7GgJv8FY>AJ<(BU$BG0KK z;PpZ_r9Kc+e9&zg3iuGo2n=4VSO$_5-N2tp{35iYTErd0`7x4C>d!!OD=d;=Pun^HP{!>q#{6nC_k8Q7dx0ZJD;ee6){&EWFaGbpB&TvFD=z23_gx z(isQ0IxoRt?+_%7hy!$CP&5W-<{=TZTe?!OdIb$;-SP?|xQoKVtDz1DqQf6z+y-$b`D->_u33-ilb1aXv3)_w3Df z@u5?F6&A(s&1vMj3*mk57sC30mR7u-t3c^9Wec&HXgft@VvM>*WU|_5P#hf+2&|j7 zBd@5zyLCe1)Yw?%7RYMZ+cto*m<^JF$T{0nV|!U3mzHJCsaey9@dCvihcO$h*P!9- zOZRi+n3pt88?oqj_=M@bX%5Ldi3p>sN2{`LIWawa8nFfOw+9MU4H zF;eBV#C2zwfMQu^udq}Z^ENu9A#e8+kI|h4d}mfggjI)sM13%_T|5c;3F`u9tCKK- zcGOz|{O>3+JD`w)E@s#i9Q!YS^N(L|;<+DFEC8!> zAnOc|v#fxKFx|fII!qJ>@TVg5Vw<<{KirLtW4x%@7(`B>H~T1{=R1&drjbiyqQrxf zeQPSJz}y}?yU0%|e+TNCw3SG3`DtL;(e;5QvtJX2BI1Fv*Mb2Qm}?95X$VTT>C45h ztTNEzR=SYkA3MkX1MP9;H2Uabvw+s(M;!n{kAA$C9_tM*&R(l%)@GLvu{XTBpEB>> zbT7zuc7Kr|RyQVCv`R$YhZ(WQHUSyi(2-rKf9E8f@Y~F?EV2T8J3uoE6SOJMYFJ~S6i0eK%%_?4? zM{Dsnhz@H^_18`J2&R}8FcjcZml@gYKBWUN_5A+|d`qR#-}SdO{U^^%*D=g>;Gz%E zTtmOg=p_Pmi&x;*MvZJyx3m*NswIJ&IaEa*{OBqp1*6g9t?JdS!`RBFb_$*6sT#d& zby41wrMuX{>BNAp-LKaZ+Cjvcfs9?24N~$wkqE14)XO<*P9Cty zB^U}#3cT86I3O7e)!7~YppJu)$=~RxF${Qu@qPZJa(B6om$<22O@|p>eS^UnlZN~k zj`GuHZLHK@YjIAj#xl*=i`4H#JeSgol>2f!#JA{V>9Xo3fsg>4wM%{pZX5>QKr<`^MsSxgN zXM?*HmmuMHxfO3N#UTcAh|d9Le)eUN+s#GY{pDItJ_}({rkG?^D43pjE;!0StO0`5>Hxr=n64&?d=;`i+5m4!6#OAn^<5#Z!elBcU5N3;Kk9V-5z_SDoW19tWT= z)XnmZDuR7Gn^I~de})`NruAD3mVT^Vl1Zk>HvREA%Hq2Jy!-a{+{CYZ+fEushI${k zG|~I;kqsuBGBDzXb9N%aoesxWk>81Ek6lLJk}@F#a%^6)JAs-s-Oh=ZRdJp_Ckq{$ zK-!anr%TF{Tx~R|@vrPM3jl z;35xmJyv1$=MS#+kn;o-6-eD)yIp-*q^BQ~fYo=r&1KEwmetcnLp?LljO-J8;#&;9 z!$)oV?jeFH>3icJUG7m$1RoUUs9#8CJ5@sblSsX8M|h9|m2M8=ECMA3B26x#`8H3&NMFRd9LjXwzDCmU_B9F zbXX~7w$SY$w#+>j|G(MlbTQYG#X<=-vsUsgIqZEkrr^cGCzP3?fC`@-OF(d3x!%P= zy@yVQtz0!##@iSsY?{O1a&KbCb4gdSp>vHwZ_#Rofj@-Knk~lUqETc$*yV-l5rG z(W#kcM{n4%oH)hvyH4Yy-)GOVmc75cbmMS}zvfx70*VPP;|6V&FCV>Htb51XDBj_B zFZ>CtS>}bbNfx8dy^8DpmgG6LR_uXbS)l%*hv3tyD`g%xMMkj+s8nI-3qpLwf+~lr#`DqwHP+SP-mo{6~1La%Rl-S$kPh4mKzpZ z@bJH|PMJ^&O6*AP!Qvk*S6tH@C%o4>=IrQPC|@-4c!7#MzuY&nT$pur)D*#WYuh3E z;n!wvL=&@iiq_d$VC$C?KG;+-QLizJHtz{s-Da9%bg2J$%^ym8wm|J1nzOCD#)Lqa zB|@b0bcFc+Q*iyi zXPqT^fjMQ+9ti^g7Vk?Z7=3g7Fz%_7^AEK5W zDDNALt}xIdr>CIFI4@R25!c&?boKiB9$Y_)nyB5Bf&Ucrk!F;L9$z_UPhX5vx3-Pq zQ0Ee%xz6DfY>{v;wUgm#9XNu=i6H25j%`cwA9~gc-=yR2ZO!o{RTwd5hHAEH2IZ#w zFkUL2=esK+!N>oUw|yEo)RU|hrsGJDUsJ97tvL@*h|OsJW-s|TBCW@ywP*XwcqBK% zvw4WhyP2Aw=hY|GbK)bqYufS8wBqMG$vtuQ9fxbm@Yq1nHQ$czBe}0@Y4*u1qRFQ7 zoE}#)wFY(lg+T`aH$+!hMB~cOjJg;}Ozv86$U<)7!b@g~RZIR8Cz?{`yP_p#&NBm*J@mJ{w5MPNd{5{iYx^9LzW z*@|MlQRpqK@0vpU`nLc<`H(f<)~n?gzhZNYbuiU{gxJ{>lw@ka)wn>Qt7<^|E zhti_qoN2c5tx~oglJn<*qL2UX4ZaH47Ue~qHvVo@ZT$&p?)q>iS5u@W|CD_O{D+`P z5axQ54`|+0Q)rc9f;pD{IEa=nv}%|<9seZPA#g6O`hxt86on&DMvqVp@RE+iT)z$e z#ub@bw6GYUw*Y=^$EeC4HmR^=@-e#;e=p>E#cVigA|y4q(3H5!y)E3wZ={?jD`cRU$Iw0CR|I}=+4kE@oIZvVuS=aBbIv^G_No0M1d?sgyXz;y#N z#4W6>7TwcSjjBC)CV}ndW_euxAbh>8se$Rfnw!Son2gi$b|1q!GmNF|*?sZ$TGQ$T zqqiI3(%al0c_Tz$UxpuefAza;y^0d;v4arEE$g=3$MUHQDUmH~Tt7DTX6jRJw72!P zwv!CUW=N#TbT{D=o#D#m0oeTCFtR(jHi0T7b_Z`}hee-ASkM+>M zcLp2lFKHliJ9f0jXksDeGd@nB9KX5skaBrfB$`b!*+a?T*{GTVg}O$(gx7PkxG4(1 zTkHS1U`WY8n0T(>e2p2EDErvuYv{96u75emn(K-d2{Nl3_?py7%yq~3Z5zvFLI`$; zUB1%M@^ri2vOw&fzDh|CQQ;>=E+w%f=1KA{%f5S~!Oax?>SMk$mkx3=p3}w)QtR`K zivLDr?!;#toqu^4Kc$i!`d#?6P9>J z^~0Lnq6l*BMgdFZoUR{WBMkhNK01D>|xNqO9dOhJOQcDT1p^U0l7ygh2&! z`LdLfm`zpf?BXuze%tz4$mjlel6n@fJ@{S4-H8<;DRR4VfY)NvN)FLQnHr$+K<)LPpp8tMzWUw zyh;z5$PwL#2yDwdT%1Xu%z&8OU)@W`7LngXz|ZtMK3&U$KtPEhi^#EcLyS7}UC#?a zt+AE{@a69I{Kcv_1l{Da^BNey~rI=?*RM@uG7PWGRGsiC<+ J?Hy>${{UF->J Date: Thu, 11 Apr 2024 17:18:03 -0500 Subject: [PATCH 3/5] Linters Fix Small fix to appease the linter gods. --- code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm b/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm index 10db4fa3b5..ab2afe0ee7 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm @@ -71,6 +71,7 @@ /// Threshold for lunging at a target. Low as the alien wants to do this early. //10 #define AGGRESSION_LUNGE 1 +/// Threshold for throwing humans around. #define AGGRESSION_FLING 35 /// Threshold for stabbing them with the tail. #define AGGRESSION_TAIL_STAB 70 @@ -91,7 +92,7 @@ /datum/action/xeno_action/activable/lunge/soldier, /datum/action/xeno_action/activable/headbite/soldier, /datum/action/xeno_action/onclick/tacmap, - ) + ) inherent_verbs = list( /mob/living/carbon/xenomorph/proc/vent_crawl, ) From 07f5dccf9a84ee844d1b866654be68470525198e Mon Sep 17 00:00:00 2001 From: forwardslashN <150570209+FslashN@users.noreply.github.com> Date: Thu, 11 Apr 2024 17:45:13 -0500 Subject: [PATCH 4/5] Small Cleanup Cleans up a few unnecessary lines that were left over from testing. --- .../mob/living/carbon/xenomorph/castes/Soldier.dm | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm b/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm index ab2afe0ee7..3baa0cbd95 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm @@ -54,9 +54,6 @@ * ==========================================================================| */ -/// How often we inflict pain on our dragged target. Targets need to be lying down when they are nested, and pain helps to knock them down. -#define PAIN_DRAG_PROBABILITY 95 - /// The aggression the alien starts with by default. #define AGGRESSION_MINIMUM 0 /// The maximum aggression it is possible to accumulate. @@ -69,8 +66,7 @@ #define AGGRESSION_INCREMENT_CAP 10 /// Threshold for lunging at a target. Low as the alien wants to do this early. -//10 -#define AGGRESSION_LUNGE 1 +#define AGGRESSION_LUNGE 10 /// Threshold for throwing humans around. #define AGGRESSION_FLING 35 /// Threshold for stabbing them with the tail. @@ -127,7 +123,6 @@ if(istype(pulling_target)) /// Our soldier is pulling someone. if(get_active_hand()) swap_hand() /// Swap hand to either tackle or harm. - /// A little bit of a copy-pasting with intent switching, but saves a tad on processing. ai_active_intent = INTENT_DISARM /// If we are pulling someone and are not too aggressive, switch to disarm. if(prob(5)) emote("tail") @@ -229,8 +224,8 @@ /datum/action/xeno_action/activable/lunge/process_ai(mob/living/carbon/xenomorph/parent, delta_time) /// Want to make sure no obstacles are in the way so that the alien is not lunging for no reason, or bonking into barricades like an idiot. /// Maybe in the future the actual lunge can be stripped down for the AI only? - /// get_step_to() should return the turf of the target if successful, with no obstacles to block movement there with the lunge. if( parent.check_additional_ai_activation(AGGRESSION_LUNGE) && DT_PROB(ai_prob_chance, delta_time) && get_dist(parent, parent.current_target) == grab_range ) + /// get_step_to() should return the turf nearest the target if successful, with no obstacles to block movement there with the lunge. var/turf/T = get_step_to(parent, parent.current_target) return T?.AdjacentQuick(parent.current_target.loc) && use_ability_async(parent.current_target) @@ -258,7 +253,7 @@ L.pain.apply_pain(pain_to_cause) grab_level = GRAB_XENO /// Alien-specific grab level, with its own logic for escaping. AI only for the moment. See /mob/living/resist_grab() if(prob(10)) emote("growl") - /// The actual pain processing for humans is handled in: /mob/living/carbon/proc/handle_grabbed() Other mobs don't process the effects of the grab, like aliens. + /// The actual pain processing for humans is handled in: /mob/living/carbon/proc/handle_grabbed() Other mobs don't process the effects of the grab, like other xenomorphs. /mob/living/carbon/xenomorph/soldier/stop_pulling(bumped_movement = FALSE) //Let's see if we can ignore this. If our direction is the same as where the mob went, we likely bumped into them. So we lasso them back. @@ -274,8 +269,6 @@ /datum/action/xeno_action/activable/headbite/soldier/process_ai(mob/living/carbon/xenomorph/parent, delta_time) return parent.check_additional_ai_activation(AGGRESSION_HEADBITE) && DT_PROB(ai_prob_chance, delta_time) && use_ability_async(parent.current_target) -#undef PAIN_DRAG_PROBABILITY - #undef AGGRESSION_MINIMUM #undef AGGRESSION_MAXIMUM #undef AGGRESSION_INCREMENT_CAP From 1d6758c237cf302e32fc0aaa7ece76e8f60fa716 Mon Sep 17 00:00:00 2001 From: forwardslashN <150570209+FslashN@users.noreply.github.com> Date: Thu, 11 Apr 2024 18:43:17 -0500 Subject: [PATCH 5/5] Sprite Fix + Behavior Fix? Small update to standing sprites, so that they actually display the correct directional. Behavior fix for hopefully better pathing. --- .../living/carbon/xenomorph/castes/Soldier.dm | 4 ++-- icons/mob/xenos/soldier.dmi | Bin 6483 -> 6690 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm b/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm index 3baa0cbd95..2b8b856ae7 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Soldier.dm @@ -4,7 +4,7 @@ melee_damage_lower = XENO_DAMAGE_TIER_3 melee_damage_upper = XENO_DAMAGE_TIER_4 melee_vehicle_damage = XENO_DAMAGE_TIER_3 - max_health = XENO_HEALTH_TIER_3 + max_health = XENO_HEALTH_TIER_2 plasma_gain = XENO_PLASMA_GAIN_TIER_8 plasma_max = XENO_PLASMA_TIER_10 crystal_max = XENO_CRYSTAL_LOW @@ -180,7 +180,7 @@ /// Want to make sure when nesting, they actually have the grab active in their main claw. /// This can lead to some funny behavior of the alien standing around with the victim next to them, but it should be fine for the moment. /// Something to address later perhaps. - if(parent.pulling && !parent.get_active_hand()) parent.swap_hand() + if(parent.pulling && parent.get_active_hand()) parent.swap_hand() return ..() /* diff --git a/icons/mob/xenos/soldier.dmi b/icons/mob/xenos/soldier.dmi index c6d878e73d191abbe9ec06d12af178b3d2368842..b61fab7b72991b175288f504dd859a9aaa1258cd 100644 GIT binary patch literal 6690 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 VGnbz4S3fa`40KGiYc-vs{sZFmm|Oq=