From aded160ce05266ad009203846f7c878391d8bdcb Mon Sep 17 00:00:00 2001 From: 997146918 <997146918@qq.com> Date: Tue, 22 Jul 2025 18:06:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=87=8F=E4=BC=A4=E6=8A=80?= =?UTF-8?q?=E8=83=BD=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Content/DataTable/PawnSkills.uasset | Bin 20618 -> 22078 bytes .../SkillTrigger_ReceiveDamage.uasset | Bin 0 -> 51607 bytes .../Dabaza/8/VO/DV1AKH9EUYVRMVYP3DYZVH.uasset | Bin 6564 -> 6564 bytes .../Dabaza/9/GX/KCVNFI6L6PBCQ844W3A926.uasset | Bin 6425 -> 6857 bytes ProjectFish/Source/ProjectFish/Definations.h | 3 +- .../Source/ProjectFish/PawnWithSkill.cpp | 13 +++++ .../Source/ProjectFish/PawnWithSkill.h | 9 ++++ .../Source/ProjectFish/Skill/Skill.cpp | 11 +++- .../Source/ProjectFish/Skill/SkillEffect.cpp | 2 +- .../Source/ProjectFish/Skill/SkillEffect.h | 2 +- .../SkillEffects/SkillEffect_DamageReduce.cpp | 49 ++++++++++++++++++ .../SkillEffects/SkillEffect_DamageReduce.h | 20 +++++++ .../SkillEffects/SkillEffect_ModifySpeed.cpp | 4 +- .../SkillEffects/SkillEffect_ModifySpeed.h | 2 +- 14 files changed, 107 insertions(+), 8 deletions(-) create mode 100644 ProjectFish/Content/SkillTrigger/SkillTrigger_ReceiveDamage.uasset create mode 100644 ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_DamageReduce.cpp create mode 100644 ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_DamageReduce.h diff --git a/ProjectFish/Content/DataTable/PawnSkills.uasset b/ProjectFish/Content/DataTable/PawnSkills.uasset index 1776439d732fe7ea4cb7d2a104337a078e0e3cc0..6240bf46327b052b61c6ae1ea375ce488fcdf8a6 100644 GIT binary patch literal 22078 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 diff --git a/ProjectFish/Content/SkillTrigger/SkillTrigger_ReceiveDamage.uasset b/ProjectFish/Content/SkillTrigger/SkillTrigger_ReceiveDamage.uasset new file mode 100644 index 0000000000000000000000000000000000000000..4e6797d9d9fcfa2d20fa3eef963c06b6410761d4 GIT binary patch literal 51607 zcmeHQ31AdO)~-QBL{UV%SiyiOpmHRT5Dt~x+zBQihmuT^PBJi=2{RKQ2#Uz1prDB7 zips*TC?2~aD&D)g>$Qry>biKYh_`~e>Wa$$zN&iDJv}`$9gM5)|5upl?pIas)jR7| z_0aw31t+cjX7Ap;75fR%u9Xn~q9aOM`V4z?+MqoncC^{GNZfty%#%)RO|T_Lcd1xZ zT)pXy7mvK<<-dH`{uY9r|I&QltvSUzKOR5omR?)#d1yAly1!KR+lPuzyt(jzZkKOc zxY>IO!FFW){m%Bq7an)dxzBA{H|qPWb_6>;^4)U_^6$)hv(u%k!)aZPI)Pxh)2{t{ z;n)Xz+`OsdqNby&-yA@&PwMX6@j>q8Umo<2^mRG+7xwK%umjH(qAwl$6?yB8ex);f zet%iWS6gd@VlK+hFscmSEF<4r@2xeceQWVY`rhjig8qq@4i};u9Sid^3$wB^`VYt% zoRKwXU{-$ifb@c#%$$s@+#G^p5UO;d!vn_%fuVj$o#%B|i0Y0PqJciYrO$eC!E2qi zJUntkaLQHl|8djcWot*h^w5pBjJf#LF5i0!`nCpP;K4xlr@z)>Ro5AEI zJoya6Z+OE-pUl3QvR;Ut&z_c`o;t~LX`o|QoOJ9VMAefD#^0pjy%5(r0@PaSnlHXC zhh2X9QG}&mX;sMA5b2leZ!{W0zCffXk$p}( z)KXUvsPzR5v1It-kw;j-&}M_*+f?SQ4U4ZQJY9bXRpx|3-lmdJu)zpLn#9OE-|+!c zWsct;oSjd?iui&7v3K_&9|2Qko;OeytgZDM6MbP{rO)r9KE-$RZlx-N_4P&|lG|8W z={HJzfq+phX7)W{%#pIEwNm!>8)AHqVZ)&9$~=eK@{xgjBjWY>!zJE;;TMNRhRp1M z#v{Dp;#o#0uGEJXH?3DPr&-#LjVj9zm--Z^Wn#60Wb$z5H>sV!${uY;j4}q=R7|3@i_>@%1t#fwH?7!>reJln(InbG+&C4;a4qdc6udw0dfCFL@izJ+;{3hA(=dj7 zb*&n8`16+oz$ARGmKYUZ?-_9h0M#bonw5uHT14g3t#bPiD3rUB-5DW+%wP0AWJK?S zQKQ^Ij(6^wow;!Ff@&F9Nb1tK-kiOv02~%n`y%8w!Kz01^2k6J)ZoX2gysag_0meHF3wJgN}!s z3PPb^NDd*=rT@2*j>Sae0G^$H%xjoQ3TzcahKvhFEHE*kb!0X8Eto}PPg8+&=f97; zL-GrlDVm$sy?rbE#F%4LiFqG>*BKhZMI*`Hcjb;-FtHY>>j{-cs1{MU+&UN9roUEy z*{~5lTQH{~7&eLnr48QM0kQtYgQvp!YWzWOM09Gp?isWx#8p&(dv1E;d)Px^$Y%tq z{Y_F$`#t{DK~O5&nmO_fQ@%R_Oj^RZSpE8b%fMuj5imkzJ=J;A+LyGQR0bJKNfaUQ ztXuf>EU+yv@=Cs~!^OyeFCu0=Fl+%55$NV`9XCr7BLn6rH@uiN>IAAEoiQ$0ZItJQ z45Gs(S6Y5JoCzqNX z3{{6kUY~KBF#(S8h9j{?8Wsn4ZM6*|8AH>aH>8}pQ(m|bu(95TsH8J5KmUA~;aH=d zR4NCt;<&rEK==w&;w8t4h;u)fKMb)%0Zq}LyXC&qp+637a`F^s)O36WZZI}j-RL(c z!|+BZE0P}4(0#cV*g+~fiiMxI9VLOrY>uR1vHpK{--Y2qxOz4e6+OzofD8bW3VVK2 z>sv8?07e+T+Pa9?RC>o(+@>TLo+KWhx~!E2Fj<5OKQUl}=oA+B{cx=xCV{InebwZ} z{($d2Sb+?DU+(vKd-!coWfsQhEBC^#w9|8%khA@+4@bYpt zj8b21z#C}{8RF7UZ~q44C=TeQC9_H5e(>B%eU$ztlK-MYd~OT1MxD2E*rtn&JO zb4h=}08|!k@KO}*7-?Dt)hOdoo^|x=8>V7FGL{*kvLIrFbhE+`brfamhFt?o;Sm=4 zk#ubjcKrh^J_@yZ{QFC0_O^C`#=~Ok?ERmBv2Yh@wBqP*Rzm&^ETj27;%g8?`#iV; zswCg^i-}Ke>6(B~H6hnPAO^7q%fNTGD8Ss{RXBpKKea7tK znwqc?5%Zq-I6n%X5)9Vo)CU{MPs)$H_(@nxX;qz3?-hIRUp^ZYDI`-`N{N_GEaaGn z{<-E%j4e#_zbIdK@hFMVOa^46e=z&9`4WT52Pl)%Ec(cFTdmvr6~-)8m&Rt(=gF?0 zN>o^;^eqX_HbNzhe!uwk?8&!4aI!TqE)$N2pUSukYO?~%E%wl~d(Oq3?e((pSZ{y~ zBqVx$a{CLgTM5J*FV5}vr*n|YMIq&tIh0S$q8yM$ByKt9yUU~FK!@_YeDTCfU)%v( zH~SO>svASdS;YaTd%DNsldTGBYDlPIQ8M)1xv^bkwUlv9pWLp9L?&8!Mvf$gtlsli z2drh3hQS?AIcd$movPKcPvm`e(@NxiHpFMD7_@q%F+HjR$zo{(rNZLA9^Z|Pvd#j$ zfBxuGqXLwp9(T^Y^N>ZWu_}tT$+c+XhSl)z(qK)*l7O6dkX{4pn<=w8BBoReIbjkiB`itLwhtNPh2`sab3(h-qK5_yQo*d<{ zIc@HQ{YpD}bnvMi!5PFCMe^8?$UU+}ok1!5?_XE|jM_}0f+ep%dOB#^LPb~KnrzJU zCYbZ_!F&JtE_aamM+uo=Sad#q-2e%u={aj)l>D@Yv-}t^%_(xSSd{+Q0^sF2#+=5! zSf1Zrx0I~?Ft1IzzLu;P^&HaXfB^ADPs#(f*zf02YL0t#`xWi?; zOI);r-Oq5*?p!Ka(V7|+C3tYB)*r6TE^buVLx;Htr`-0#aEDzRj|DaYNHvPH4 zme`)GFq{*r7+hSB<9!;}=hOx^&UKIK6U?AnG~z!mb@Ua=)q4A8$cKI7VCjeUQ8D*N-}!$H7+N5tq3>hE!S<{SmJ^h zHAzPA0*&h{3xA+9Oru8i>$;6^nFgjfB%=p=KmolEHBHdt*a%YBpaGS_i_|gIw_AFQ z2lT4-1?XL&&);f6dOv91fExCK+=%tZJ~N9aEHp||lJU1k_xs*P4>=ZigT1Ur)=H({ zDs@ctos8ZH?eE{&=pk2Q{{EmRk{7Q`MM>2sqxZE&vByRaIUneSnBbU<9_#OG8@+o77xP!$Mj>v)iDLpf4Bl6IU<>}R3oAY<(|N(7E)#wyqc;#j zqvFIL%o6lY*Yce57+R(-Zs`5XB2QqvU!#RgJL@rB{TB_S13(&V0`*xkdK|BT*II7Y z7wL3lG2ZorwMF9dWb}Bg$-S{@jg2B4+tCLr>4WG4*Dmzg7&Bf z9<)U}s0BEIA29F;+@OIvrj356Lm!-@4sEzSuB~GPoX3T8j1Sjn$KwQDdx3u5B;nvV z&t7S}243JWccxNoKQ206h-4dADK`&R5rW-1#Rc^g^yo)0(fu@a2eq#`R@PV)l1De< z8Y zd!=A6ri0vZl#r6L$t4AJ|2igBWn;FY3|pkeB9 zu=@c;JjFDw08#dcc*uUb&0+fJA*D0t=2?3Un;`kE z(_D5F6C}qT3J$8zj~y}hpFlEeAQ?kqGYNMh`2LzMk6w6q?93_m^pG#Ay5{MTIUg_e zoKO5Vk|gVBbYU@`L@-qB7{9mmQ_th57}(XNR`J}BC5m;8a=S*lXNS| z7GaI4>RE;?WoI6`>(TZXWkdmfF_Y-@7bCRw&6E`9YMY6OehF$k6lPn7Zyxt3;xd;; z6sD0tXNlkkwGdsFC+L=vyld$brcaRM0xwKe&#@!9ybsZ%Eszu{$!g#)XA+MpHkovi z<6&tuQqMYJ#tO!tyf@dD2|sDPp8ooY@#GzIB+ujJsOo8?hqjPx*{>&(EvrZy59ts` zi+LGCV~ogH*eI>kM>qn+w?}l*eMU$tnJIjtK(=M8Ww}()!g)6J3X-hNwr0F{u4O5) ztbc4Yg3corFPlyh4-yA#S&8a9#z}^4K7K~?Pzt5|u$Zu$yxLx`|+96LCH=O9b#XNlMqB7^kR zL|8fAn^A)8qj~uu&ub0D?!#RdGjd{ z6n~HlkIY={TeBxKkH*deR##=D5w)Ad{=&Ja8D+*(TeaS76hp~ce!jf5uPga-R$=A5 zf?|Z?*vd^j&peN~(_j&0Wcpghti#-?8t4iq`_W*M^kDiMNS{2CcP2>~I>{wj=aVM#NDqbd zT|^QXLg)E1Ys;cT|ZP^@udQ%OLBBICXc$AUq>o;bN~XA#2Co zD7C^+_u%;MR5$4dz>eIxhVYJZh1+=s%qJ|kOM{i5xi{z$qg~v7SeoHNHf_W ziX3WRX$Z}SLuiH@M3Tk65@yAGs>OUbfd0^DFj+40f-$b>rJ4bqxiM$Jv973a1_CX_ z>HxV=9gSLL=q&$nuCOwP<{c!=9nPz@#5EN%{^P!jT0bK;W5*vhl6du(tQRs<53RG6 zm$B!WD>jZ9=2)$(@)B3Pb3O=5gG~o%ydJu*;>NRiA2(hb9&v^%46M)C+>i6|_#C{{ z6;`(W46=6Yn`V+-BcsctZ{*|Zd=PoSK(cq_hR6ibI)jebWkoKC?61rfJ>G}1-t*~4 z-h)+?x&MIsDE)|1?7sdeIZFkJ&IDJqcom{{v(gD8GS_tS-~seeyIFu@MFGy>>3xVR zr#-GjyIB+UNI08Fv|{9#i0EwYRv~+6Ag=tPLX0Jgf@MvRSpjmS#Cut1y5gTLCUysz z_u%0%*0Fdf^1HEQwiv9{3P@&ogeQ+=m`M?(fOLjE_iTb=-3HshPJJ#N3rX@=V-(Rj zVys6@c14e~de%NH!#?sUt}uOt-+s~G!(s*b?gH_ixJbM}cI%`2vx{jT?*;nwA^8sz zmx{~8D%p6dE6gktNFkf}EFg(M2DmqY)hg~ms5R{%={xWztYEY05Aw^P^FsP~#96NB zeW5w2qdah|xG;v3ZiIn3+e!89C`y65^XdEt`i2P3)>Kki?f$ym2(rdTI=5d>)Ah;o zAm=&Tz9L{6<*snD#PdjQ14zc{Qr=4bh*d>WvhZ|B96pb=D=aUUAcLqyHo>q$u5d-K zIdRL*8C$MLcwNzok6Y#*e7YrWsg<{?Q*jH?Y!GqFe|?DC_-KZmyh=Ti_?eQk6YESF zn^VT_WZ2iNRS7ZkYBL$;MC)1XB;qf*rExZFQivV7ht^8#Kya?;ztu z6t3ULk>^sT!FQ~z7UrRhM9Cug$l0!{NJqHu=%Mi>k|EF9&N9p=OZO0t=1_&TVDH&O zyChg^-H@1WPpTn{unWci8Y)-gIJUQ@+J z1>9w*kx?v?5Jz%fC?u^J(u?uiSoPaCj0u0q_0O|E+u^K)BWO-kvF;9dC{J-S5|(K- z$&`ODIj03iQ%JD~zYBz)K)(1*LTb63pj+8JI`!R6D?N_=9{Fp?)Krlz;?GVsQDik& zSH0r;q#kK6qI8a?nA}QurE7Y=$=SSSVNe-iH<}B0kJ}^WyTV}3-`SM$A+yFE4BXRD zzZ1e51ot;`uri?k~!|yID<@i0~JXg5fW`DT% z#eZh@H$-N;3Z6LoTcAf0Kaa9!S!I5{t8pK%TiNX~k!`VDCdu`#&$5f;5er>W?511g z5eCFG>?!iEK)aC#HxNYaLE>(Mx!a^7D(^RW#09RXIj>@JiLOD`WWQU!$Q4eu(*n|D z23cG-S>yovU=>+Ff5<4YI{~XKpbu8qsKs6ka?AmAj=mmR;i+hl+&4M1Np$ZGe3-v4 zFn1i6XzYpY#gx29EY+>e`MIrzSof~XU$W-QOi<0f@si}6-rCBlX^&Xuig(Vptz*C* zh{`LFE63Bm&=qFZB6O8OSPDs#1LzDpBDi0TRRT1NH7K-&=z?D?=F^%1u?HH?mTS?A zG`)B^vjnZ#vPUd;H9r2mp4~GO%@naTR=A>J<{ZisFoPmbvG3uTYngNCzFU9#3=val zX6a6H!FhL*TX*^eNOzKvx*n*nGxc?rz8<8nv-S00d0j(mY(MFgo`Xf#>6$`+eWhq9 zYM=vp@S^TCugs@i5!DA2?W4kus2Ugc61XSEp!#4G@qI8R)Mw~%;0$9>FdjjM9D#x< z+Gxl0us5XWVMmtxDtc(gGzLUz42aTz6{@~0MclDa5d6YIVM7#Q7)uxXCV<822EV=K zK1$x*qgWWnKsgR@lUyV7NeWiIo1;mLnPt~p%%)8x!p(fMRSk^lBo(c*$#U$RFfXRw z@mm$vov9P1njxjAtlw<+%h5aYgPpcmdos1YuewQXPy33Qy(QVG*`8VNxHF(eluGY* zo&Tq84C9N9Etyfz%ZU0tvP5nNEhe%t+|S{5`yN}IVn$}vlM?HJWzJe~=Y8pMo`=jx zagmr7c79bGriNX51!TKC1Z$xghk0Sc$s{e4eG_eME$4t~I1Ay3>fD zZ+mOZZlH+##HrR=ry@GHSF=Sd?bteCh140UB7$=d715H_^^f9F+Hr2H>ddxI65{cw zIMH@ zb_x5i>N(pIuUXGn)v>OWuXd+VnD&rN&sbM*-(-5mT7$L4G)xHRhvw*`}SVvC|p= zzwc$evzPAshzDD&7aB{HS^St0~o}B-^NS}-&YyZ&*R+~gBh<9c^q2teBL|{Lr%#0FRZG$_|Z32^i}t1R4bhG zEP`{^bo1%5wv+J%3N1}HwXJ|EYq|M+v8I#r#adpn3>=7y<3hpczS zAxA{mkg|y()WRO;@ITyAS&LIdNr z_&p9q9~wzsXYK_ktvSt3SyCUYDewimN`zO{nRt~pobjrr166FYE?ovBt&1lIH zCHdL}Ejb2cXn8sBG@vDWj?+B~rI*+}1oUBRPwbEJK7xK66H<9eYy|j!pS12cvhVT! z0PBO{|L>D3pLOzj&V!TZx{xR=6miV-Nn`>%qnP^zfbtBU$}5$JDXc0|IeVpv(XCH% zTuA1RJj&+!Uh3I!Uorn@qX;y`kv5r}SjWlaggYMbJ2s%enuxU^qs#R}|do4Rn0`Dz~pwwp|L9N!fVu>SXea&%;_$Tfly{^k!gH<8X=&W-a!5 zVFy?TtDd;RU3h36AN7b`+sh%t1m>4E*&i|++q7r1UIg7Y*=uxqiX(~a$odAqf%l6V z)$~3jBUD4L*~4(uV`izA-rZ_cN1rkqmQVlf)muIkc4Qb2ek~68o9N*y^qhOIKWxxX zQ0e`J^0kZfvZmNa-r}Lbs>=HQK0KnInYX-3xvzZWY)`JSyyq&0tDf>{z~dV0`Q3U( zwSEnkd`}(W?k^vJ+>#ViK4ZA2g{9>Bq~~+lp4!{|hw$S0yy}IQ@)cq!p7@KW2RpnT zlc4gU&i@ViIRVUUZCnXfV;&Yh9Tik6w1sVnf zK*R-)>~8y1`sDSK|9Rl(<%=i1b@9L(&$&U@S`qZqF#E88xb3C7l3$jC2YhRgI&eh{ z&~`CgU$3&jF+Ay^`W0Ylct2lP-QWsK!@f9|QosYuNBhF{Mnu2u5>WkaI@yBH{pdpF zx9T9jB?i`vigfhCKYIh_CZsFi@+go^hCEZ}RzXY5$Lq>cePl}LXcacz4u@hFb}<7_ zl+_MHJ5^U8$e>t-iO0Ij=gHH{6OHH#i+Te}#oAI@Hh|1&8ZM|<2W%C~v8aT#_QDC3 zY;~YJqNK6)2F@yOkk1 zwwk5yEqvzHC&w=Pc;SXmp6>J>lb3z?butwi0}gTwn0o^nD9wk?f!eA)H$zCHK2oMo z21gou;IIw}Q4MXfGDxYdDy%tR8>eA7k2COVu0G~8{!snt{Q8Kv zaZb@#M(86BQfx~|Y*Q0e-ba;ZC#u{kx|vD;!KThl|JGi13O-8 z^3d|Yc{?wBzO-)QqFK++I;Cvrs!LZ2`ak-rSVfjp0e3&}>Nid6-yC<_fa~UW{eJ0N zF$w^#pFs%=k||*ui87%Q-XbL?RKg8pGcBWpGzbRoa;vQzvrH)=P2l)$<$<+}W-X}v ze!)JdqG@|W+2^|!<*)H|%6j*R2WH2qA`U>KfYq`UOMj+o_y!7&sJ|Q+vP3bQq5&iI z(b^?V!_*<#Um{ zv{|DsA0TPXM1XEfcRO(rvyWkL&GoAA*-$07x*8`2H0EU7iMDCzm@NyDWWzmPE zRgI=rwq#$%hnaQCv_eRwOBeb&5+f6BTd}9aj*J?}0+ehFD=aXaCK;K1RBT6}F8eVq zQ0Gy#qjNPXHCv&rpywQ@!tw#tGc*k6m~Ocg;$*zOs?bLq;2i=AE5QjBYf>X6;8pOb zdJ@hYyC^OtoH^16OS41sNpp|eHtE*ai`IYg@|JBq8cwxZh#WW}h4KBZ?21UiqA>+4 zI`4nZK@J~!gp&YyXXS=IJqC)kyijxoG>emdTmq#GWV zOnmpR1GjI@U-iyety3h57jj?(B&hS#hUsK`>$h{ae zEc1qH={?+0eU@uXtTtG;2B`yA!~j!V#OSjlHC~#vu+^bA-7#`;hwU4`SiSCU^mikR zx2Aq}#p-su@^5_WhTnA`G3{B%!VW`_K(Wi>7=jV!g(062sP;FpKq68Uh#=}^xz1Pu}@Lm=S`pbL`VQH!oM_!P2dgnxj$P31YH*bzHwo>|j9I#M{ z8|8cj7ji3r&f^3Gb4Q7*I9kEuD&#`OsfUb7julX;Q$>eE6IEcrgc3I@w!4ICsZ$;4 zAqA>f)dC62Q5Me*7@;&NOGl;1>^`AVAek7YNOTGtUfwypa@tv(u>PM@%xWceQK64G z$cYsRRKkfqjeIZRME?k($OIlLBh*2DOSEv>Ng8N%Y^g$mqaJ?D1vb!jOZKv*&u!dU zaNX{Y9&FXYc$BRQjX1|ahO}$rRl65$etG!aD`wvG@5gSq$qB|DhQ2b8MPsFX|23Kp zqbZ7&tb(X-j5$$>iIwo5t4}@t>Jv)u8Gieb8>c_hW$jLM1cGEpz{k=Tx^;c|`YDCi zEGb{nuI-9bonRc}AVB$UNcg2R^k_^2x6je1lpgNmqyGl%7isi(G%xLLc`3y==s!xe zqX$nWs!NlvX~2VetLWh$X_Ral^1m>L=!ggI8q~X;P%+L^PQ+1IY@ZTY1<~JJ5d%zd z5re^v+_s+VO*3A5Z20xdYi~+>d0czQ%?{%r6qOs&HEYm;)Ly1fF+DsXKwO51cT-BS z62pJrP9-60$cd8^R#-7o*k?IGJ}8*qN){b+^z)a_ExvQ}8}-L+o45(^r1Hx_3o2GG zJwt(HM|M1ba`9DyFDh}9T9ty!_kiLw;Vh9b-t3~0CX6>7Xe7-JDIG=+>r~hwnDhIU zFRp&!!Yw&g88c@G(OBOu-M(aLA zj_&jR*5|s7-n{txGe>04m)opK6-<4=&9i5Jee3R{KNx-A$j|yeuyfi=PB6#ig~{PB zV3C1Q=YH7h`<2UdNVT# zz4iub)NIFG8C?6#U+y@*c*7{;#X|x zvM(-~SJ!i1{?aG5Jo5C{_pSzqcG!QZ!?O6m@8rF-x+_-|X$(R9v%-^|%ONli`;^ws*60&v3kkyt z=KF-n0PL>WF{j&SUGAQnyaOHLiEV~wduauI_8T4YT+ z^#POi4IU?0jqYrpSsfT>2^4F_+fdiojVsT|8e2m45?1JrP6x?1^XjzihE7T4ae_u0 zXSLP3BB9kjLW)ahwfmI9&e-vGpv{F(j=KM2){eZcWW%RUuoag6vHDr5YpmM0H2x9cov|d- z59)YqEiw`%tihW0e>jspN|TLSpeFU|W=}VRj_-NsrcL?77yo(nwIjytT5nYyJ1*wb zjy?C>Ir;tm!|%O)Y(wq-71d6#eRNzT_=TF=<{X;kxEQZJ`E`Q*oQ{iJ%f6I=K$00f z>cNM7E6)kG&v~2Yr_0+orE$tL!5g;7>|3dTr;>?Si&j+JxNY(+Bi^O`jY7B&TSmj_ zZcD=Xwtwq=$P(8a(CeYQzg}JR;Is}WmJX`vY;{}0CkwW#1BZ0I=Az%PDSF`bIh`)> zWe1&L%%4n_a5qffNy_(y8~olT`JVyIyGeS-LETN#DZb@?6+@zP_D^RzV3N%Td|guV z-a~VbO3!&{%kqp5AAa!_)B`^Ms$;8nfB#7C)|^#$Tyxp_j}n=V3iqmy9hVdS^FTls zj}#tK(U@NVu{Jx0gJ}Kl`7!1{WBcdl&pF>p^NzYF^hyFuDBxr+5M&Z-3aM2n9 zux+oi3ZO~{T#kMCwqR6k<99a#hw-+aMI>FAhbo_Oy2Jz6o>kp>> z13UDG5t(<|Cd>yDXp|QbBxSz#!DdzQK64G$Z(DOEF~Hkx1L*|E7%vC^mP|~#8|Q{ z=T;AracPjQOqe>R{g7mWs@Rta>cE;s#o1?{Rd~&UH?v=8_}4u=c8mnJjRHg4_{qh~ z7aktY{axLxo$oyJd`BnP0yL(Qbb^9a$vts3GvU9g$y*9)pIlzD*~FzYuTzbrz+cwU zGAz|GiUBDL3RpSJ_xdZ@NAxSY|N0%ZmkexmAHzRSKdAfilYf)9wkYSi`?r1bKEq#0 zAAaj$%MKp%hdGaTE_?UpQyG5WDFbT`3;aFzftSZze97|dPci(#!h)tL^N-BAdGibR zRaW0AtpIfQ4$nPl=ZS+0)(>6w!#$%%Ud8RN-gd`ne|qcFFGbo@rlyRgQ>Rvn+{2jR^ZV1v=x0#ahmPvyQq38Q z|LqnH1T40F(ThD00EZp6gbC2`SEv`nNqrZS{tsY6oxJ&r(TP0>Lnn6Fg}-i{U{4M``F%W=Eo4Z7@uQh?g4qF7|y8Np3QczQ4R7Jw3 zUM|&Kv0h#yjm0eLxPsYtb8HcRvF{N=FLqc9?d!Gt&ycZQWWO;0$w9O+;sub)T7BZ? zp3;xl@2k~hShFp^-`9a|8zj6T1^%0TANi}Zx)v3DziG_U7Y@4VU!jU~cZ_;$6 zbNhc(bAmDdN%#A(i70d7A#$5s{#Rsm77c0TAWntH((?cH4!_&6|JOlKOln0`53cP$ zf_H-bV%-OmyZwJI5GXn0tOqnafIhGbNa}FXqW}N^ delta 36 ucmV+<0NekhGo&-HegP0}wbS*fc;iB|q2b7OWw-CE+X{i;qU{OE|+b%5?kb+f7G|?<%CDo;s+E4|O zO-U2w#b|Cw;DH!Tj3F^LvhZL`(T zeBZt2+;8sO>id4Jm+8@lP@)bY6L^mQ8%^-(w)pg&&TeWS3~_pA}-W@uw(Jo9K~S1wEO>7VNg zpZQN2E!-S!%k0f=9~*r>J2w6j9lln%xdO@T#3Q2<D632c3|hQvgBvppPa>_cAi(j;`HXlj&R}7!giy%fuZCk&LxZ8B)4ZKMr`^E z^xiik>kDsJOd94LOmqPQ?~H%1TB}ZUuj4%ISKf5D6H-Dv9OQy&-VNq$a8i^|SE?IA zkn4eBW=E}QrDSxKk-n116-FK`i)=27Y;_~ql#G7i)gIP}csSjAt>msVZ$RQwd)z44 z56pW=^AvW}FC)0sWs&>JBKMa?*0>R)AJvS6r>5SCjpW_ktkv_y!)dnG@lW1Q?>s!M zD%0k+l;G(aqVXOAFbn`YkA8&=RtdB6aJS|bmLyI6k)4~VUG@B;%8#-;Mq>BRO?zsD8(B!y3+&_?B z0&kw{UBMu%sIr=jHEi+78FN^)OuVNHY+8R)_derl#)>JQWmQ2?SW-1wjh5XVk6Z## zlX}c*Y2{Y`Y5z_@jTZHWwcKhIqPyU|T(Ha12g8lDGqPCqN9*&q??CF#Jp#JVqdvv< zk^YT8Un~E1u>hhrj_P;L`!_8uv1z~LAPpXEJqS!0h1A!PSl$iWA7Q1y3GugAoII+` ctB$ncxOtWMKb;QHf4W$76XiQqpVp`U0uU%G*#H0l delta 1892 zcmb_bO-K}R6#vias$)4b?l?2s`jH=-Wv2OAX6dS%5_kv^g6LFqsvz)Grw}5rQ}Q6{ zkW|n?2&9%ydJ*gpbqMJYR7CUveIdH05Rtt%`~KtD?skwK%)F1^d;jX;p|kR1;f;FkQ0{!#X(#aTYm!M9=iMb2GPV`>(&4 zpB?=&7`-q#HKM&d)jxIl{+pE>kIpIRL+1>@v@%?M9-}^nDQ=zCkdh%G8qoAP3{8Qq z#8}{rq7=iBY9_YjPAKpym`v#TbxPty!KeZY>Mg5<<5w`ao#k@4Q)qg~4@CBFK-yTN zgsmR3h%p_kB@yY$h%6x@ef`GDI{iqO>`xXd+>2RZq@qWQiiLbSC7N89=33aJ(^_c z5IjKiv=I%w4<)V|BRO$;O{)v}o~PK(V%fS$7$j2yDwVnKMh6VLMBT}n35sFDy%J+Etv9+|qG*bVj45*%tYc2?g<;%r z;Gu1)oLuaJ=XRwfFOIq-BHs!KI?>v+@%?Qe*Gf3*G+5OXiR4eX2NSkgH7Q^NvICJa zSaHHiJ$$tyo4WPJw8><;by||2_-LwWGp8R+)iL{P$-6pQjYbo)E4?;(q{NZu3$A diff --git a/ProjectFish/Source/ProjectFish/Definations.h b/ProjectFish/Source/ProjectFish/Definations.h index 4d70b50..53bf6d8 100644 --- a/ProjectFish/Source/ProjectFish/Definations.h +++ b/ProjectFish/Source/ProjectFish/Definations.h @@ -18,7 +18,8 @@ enum class ESkillEffectType: uint8 ModifySpeed UMETA(DisplayName = "速度修改", ToolTip = "使技能冷却进度倍率进展 持续指定时间"), SkillEnduranceRestore UMETA(DisplayName = "技能耐久度恢复", ToolTip = "使技能耐久度恢复"), EnhanceFishRod UMETA(DisplayName = "增强鱼竿", ToolTip = "使鱼竿上海增加"), - EnhanceSkill UMETA(DisplayName = "增强技能", ToolTip = "增强指定的技能数值") + EnhanceSkill UMETA(DisplayName = "增强技能", ToolTip = "增强指定的技能数值"), + DamageReduce UMETA(DisplayName = "减伤", ToolTip = "减少所受的伤害"), }; //技能对象类型 diff --git a/ProjectFish/Source/ProjectFish/PawnWithSkill.cpp b/ProjectFish/Source/ProjectFish/PawnWithSkill.cpp index d06b4cd..f4aae2e 100644 --- a/ProjectFish/Source/ProjectFish/PawnWithSkill.cpp +++ b/ProjectFish/Source/ProjectFish/PawnWithSkill.cpp @@ -13,7 +13,15 @@ APawnWithSkill::APawnWithSkill() void APawnWithSkill::ApplyyEndurance_Implementation(float enduranceOffset) { + if (enduranceOffset < 0) + { + //受到伤害 + OnReceiveDamage.Broadcast(); + //受到的伤害最低为1点 + enduranceOffset = FMath::Min(-1, enduranceOffset + DamageReduce); + } CurrentEndurance += enduranceOffset;; + } void APawnWithSkill::ApplyyTenacity_Implementation(float tenacityOffset) @@ -21,6 +29,11 @@ void APawnWithSkill::ApplyyTenacity_Implementation(float tenacityOffset) CurrentTenacity += tenacityOffset; } +void APawnWithSkill::SetDamageReduce(int32 damageReduce) +{ + DamageReduce = damageReduce; +} + // Called when the game starts or when spawned void APawnWithSkill::BeginPlay() { diff --git a/ProjectFish/Source/ProjectFish/PawnWithSkill.h b/ProjectFish/Source/ProjectFish/PawnWithSkill.h index 43d3303..e2ffe73 100644 --- a/ProjectFish/Source/ProjectFish/PawnWithSkill.h +++ b/ProjectFish/Source/ProjectFish/PawnWithSkill.h @@ -6,6 +6,7 @@ #include "GameFramework/Pawn.h" #include "PawnWithSkill.generated.h" +DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnReceiveDamage); UCLASS() class PROJECTFISH_API APawnWithSkill : public APawn { @@ -18,6 +19,8 @@ public: void ApplyyEndurance(float enduranceOffset); UFUNCTION(BlueprintCallable, BlueprintNativeEvent) void ApplyyTenacity(float tenacityOffset); + + void SetDamageReduce(int32 damageReduce); protected: // Called when the game starts or when spawned virtual void BeginPlay() override; @@ -31,6 +34,9 @@ public: UPROPERTY(BlueprintReadWrite, meta = (ToolTip = "当前耐久度")) float CurrentEndurance; + + UPROPERTY(BlueprintReadWrite, meta = (ToolTip = "减伤值")) + float DamageReduce; UPROPERTY(BlueprintReadWrite, EditAnywhere, Category= Default, meta = (DisplayPriority = 0, ToolTip = "最大耐久度")) float MaxEndurance; @@ -43,5 +49,8 @@ public: UPROPERTY(BlueprintReadWrite, EditAnywhere, Category= Default, meta = (DisplayPriority = 0, ToolTip = "韧性归零时眩晕时长")) float TenacityStun_Time = 5; + + UPROPERTY(BlueprintAssignable) + FOnReceiveDamage OnReceiveDamage; }; diff --git a/ProjectFish/Source/ProjectFish/Skill/Skill.cpp b/ProjectFish/Source/ProjectFish/Skill/Skill.cpp index 39c7161..76ace1e 100644 --- a/ProjectFish/Source/ProjectFish/Skill/Skill.cpp +++ b/ProjectFish/Source/ProjectFish/Skill/Skill.cpp @@ -6,6 +6,7 @@ #include "SkillTrigger.h" #include "SkillEffects/SkillEffect_Charge.h" #include "SkillEffects/SkillEffect_Damage.h" +#include "SkillEffects/SkillEffect_DamageReduce.h" #include "SkillEffects/SkillEffect_EnhanceFishRod.h" #include "SkillEffects/SkillEffect_EnhanceSkill.h" #include "SkillEffects/SkillEffect_Heal.h" @@ -50,6 +51,9 @@ void USkill::InitSkill(APawnWithSkill* owner, USkillManager* skillManager, FSkil case ESkillEffectType::EnhanceSkill: skillEffect = NewObject(this, USkillEffect_EnhanceSkill::StaticClass()); break; + case ESkillEffectType::DamageReduce: + skillEffect = NewObject(this, USkillEffect_DamageReduce::StaticClass()); + break; default: const UEnum* EnumPtr = StaticEnum(); UE_LOG(LogTemp, Error, TEXT("没有配置 %s类型的Skill Effect"), *EnumPtr->GetNameStringByValue(static_cast(effectData.EffectType))) @@ -77,7 +81,7 @@ void USkill::InitSkillTrigger() } else { - UE_LOG(LogTemp, Warning, TEXT("没有Trigger的被动技能,直接触发")); + //UE_LOG(LogTemp, Warning, TEXT("没有Trigger的被动技能,直接触发")); ExecuteSkill(); } } @@ -100,9 +104,12 @@ void USkill::TickSkill(float deltaTime) } if (RemainingEndurance == 0) { + FSkillContext context; + context.OwnerSkill = this; + context.SkillManager = SkillManager; for (auto Effect: SkillEffects) { - Effect->EffectEnded(); + Effect->EffectEnded(context); } } } diff --git a/ProjectFish/Source/ProjectFish/Skill/SkillEffect.cpp b/ProjectFish/Source/ProjectFish/Skill/SkillEffect.cpp index 9a64fb1..b895bf8 100644 --- a/ProjectFish/Source/ProjectFish/Skill/SkillEffect.cpp +++ b/ProjectFish/Source/ProjectFish/Skill/SkillEffect.cpp @@ -41,7 +41,7 @@ void USkillEffect::Execute(const FSkillContext& context) , *( GetSkillEffectDes())); } -void USkillEffect::EffectEnded() +void USkillEffect::EffectEnded(const FSkillContext& context) { } diff --git a/ProjectFish/Source/ProjectFish/Skill/SkillEffect.h b/ProjectFish/Source/ProjectFish/Skill/SkillEffect.h index 87bd62f..f8ec002 100644 --- a/ProjectFish/Source/ProjectFish/Skill/SkillEffect.h +++ b/ProjectFish/Source/ProjectFish/Skill/SkillEffect.h @@ -18,7 +18,7 @@ class USkillEffect : public UObject public: void InitSkillEffect(class USkill* skill, FSkillEffectData data); virtual void Execute(const FSkillContext& context) ; - virtual void EffectEnded(); + virtual void EffectEnded(const FSkillContext& context); TArray GetApplyTargets(const FSkillContext& context); UFUNCTION(BlueprintPure) diff --git a/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_DamageReduce.cpp b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_DamageReduce.cpp new file mode 100644 index 0000000..8a91a47 --- /dev/null +++ b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_DamageReduce.cpp @@ -0,0 +1,49 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "SkillEffect_DamageReduce.h" + +#include "ProjectFish/Skill/Skill.h" + +void USkillEffect_DamageReduce::Execute(const FSkillContext& context) +{ + Super::Execute(context); + TArray targets = GetApplyTargets(context); + for (auto target: targets) + { + if (!target->GetClass()->IsChildOf(APawnWithSkill::StaticClass())) + { + UE_LOG(LogTemp, Error, TEXT("skill %s apply target is not a pawn "), *(OwnerSkill->GetSkillName())); + } + else + { + //设置目标护盾值 + APawnWithSkill* OwnerPawn = Cast(target); + OwnerPawn->SetDamageReduce( (int32)(effectData.EffectValue)); + } + } +} + +void USkillEffect_DamageReduce::EffectEnded(const FSkillContext& context) +{ + Super::EffectEnded(context); + TArray targets = GetApplyTargets(context); + for (auto target: targets) + { + if (!target->GetClass()->IsChildOf(APawnWithSkill::StaticClass())) + { + UE_LOG(LogTemp, Error, TEXT("skill %s apply target is not a pawn "), *(OwnerSkill->GetSkillName())); + } + else + { + //恢复目标护盾值 + APawnWithSkill* OwnerPawn = Cast(target); + OwnerPawn->SetDamageReduce(0); + } + } +} + +FString USkillEffect_DamageReduce::GetSkillEffectDes() +{ + return FString::Printf(TEXT("减少目标受到的伤害 %d点"), (int32)(effectData.EffectValue)); +} diff --git a/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_DamageReduce.h b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_DamageReduce.h new file mode 100644 index 0000000..c05414c --- /dev/null +++ b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_DamageReduce.h @@ -0,0 +1,20 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "ProjectFish/Skill/SkillEffect.h" +#include "SkillEffect_DamageReduce.generated.h" + +/** + * + */ +UCLASS() +class PROJECTFISH_API USkillEffect_DamageReduce : public USkillEffect +{ + GENERATED_BODY() +public: + void Execute(const FSkillContext& context) override; + void EffectEnded(const FSkillContext& context) override; + FString GetSkillEffectDes() override; +}; diff --git a/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_ModifySpeed.cpp b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_ModifySpeed.cpp index 571fb9d..f593203 100644 --- a/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_ModifySpeed.cpp +++ b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_ModifySpeed.cpp @@ -36,9 +36,9 @@ void USkillEffect_ModifySpeed::Execute(const FSkillContext& context) } } -void USkillEffect_ModifySpeed::EffectEnded() +void USkillEffect_ModifySpeed::EffectEnded(const FSkillContext& context) { - Super::EffectEnded(); + Super::EffectEnded(context); //GetWorld()->GetTimerManager().ClearTimer(TimerHandle); } diff --git a/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_ModifySpeed.h b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_ModifySpeed.h index 7f549c0..1c84203 100644 --- a/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_ModifySpeed.h +++ b/ProjectFish/Source/ProjectFish/Skill/SkillEffects/SkillEffect_ModifySpeed.h @@ -17,7 +17,7 @@ class PROJECTFISH_API USkillEffect_ModifySpeed : public USkillEffect GENERATED_BODY() public: void Execute(const FSkillContext& context) override; - void EffectEnded() override; + void EffectEnded(const FSkillContext& context) override; FString GetSkillEffectDes() override; private: FTimerHandle TimerHandle;