From 917322934d15439d95612786cefa01cff7f3b75b Mon Sep 17 00:00:00 2001 From: wyatt Date: Mon, 20 Oct 2025 22:23:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98=E7=8E=B0=E9=98=B6=E6=AE=B5?= =?UTF-8?q?=E6=89=80=E6=9C=89=E4=BB=A3=E7=A0=81=20#7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 狐狸技能数据化配置暂时搁置 --- Config/DefaultGameplayTags.ini | 6 ++ .../Level/Actor/Static/BP_Stone.uasset | Bin 34402 -> 40040 bytes .../Data/Ability/FoxUltimateDataAsset.uasset | Bin 0 -> 2328 bytes .../Ability/Role/Fox/GA_FoxUltimate.uasset | Bin 22296 -> 22438 bytes .../Calc/MMC_FoxUltimateCostCalc.uasset | Bin 0 -> 97466 bytes .../Role/Fox/GE_FoxUltimateCost.uasset | Bin 13105 -> 13283 bytes .../Role/Fox/GE_UltimateCooldown.uasset | Bin 7650 -> 7650 bytes .../BlueprintLibrary/BusyAscLibrary.cpp | 20 +++++ .../BlueprintLibrary/BusyCombatLibrary.cpp | 1 + .../{Tables => Data}/BusyPreCookTable.cpp | 0 .../Private/Gas/BusyGameAbility.cpp | 12 ++- .../Private/Level/Actor/BusyPawnBase.cpp | 2 +- .../Private/Level/Actor/BusyPlayerRole.cpp | 4 +- .../Public/BlueprintLibrary/BusyAscLibrary.h | 18 +++++ .../BlueprintLibrary/BusyCombatLibrary.h | 7 ++ .../Data/Ability/BusyAbilityDataAssetBase.h | 23 ++++++ .../Data/Ability/Role/FoxAbilityDataAsset.h | 72 ++++++++++++++++++ .../Public/{Tables => Data}/BusyPawnConfig.h | 0 .../{Tables => Data}/BusyPreCookTable.h | 0 .../BusyRabbit/Public/Gas/BusyGameAbility.h | 16 +++- .../Public/Gas/BusyMagnitudeCalculation.h | 21 +++++ 21 files changed, 196 insertions(+), 6 deletions(-) create mode 100644 Content/Data/Ability/FoxUltimateDataAsset.uasset create mode 100644 Content/Gas/Effects/Calc/MMC_FoxUltimateCostCalc.uasset create mode 100644 Source/BusyRabbit/Private/BlueprintLibrary/BusyAscLibrary.cpp create mode 100644 Source/BusyRabbit/Private/BlueprintLibrary/BusyCombatLibrary.cpp rename Source/BusyRabbit/Private/{Tables => Data}/BusyPreCookTable.cpp (100%) create mode 100644 Source/BusyRabbit/Public/BlueprintLibrary/BusyAscLibrary.h create mode 100644 Source/BusyRabbit/Public/BlueprintLibrary/BusyCombatLibrary.h create mode 100644 Source/BusyRabbit/Public/Data/Ability/BusyAbilityDataAssetBase.h create mode 100644 Source/BusyRabbit/Public/Data/Ability/Role/FoxAbilityDataAsset.h rename Source/BusyRabbit/Public/{Tables => Data}/BusyPawnConfig.h (100%) rename Source/BusyRabbit/Public/{Tables => Data}/BusyPreCookTable.h (100%) create mode 100644 Source/BusyRabbit/Public/Gas/BusyMagnitudeCalculation.h diff --git a/Config/DefaultGameplayTags.ini b/Config/DefaultGameplayTags.ini index 30b2d63..4444572 100644 --- a/Config/DefaultGameplayTags.ini +++ b/Config/DefaultGameplayTags.ini @@ -11,6 +11,12 @@ NetIndexFirstBitSegment=16 +GameplayTagList=(Tag="Ability.Block.UltimatePlaying",DevComment="大招正在释放中") +GameplayTagList=(Tag="Ability.Flags.Cooldown",DevComment="技能冷却") +GameplayTagList=(Tag="Ability.Flags.Recast",DevComment="可以再次释放技能的标记") ++GameplayTagList=(Tag="Ability.Fox",DevComment="狐狸技能标签") ++GameplayTagList=(Tag="Ability.Fox.UltimateStage1",DevComment="一阶大招") ++GameplayTagList=(Tag="Ability.Fox.UltimateStage2",DevComment="二阶大招就绪标签") ++GameplayTagList=(Tag="Ability.Fox.UltimateStage3",DevComment="三阶大招就绪") ++GameplayTagList=(Tag="Ability.Recast",DevComment="技能可重新释放标签") ++GameplayTagList=(Tag="Ability.Recast.Ultimate",DevComment="大招可重新释放") +GameplayTagList=(Tag="Ability.Role.AttributeConsume",DevComment="角色属性损耗debuff") +GameplayTagList=(Tag="Ability.Role.EatFood",DevComment="干饭") +GameplayTagList=(Tag="Ability.Role.Pick",DevComment="角色采集物品") diff --git a/Content/Blueprint/Level/Actor/Static/BP_Stone.uasset b/Content/Blueprint/Level/Actor/Static/BP_Stone.uasset index e53677707f54f5e53ad65d7eacb8af92f08e3f0d..4ea6c4263073afe2c59d6d1a528be9f60e2b75bc 100644 GIT binary patch literal 40040 zcmeHQ34B!5)xU$tCZPBM;)Vl=?Ab#S+(;%1fsj36Q3;dGOENN<8D9NENFUts7Wv)wZr}KWl5Zd2in(Q@4J0=+L31M+h;bpAa8Yjx>xu+b;j?*stb>Hx2#Wg+G|`=&bwQW_c+71Vo_fr6QwVm(z9o5I&e=cUuj|B*S1+G>T7QDop7-jaIptZ$u3WV8 z!OP!$&_9S^8^)ZxbX}Ee*B@UVz4Ny}e{a|Zg020{Mee%_s}8(hGk53Y2lhO+f?(r+ zQ-9NARj2JJ9XM|D3m4z-oKCR)S+DFKR(0tqdsaWcYx~@h*8=zvr_N?Cj82&#x)o?Rb6U)!z-;Pd;uU!HSmL_)6*gM^D|c>)3T&$GKk5CfEn< zyZ66awE5$sUd`NI_;6|3WP-J~40>l_#e`-46ARW|z2vmf&_RPH1o)?yIXkrUB2QTJ z2i)FJdWF`hdD078LcTzHUC0@7x1<+UH`RrFUaBDai(k;Ulk`dd;)GE`jHA3Hza%HS zBquk&AU7vJGe0}mQCd=*o0C^ul#y3Zl2<|~dKyF7Nhb+0jdB-NzUed}AY8>HA?oSl zr%ylouJF#QhR?n6+&Racc=GxIUwr)38{r>oj-R~y((;$CICwVjK?e;vk{Z-sOnh~0 zzhmia+O&p}+-bF%M{@?X8M$dWvRsG-IiK0$ms2H~{?OHM9uA%${y8`4F#aYVIs|2H zBS5~Ttf$I5deKk!jwBlCbu9t6Ka}q91+<2$=JU0dkoc^8##u*O%1XR#ZqoOL+3U-# zRjS*&g6@_eYKmavE$jY^sua39o!%DBRqgf`yMum@vrDW#?!$qDQRMMd`dnI292)gb z5&Wt!pgA2LXD}!NC+=E0TtWiQuIhl#uLVL~qI~z;?g4;?2uU2d?&jt2l)_NR+0tI^ z3~1hvNISG+KU&&M#C*yf7qHuGwN24}*HJ4bPHnC!K zOktxt=q4OdbLtsq$g0J@FrC-AU7D**^L1#UK$p0AtmC;8QMF9-Y5`|Ro9_+;NPL&W z=kX8$Vm<$q1Ajfvic;071w2lFNhh@GkZgok5Xnjz%pYg;^UKJS~E1eV1Po zLq}ZmIxJD-b9I$_gCQ7P%-+A_S4R@C+2`|!w4+?_=@>qbVa{Xv@4gIv-wcfeNUxAh zn(LTPzjF>e#OT@23}4n?Dxn%dpx#&EYZI4lSi4r5TEWO~HO(uU=T2A(r)(wzhMgYw zD$UTSxNGCgS7kH0LYmQx1C=xO4x|bW3N!(yxa97;*1+Blr`OT$3^-dzL3JU`-{7zE ziWiE5_Il#fyo1X$j22>Ie@$H!lhaO`A*7*Vc}!3fv)11EAo^TP zNl+Z${=r`&it0%+t<>Xe6WZKynrxNcHN>;WKe7#aHPohe$;@v)ZP3{&|E$+Ks5^%= z@#~%ApMb_4K5u7}9x>{Dbs@4;oA|9`O&9#hQD53bJ_ec|ZDnDw&W!_cx?^||co%D} z&afvW)*kYm1&yflvVhayju;{Cf9pV}rJ$~b`dh8f7ZQ(LvGqu(O4Tq5WUX1%kNyef za#0*;LsJiax#cRDivmN)S*Nx5ysn^lqW*#-;9M#`NhPnk_COJ87Kf=sHxH?R-N255Sl76?7(*Y)>WHNKP6tttXY*l16$nS zsrd}XG6@(a&VKPP!}MmbYnXQHkG$|5rr>H8@NMKa=AmAtJv2PM)WK9 zw)(`wO~-r*jh4tF-E7s)P`h}paN8Q_NHrRRtS0tNtb9$1s7L-iw&DX)M5x&k;)6n4 zJ9Hc(Oi6UftXXyKz7<|^uj9$}M%4%&8)pCh?-RJHwPe<;VvPDeKN>H?R9@@Lf2MI- z=MshL4(grg-n+i}wN!_fB6YQo;)b|q;ZYNG(ZU@@|F8M)n`guPG9cTf%ZUS@pK=fS zfP_&z)o5^`n0CkZH}67B(^hIN;==d7Isv|mlQ5~sef|EOC!mgg-q5TC+Tg!UMijeh z-I_d%U#%XWGbBcK-TX_$(o&omt@-kfKYk6)91CT8f}(iJ1B3|d%^F;&)=v48u;zvx8c<%y&Ei*_`n+)I`hzk0qU7v5g(Ro(X33AcQOUd6*h zqch-!R%PEf^U#p5p)e{mntl7rGv{K~GcOBvZ<2azstUDh0XbC@KU+NfR!mRlXI4fF@s|0*nTg-X!ErW(w}5^#VPka0Hf(3HO{Yo_o6cpVs)UYjnxl4 zbT%A*zRwl*Xf)T7gQ)at|M<(Dkl%|CU2t;Ab`S*zLx_t%8Z;MzS^MIvGjre8VJ<{3 zc%WE%YSZ7LE{H0%`QonrcQK&a7hEWwI%iWq3t*85lzyN=->4E44}Ei^2TiHOto7p~ zo*IU(<jA>j*M|bJFc03GGSIb zTb4Q7ve>Xc)SN?3y2iYA`#EDx7|%nh0uk09=v?fFrDc!O z0`)#Py7aQr05n^_{fsS=GDd3UPOrXrXgR!>G~F^^3$|mTP^X2$e(}WF7hC{M(9F*x z8lSl{4Y8wEYtd-xBR!``qp7BvGKqITS^h9$mO_wa)tFMQy{P$FFjWQh?v`a@Ud>m} z>BzbhKoK&OZ>kqxyQK$of9LN?h(fgEnC14IfjXEy?4=a zgcsR5UqD>ue&`i&t#fv2u12@EqN=qusD;FZPrqMmz!&>`9fcjfFga<{=qsOrTh+C+ zYaLE;=;6y(K+!?X(<+*_UpW_w)<2imI;=n!5U%_eW{IqT;^twBw z!cB!#9sGDG;*Bh?)x0h(U>5G~SlbBQ=!F>cYe#;209aD9G08aXhx0~3@#JkrUp{?b z;8cY|l8MdZu3ISEE(JBPGQ>?^fpopLlFZ{FH4mJ*aW|R|h=KOxtk51PkK&nEtiAW8 zH84y)O>FDke(~e?20jMTQT<@7``Uc?yb0#nZNZ_p{=^mJ2vJSlG$>A(uss`7C7LFY z@G&Ntf8SEMIl!G!2A;dFTm34eY@}5hHU0-D^>@L6_0z0k(U9R8jHn?OGj5NY7EuGP zoiH8|a)B@4p=Aoq|5qw&iu-Htv(2C)ea%ho?F$E5v~;QWbn0icj4P+bKrme{xAku^ z{k$t)&+K6(=}tG@RWSha@`BS?a>!sJ-u?ZB#b~Ed91eEXI-8r_A@M)6FaHqk%SDyW zPB(=<>caYJMeKa=R5@8=1SvtaCrqJ4ytH^^r(8rzjm>y|!Xh|;!CZ_i$Q}k)H6T#~ z>y#V)Gh_`Th7Eq?sxBy*$N46Q$XIygWoUd6HCo@LU~P&gzH?|R`0K-TXvNB_F&3)n zYm+fqAR+@lzU59#a?G+=YM0df{5Ax8181H)NJ~>a?pC;)15R3`Jg{Zi_3@D8(#}Ad zJTwE*KYAkFR8~^i)L2+sURYF7BJN(jZVsHk#HCxQzwiF@5KGm$9&DQCWr+v(-7pMF zkuw1u_q^L}=fOL94kH2|J#;CASCa;Z)8jG94qpHLU!oscCln&Me({M26AH-4C79uf z8(%(hs-zZ21ABg(mTf7E5PXlTd^4g)1%)Oj^*ls@k&a*~nmS(#Ii<7iUvvL=At$+7 zA&phE%%Np&3$0+jXlnPP2kHS)X!Aa>K|gBn6~VGiqY$0dxk2yd>EG96Ji2f%bWhUi)AAS?k z;fTQ4Kq(Aj_!xNc<9qCq7Qs2($BED%h}tvITV+>bJg7z|v;XIxoP?E4M6n*ot)YDS z-BrWk{Q7>~4dbS{WMIecom6wq;3e>QnXtiulq4qV2tqJwl*4UTUF}qTL%ei|6n|}74YtfgU9jUF;#{P+v`YHdhzgX zkyzd1-I^jE$FT1Ba$CB?V;yvdcUy|>`+gie=CN0mk(v*!NfGbLICw1EK2?Tz^^+9v zUMIZeaqzg!PpPu~g!fDmJoa@$J9K#xyq~MGw+ZjrBzW8>K<|n;c%Kklfn{bL-ab&u z#U&q3&=2d#3d1pYFf2NMSJC>IaK5nM-Kh`L8Qy|5nF`lJMht$dmDVSs{L8kq>RXPr(OK zzE2(h_I!2FO_q!wkHyjazNct{ACGg_FYAVpDo)0a=T4tn6!|JW@9sO9d?OXVucG9`+?3^ORQDk~xVk$|dU-N_PbA^T@;$8h4Zpbe z{EkV&4{V^%R;ABp*7u&@>x$o(7JUvNvY5lOKCf0d>6i7M-#$eG_l;PoJ+4lm(|1*; z*~#BKuyLko_yfPa}e-LQ~dV#0l(7}t^cv;a}>dzpby#%|9po&NXK5M=iPlL zlkaU+IUYaQ5&Xs}WqsZU{7zQ1KCs9KJ{#!6@~xv|q!Vt?^X|Tr$+t#Tem{!ePZb>g z`I>-500O0VqxkV03H-cJFr}aM z0l!v7OQ&dlV+=fsJ{bCj(Fgrz2z?+AE^cswE>H%%KT(^30~qoHbPhPmQ4jPGlNrYJ zKtGx;fqI=F8h9Any0Rs_Wh)j=((l?bilcUY(OgERtyveL7pfUJC_^eP7RS>G?>y^w zN~IZO1$Kp@GkI~#*bbaXA{P}>DxcHXx}YOa(~#bgS6Vu6x!au;%FE40QE0{D`3ut9 z=Pl~0UD25tF3ffnXRfMQK_!l|vZBnk_L72Sfy%u4(&d2#E2sG?+uNw9WUkgx&|X&G zoUv^AycKorbCxY!T$#TL^a^X}<3Rnw&f2Wf(BirRNAsLUPs^OS{$_7YXMI^?*5U;# zI%^hGW;AD)cQ$0#w!6wa=T~IRty!2!u&i89VPTM}7daYA3+i2E1>wbw1;vF$^CiuO ztjaFu!lDeq&uq!|)Gb;t*X>+bQ&<9)B@#w;N;8}bD(e<6tn73xoO}Lav?)oF>WfgF zzKxE^$|}d6yMCb{Ezb5kF3A|yaL}y{@-`j<3hbzwC4BWWDDNc96o}JCX|WcR8??A+ zh!k0<-{vN-U87K52jKe`%`31df+HA2DwVXM5kyK%SBK^!!+-2CU~=GCuopr3{|yi=*&-efQAXTRfM`N?WgMYwhaRmokr23 zS``a9qK|o1kq*4X%_f+a31OX^at&A9D@ZdTSuZT=g^PBUTIsBrN>5f8b4Y*9q(`?X zk+{pr0?lHTVCqXnsaQd^e57R)*R(_Y(jyghvqgtz?O}>e3AG?Z?T1$^m-hBki)=Jf z=$@6RoONZk<0w@l*3)d_7*$q9o@L6~Kxcl^3cPGNVGL4OQ%FZ>MJvruZDOE;nw$<# zVx|Mynv~k4ZG~|wxM%gV^eir`5ZSVgpcBtxOARaA#Awxi)1KqRg`$jlqmT3s*&!=? z#cIOl-o(C^2-imITW+O|!kB*CD5|OVETfizdVJqQk7g|vNjyJ!!0Dn+)@r3T!80B7 zX{TeKs8POaqll$*iC4xJ;@srXvq;1|iY3<&`6p|~R?>gP}lnMHQW5i>;={pHG|d{IE>#UhhR zv&d6t(QyHN1Gk8v`SgeHBBH|mytlG)yREU%v|92~wn%cBk5w|4k_OEfV&%6~z@|2F zw8HGIOdK)hkRPs+k=%?JRv1UO{Vuqi%FLqQlDm2 zj$f+Jp-c_Omn2=abP7erv&bsx)Njnc8RUoYppLlEqBu~DZydLKs|~IX9eCx;1TzbB zUKkDMaVfbi8>K$)9ZvO$E)njH9NtbeyG}$JXS!<=)i&sC#@LNyY8q8AY|6_vvH2Iii}qqC313RJ)jN z{9eSKmLX@#Jk!jei04!Di&nCoIS;YXEg^klMV_VBD1S2N_$K6}lw@EDtI7MqOX`!9^Y>@h+IT9o)x2txrcH{dG&z3OTj@0(JK9Ym=FqdLZ5w#sF zH?%(yoabL$ez;a<{edr{KpTC6^ufviHtw!`LQ4AMUeHQ&3akoj;#5_S{o&trjl=$B z#+K+cj#*-^XsTtj50bB8{cg@zQo)^=l112m3dq|qe=nkWdl?<&((Iy){)*%$o6a0G zqs^k(dkG!oQ^W*bDa{Ts+s9n@w3PU9oQ@o6Qjup;O7z)Jt0_idCnQL*(WGt@lT)I? zt82ey{c5B83Un{+tG;Gk9b3mdQwDSOY%RxJ&HDH6+GlunZrU%p&ot0z>JlE(21gbX zGEM0yc|>RbcSvu>Di(eY|IeepS@btku2GArB%ewgbnc)&P$v69G4+C3^vNY&(^KNd zwvF_Ev(+muH($&{-Io1Cq}pOR~e zHH=XKGhLg=P#pTIKh)FQqJ?${^chU-*qx|6Q?(;``*{uBMs4>?9yW?x)_#OzUIV4N zcQsB?h}?x;MHav;jDEIF9@-*Dam+(br~ND5^~O3>KW--)JclyNVNojvVl4iWOUdnz z+*5*1vHsy%G}aON?rKg-RJoUAQxC|YF`z*9jWY84Z0ZO2Lm$BSkwxEG1`fs$ha5Aq zWdE_rp3=P(JX%_{ig`I?Fe4%Mi_>FdnoAKumu+TBvPG_}(I+57CiU}d`sgcbKxdL1 zkbM??W{_0z*4v3z)_Ezlgkyv01Cbt(pAr=wyBf&mL3vFjO!W#>-PmZr5hwYYC~|JU zRA7e-t8HAbz;%a29&aOkrQ)|d4@};QRC%7B5>MXU#Z{^3-gZVpeQ_KqC&}TDe!@I6 zC4Ouf#0InHpOsQw?)9c`@Qwub9TAf;SGS3?6}4D9bNmKxecd)YCC*&0g(StEmQ56< zR4-mc)Avy36CK37qLk?H-dY1m*hQKfM-jl>TXQHHvGT_DYjeLW)6%ao&T~mm`*m?j z5=7d)lk9~aS&~xSaSAKCUqA=2dgM5jF2@^OuR`Cq>Zvp(ZoIxNArHaI(;O$tRQ*^z zbDeC8k*r7LHrkU+rRVc(q=H(Fm2P=LPV9-eRsk7pbUis04qVSi66x1h=c#&nZG7{% z8L7|2*Q|Ig5E+roejPpT!xlbT%`J_%CWh;dkujckgHaM0lg82d!@6R?Dxe}I`FZrt zr;!bF+nI8#E~4);8qqL%V^qgl57%n+wO;|@<`Eq0yO|P>xzhZU_{H`-tS0%-98qy? z$b@1<#W;&ANG3GVh+3IaOW3NZYQIWRjrH=r86^|>hm9QcW=yVbn#=+QW@oOg+d?K&FlF3yg{;uuY=a;6vl*uIYZXq~N2KRYNlCHK0qPmz zB09I~%cPcNNMypS9MEQH4ZG%`m6*eMF(Hw9$C%2b<3p?Ws>zNEQE#AS_?`sa+2Tj{x zrqAs)Wnep)w!xJ?#_OqEY-y8gp2ZH#wYSkA(j%~Mskhh4HP&9($4OPL*trPSJ$h}n zSiE?XXY`4_i8pzM&639(?B22t;>DYIeHE)d)(2Y#Yd#%j`a_-p>uFEQH*9ZO#*9m5 zUya8VcSLjRdgg`L-(y{{t>SU*NrZqu=qn9fQ&@K}1lPl3=ivEh^9{?JbKQKy%E`S8_mk_?4rdL*9$=1UxPP5B%F>u~xkPIavkuD?&kERc)oFL{ zU8c@stxzC+EqWzXV0aOBa$$#%2+;bR*Eh-hzMzNkLePEgF%OPyA`t(SF8bGtkw1!@ z)Pra9r}3{Nn;etq_bl}ASUmq3PgA953gQ{$t@L!kAi?$D%TXykGh1^RKbH&2AB#?& zB7g5z9>h=DUr-cM%K`jrvPm{l< zo5Uqae@!?^KIy+Q+)=CfJ?<9zHK9vAGty1M;D@0Z@&~Sc&Nk}jsPt=8LzLt;lRpr| zuLvW4L@ECB`_q5c?@xRCn@(6>f4H&yfoa6=Me$41I1fH1=)YkXm_|}Lw|)4#uLla+ z$WzIu@?{L59KS#pc)SsQrHiyk&*Zl(L`TIl3Xo!Iq82|pfLO@{epW<0NI^CNzm%`R z38ik45xY*6sFBFc3WiKR4H3VScPrprm1n5@T$Nk7U9Dhf=Gm5G$jNCI3IUj{Al6Eo z6bv}{aDuj^tQRYYwbD%r7F`KXos^YSxy&w6C)F09w1p6B&SqI>t3oT6q)h|s9yjf( ztG~Qq|B`F=zJL0WU8{fb-Mz`0b{03SPBqQy1%@wSyg|Z)03s4PD3Vp61|1~zY}K_? z+c!6F{Z#xlQ1#dmmn?ne_rCj?y{wbeWv^FcV;TrYv64a0fFHm_D8n(gkDm!*6Lx~? zzJPWKyB*(@3`)NvGR*5zy^KV%8)A)DFtAaNn3ZKX?@!Ei;~V6nAL&u4s-uNrbu6n6 zS|<(?>mmiSYS17?Ws*FeErAqmmtzo=k)jKXr`w#Om&+EPX*ovEwXWpF)NdHa5S z=D9V0_|d%GtM8mF-Z*8G#9-C3s?qS}sxppY22PSPQ(U8ehgBx$#()eiK2_Ovx{&1+iYw(DVzc(W9 z=t0FBx83K?+2DFOqQMa-N)>RPMe2Bt%F!$&KaBGL4n}_rSBQI%xhsuvTWsXK~V-k}lrN2t22q1XSv>5x-PbQyDM{D#i`Sj`8 z+*t&VLW~w6j?@rgDxuG$&yvMUT&Tht zke&(v(}NloFDV85WN3KwVrrQf)X!8;EkTj29UIy~0wrt5E(LH2z9@0iaV$GD9(Q^k z&L}nOnf#W#0tXjSKIcAQEoZxGYAgoTVnxi!W)RE6jUOV-7zuu$dYDu-kx>NvV0 z6GyQmB1NYYO;xa}D{1fDwjqCf`OB{rZOFg+-gjPn@Mu;5=x~=COvhyvC+yhpU$2(# z{^h}b+uo?ZBpz(OVvg*P{34YPpo1ZJi3>dv956~&9y&yQCoG7-iae2wpdTbexrfT% zyY-&u@1A}6odD+YFPikIptoz=ktrIK9$am&M!xmUL8In#WV7b?>zvp0x%7)apYxbag zCx|`dvwM7Pc3(Io#J3d%wyK4oeweVpf{C!8k7MQ$7t3a`Vi1IUpFDE&#y^}hfFa+dX(u2QL@y5l3}^IME4)KbZfk)}Ld7I3KrNMy zq@3PhpvftnJm8X){6sD^s0MT}`Qv`yedNfom5+>hW#)!mzZ@D5CYQ>JgP|9URfb;Z zt$~N56!N40dm7nQ_2i-h`RmFbEPUj}(Qowo7BmtKyGCgPS%gOLavKT}^rnj;`dcsb z6Lcqf;RL;9a)|6oEx@q*TBU2?Juz?-mwJn*_>Q8^u7J6ng<%rsv0x!aPp&;PBP~Ow z>1A{{b0&_b7oC~O&_d&IihLkv&uTEch}I?QjaIMQ_{Fc!{POJctJdV#UH`WCch5n` z(Xc$GPPw7uAJ7TEIdF)4zngt>kls|}(PsDqT8n%!=oDSYN}YC>deNYLvb)u8c&y%& z?e3txo;uQ$GhdZymd+sfh zceS6m_fy&9qhaSTb;=FhchU*HWo`(zM~4h4Z?!uq=y_+*%PK=%_GMZZl<5!nI`JOY z=~5T;PP8Dsfr+(9FSTsZ>`rf&U0dl6;>DeIs;@^zyTT0;a;RO_4iX>GC0#mIdlITF zQ2`GfsE?>A-wS6PD5|=Me3I0Eu`EZ5UMnBdcZ-w1QEyMUI6<#QVtHHjQ)5kvQ@J?F zATbgyPEe?+nkg?2w$x8qe)daeR;``=%&^ba8!w5b9g&o&@6`E18bIg{( z--z1x^DddUdwF6R!cp zxas7XX>*soh2C_<0oo^D`#33RFVpCi&lF4O^S<1pPENq!p@ya+UXJ7otp6Iw}!$_!m-4Bz5U< zah1xEEyPznKJ7HfcScjB$iG^DunF$Rz@ zD$QZH$7OF-?+c{2cZO(m>2V|+k$dA=d)F^;Y<+slo2&c-x3DJBNGJ&ja#uZl=P@5Y zR6B3i*Wc0p_|}wb;=wv3w*F;w1Dx7&REd?k0@2GL$ii$$1DL{rWWjhzy^)a6-Z2~R zm_Plc+bbSzEH9|pR(L@?*k&e3d87>g`b`kyvEkNnu1Pf*3Sff)REn>JyM{@76<<1G zYbESe2?ymDh&Qy06w@hs?4zIGcH?E+?>RJk&z0kjI@bBk+uSZt=g}Hn@c7rB%MES& zbKzs}y*+kM`k*`F!Fu7NtQN3MHTB3x(cb87zId>Ig^$9$kOtEydeao}?)o3(h#rFD z!8{M|%J9or`^&%3nmBBXE6wwj7b62!?-miYTCgVM4(ayauALF`Y z@_=}-e?=r>fm4y;hBH3Br2nOl6+Zgmo7Zewd{HiBh=%1dLCTGYGl@>%_TqT3|I0oYAs8k^5C8&Z(g*2C z`p8Xhgjf`erVo-)fLd{DVDyYz04I-IKyc|_({Mm3jXvp9r`qM)m+dR)wdHo&*6N~F z2fYG2Xm6!$-4NC&PP_y=%{~=RNzxOB!6IPM`@XxxQU#@}^!i&Sw4l7{w=_U2)fK+L zvUE9Mr?rb~6(+h@YFuRnC}X^;3f8nK?UCD~f<xRC)oE|`_*!IL+8EbcnSe*TJ0$lFo#5t~ZVzgjebO9vXp*9?bDK@A)oACP z?sfJ`o<6U=nFLU#q1B?iKqDp6=S3aiU`TIFGvA6`rOPfA6C_6Zr5xHU#zL}yb5`xbXNvAP>+TKrEGwNL z_q_?DnXxFBoU;@lLezv};-2q>Vj{TpPE5aQOiU}UPz8_;DaOz}R?xjymK=I^U{1vk zM|;=(;q%su5-R9Yonxdgd`kfbsvP>adXQ8tfEc+D-;q*6&em}wsKGnrJL)2gbeY1e zRyi_>Da6x70~FBOC|URyvfxTpX!WKW6%38Gdeay>m(r+mOIA6%OPyH>tyQp;2z{}y z<%B=nJ~Z?KtU0uLYJwi zqcY}moW!{`WtrN%zG||uW}5t(QnMysJ;t=OzWkiE&fWWVxaS<^oB8^_*>KLrf zz4qE`ud~m+^rGQHr=d4WGVGlNrG^oM8S`Mr8Dr%J#_*rL9SC!z;RPn_ejLh}6=`@7 zV}TaNB-j%UH^4d{neM*!Iq1>}lkUSnZf;_`BrD_IT3ZxaxIHiU~vR{e^XvRoRsb z%WEsDDvRy4^T&*tWUs8Os%7szSN%JLOW z;ca}t0BwWkgHPatj^%-SBqcvi~LFxArE$GBL76>SzV-86Zr&nw&^0B9aWZ!v(?wRfkZb1fX3D=`3l675gyk1G?=s3AauP|0BKWZ5i3q=OoGz@-&e9o3h7=O46>E~4Muwf-EUls{v z5y^31qxg3Um7Pur=8F{lkQ>Z~=y(#3O^M^I8wwSwc(hTd`X%Dki5IovQdA2=H6OTd z$f)37I=L(jsn}N^ltRhl@nDY#PZ0sTuCPoN_j5HLq{5*kWiB-lUw5^q6lx+fv&v<) z?nq1AZN(^_C`u)bMx#-_p}AwbIupP{jF*Ayxww#O+YFIE!o?{1by_!dV{ij#X{%Ov89Gk}YqYKDeo zVeqgeRV6O=5s9a8@v~0xH&Ogw3TN0adG{w=aIlVdHK;v%-uJUZ8%;zwgG z)-M&-NsP*;ur78>5ClZ$+FJNnU$|-fmh&l-Kji%_q>=J2fBHDA)b&W zJy{1gV69=F1=h#gyc`zBHq3JTA^wnI$T#?c_dpT)JHZCabOwKxAYj-;$KR43jRfcIXj9AZG|M()3M-B;NcKOa&6{kdKc^DN; zJR-_%8mB~LP^29(s=&BC$n+$2vC;BSqot{W)Ga}wp4clO7B&_75bb7MG`T6!hdGZ( z1l=evDyV~PqLa9`-VFY%G|&Nu?ICcm)*o8t_?pIXi4IQ5y%xCE5CX;3o}t8C!V#s! z26%OI1bjKiIA$qF^Eo9VM*_{7Zm%jpD84X~{?JVnS8Q}*dT4m%IOZktkGhS7D#vBF~#7LlbCn3x~7e|6yd6MEmg zY1nywTB{cCr_i&;?8heafhzF*XvPnV==gNFyTcRi)cHuh;8UNKNXqvODDSO0Iwg=y+izq$Zf+uT?z{-6xeyI=UoV&_dzEm*0LMHd3y+!4WUfB+razf+ z=Y{ucM)HP|g@OFOmP9RVjTn*BbLucf$6LUAQ8()KEFx{Xk8}?7bFP)=$}S6>daMYA z(iW2_-KRT6XNiHhs0hAk$t2SxjwxSF|6#}9L_c+Re4QAJQ~Aw~efKJ8RP9z2%H>M* z;-G`WG}Y$4pG#1|qoy+J@8qk2*&Jwx*PG{>bT@xMz{qXmPOh4nyW_RQkCxPXZ><3Q zxKE_YQS{mY;;x>fo#YT~lMiItwJqk&O3-r&`0#M;=? z9+>Eh20}l4Yh=^TOWDV-d>r}0aG!lzJiQp#x?)UPM<-wDIsBJr$FDo^X>UN!pU-IV z`irr%PJ08iWyzj>_EFiVJqIslw=de*wyNE+m+ZOo=0J915O}Xj@O70y_+r@)wcqyR zuUkF3K~21`{`+;?g}V(mBOQYn>+|mXKWsnfY8UB1Z{3(T@{T^evuRRSb=}E~q>KBs zczWqj?@9;K$~*P@meecdIR{Vv)mYh@;HAauFCA=>ACz#|b2251Y%DcnFl)3LputcRdxI!P#{5&aJDRkB(I| z+3RYfrdBlC>zmj^u&*;wdICYh~dSS+4+n6WOT;-E$63pxzEoH#^ zPLm|udAl<+jOMEf9Wm#^@~3UhLr5Q+>a`}8-3jAe#gKFHW{0za<1yDAe94s=Ai8nO41jru1}O9 zE}ytrB36768L3f>oIlIZ&jpl> z)Kq8|p=mOvv8Lp8pHWtF$$Z$qB_gu#sv`6`#;}2lbU?|R5cs~q9}2rocvAKXDIDJ@ zFiy$I#qy6ch22B2n$&cg^HoOAqS0oqpaMTYu#bl%SRB!0oLug{{|3u BVJiRt diff --git a/Content/Data/Ability/FoxUltimateDataAsset.uasset b/Content/Data/Ability/FoxUltimateDataAsset.uasset new file mode 100644 index 0000000000000000000000000000000000000000..1dabde171ad7a6963bec0a9ec717243d06029bc2 GIT binary patch literal 2328 zcmb_eU2GIp6h6=`AQkzuLIRi&BNZ#V+hw=gA`*9Ycd%GX|A{pQXO|mX*>*QOx7gK} z28^jc2@oJnj5ekLB5!>lA;t#+K_2iyO?@MSQ~MWNF^uap{K{6T)2v7wY6RGP;I+N3&Rv! zLf)WdC)yL7S}?brU$RiQJ39{HD6c=U#MY@_=Cc5zmb2oP%T~>EUq>>R%1VpBY}&|o z8v9N9yX%|Yb!>E~^fHxR#bt*y_KN_0-u(L)^SW%MHEk!qU0RIN6r=S=I*&eD)U!5R$i!P1rJq8_$>Lf+SuU8DMW?i#kN-KwUkz|qcrT5QHdX}*X@mh14tjNhc z9r|O*F0K=`Wcmajqpz23;7O~IJizHUXOc!b^^PG^nLfN^W{sqvRWd&WN;*U`)3>i= zjsA}hg}`5j%=IVb%qo8R^e!0XG_2ihA6PVoR64~#(dqIwdH%l~(yHmU5o}e}M(a28 z?M5PzlJx6~AN}^Y%M{JzMAz=bTOuiGs%gs(u0BQ6hG~*~d*B#$NL)5$?Kd|s|p-z z7FIelv=A`Od4ga7G$@q%-DN+p4b0^SeigtLP|i=SQO?hfHg~)=juCvL;($9Is|&W) z{#ARe;%SdnDf{Mh`?zJeIBrxL%k9_gINd8*?+M2Vmz?Ivqppj`9p4=f@_g&L_XuCa zxx+7D9hEQSQo#1WUU;Bk7gM{PuT5ay2v%=9_h_+K=RBrXAY5%NeEA#{cB@8tu6o_o z&|b@0qby}2*I1vV5RwH@Y5;2i*nm1JiYm*%Kbs+-s{vP;Y*~3L@*PJ0hsdf_Dzfvf zzdr@s;{bneEj;Fo81~M{PqFk`xexj44|g5SzR6UA)>5-3tN}mx%mEwuDVG6V7=u literal 0 HcmV?d00001 diff --git a/Content/Gas/Ability/Role/Fox/GA_FoxUltimate.uasset b/Content/Gas/Ability/Role/Fox/GA_FoxUltimate.uasset index a257f5d9d29f03234b738afe45f74a8f39c4a5d0..0febff611d3f59acc87cd85ead04ccf8b70e03e2 100644 GIT binary patch delta 2840 zcma)8du)?c6u-A)&{B%sx~~ry-5d-UuuWhyYxijPXxD)_9s({?W5EjBfQ_w;@rLn! zI4FmS;SZ2RG-^b#nehQp{}CgGXktv%5L6HaAIu;z!N5G{e)lUKEyk04-#Op!ckcPl zJ@?%EeJ`BkFTcqToaX(JGsULEjIn<>V>;AFBLhWseF|e)_;A6@*a?S9e1rNbUdkxO z&OOzWJM-L;K+mePj&}3uyrLs3K3I6OVb;!`_ZQEdJ~F#}$QVLhMsL^qCTUx<%! zGJw)w!q_^*I^(#B_*_^UTplW{35J7(m5Z8|HHFs{`dho^FAFy<4~9d8S9WxS!pwMk z&e6z61(2ufjNZ^~*QF1~!FTDyp_W_GuGBNSF*qBRG{PslZ(f38{e|emhEux0NOYUm z`fT`ah*x^Ic0M4{`bEv5#o^h(@KUzv_;<%GgW>kpworR`4Qrfv@>cYYan}$7)qtb| z_M3CYs5WC|nt?h++TAcbElY_#N%S|YP!D|UvhWmGn>HbVzlQt);+4&E#8#<)L1sHK z@O!o1v`wN{5sf6E<^5f%HY!;OO~k7A?ZzOeVq5VN%)N#Z;BtaDJi-+ zDXP;@%wTPX$N;U+RBKSwEt=;bG&P1kFY~5qHzuH$5cLYwrI@X|q%ZBuKG~f8CGe%< zgbm7U-3d1YYsSM(Wuoaijw5Gs^26~mi!QTNkRfZ4bq6shF1+^Bfq~Mf(%Y5H{Jj#o zA!DcxxC^9VME&Uy_2C*gZH-osWb~-}r2Tf4cwe8b$QnV25+V8}8GK2#pmXgiO(@X~ zGOp1t=w76I5hfv*ktSiXXJ)`f`$qUGU^Y?UA23tWL$MTD5OEaq+i=z~J=K7x*7wl? z$CJ)EuS5Bl#DaAAVfkDs=@2G!TA!OK|?zr(>00z2(>O39|c=n zmLYBE2bEqYyyF_{pjd9aNXYgJ3l9d!aR;~$THMY2I(+S(X6TSi3#66W@Ic5box_`9 zU1>4Trc`qJaS}_UPm|Q7L`5jKVQ{Ln=0Q3jNzi+sMl~58=|adWAKoal4W(ML0+>>s zoqGozsbNTH=}5>?n;_YG8dQ2rquR+piFfe|L>-zcZBlu3TLvpV_S~UlqAXAqTPbyX zdWG~Rt4Qx5No(#-u_BL@7mQDnj8AG(q6}2wRT4D9i{(>t?>8f>^rG3Nz@OzAyo+)K zXN6u_ExGvVsS7{1LNTn-SZJ%Db=p-i-%u{GX1G$3LtQ0gIiz{~yb~VxRGQ-FIF*{n zE#|0wG#-^h?w77j@@l$&d-Bt$%Sdum#hRhm>&Av@^JW@GOUwwp-t4K`?i(x7fW}IF z?_y7euCi=pie%%9u#^&aQl&-mi<7vl6&qwprJGmMa!sS)^m!%8P}SW#{(1Ne+q6tM_p~L;};G-d6zc)lB3oAX4jq6@hNp;4}PZLJJIo z62No9<}Z3$`+cC?w0KxdlHwc4$-d__-Yi&($sB>Cj(SHHPw}y{_#8%1{2~vCL@w3}Xs!jd~yJ z(82k7J^gD68RP}O)}P_6@apUa$N!2XdYgJJT}GoLDBQj(B-Xe=fCu>mxV)g~Uuar1 AF#rGn delta 2745 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 literal 0 HcmV?d00001 diff --git a/Content/Gas/Effects/Role/Fox/GE_FoxUltimateCost.uasset b/Content/Gas/Effects/Role/Fox/GE_FoxUltimateCost.uasset index bb91c84b6b571e33dda1e0f8df3f4a915bbcbe1b..8c5f84f7d2f1f3c7ebc4b18dde59100cbd512fea 100644 GIT binary patch delta 911 zcmdm(_BegQ9wsHZiTf=0+8G!a{xdQ#01?Ay{>j&j)F*2*@_6nNVqg#i3JD1?FuW3h zNdE)UY@!SdMnD{ORH~jWyVR#`FGtY@$+(RV7=Nj9*XKHHlK8&0U;C3K$T(IYZlB!1 z7_2n|sAIh`kc$NV1A&qp149u|Y%^SL;y#njhD`fd7;PqhVAGIsE-fy}&vj1BNiNMv zEXmBzbIwUDE@qJ8pS)CVav;0HW^eW!Hb(u42SpV@iu8Sbo#Wl|D?)QhGIJA4Ql0aQ zOF-fb%?~y9Zr;w@$EYL)v<`==cxMLP$18VFcID3&Wrn)63`&0my0&Sup}g=U0S?|u zsNff%U@f}fXP{s?y5J|EU?VocW^}=iK$WG~1k0d;oG{xzPCm#l4|mH4puYOah4K=> z2xF*+IuImS1=2V9fuO)-4M7FQmdT!i>bxybc@R|sm#+ZJ&lFS#syZmB&e;YtW%5Ts zagJX=vp@oqC-RGM9S6lP5Gct_))Vql`w5i$4wVN9H-HEr-~{48FpGiVrTk<;VY$hB zgmlz?ASneIR0mbU0iiTf=0S{WD^{xdQ#01?AP{>dH2>XWq@c|19U7#R40LK}dDg$P92 z2S|qiaRU&aYOT6|#b%9X`$xaO+I(6z4;X)`a@XfNY?AoCwO{*_CCE5dAa0%9z!j(SCNXiJ$!0^QeJqT|lRvO&2nQ!8<|HQNq`KwgCzdc6 ztY^}Zn;gZiusMW1hi&tB-af|3%lWfKL6(6)1%zVw1~j^6vcG^dFHGbsP^1h+Z%{V-DyTBD{sT(z xP7YL+VEngvh9Vmy(}#nb7bvB(PoAL0!YDJDQC@hnyw+xp$vVbClU0oO0|4;$(B%LC diff --git a/Content/Gas/Effects/Role/Fox/GE_UltimateCooldown.uasset b/Content/Gas/Effects/Role/Fox/GE_UltimateCooldown.uasset index 60eb19287581e53b15c2dac3f7adc5d14eb80251..d2a5c0c75004c35e247da54950846366520ef460 100644 GIT binary patch delta 75 zcmaE4{m6QQ3!?x}lV2{Q*(U#{!j(%5_q&E|4q+^jWLn^``IMABqXZKJ0|N;205J%# Y0&z)EY3gJF8K=pdGEtlN%BV5|0A4y1i~s-t delta 70 zcmaE4{m6QQ3!{MdS1uMO%V3{L>fcyBW?PGF4q+^jWGZmnd`ilmk(~hum>3u)E6O-c SULzyO4rIglo7c#gF#-VW-Vy@< diff --git a/Source/BusyRabbit/Private/BlueprintLibrary/BusyAscLibrary.cpp b/Source/BusyRabbit/Private/BlueprintLibrary/BusyAscLibrary.cpp new file mode 100644 index 0000000..3360e98 --- /dev/null +++ b/Source/BusyRabbit/Private/BlueprintLibrary/BusyAscLibrary.cpp @@ -0,0 +1,20 @@ +#include "BlueprintLibrary/BusyAscLibrary.h" + +#include "GameplayEffectTypes.h" +#include "Gas/BusyGameAbility.h" + +UBusyAbilityDataAssetBase* UBusyAscLibrary::GetAbilityDataAssetByEffect(const FGameplayEffectSpec& Spec) +{ + const FGameplayEffectContextHandle& Context = Spec.GetEffectContext(); + if (const UBusyGameAbility* Ability = Cast(Context.GetAbility())) + { + return Ability->GetData(); + } + return nullptr; +} + +AActor* UBusyAscLibrary::GetEffectInstigator(const FGameplayEffectSpec& Spec) +{ + return Spec.GetEffectContext().GetInstigator(); + +} diff --git a/Source/BusyRabbit/Private/BlueprintLibrary/BusyCombatLibrary.cpp b/Source/BusyRabbit/Private/BlueprintLibrary/BusyCombatLibrary.cpp new file mode 100644 index 0000000..3813ee6 --- /dev/null +++ b/Source/BusyRabbit/Private/BlueprintLibrary/BusyCombatLibrary.cpp @@ -0,0 +1 @@ +#include "BlueprintLibrary/BusyCombatLibrary.h" diff --git a/Source/BusyRabbit/Private/Tables/BusyPreCookTable.cpp b/Source/BusyRabbit/Private/Data/BusyPreCookTable.cpp similarity index 100% rename from Source/BusyRabbit/Private/Tables/BusyPreCookTable.cpp rename to Source/BusyRabbit/Private/Data/BusyPreCookTable.cpp diff --git a/Source/BusyRabbit/Private/Gas/BusyGameAbility.cpp b/Source/BusyRabbit/Private/Gas/BusyGameAbility.cpp index d1ec3f0..a240d53 100644 --- a/Source/BusyRabbit/Private/Gas/BusyGameAbility.cpp +++ b/Source/BusyRabbit/Private/Gas/BusyGameAbility.cpp @@ -21,7 +21,7 @@ bool UBusyGameAbility::GetAbilityEffectSpecHandle(const FName& EffectName, const // 2. 创建并设置GameplayEffect上下文 FGameplayEffectContextHandle EffectContextHandle = Asc->MakeEffectContext(); - + // 3. 将当前对象设置为效果来源 EffectContextHandle.AddSourceObject(this); @@ -31,3 +31,13 @@ bool UBusyGameAbility::GetAbilityEffectSpecHandle(const FName& EffectName, const return Handle.IsValid(); } +void UBusyGameAbility::PostInitProperties() +{ + Super::PostInitProperties(); + if (SoftDataAsset) + { + Data = SoftDataAsset.LoadSynchronous(); + Data->TargetAbility = this; + } +} + diff --git a/Source/BusyRabbit/Private/Level/Actor/BusyPawnBase.cpp b/Source/BusyRabbit/Private/Level/Actor/BusyPawnBase.cpp index 978911b..aba82c7 100644 --- a/Source/BusyRabbit/Private/Level/Actor/BusyPawnBase.cpp +++ b/Source/BusyRabbit/Private/Level/Actor/BusyPawnBase.cpp @@ -6,7 +6,7 @@ #include "SpineSkeletonAnimationComponent.h" #include "Gas/BusyGameAbility.h" #include "Level/Actor/Components/BusyPawnMovement.h" -#include "Tables/BusyPawnConfig.h" +#include "Data/BusyPawnConfig.h" DEFINE_LOG_CATEGORY(LogBusyPawn) diff --git a/Source/BusyRabbit/Private/Level/Actor/BusyPlayerRole.cpp b/Source/BusyRabbit/Private/Level/Actor/BusyPlayerRole.cpp index fca496e..4bee203 100644 --- a/Source/BusyRabbit/Private/Level/Actor/BusyPlayerRole.cpp +++ b/Source/BusyRabbit/Private/Level/Actor/BusyPlayerRole.cpp @@ -1,8 +1,6 @@ #include "Level/Actor/BusyPlayerRole.h" #include "Camera/CameraComponent.h" -#include "BusyGameplayLibrary.h" -#include "Animation/AnimAttributes.h" -#include "Tables/BusyPawnConfig.h" +#include "Data/BusyPawnConfig.h" #include "GameFramework/SpringArmComponent.h" diff --git a/Source/BusyRabbit/Public/BlueprintLibrary/BusyAscLibrary.h b/Source/BusyRabbit/Public/BlueprintLibrary/BusyAscLibrary.h new file mode 100644 index 0000000..113d211 --- /dev/null +++ b/Source/BusyRabbit/Public/BlueprintLibrary/BusyAscLibrary.h @@ -0,0 +1,18 @@ +#pragma once +#include "Kismet/BlueprintFunctionLibrary.h" +#include "BusyAscLibrary.generated.h" + +struct FGameplayEffectSpec; +class UBusyAbilityDataAssetBase; + +UCLASS() +class UBusyAscLibrary : public UBlueprintFunctionLibrary +{ + GENERATED_BODY() +public: + UFUNCTION(BlueprintCallable) + static UBusyAbilityDataAssetBase* GetAbilityDataAssetByEffect(const FGameplayEffectSpec& Spec); + + UFUNCTION(BlueprintCallable) + static AActor* GetEffectInstigator(const FGameplayEffectSpec& Spec); +}; diff --git a/Source/BusyRabbit/Public/BlueprintLibrary/BusyCombatLibrary.h b/Source/BusyRabbit/Public/BlueprintLibrary/BusyCombatLibrary.h new file mode 100644 index 0000000..2c2918d --- /dev/null +++ b/Source/BusyRabbit/Public/BlueprintLibrary/BusyCombatLibrary.h @@ -0,0 +1,7 @@ +#pragma once + +class BusyCombatLibrary +{ +public: + +}; diff --git a/Source/BusyRabbit/Public/Data/Ability/BusyAbilityDataAssetBase.h b/Source/BusyRabbit/Public/Data/Ability/BusyAbilityDataAssetBase.h new file mode 100644 index 0000000..e43a815 --- /dev/null +++ b/Source/BusyRabbit/Public/Data/Ability/BusyAbilityDataAssetBase.h @@ -0,0 +1,23 @@ +#pragma once + +#include "BusyAbilityDataAssetBase.generated.h" + + +class UBusyGameAbility; + +UCLASS(BlueprintType) +class UBusyAbilityDataAssetBase : public UDataAsset +{ + GENERATED_BODY() +public: + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="技能ID") + FName AbilityID; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="技能名称") + FText AbilityName; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="备注") + FString AbilityDesc; + + TWeakObjectPtr TargetAbility; +}; \ No newline at end of file diff --git a/Source/BusyRabbit/Public/Data/Ability/Role/FoxAbilityDataAsset.h b/Source/BusyRabbit/Public/Data/Ability/Role/FoxAbilityDataAsset.h new file mode 100644 index 0000000..d165ec8 --- /dev/null +++ b/Source/BusyRabbit/Public/Data/Ability/Role/FoxAbilityDataAsset.h @@ -0,0 +1,72 @@ +#pragma once +#include "GameplayTagContainer.h" +#include "Data/Ability/BusyAbilityDataAssetBase.h" +#include "FoxAbilityDataAsset.generated.h" + + +/** + * 狐狸大招技能配置 + */ +UCLASS(BlueprintType) +class UFoxUltimateDataAsset : public UBusyAbilityDataAssetBase +{ + GENERATED_BODY() +public: + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="一阶消耗", Category="技能消耗") + float FirstStageCost = 5.f; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="二阶消耗", Category="技能消耗") + float SecondStageCost = 8.f; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="三阶消耗", Category="技能消耗") + float LastStageCost = 12.f; + + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="一阶伤害系数", Category="伤害系数") + float FirstStageDamageFactor = 5.f; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="二阶伤害系数", Category="伤害系数") + float SecondStageDamageFactor = 8.f; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="三阶伤害系数", Category="伤害系数") + float LastStageDamageFactor = 12.f; + + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="一阶速度系数", Category="速度系数") + float FirstStageSpeedFactor = 5.f; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="二阶速度系数", Category="速度系数") + float SecondStageSpeedFactor = 8.f; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="三阶一段速度系数", Category="速度系数") + float LastStageNormalSpeedFactor = 12.f; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="三阶二段速度系数", Category="速度系数") + float LastStageSprintSpeedFactor = 12.f; + + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="可释放二阶标签", Category="技能标签") + FGameplayTag SecondStageRecastTag; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="可释放三阶标签", Category="技能标签") + FGameplayTag LastStageRecastTag; + + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="一阶标签", Category="技能标签") + FGameplayTag FirstStageTag; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="二阶标签", Category="技能标签") + FGameplayTag SecondStageTag; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="三阶标签", Category="技能标签") + FGameplayTag LastStageTag; + + + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="可重新释放时长") + float RecastWindow = 6.f; + + UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="冷却时间") + float CooldownTime = 15.f; + +}; \ No newline at end of file diff --git a/Source/BusyRabbit/Public/Tables/BusyPawnConfig.h b/Source/BusyRabbit/Public/Data/BusyPawnConfig.h similarity index 100% rename from Source/BusyRabbit/Public/Tables/BusyPawnConfig.h rename to Source/BusyRabbit/Public/Data/BusyPawnConfig.h diff --git a/Source/BusyRabbit/Public/Tables/BusyPreCookTable.h b/Source/BusyRabbit/Public/Data/BusyPreCookTable.h similarity index 100% rename from Source/BusyRabbit/Public/Tables/BusyPreCookTable.h rename to Source/BusyRabbit/Public/Data/BusyPreCookTable.h diff --git a/Source/BusyRabbit/Public/Gas/BusyGameAbility.h b/Source/BusyRabbit/Public/Gas/BusyGameAbility.h index 875dc31..8605b1b 100644 --- a/Source/BusyRabbit/Public/Gas/BusyGameAbility.h +++ b/Source/BusyRabbit/Public/Gas/BusyGameAbility.h @@ -1,5 +1,6 @@ #pragma once #include "slua.h" +#include "Data/Ability/BusyAbilityDataAssetBase.h" #include "Abilities/GameplayAbility.h" #include "BusyGameAbility.generated.h" @@ -19,12 +20,25 @@ public: public: UFUNCTION(BlueprintCallable) bool GetAbilityEffectSpecHandle(const FName& EffectName, const UAbilitySystemComponent* Asc, const int32 Level, FGameplayEffectSpecHandle& Handle)const; - + + +public: + virtual void PostInitProperties()override; + UBusyAbilityDataAssetBase* GetData()const { return Data; } public: UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) FString LuaFilePath; + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly) + TSoftObjectPtr SoftDataAsset; + UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, DisplayName="技能效果") TMap> AbilityEffects; + + +protected: + UPROPERTY() + UBusyAbilityDataAssetBase* Data; + }; diff --git a/Source/BusyRabbit/Public/Gas/BusyMagnitudeCalculation.h b/Source/BusyRabbit/Public/Gas/BusyMagnitudeCalculation.h new file mode 100644 index 0000000..3ba0960 --- /dev/null +++ b/Source/BusyRabbit/Public/Gas/BusyMagnitudeCalculation.h @@ -0,0 +1,21 @@ +#pragma once +#include "LuaOverriderInterface.h" +#include "GameplayModMagnitudeCalculation.h" +#include "BusyMagnitudeCalculation.generated.h" + +UCLASS() +class UBusyMagnitudeCalculation : public UGameplayModMagnitudeCalculation, public ILuaOverriderInterface +{ + GENERATED_BODY() +public: + virtual FString GetLuaFilePath_Implementation(); + +protected: + UPROPERTY(EditDefaultsOnly) + FString LuaFilePath; +}; + +inline FString UBusyMagnitudeCalculation::GetLuaFilePath_Implementation() +{ + return LuaFilePath; +}