From c43bc0f0bb8479a83a83a2f42bd9d4cdfebe5941 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Sun, 7 Sep 2025 18:41:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/1.6/Assemblies/ArachnaeSwarm.dll | Bin 93184 -> 92672 bytes .../AbilityDefs/Abilities_TrackingCharge.xml | 3 +- .../CompProperties_TrackingCharge.cs | 2 + .../Abilities/PawnFlyer_TrackingCharge.cs | 38 ++++++++---------- .../Verb_CastAbilityTrackingCharge.cs | 1 + 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index bb89772ae01fca6f86b152a08b0fdfc3ee74c1df..a3f0ccc45a080bfe2540df5df78306d0c874d732 100644 GIT binary patch delta 20028 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 delta 20084 zcmaic31C!J(r%sGeQz)6B)w$oEKRzz?_`0jKvp0iN&uAr0+BVcgs{gXbP_-an_#Pe zqJjttq7Fnw5EV2sMs!9Lm5iVuxFD!RamFatzgFj)X7sxY)=!|pr8J02n8~Vyfq55hw2Pd@fw}t7u3+gYlmPGU)dJJoPbv*tmD9$o34EMhT5)hm-CK;F+DAEfU*yCZF>aDV|k%QKGl!`8=2B&q5#1XL&Y} z?)fp#B{DqL{M{nc^IHCTk=1rh`w#5{a=+t+P-u`e^0vH2e@miuYlRnw*Wm5cB0mk@k2sN)!CzL;j{*rr14bOnbz93xkHF&ZY z4Aa`Q7Om&L1unN@RpMVqQ>lJ88mc(v53NnM$hk5Vj#U3FDlm@C*W#NTI!xu&fqi6QQu$&%V7Lz+4uXi7*ekXQ}e~U6{ zCwQBJn3lAmRI->nM;0c?9NY8bLZ_SE2gM&no0`9qpW!Qzi`v6*Ve zR%!qO&La9BjzRwrL4V+Z7GyJ9%*j<~x*&`OYOz?7LoAk>RvdbYzr~_Di0?ozWNfuq zlQY3;qY-*`F7kJi`+$I;fZ*Ve;Gp=;G)ESTt>zJI#HzXAA{z6?|M};ipZi+;lJ%IK z0VQxsihmdTLZUF!VclQa^^N3Ptb5&(p8?_gIWJw%%HJ6&H7` zMXjWJQBnUrx~+fT^Za7Fo2nx@0Op28z?}G03KwLPa~5F_rTz(Y74V0!DHerHKDfzb z6q-miAE3J$stg|;S?VmhGA?ey{=OJKll)=e~)adPUdZK4Sv%WrEXgzP%4-=ny%nbRGcSG1!lGvCmN)8W4ch4G<6z95n9> z&-+UfqtBo??+&aZDc*`^AT=Dru73pHjr$4&89&!c@n%n$dk79@sype%U^pipjK61x z+Zh~$oqOi|zBlL7?or`iQbzwEL2x6zdytsorM^-w6Z>72EaSU9g>~QSeD|?HPIOXAxb5eoF6e{%-n5%jg^Mk zc$tJtCSkY6E^12ke^MUGbGTb^?u|crN>({Vg=fkts_wt7N+|rR)HoVvGaU1vQlrj| z1YBx&{#SMqUK~(%_SKWcm!2i7LzUx{%@xn%t8c1q1?{N1kFBQa{?F>fJN^pEE;wYR zHzb~CwT%QEasq`+orf26N|O$SH>$h8rhX`nu>KbW+>6j?O536}#X|hsb8zkKep|`` zqLu*Yhv3EDAZ(AEKeu}Jw0X1<49DH_QY6Z59|;9`cE*ziL=C#VycB=mf_$`R%DT7+ zTnm_r5;Oj;#eWZAJ0Ac2TcS&tUF*`_MJ^QMj{-r#+6)EyGByRhp6(BWGf2KKXi1#Tfs`D==|P0A<(_sK;j56{fwUEz_n#pa1ow;cy zBm5$hC@YolH7nuk;e^dB{~kN|fv+;lh9~MYvY%w5g#4o@^>H$VJRe2&ci9P3vI)2N z5?VOeKXa+A;~~8gM(wXN5Z%zq;Xe)`r%nUmAXfjAr)YHIYefpI=W)m9QMcv{vMKea zaeU(<$z=;kOlWU}RzGUzE7V?r!K|>j^fR3i-eLc%?WFxClKKt^rM7#$Fa7#gDv4SP zsl6hFumQ(sgfs`WNAQT>@*|s6D@i`dCp5A4v!pbW6?Qr(%wSI94wNWxEiNp^2-{M~ zkE4*Vim{q)p5j^2yV2ASHsZu8@H-dC*F2eDmQsK~UV=S5zN3s&dDVM!c!@{zJ6j&( zX@7^4yPLH&(d1#dky2SHQ&ml3&!H@zrKg0hCA)VA{w{XsQ<>~2qYidn`)D5h$S{(e z=MJ&l{)VUbFo)bxLfRROw=;eemu9*ssOS`^!;n~8oZ=5WPu+ZstmC=N@u%vUWIgT1 z!byptTo#)MkMj5m9MtZIMWnzh5ma2KizwKayk;-*SU+Xgw+4{BfscZF(y7-puAVqN zUX1X$A9+}uP9AEK=;)XePm6MA0cj5ea{Zh864@Lc#yI8Kw9;6yk;c> zN&Y+4E%Z;Iz|ZrXeae>lVv^5goA=A8J+>F&=}0(r`U%iEn31QRFZC}=ELT4 z((b?@kgVS(T!g*2hZ!N7!~Bv*rq_5rf;fo)44{CC*RnX7lK2YCN`Vh}W9cZOV1G}e zU- zrEVnwgsD85d(4!?0`Bz>UgN1a7$e-x3%Z-zwY*qg@X{=2$r;`o{^{lwnuDWJAf%Mm zW)B~J8qU3$*E@tu<_)!~!@hYAwBhdjK$EQ5*6F62Y{4J1<>>)T-1>Vi16xVQoD_PW6KajRw z4<5}yFiZO_w&%0ApSfT+vE>e4?{@b5cOH_KkE#ASyWQyGC00-5+<)P1;ao1|IEv>W zoh#hQ+f*-}8#`l37TLUw`v;DL+e_H~Nyb36FXJ)BiyU}5w?}e&L-OuG-2Y$U9jcC3 zWqUfgdxuB=Jm))#M=&Xk#=4BRpi5Yi3T)vm`2n8%D|{^cp^(j|3VA5wX`hdCW`w80 zX$z{tGX+)*r~XJ1&Gfz)L^n(dCZdZ!irvPh626Tg704-|nuy`E*~zediUR+LCKo^8 zJo&-0T&nO_a_LNXq%V2c9ZzWF^TMmq6nGjIpdU;NB+KEALM>0 zE8;JD4mV(8687T2dk9$kj`<=JeP9Z+XNf@{m<@PK4D(B`xe{;;HOy9p zsB8{fHbq`@m5V&6WtJO3{qkTQvy?Kj><9CiIheT%VFA-hG@Sw^u#j0X=61U%fjVY) z6<>2zi-E8N1Dat<0J#|qOPO86fW(%uW$!o&I2e{Q8;NWR41xPppGntTtzrnQVitvL zhZyFDO-%c7Hp5{Hvxr1;GYTGKR)}m0jEBdWt%;#xn+z{7djr{PVhX&->`P=vkiEn# z$d6K+28Wm(3MEzzuQ3ZS5t|9_*O@l@Q^48q2D6>Wrr@LfvK%2Xqv$0ZucU%xo>3bu*pMbOW5j5CGp` z#{}@eSF9^Zp`~~bzGgO@*Y_c~z^pv#n(Hp{5L{%o8yBVv9)_Qp9YNNO?BC2B7E1IH z_zyEcb`4oKxasQu8$8s?r0wtq+-9F*k;&#}pFaQ;6!JJP9%EhHhXI z;4?_*p*syptczmZS?JAd60o>Myy**&~mfhNwW0cWY2Ss!M8Vg@lcmJTWX z#T*d}*67=`3Or{T?XN(53AHbz?+I1lN+Drs?u&>aan%L|k_Q~Zwn4uEFEtBwheHLN z>UEn|z&h+Jpb@d6snFCOTG2EF5pUlHkhd3d$i@}af%dPXM1cFey&p*(}X6qJs zW;1_^?U%Aho?+L>3e*-nFDdXRC-k8|IeI^Wl9F`w! zxp*_P8}0w_rS`&1(%N#V*G3*?c4($X0cUBoAqb)!QW(xqA047I(~KyWko_wz$yb5z zoNns&YcYwwwvcHtcEeMxvDzSDQK3Cd!1N*q;=JOhumCvMr&|QT>xc^68yAoEy4+0$ z3v~OWgjt}2@he0HhQ^SewPDdXe=~zKP@*pDot&a?pL~>57UjF~*UZdfM0JhTbye5+ z%K#eRFO0sC)c!PmC|VvcQ2P>2wSc49qcFL5deO}7=t~F%Bu_}F3`>V&QRBlZn(n{~ zNQY0bt-z5$>U*WI3+K;N)D`N+i(;OxYdGO}&!#8!V`Y=jG{!{jo=IHkMUog!>1 z@MS(>B+ixsi&CazuXlB`5cPgkLqGbH{U03ch3sg2AaW^pDIPX?wz+6C$ahhg;)YrD z3u<#>tvIIWXYf97f1d`F?95n>czf15#As_I${PdwBHk5{k62@(kZmQKQM<6@am0xw z+YwL3J%gB>`5fYmFm;V-V4Y4%#T7mOuP9C|_8@ToD_p_}bfvwF6J;=xsh+3E#psBl zZp*onV|m)!c}(l9JQIF|qxdLj<5~O>#P0pIQ z+h~qfXT6MB(|iq&#M2Di7t(^y+XPhp#pq6;`Y%Shxi_(`%#Ok)PuG)S zs)fEi+=({_C%qOY`W`^tWmN~|(F)!w%ya_&9EFR$h`qwB8J>!5_uRfc&P}<JOk<=A(p&c*NtG-tRIp6 zFYGtL%cjMKDLR?jntOF^T9t6oYe8emJDn#|^aFTxFQg&vh+`sU*A!trTWg39_A zcZK`F31-c(yw9)UCNSg6vFqV|AyQ@faJwAg3u|xE9cFeE21a`BeJZ@n2Mu)iLhgEJ zKQOBda}SB|gWk-J>T^Pzc!M=kWiZ~NAe-Z5{XL&OmEhhPaTTwnl6v3pg|}iiv6(lq z`&5Q;A|lN2ATwNNg9}**KEk4b7vL0GU=>WAc9#f^HVm&JL+&V<_^ zvt>jC!B%`_js9V1rUJoGnxnF?fZL>CSj?;$z8Hv?Ot7BWQTWP8Y*g-zI3X~d*-?Fs z$GtNQKYw_1XF@N^)eg7fbHVEiV~2Sv!_0F$=XSK_@Uw}Z3a4VzF%zln`xMrGJ9 zA`~VvJIad}3M;*gyoADq9{s}LidR?Qne}v-yMNRqdoNImZp3kd|4l5J*-=+c#s>^3hm*&j8;z&J1ax#X&dfl18n!|)>` zVqlI}cRJXK{q$wzk~+mL|) zKkLyi7S7+q!tia2H-Z~tA>#%`R<1J4yD}mcMl(~VEfym2mCg0k;vkusx)gCR5ntob zls1M>h=_+nUN+8kPedY|8mj7|^>ZVV;KVRu>Hys-aGL2+{TqIb5h-wn*~2hOHw2mK zRx)je$8we;+r;cB-0NyHra|cKH{4`EG_!}{Lh+i23~2a^c_K35(;k+6;3_k!+bt1& z++ezc+^8e$16j z)=y4(HX<7)GP_SdKYK5-Szg`vGQ4AhqOB^0>;d~xsjcLWkWu_vL=F^=QQ5ZG_V8S| zG)`p~6W@-=gRHxV;mODI*6sv8+4O^oi6m1ewjVSy!`&zQA$%&Hf#_T za}f-mM6Qnloj;3UIPjGds>&KXpFNvkp$)49 zW=&-10QQq@6&-YVypC9WEwP8;byu)sF#Nih80FH-)AgL) zO{dFSVAQ=NZH9vA7{{%!wUOA@Vxuv|F&r}7#MDubz)O&xYz?!ckQS91I0C*>nc>OM zM-8LllFIbYn5W63;i}itoc~?;XqeMPUXFrKc-|O&B^+kj4*Lc;@v&o7Gbu5kXUFqp zqQ!IZ`7k~d#zXTe(tIswVB=vIGc~dCu#cI#iH?W2nH`0`_yTx5oMNW#Y1nVI*FP@t z1bC5|y1`C>Ydv%mL0LnVxQV%O7n=wsruV@)N48@k%v6=|aQJV*RdChIHiy4qoDBMP z90Fb~z9#}7<}o`8i(K_S)4_BS}IKm{Mi-tsUh+u`|GVs|i8M=>Afcy+X#^C5c^Szgx_{>239#xXl9?#CO- z1+c}-UMzAVyR@15HNzix*Wq3OhDV5=H9Xeus#pLPm5CjB)G@@Xd$xaXWRYH7T<=ki z1wfy%VL#C?y##fOn5oGufTo++8fHu3d%O!-09XFf30U9;^P{R8%5)(N_cF?KA(TEw zIyKXUFoD@wgR}oQ$3mE@K0uxs6gia&a0&G zi{O%%QTRph#N(Wr;fsFvI2OUvD&v5Q;CZi(0xp7Ayt)~^=b+{9UPb{If#wPFqSnPC z@MosZ(;^6QGsUTad$FUlhjK9_dvztLTmY^w2fIJg-i#dC1WOOSb~WS35St8n4o!eaO)aTfFRF(nF3G z*u#u01-@%|hnZU4%Rs*k@aL?cMOy{|PZCpWW*MY2Q;T~U4@;-R~CU%mT z8%INj#eGn?o$^*kcpr>orjBq0Z1FN0;R=|zlPuK{t^oQdmIgsb#R^!eG9KXySmo8x z09U|+UL743E8rY6w|e}pfQwAk@GC(7G&|+(V^&!neX@mGME@ z3cq@Fv|Y8rpI#jWYz6&pbr5t=w!%;^qXlh+k<2!PxasDn6(%rMSF{zTGh2#p4coBe zVy`J#u7YJfELXu=ujNnTpko!Zd)c#^w;ZeC?_Rb;e$TN6F81iR7Or@8C2rYdTMN2p zDN{B4IxsU^3Jax=9qS<3%S_r+j{9Mmm!-?+9P8m3FFPWC=hy(>GE==g09{_)TX>|? z*@qtX-N4PU)PBz7`SxYAdtDxVWL!~5qP=|xNpdq*I7w1kKqw{AOW|^MalP*i$<~A$ z?W6#*SMl-q8y-|Y-o9=Qye`jdmS8eI15g7~LT3C_tyc(1*2EEhq`%Srze^;16nL}E zb;%ej4N~nzD8VMZ*{p$o>plP8Z+5r#2+$r(E?zeMH!cXJZVMfNPrB3@>N%xqTTPLs zSN*}H4df>*i*Q>M;p6c%)H(PF0pE7`k$H{UB`9KAL|RzjSCxKZ)3yp9H(KZzg^Yd$m7X&!Z*X zs20yEe!)QRQNjJyTOI(o(ZExtgVM1)3^Rm7w6O z|8eQ%nq|CLmBP=*iGQQ8G;W-xRyea~X^KSO{CS#cf!AGVLsha%o}2NIX0N=h@Kwzk zIOh5Yk)k}v188vbuLmJGkz5lNiIFZv+Jf>y+6Un${Ygy4k$;=EQnVRoX%5Iv%?Rxg zd3&F++75Ym>{yiVjH%MLiYw8x5dTD*R`KM3I_*>Ffoft%xCi}E$m8;JQ7>YflGp;{ zi;|#IcK@7yP`g(?YaskCtzEl8Y>INiW_hmu1MLOP-{L;eHgFOZJb`=Qvh&|sTKlWo z3-b6_jogi4^zvTTUJ!I6bV1C(*QEyeN>qY;ffuL~-o*!+UGhu4vgA%UL8o073ayJJA^ZY->xeD*z16{!W+*)8jjr!-o%;~4?t46? zhrr}oq-z$M>=xZ-rO>!ScfuLa@L55R$%}Xi_9|Wd`{<9jl?rp7ey?&4NredT z8Kd7U&j`C4B^!(S=#MM(EWA@W?|N9jS3d80Qh%Q3<`U0Mv&ivzO@BcdnfoR>?VJC; zzE&O<@`=7ey5D?J->tkE)ulJ+Ec$=zFY!F(aw;A2i5$t$!OzF9fSXpuqFWuDVz|Pt zud?fId2v{t;VO5llIU4>C#+5!W9Wo~N#hN6U8Q-F!KvGBsWv3&eh;3Ba$|}UD&(Cp z3k+4#7unO~TIF)S8{4#(R7sbzH({HerB_Mx41F^c;~{-q7Vd@i5a~xz1K; zszq;^n&VP1;$HcJ?-Wyq?$v>taPm*(*P4#&PT&i9_g*;z_r7NFVd6qlr|xM#+(2~q zr#G0I#SEVo(*<31?g})0JFMEUSAI8ty{SvLCTfeRLux3hHqfbMhp9{Ij&QswLc@07;j_Zmsox*9 z#@DV{UAEP?4tz|zvAr+&MZ{NwU-uoyYb+F>sE>WOX)6Z&;+wAD5a;kq*Uzyy{5oM2 zp6?Sheen;`n>N~C4Nr)$j_po!*3>+;d~zVe6F?x%}GpJ;Ew6; zMH8gEDlB--L){3=xm|@%O-J~bYo5R_vStc8ftG9N@~c@h$LWL% za#w@~PglbOr^$4ZUFhF{efRnwmt!@r`Y-d&L{9j-{%d#%9^_Pna=G|jx4%&CE}9`X zh;Oxa^A{g zAVs&(T*rwvYsTUUshP*!teK3brDn}Wl&s;+Z4U>o(_fBx#oVfYGWa#K`?!2KUotdn z8ql;>)P!}I_wW?eX=3rRjP~#k%o}iG&zO(kR(%1(ggEI`l<0CB>NFK)o3Jm<(*^m# zXpP)~Z~Cr^7jYN?7N>^xR;T8etHZoaADb0vIU>dzUef8n&Li8aPtGs2w(|gL#o6e=)+*ipJ{8vY*z!HLJi(URB>Jpq8y+F0qTvn$ZDUtq1Th+kv<>ZjZG{ zS>*eowL?EX=YaLNerLw()=vHAjJK>;IQ$h3f0g@o>WyWeTXClF3b7Nvj{3%WRzErf zzpjudj7g#cH9(?myAyUAWZPN27-T~99ptvzI`KoQFxv%vPG+Pn97nJT55k36>9#IC zeOlF}r%$W8^z>;}C%!)~v~}y7OUe)*DH)1=muHQz3B!?+I}txBxeF!vF_UcuLsm&O z;*gRWTY~OeKBb+ETWGTw{vKD4_(5DV%6&s-y3uLmpp`bep*w7?En1=_h{k-&HOZXs zUJZTywO2DE>^Zdg$hyy#EYT?KhNhf1Y*}nsz?KIz!}9-SJD{Pv47*`;{ux_=*YX8? zL(vIi`hI6iFl6ChlO-4i_WjXTibFjJ?pxT!D0XoK!-NJL(R_+uFC`dSqI(65Vi%o| zofaREYj`^)HK53lHHbd3T!@?QdA{Zu$9v^u#6j9|(h1ifZ6|bv;0Kp@lkbL12;4D6=%Xo2*kD~9DEy24CZzMbXZhEV z4*7GFz`qfuUBP{YD_UG`~lQ$Govh97kg z+D#g|Q!r`hAP;bBXjgKg=|TJy9MK-2q17!i&WifVUT%CY{1R6-arh4&k>{Gn_eaO$=?qAYaIL&#n4IIp5$$3g5uf= z`H&uYnB|A@8-N|5ks==!N8%$}Y!^!Ta450~+wL8qQQGa~Nc$|I+y*JGNrpWo%;H%6ORZjEeDWnZTBeO^jO^4>O)&ghaB5WNc#G%6K?2mlS81 zKoT1<7BV(5Ze={oc!m*@(bBW|pKbOXAu0A+d!v23{R_J(G&M9UbWG@!(8ZxkJX1bc z?QY2K!spWOg#R0{A^SH(pSV8}BkkH=Brzfugs577mIN^3hi!0cjsvlfwK^TO=LP<^ zq#@fy_J%mZ>?FqCi1E23sd5jXUuJtB#Q&5~=Z5SL=DLTta~H<0DGAb#I>1fnZ~ zdQDFmi?}$u3i0kTlGMbgiB7|IWWp@O!0>s93ygJ$4cU#1OA)Wc(jXTlx?5RvKjO|% zN@9-)!>w{p~NC8}<@@{Hkf2^+mn1Bru3+h&EA;7${~ShKX5-5uyeW|38fo`-ypoL-F0e1jEE4#8ILS@eWasI8HPo zju&qHb2q(YLo`Z(h<^B40RhG#w6! zXgVB{r6|NyG_8OPw5-6>dLUw7DF!hIEh``oEi0fvibL#=mSge%U&e+w7cIx)yRl%z z#b`Me?v=t28!-G>Sb~-lV7=tF;jahKbOJn#;U~Z*G@SsCpy>qIg5f8?<5Dk}2v4HZ ziFox8i1>_@j<_2wC&C`IoCwcLnTUTw%PM#gEvw*Vw5)2$0|Twg-bPcqwdsI~lf|}VT^_OVhf0y4 zShR{|dBVnsF=Djnvwz_jahK3wZu^gq6)))gE;ozo%MHesjq4_fP;qtRu1R9b{>bU# Y6|o6 Blunt ARA_Flyer_TrackingCharge - 2.5 + 1.5 Pawn_Melee_BigBash_HitPawn + true
  • WarTrumpet diff --git a/Source/ArachnaeSwarm/Abilities/CompProperties_TrackingCharge.cs b/Source/ArachnaeSwarm/Abilities/CompProperties_TrackingCharge.cs index 2ab22a9..2865f46 100644 --- a/Source/ArachnaeSwarm/Abilities/CompProperties_TrackingCharge.cs +++ b/Source/ArachnaeSwarm/Abilities/CompProperties_TrackingCharge.cs @@ -13,6 +13,8 @@ namespace ArachnaeSwarm public ThingDef flyerDef; public float collisionRadius = 1.5f; public SoundDef impactSound; + public bool damageHostileOnly = true; + public CompProperties_TrackingCharge() { this.compClass = typeof(CompAbilityEffect_TrackingCharge); diff --git a/Source/ArachnaeSwarm/Abilities/PawnFlyer_TrackingCharge.cs b/Source/ArachnaeSwarm/Abilities/PawnFlyer_TrackingCharge.cs index 378472c..e1767a8 100644 --- a/Source/ArachnaeSwarm/Abilities/PawnFlyer_TrackingCharge.cs +++ b/Source/ArachnaeSwarm/Abilities/PawnFlyer_TrackingCharge.cs @@ -18,9 +18,10 @@ namespace ArachnaeSwarm public float inertiaDistance; public DamageDef collisionDamageDef; public LocalTargetInfo primaryTarget; - public int maxFlightTicks; public float collisionRadius; public SoundDef impactSound; + public bool damageHostileOnly; + public int maxFlightTicks; // --- Internal state --- private bool homing = true; @@ -68,7 +69,7 @@ namespace ArachnaeSwarm pawn.Destroy(); } } - + public override void SpawnSetup(Map map, bool respawningAfterLoad) { base.SpawnSetup(map, respawningAfterLoad); @@ -77,14 +78,14 @@ namespace ArachnaeSwarm this.exactPosition = base.DrawPos; } } - + protected override void Tick() { // --- THE CORRECT APPROACH --- // Let the base class handle all flight mechanics (position, timing, etc.) // We only intervene to do two things: // 1. Continuously update the destination to "steer" the flyer. - // 2. Perform our own collision check. + // 2. Perform our own collision checks (for primary target and AOE). if (homing && primaryTarget.HasThing && primaryTarget.Thing.Spawned) { @@ -92,10 +93,9 @@ namespace ArachnaeSwarm DestCellInfo.SetValue(this, primaryTarget.Thing.Position); } - // Perform our custom collision check. + // --- Primary Target Collision Check --- if (!hasHitPrimaryTarget && primaryTarget.HasThing && primaryTarget.Thing.Spawned) { - // Use DrawPos for accurate distance checking, not Position. if ((this.DrawPos - primaryTarget.Thing.DrawPos).sqrMagnitude < this.collisionRadius * this.collisionRadius) { // --- Impact! --- @@ -104,8 +104,6 @@ namespace ArachnaeSwarm SoundStarter.PlayOneShot(this.impactSound, new TargetInfo(this.Position, this.Map)); } - // Calculate damage based on distance traveled so far. - // We need to get the distance from the base class now. Vector3 startPosition = (Vector3)StartVecInfo.GetValue(this); float distance = (this.DrawPos - startPosition).magnitude; float calculatedDamage = this.initialDamage + (distance * this.damagePerTile); @@ -114,11 +112,8 @@ namespace ArachnaeSwarm primaryTarget.Thing.TakeDamage(dinfo); hasHitPrimaryTarget = true; - // Stop homing. The flyer will now continue to its last set destination. homing = false; - // To create the "inertia" effect, we now set the destination to be a point - // past the target. Vector3 direction = (this.DrawPos - startPosition).normalized; IntVec3 inertiaEndPos = (this.DrawPos + (direction * this.inertiaDistance)).ToIntVec3(); DestCellInfo.SetValue(this, inertiaEndPos); @@ -126,35 +121,36 @@ namespace ArachnaeSwarm } // --- AOE Damage Logic --- - // Damage other hostiles in the path. float distanceTravelled = ((Vector3)StartVecInfo.GetValue(this) - this.DrawPos).magnitude; float currentAOEDamage = this.initialDamage + (distanceTravelled * this.damagePerTile); - foreach (var thing in GenRadial.RadialDistinctThingsAround(this.Position, this.Map, 1.0f, false)) + foreach (var thing in GenRadial.RadialDistinctThingsAround(this.Position, this.Map, this.collisionRadius, false)) { if (thing != this.FlyingPawn && thing != this && thing != primaryTarget.Thing) { - if (thing is Pawn pawn && !pawn.Downed && pawn.HostileTo(this.FlyingPawn)) + if (thing is Pawn pawn && !pawn.Downed) + { + if (!this.damageHostileOnly || pawn.HostileTo(this.FlyingPawn)) + { + var aoeDinfo = new DamageInfo(this.collisionDamageDef, currentAOEDamage, 1f, -1, this.FlyingPawn); + pawn.TakeDamage(aoeDinfo); + } + } + else if (thing.def.destroyable && thing.def.building != null) { - // --- CRITICAL FIX --- - // Create a *new* DamageInfo object for each target. - // Reusing the same dinfo object causes its damage value to be modified (e.g., by armor), - // resulting in subsequent targets taking zero damage. var aoeDinfo = new DamageInfo(this.collisionDamageDef, currentAOEDamage, 1f, -1, this.FlyingPawn); - pawn.TakeDamage(aoeDinfo); + thing.TakeDamage(aoeDinfo); } } } // Let the base class do its thing. This is crucial. - // It will handle the movement, timing, and eventual landing based on its calculated ticksFlightTime. base.Tick(); } protected override void RespawnPawn() { // This is the correct place to call the base method. - // The base class's TickInterval will call this method before destroying the flyer. base.RespawnPawn(); } } diff --git a/Source/ArachnaeSwarm/Abilities/Verb_CastAbilityTrackingCharge.cs b/Source/ArachnaeSwarm/Abilities/Verb_CastAbilityTrackingCharge.cs index e69a855..d4225f1 100644 --- a/Source/ArachnaeSwarm/Abilities/Verb_CastAbilityTrackingCharge.cs +++ b/Source/ArachnaeSwarm/Abilities/Verb_CastAbilityTrackingCharge.cs @@ -48,6 +48,7 @@ namespace ArachnaeSwarm trackingCharge.primaryTarget = this.currentTarget; trackingCharge.collisionRadius = props.collisionRadius; trackingCharge.impactSound = props.impactSound; + trackingCharge.damageHostileOnly = props.damageHostileOnly; // Setup and spawn trackingCharge.StartFlight(this.CasterPawn, this.currentTarget.Cell);