From 1c73b094ffba2e7b127580ea096122a0d000513f Mon Sep 17 00:00:00 2001 From: "PCYPC\\pcy35" Date: Sun, 26 Nov 2023 16:47:36 +0900 Subject: [PATCH] =?UTF-8?q?[=EB=B0=95=EC=B9=98=EC=98=81]=20=ED=8F=AC?= =?UTF-8?q?=EC=85=98=EC=9E=91=EC=97=85=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Config/DefaultEngine.ini | 1 + .../Blueprints/Actor/BP_HealthPotion.uasset | Bin 22840 -> 23055 bytes .../Animnotifies/ConsumeItem_AN.uasset | Bin 0 -> 37962 bytes .../DrinkingPotion_Anim1_Montage.uasset | Bin 15630 -> 15697 bytes Source/D1/Actor/BaseConsumable.cpp | 11 ++++++++-- Source/D1/Actor/BaseConsumable.h | 19 ++++++++++++++---- Source/D1/Actor/BaseEquippable.cpp | 2 +- Source/D1/Actor/BaseEquippable.h | 2 +- Source/D1/CombatPlayerCharacter.cpp | 18 ++++++++++++++++- Source/D1/CombatPlayerCharacter.h | 4 +++- Source/D1/Components/StatsComponent.cpp | 2 +- 11 files changed, 48 insertions(+), 11 deletions(-) create mode 100644 Content/CombatSystem/Blueprints/Animnotifies/ConsumeItem_AN.uasset diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index f4db7e47..b6dcb8c3 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -155,4 +155,5 @@ ManualIPAddress= +PropertyRedirects=(OldName="/Script/D1.CombatPlayerCharacter.EquippedItems",NewName="/Script/D1.CombatPlayerCharacter.StartingEquipments") +PropertyRedirects=(OldName="/Script/D1.BaseConsumable.NumberOfUses",NewName="/Script/D1.BaseConsumable.CurrentNumberOfUses") +PropertyRedirects=(OldName="/Script/D1.BaseConsumable.NumberOfUses",NewName="/Script/D1.BaseConsumable.CurrentNumberOfUses") ++PropertyRedirects=(OldName="/Script/D1.BaseConsumable.Value",NewName="/Script/D1.BaseConsumable.ModificationValue") diff --git a/Content/CombatSystem/Blueprints/Actor/BP_HealthPotion.uasset b/Content/CombatSystem/Blueprints/Actor/BP_HealthPotion.uasset index acf89d3a50fabb1ad0b2c9b6831b6e9694383db3..967b16d4336463ecdae83cadcd47602e8e1b0e6e 100644 GIT binary patch delta 5162 zcmd5=TTGN!5I#SkNKpirU3NhQWJM4!AYuhUc3E!9&6T@aVMUOYEg-D6w$*KIADZ?- z&3WoWTl-KOYiJa-sYw%?J~Spic!>{T^jfqVsuyf9Q z-o5qB20DHr zv@Jp?(4GPvn<_*h{BQj*|6ufkJ2mf@{=IzV!jTW;4aKY+mG_k9ObPIJoxs=06v$+m z5WB(lz1$sDV~B^Ay~jH=Qt#T+>k*%%jC4(W990^f9ScBJv)APv6`xxle+~0fx1^-D z*X8l{iz{P}4HG}i`BF(;1YpC^UU#3n$K`bo4Ys*F2YW@*d)AxsZfVNIh1kbRQXFv5 zUCZI&UXk|u#e#`5aj`KU_Yz^K@UcP(wGln9 zOQTKWQT+A9?vO;ysOPyNArIz!O+sW+Lh!oD_6q5rfj1I@$No4C zeduug3`9-?@`^(6{s23fRRuLv6|8ZOqO|s8ne#MwvZt2I;{=~SI}ne$DYbc72C{#1i6n}1abWoCK0yk^OcNrSsj zo`_#8jj5(NE1>geB0qJ1R(357a*(Fj3Go*ko#)87PJUIE9LGh(Ay3+peSDA7DN-Yk zbatd}3ccl#lNpI~fP{A@3KNsHt|%p~0(R21}IViFrS5NV0LVK7^k z5|vSo!FD+Li!F`QP<#nNc>!{iv$;v@_|FB81@r6Wyx8y)!1POSEi+ECCZb8!&`KO? zvhZaEWxgzEFdDJNyW{oeg%Pnqh4s_+#%KWKc!{Bz8QVf>&3f%u+QM1F%n3`RA9 z93b?D!jGFgSD9qTy%(xxsC}e^yx~X=QVWsz6wA97W59jBEu5EsAYwKG`BZb#cuEls z1gun;XACFDf)@`alC`8^ds_KtU)llauSk6QWpN_?%fj8`?Ge#()P=!na34Zw%P~3< zm+Q~g3Ke^DdO2CeczS&s3FY~DTJa~u@Oc8ce(+*N9RWPg0_snXog&f+$s)}zGPQn< z5X%U`0)`UoL)%>_1ip5t(jwoe>9=gA9v{PiG$n1{_0y${^!lnZCg-KgAN74}mp3an zDOEC|$`S|FTopUSBzX>Qy-p@oua$QVG16AOTAr!OQQB2zj*e-Dr(4IeJc~$g<@rd5 zk90XP){*vS@;VsO#a_)ECJ+Bv8f0p1B7`lkHhk!}>VqnywnPwm`3IUA@CpR@XaoK-YLlC!yuIZB#b+h~j1LIKOg zk_0oIZ0xtJA{#%<0cES}>B<(rK=av{xnPX%JT|p%tgQN-JvkAj8HI|4su;MIfxewRS;16c6X5%S?Sb79aptf3(tq7&7jOm~_U zgWTvWPFajb5L`(`?>_h7HjnGD*d*U}<|-X>+*y*sWfB>VA&#LxJMosX^XqJ)X&9 z@TPYR4UR%|dhj=&jOLyZ_psOR;!|q`c1T^- delta 4812 zcmd5=Yiv|i5I(n*mMyewx7)jWTUuxrTHcTH5b0yLUAoW$?NZ9NSb0>QmC^!&LX24- z7_6E=a(-wqF&YyU4FWDk5{>@Q_{T&b_(L%$zceBuz9B|&=G>X}?z1Zi#tGZ=_`aEQ zX6BqZHyk>poqkh0F+tOg$O_F{uwMw#mn8)J6R+mW0d3mCpYnyU!|*GI5T($*QUHCo z5E}HKGlX~verMo!>W_|%Z(KUDTz*;kSjgpUl;R#nU@5h8mH@GWu^iZ7>df> z)a#}8JK$}hzLnQQbDOFC9(dbR^TNVP97s)!;SFZMy8;XE9F`Xr0*SkZB?^Hav-jyd zz6`we8Q4SKJ+Qu#;S6rfkaur}ygkGV54Z6B85&%XA@6}$p6P%5p~2AXizTWN^L7)4 z4c~xdj#znjkxnd+;%_DLBC$kM+sfk`F&uAg(uK($=O2gbk`P&$^Ys@*Mo+@yP46Y_ zTj1?T!ee`!hAn7tP8uSo0eLk^c)!6sO{)g#nv&7*_bL`VkR$c-cuToFSTtSVWX=d1 zw7kD3d~%MnTz&)aR)TRy7pVWMPyQIFmO-aS@29Cz(7r|eGmTL=WPy)S|3H(1?ZqA) zs|(gw)UF$0;&c2lFm4!OU$zPF2*kjsgz$2LkF_dzw(ilfB(d?s*a5lGrr^T>-)GLK zC*ac@b1)QyuvEz(^oja5f~P<`mHKPDly=bN(K+K&M7DZ0ka4g}4!K%&yq~=8*QEK3 zscCn6^c5BujiWr&tqku3m@|)tXPBsXxmzA}x9Xg1gqU`|J7P2PGd zoZ(J$puEE_1|EeCDFCfaR?}t}u$z=P5`e-uqLao8sa4q_A4I@IvvcFLwo`V4RxKv+ z%81G+$Dj?+aYkz#YNv6xtO!iDEu&GjJn3~-@b1!CbeG}c|H5h^Tb)L0 zc`+Sx>6i+<%CVA5L-vPvJOjOzXMOf!wur=-v}*M-uW?#zOI=`t3cpyoIFq2XAU7D_`;3 zCs|jXsP_6#JOeadpyD~7M(k}g#lJ&n<`Kx(llLW-5Wwqjj^YohCd!FfNiCb0V2;61 z1tGk0q7AGZD2d3OCLr47&Bfb{MKnsDk!PFjaP*Hh*J_Qjp~bL4xl~dw&lNdGqPt7r zy4T3T)|v9*z+|mMu_i@XaQZ->7{=|0DraW+sMgZ1W>L$r6K7$fTx>F@Q^fo~3wdGJ z^*wnvs*kn5*8R?h(+78W>Sb0->hK3BxHa-(%fz(d4{1L6QEOdg1G&!u!z9v_+1%cI zEsa|~^({!5uNR=|{D1QG;=VDiO6Mnw-}~kH1N!GrKUgoDR;13?QkAdcZ8fs2EnU8j zw}rG4nbYpGHB-Q?SH&~wb?B2UseZ1f+k^tcAfj}|*P@)?6q$CBfOeO_T9dEls zNPEXZS1FD`aLK04Tl)rr{k{9e9ddog6m69p>R9B$2Nwky{=xqKzWe$H2ZSSXp`%yR zN@ZPVnMU-;fzDN$=8&JQZgQ|)+-Yau#_ds)p^)FfH9YEuL%tq51jcH+#TdeJA9xR zHQ#2}8hdyqF%q6O7Xf^3aOkGFgq8CFuoB_BTS)>j{)#KK{)DW;jO?tu+|2xp+;l=wr9U0k zoghRij?{SFNs7>SPZnY$eSS%wC!YM_yLmS)sMwbK(Jhzs>$Uw)+scRE_F4BSw=AhX z^m%pe^I!}*5Tv{4LV{fI%Nu+H=<4jVXBTCkJ=16~0uduEdu)cR7vi3e*CeQ?MzZX= z?WIbbq@E(gpbZMf-_+YjVY(mzPPWy3HB(;t$9jPdg}DRKV5mv#T(bWOGKt6!hXbvZ z;ZU;?j<$-j9e)TyxBN%}DV3@^Bv8{}h~f8d?MvpO8r7All?{PbBb@4A6bJ`uqefVq zG~~zCvTaK=&1pJjv_#nZc=f4?uattq3%O_6AEOH-|w@YkLD`Y2#!OW2UG zm!GJ(hHN5grWy+awXM?)qi$A+Y8M(+ml+L2E+W2n&!v+fx9LMAEx|hRY|oQt54J;< zr_C|K5h%MldfeGDjb^nr8=}v*ZaUN*+(MxSF*c>{Ey!3v7p6J-ciZu839OuTab;1p z6ke2Hls0$}Fe~Q-!a*3P(1_HAgU!;eSDkoPpCK`|(~M}KFc1wCHATa%;`xoutE4Te zjD~t57&R`BikjC}+4G^43XHMtlY2QeRV~@SQrNQ^!HzFLMSUV>H{qeQL*}H==^V4*CpXV^P=gYI->dd8%tph zji{9C|ErHO!Kg48X(nHsPGLqY|G^stU{qwfhwSN4-!u0~aGj)C8Elf^L(9HjMBzac z)dizQU16w}f=^Sltf@XE9;)vDIYd!a6*Y^E+Gu4Ux=1{e|F5fLo2kKiBN}WpNKa}G zFMGIK-Tt0v)3h*1hS=jPd_yu_N<_(bjj+*FYlu6yymlA7&bZvD6)WC4axyG{iYUBXsT;a+IQXeR0=r4 zIUtc#HX;f~k2((nlfjlO+vXlQ5hg^4h7HMo#Ld6!x*kMI4Du7|{yKj{fIMv`10=7lX?G z^cch`YqAvGb|7a891jjYR{4~SM~l0rJPFHD&ox5q#^VBO&|$!%YYIVXG7-O8^2!j* zTjd#WrRu`gra)t`)*pyOt5uYf!@8wWQr)ztaCKTDWEJ?TRp6_(0^i?m+I7#V?v2a= zy=*|q+XD$_D)EhVw}|L-dY9**_Ow8=*}vHvRetdJ1&Q3ae$IjftXo8;J0w_ zX`#B71`6Q~G+!(=r0+KmyFLJR;B88}=7U~SB+yvK@h~E`-tqqZ;02RQ;eT^?x4Rfn z8H!va_Fb~Riw$tG2p7L&^w3QrV(*um8{jT7qDBpAxmughfpO1jV5^e0v!gt3QNUj5ooaXE$K5D{wSkHpQ_HmvtVaw)n<`^T3+5Z-abn1sd$)iG zE^IOMt@8#PX0S>mWDx9fWJNuKw>gK3ffF+O%A|%9cgN%~dUJCcG*Sa7y6o~Bkszsf zslufdEgNU;nG7Lyd`7&cT%g)7GPgeXA}p^b`RZz$>Z>0=I1<^XSr^y(r%(KMAM|^X zn&L&b(9U^k0+;=&MnrXahIrudTl&Hwcs3N_5B6RMzIuY->`G4QpKRLt9|(r=lZQAo zuARWhKad_3vo1vEu zV&;QbHjyV4`x zT90_sJm4KBz7dajQIB|+d%%MqG-A#UtKQk9aFQ;;m1D$3F5` z(gQ&a#Z6zv`;hR)E3~9|?-O3S2fX(PuPO=NHM$Omphr9&`)+#J>0RcL9><)v=rtyx zcdf32zbx^9_d4N?b-{a=;2JCs94k}k>TztlQNflC7i<~fV=sJ7q+)0R=N*EfPZ+;d zpI{ystQ)>j!?o_mWb|qKET&wcuO`ru{r-#E7?gw;Zu0-xCOhO{-@>%DM^lQ_B_tVB z;YJ@jpnudnpbOInuM4&P#~3kW5?;8`|3cG7Bap*f1lo}QU2VM8JP-($tazmlvY_7& zX%iLNf$~(m(#J+I=>Jjg7_a1j*#;Lk`bQl0Sw%G1KAVxrQ!&_))MdhNuk_hI4`}*= z18+jgs=|%_=MMQ-6DrH^)ASzz&_i*f|CxjS8luDWf2;jx?>Y~}3B@aYw$DqN{`arz zT>9)kEPwqC9jE^{hkdRlQf!|uwEX9NujBMTvC#(=HZ@4U0!CCO-lUHB21tV~pgwc6 zKjC7STkWxKvIoijrfgaG~gJESo8Ox50+eL13F9-_-KnZ;DvTL zM_b@?f8ZMQ(H8Y+16luW&g>Tkx^glAs#9dJ{jREGXIX(sjAGn;M;{XI*e{p^L>bufWy9e5@r0h(cQv zBDV`*ivs&@{|R;!YvYKZ0##+SUJuhIsaX?|rW-X{3{tfX2KJO`gPy*^^|a>{LDN{y za&yf^et;Y+ZM06LQY`Ao4&Qjw+pKcyUM|f?N_VmEk!9P&ulse zIMelxB6cg)jzNdX!E2_sH1al^QKxs1u$v607%#9yH@nz=qlVy88ne>R_c~A$+st-{ z0hJg`QgF33h_REEotcr5ktM6jBDmdC(bUi?hh%Y}fwo|PR2(cojd++wPge>d_!~*A za9kw66%60Unb$+~SqUw$L&6YK=-V$EDRrwCOGHFMTf}rxL+~1+Q%^7-^_ZeHgRYth z56~9EtryWYYjKyeGi2zY=~R$hO~lzp_E3~92;1RXy2eNSrf}?M12t?4=}=F!hKkuz z*A~)ks3@fG5b3p4bLpnBzp4$n{cNJ&OcsazmJsbk@a~!~>mq!t3G2-*eH8ChUHf{q zuWmI%_Ie@N0QOi!(nZ8_s%xvhr$a)!jV-(P(pXWV9wDpN(a}d9tR(I%9V$hwxQwI+ z^+K|44fP;=lXXZ`&-~fS?m7(9(vBCihyzB+65=ynlxkmGA~`PCeiRks64dx;`sy6L zS?(#MWdTVPAxY3@iQp-n#Fy;}zEx!Jh4hKgCq#C^m~5+_BS~_5AFrh?k{oKtYcO6e zBpp?xviKyY!`5h_mWzZHCzyWn)?CYRVq8pYs3DJQlsfn8B-?Tym5{!$CnAK3MLwDe zc!bB-_1ASQue%R(EqV=owOA~pZ$m5~yEIE)3#A7!9^3A#Mi=y9)HZ6APF4>lsvi(% zRklI=eC4C9W@R7fQYuHo654KZ##)X#qovLvl57mMJ0Xr!$Kol+L&#uAt$md8T5>Ur z=O4Co`}%9BqrcRQZ;kwp_7_{%ik{YZNme&VYnWUc#+oWJrTnnP0^#)ZV)A>;5{P7j zJE>PV;&QK)(&$=D{bR-A_!{p2r@kVas1?O~6+VX5{*U{qV6K8aiR_s}pR>-0orA@8XgL`eNCr!p_ ztkINpoKL+nj>e7kmqxzm2KBo_3tXU>2ZnZ%HF)NP4VvUC0#VJ1&`vnV5pLJf2+r#Q zmCqyljfV{HBpo?}iXAWZ46SX9Gqo(qBM$3OPva1oi%*R3)Q;z@>C`GpQA4fln&g`6 zEKd|TTWGeeEwIK`GkS8VnS*o1fEjKP#T(=v<7hR}Ku2Ve$WR+;-K}I*9hCJyGCMkX&-6kC+vv8I@N6e$pdKS3a3p!BWZX#I?mT8-=Dr zUDp+7dy<_s^d>vzeOL#1uf^YORdbH!ZjDg(4SPOgMLN)EA*)2F7dX4HGG2SF%I1&_ z`9zv09XT(ubB@oXzyo_2SU35^SWlEW4rR(bCX;fNY|3GB={ry6EXZUE=&YDvx%6{< zzx-rVu9HqJkkjPIyvIkL?PZK`gow3=J%)_eba-D!__}CF4}Da73b0YhKnxWtmmEv+a zrm?HWV^!4*jj2Nhg}>z5u%xlRfSsI1`g3O2KI$DWRM`(yCR<2-jk6s3WXL=gK9Nh* zi|GnEZI<+d5;~h8p+$67Ko~x%^}>%cfT_~L*xPF%4=Rv4SgR5E^SC&jrjX4MC4D5H z7hdd{DvwAfipbXaPvsGSBA>UQ$RhyFih(A|BcM6{tZ2dOiT3T!aaM&49&rlmbt{|a z+|FK$Xu`Xrd7kXStD|`DoZzWF$3g6%M&y1m;>|=)Z8`gFD_SQWRX#Dv6DMAMdgbI3 z=W4pDClO1m-sJUr?5HcEs1TCYUrauUF^C;cYp0VT*pu+l4IM?9q1c1Q?(+({hsc)X z-dsu89QoKQ>=tJ{AKl7J9x-_KP!Xz@q-+s0bWFoeULj>l=*b!x%hc}wd0N)wl-p;O z^F7hzNR&mfCPzjYKOM8_uUL-IB8oD_1jjsum@|=%Sas*oXf2>vQ9=<*t*|G1;>W#` zXm!ZFWvvS@@I;r#Dz_g>Qq|CiM&^f|h$B#+9O9crAB?Cp;_J4$PBj0OdXmH%Ynbnyc4e#j z$);@4GEa1QMq>(Ak4*8@p7*WXJ&e~kc6qHk0p*&5>WP1zS%Y`iS$m8#zDH_lKh=|c z+2bcrpCd*ilKUx+BdWvu3&;=Q`+!U&|1KnqiSn<2YK!O!yQ#=zr+MPX^OA~6tU>I3 zUQ37Ro@jdW5qB$9c;dioBRh?HTeR^}g!VGt+1h#1iijJ2vL9@VeP|Uy@?_*eT{_tt z>psK+#02z5Ho*~_XL#ag&2*NB)SEHVCuVx0!cs#D%;y>Ojo!z+kGUQ(FPEe)rcXBc z5F%v(edp3gtxF&?B4U;17r%n!J!I_mHqwlRHRP;zNr&}rE?F^~zSaJ|vKL}DB4;s4 z19>Nslxi(qLg!dHtB;Q&8%GLtv}c(-+uO5DYllJ2M{1|f%KrLkdOTaLpkBjX6Jyx( zNX}h`3UZXrsY4F$9M+= zb0vBN5d^&kubC*l2iJ%~nN)|BZ8{y%qdswwCw}c&!D4^Iu9>xhz1S14_!*qnsW@6Q zcm`eZpPIq3g3UEyz)duR&-En92^!0(5%zPOzYDlT{&z~ z963{9F2lqy>P>}--n`V4Uc5&hf1eqU1QHIBl-sYVF$FB_NcK#gcaaox%!*u zi6cjQ?Ef}V9*K3=49SUif9HFm!_n7H2lwXGZ?=4*+7lICVcMy11o6>bTQ4Kfdz1)x zqUR=)btkvR6AhjN3JANlT`l~CjXMwcOTNxx9+)w)vh&^o{)suL?H24UwKQMh?!iJG zdGYJ5R_S#MJ<;K@R7+6~yA`;XgWmw+E{pmt7&N$o#?W~BOca;M^K^MWjOOHF;vD*9 z>gz0hovp8P^mVSj&ePWuTqC+=yX{H}IHWhRF~2j2Tby10M6pGKhy0P}GS(faPws@sWZ*}s~HNjx`( zv}Lz=&&2K$dt9=(ft4fUCG$+LaU<9C{$z0j>oc~8Tio!{Hy!JVua9!aVjcEYlqK5g zz1-CSE1!M^JjRk7otcx0F}(*H+Q z=UT&=QT+2nRs0fJ^?%|q5T9M(R~;SqOddnleD9Wx|F@&+SLtJ~>l)mB z_Y!^n5!cCXF+b0oaX9LKwRH{857tO>TRq}#@&8-7qwy-wWhTYFB(^B;$K;ujH2F-L zXU5J9nO|bZ%5BdF_u3SX_$<(U&xco~i6c43`u1is^WlS1s{3FMO{+Wz-_ zJg1^l9z1~m*;kJ=m5+&ZdD;RV=iu_tQ-XH(Qwx$jKfuEiDN;!wJZ^*^VNwYRsZ3V~ z`3Mksif2lJ6$+F?!D9$eQsp;&fguVW(t(0UF`(cQiEBBS&@xe8L z+x!0IFAE(6nA6a>mKrcmAItR-&qIm9<%$@fsA60+g(Iw@mysB_StAY8$GF3A4dDhX?Lh00Fwvhb3jnM{7iL z)N@09^f}E@tt*Q3k-L*J5mlHY9|65s*Tp%+mn8NSUCG0P=LJTVvq%ad!DH~KDfkH< zA%)om?2o4p%!W{(K_3*>uT3BN;^=E1zT2?!g1b}tHT3vSb){Ww`#C==5KLLJ0?A6b z0#0Fg2(-a;a+AW_q$oGz{;?lbGY~;BoBf5Fu_|Y&I>`m6Xg-QQ8}YvdvY5?Yqh>t5 z=BT=uW@x&~^fI#<{p8@N&&OioX+B4?OASD zgE8k;Dofi@VQDU>z6A@s~JY>8=BxRor%Kfg5bD z#MVO{7FAD0mlK0}S%CeNbXJ)(cLKA9H8dr4;EEVv8yAuSTn8nEK0BhB6$kuJm90Mc z)n$dx1s?$%^^AjSXMvI{w;z0N@pZEc9xNL2tLtum^JF&|yC>R9#;lvqsT-nl441F0 z8)n|~T5tMre^F%0eYbv^y=l*mjo^?>x6boigt^IDp*YVSuPa!`Qhgogxs@brLbpbm z)o!=G_vY~CqE8Q$Tz}+}7w;VS;}=;3NPr-M0uLRs{Lqu<9`7sJv+C8i*PQQP;RYKe zvDKH^yKsZvMR>IjJ#|18I}Z(Nqap??_ChjZ-$Wmuu_}Leul_UrKl=5?Qws0gJ_hK? z`WW@l=CiBLopfA8>|M%y0~cQ`}#FR=zn|X8M}Mk^MZf-Lvx;8 zdcqqe5Xg&$@BZPH-+sDvQ~9pFzi)Z@&g-RyPFVXx6P#BCt={VW7I7~^OI2?RNwwZl zLXX!`g@M5U@@4xM>gO@!r z<)>Y~|GoXc=qKN;(s-9H&IRYmnpRj##7zgtexZR`zOs!lkj}hq zZNG+pYnb|@raO$+w`VQ`^<*~cyy*bx;$*E%+;niVu3#M#P6xlIRdMG|2R#mMUb*bG zy#-qaJa_ghSr^BwD6s@b=|vy^+go>i^6wv(Z<_bz%>TLX>6hGKqa?QaGDpbYbvi&F z&%W-2&tE9}pmgmGAJ&)e_g6xmWPOZ!XtV69=TnD`ebT>i>-=k8cx=RDZm?rN9U$3W zGI7$u?mw@}|G|eFmK}Ysmt3=W(eQ+~HlA`|;Gk*Se=+^({X=_1prI4i{^X67cn>B`L&b#4BCPiq`BZU43fNCpTPu_uiRH?!0t}8*Gq` zKuo{=9n#6;iFZfh2lQ|*rrcoD66qE<^sxzSL$+c<46u!hn4#~s07ZK*KIzOHp_>zC z?n+QyY`;0fTIXlC@JVOtP9RUZtzBB%npt|tzvjp;fBp^PJ?Q3y;i>doVs-1I!S+bS znDUsgA_gn=BBtjP^$*|+bi26FjG3cUSH>-yZ=(&GvP6}*FH)i_J;&|cfBN}%uiSQX z;SZm=v2OV9&-)j<(j2$lmTGRWV;Q&MN6v*WY>}uBw4LN$uQRi9%eIbX-0nrfI`dSo zx}^;H{=YWNyr|#@l`l*SJyJFox;bITGHzoOb|h{?59g}K4R$Q!Hhj{#;v|qKpLC{r z(9H?sbqr|6#x`f%?)-EVKIzP{A%~aoHvGQfCD9kgmTr6I?b%y*O?nEtIbq+_xIG$5 zQi%)A1iPT~meq*mlO-eTXALm9EPUIUV|A&9$IC=i5>6K#O7s82xMphiwHX&|DNnoY zy^{TpvIvlX(})y0cc##8uwxlgkt#TsBG92N_k|wL`wDKb0ua;19GbW-&hKgM%`a|E z1%!SFq~8u4zqX9qLc(2arY(=}r9|zM9By6Ovu~XL|bx2qdgB5!rS#VclT6Ly+KyRyup~r*k zc73_b*if+Qmg`4G)^~lz4d%LeK7tzC-gDo(AQWma0!_Vp&opX{Aie88Rlo9F{#Xd& zB-Aru1zPEX$W<@j!eyOt-9NNj(lEIpVIlkCyD*8+;>UU-fvqdD*S| zlI@(?xEt(Px;4@u=bkpYye+qe9!|G*gMAa+nmS+5d)^H>Gb{gwiYWikUY+!|{|?fw z-NE`NL)KO&E1 z+B$=dDD84xa@u9J9gTn3Bx*Low z1nFfbQN}5cak*&c-~R7OJe@yRfE;ZN3g~h3s^Qn(ST%V1_PZ-aRU9`k#|_s0n}XmT zx8u*Vr>w-6-QFg!jT27;0E*j*!$9DUPYQid%(){=UCZADskM~E0gcmim5B?tb*%uR zSL%!lswgmd?0Scuji$;ubdc{^H6r88MW8&B=^?%3)w*aMyGS;I7+(Wvko=lR!=e>Z zb|Hq+F|TlZcDmnRlv`YoKE5C`D=#O1LRMi$c2-_)W`0I)x_JERF+bk)@wQcCCq3~S Z$i)A=qG^bwujb9@_SB=J$7=xa{}(s^VBG)! literal 0 HcmV?d00001 diff --git a/Content/ParagonKwang/Animations/Potion/DrinkingPotion_Anim1_Montage.uasset b/Content/ParagonKwang/Animations/Potion/DrinkingPotion_Anim1_Montage.uasset index b9bc3b1b3c5cd6c6cd9df6a83aeb0c9e349352d9..91fdfab981edde805b5622301783e5a282a6d685 100644 GIT binary patch delta 3869 zcmd^BeQZ-z6u)nyqYwAdj?#~Pb!)qBEnT~nfLqtGjVYjGV^{_bFi=Lp!M1LrBWy-M z21-PbdC)&Fh$9QcNYq#fN(k{EMuHzS9Z1r zLf-uB;<=+&Zq*%n=ft*E-uul^$+a4qsUf>U1WWHQr6B_$E2$!{BKQ^OOwdu^q{iRA zxx3BxRKVA^y1IUK4Vg7~`cg2QXyvS_)I7h{?+r9``8#}FfgW<__z(Azsdj<4&DYWD z?OE#GK;ZktJ3y0MEcy=z;2_6C2T#otcm?duNVVrZsw0)DnC8S4B_3nyi- z1${}51o%L{8>)DXLQbI+R!>(U?yX55!E(NjbHT5?T@@cLS#^0m5e&g~(@t^Om??*+ zxvQlk;E0KFGr8UPMO!d4`BiQ^%_9*Jo(rNT0$&jvtWMSQ zQR$U9>BCfglVs~;UXWq^kz%8p2)9avO^kzZ%vzmLkQR-j6BfrwN7D3>oyEo>tvO*F za6ZmQC{3@FGQF9_bqo9ojZg9tVA>GPnR$Z9rP+&^?FPm9AAsv-w%;jk6TGc3s-;Sx zVLr1C8DPYqg;9l5-Of~xQGQn|3du&nyh!O(Z=f2EKG@k7(MsfQ!F)pLgl$SyLWwAj zDh#kcU7^MVSQuV&+mZdjV`f@|rf1Z9Qb+ctepql{Xo&<9Tw zbT~@4g!~%gzcGHFa;g?E_n7V~<5n~v;Y6y_29HkO9T> z9yn+&Y|pum`E?s77ROJ#HjgO zMWRKHDbkoj#o57Y)PiE>6gW`i$`BioMwrW@oEwR@$YRSdGKrYjz{R))Mw|_FBQMx( zx&o$?s;OXd0ajDloN(skdxIHugNHwH=D)l#xJ=0Gl<^>_FL&~XjD$#F$?oc|1;%WP`9>{b~7z!ZR8joD6>UxQoM)p7Y)e+KbIA9%kj$3 z6E%c1vcdQZ#U}jdJ?GMjc-Zff>mH0f&#<`O3{+ukrTaz1w9p$C4 zyPQEep{t(>UFdeXwS*%w%z!e-JXKE^|vH0kbV`%Qg|6`*6Z`@9XVrL4?ddrjGzx%r%=iYnn*_QT}7k1(LjwjdR?v8%0qD>l)kv*M{<{4R-WI`=0H=t#R{WG|2>6 zyTu!DH|kfpHoH77UxVL;uISZkpi}zvObM+fZBeo24GrjI=};-#ofJpB0vkGHu^y{{ zs)RJSAXDjX*(E~juRY6$aX~(z2L}`7ZMaoN`Mm*8qdnk4yWh8Na}fuXheHZoC5z`_ zWx792xJFy#}Hl4%ELC0r||Gh zvLcOctuVs@R$W*scCt*Vg~}8|%ohW|C$Z28A8FMiB<$oS$TeLwuT)$`@I7iWFATXJcgcSyVODgOKGS4Uf% z@TTUR{Ocj@iv4+ek7UblGzZ&epOZ*lB{x=0urad^&mtw#I~@-~Wx^jJGn~%SVl(`b zRg&gpKB0HEzQ_rDb~)C-?wM-su!Ny!E zHbPUb_U5Jt?JBb{uo({LE{=3eXSW0(i-IuWYvH zp=dp`2#e7q#7R40j85d=c8r8^X~|!imx>F>PSC=8g}f$%^^A0^a1YZ)aLna2Bmssb zn`xeDGvJbH?1Ta{r#3NPIEEwz3t|#ZTANvsv6^|zOpE)3Mtl0UC0hw{Ci3O7wQOut z#t#>QgVWXE6xxFC54C}NW!lFBS z2>+a~kVOJUulngbb!_VY@zlXbMbjEElEN+NsKdyJM>zi8F>Y7!fR+EhrPU1UB{Y?PZs$?vgov_1gw4voQ2_3ne^#L zWolkEbXiprnsFR-0{9aAWGhk9S6%eWc@?dTrEfeqS?bt)pFoa~fob{}rIHg;2@?zg#3iYFn>Z;)DKYukivTqJTz2z%lI4^w;!pW;` Y=hyDnEbAGvoI7wNz9nj4pt!sIUk@Lg(f|Me diff --git a/Source/D1/Actor/BaseConsumable.cpp b/Source/D1/Actor/BaseConsumable.cpp index 8791305c..558ed18d 100644 --- a/Source/D1/Actor/BaseConsumable.cpp +++ b/Source/D1/Actor/BaseConsumable.cpp @@ -3,6 +3,7 @@ #include "Actor/BaseConsumable.h" +#include "Components/StatsComponent.h" #include "Interface/CombatInterface.h" ABaseConsumable::ABaseConsumable() @@ -15,7 +16,7 @@ ABaseConsumable::ABaseConsumable() OwnedGameplayTags.AddTag(FCombatGameplayTags::Get().Item_Consumable_Potion); } -void ABaseConsumable::UseItem() +void ABaseConsumable::PerformItemAction() { if(CurrentNumberOfUses <= 0) return; @@ -25,9 +26,15 @@ void ABaseConsumable::UseItem() return; ActionObjects->PerformCustomAction(FCombatGameplayTags::Get().Character_Action_Attack_UseItem, FCombatGameplayTags::Get().Character_State_GeneralActionState, UseItemMontage); - CurrentNumberOfUses--; +} +void ABaseConsumable::ConsumeItem() +{ + CurrentNumberOfUses--; OnConsumeUpdated.Broadcast(GetNumberOfConsumable()); + + if (UStatsComponent* StatComponent = GetOwner()->GetComponentByClass()) + StatComponent->ModifyCurrentStatValue(StatType, ModificationValue, ShouldRegenerate); } int32 ABaseConsumable::GetNumberOfConsumable() diff --git a/Source/D1/Actor/BaseConsumable.h b/Source/D1/Actor/BaseConsumable.h index 506cce1d..0efe3040 100644 --- a/Source/D1/Actor/BaseConsumable.h +++ b/Source/D1/Actor/BaseConsumable.h @@ -4,6 +4,7 @@ #include "CoreMinimal.h" #include "Actor/BaseEquippable.h" +#include "Components/StatsComponent.h" #include "BaseConsumable.generated.h" /** @@ -18,8 +19,11 @@ class D1_API ABaseConsumable : public ABaseEquippable public: ABaseConsumable(); public: - virtual void UseItem() override; - + virtual void PerformItemAction() override; +public: + UFUNCTION(BlueprintCallable) + void ConsumeItem(); + public: int32 GetNumberOfConsumable(); @@ -29,8 +33,15 @@ private: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Montage", meta = (AllowPrivateAccess = "true")) TObjectPtr UseItemMontage; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Montage", meta = (AllowPrivateAccess = "true")) + //Blueprint에서 입력 + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Consumable Stat Modification", meta = (AllowPrivateAccess = "true")) int32 CurrentNumberOfUses; - UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Montage", meta = (AllowPrivateAccess = "true")) + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Consumable Stat Modification", meta = (AllowPrivateAccess = "true")) int32 MaxNumberOfUses; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Consumable Stat Modification", meta = (AllowPrivateAccess = "true")) + EStats StatType; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Consumable Stat Modification", meta = (AllowPrivateAccess = "true")) + float ModificationValue; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Consumable Stat Modification", meta = (AllowPrivateAccess = "true")) + bool ShouldRegenerate; }; diff --git a/Source/D1/Actor/BaseEquippable.cpp b/Source/D1/Actor/BaseEquippable.cpp index 8786a0ac..27edc24a 100644 --- a/Source/D1/Actor/BaseEquippable.cpp +++ b/Source/D1/Actor/BaseEquippable.cpp @@ -61,7 +61,7 @@ bool ABaseEquippable::GetIsEquipped() return bIsEquipped; } -void ABaseEquippable::UseItem() +void ABaseEquippable::PerformItemAction() { } diff --git a/Source/D1/Actor/BaseEquippable.h b/Source/D1/Actor/BaseEquippable.h index 67fd15a8..250acfce 100644 --- a/Source/D1/Actor/BaseEquippable.h +++ b/Source/D1/Actor/BaseEquippable.h @@ -24,7 +24,7 @@ public: virtual void OnUnequipped(); virtual void SetIsEquipped(bool IsEquipped); virtual bool GetIsEquipped(); - virtual void UseItem(); + virtual void PerformItemAction(); protected: // Inherited via IGameplayTagAssetInterface diff --git a/Source/D1/CombatPlayerCharacter.cpp b/Source/D1/CombatPlayerCharacter.cpp index beee2e61..ab1d9a7f 100644 --- a/Source/D1/CombatPlayerCharacter.cpp +++ b/Source/D1/CombatPlayerCharacter.cpp @@ -411,7 +411,7 @@ bool ACombatPlayerCharacter::UseItemByTag(FGameplayTag ItemTag) continue; if(TagItem->HasMatchingGameplayTag(ItemTag)) { - Item->UseItem(); + Item->PerformItemAction(); return true; } } @@ -1098,4 +1098,20 @@ bool ACombatPlayerCharacter::WasHitBlocked() return false; } +ABaseEquippable* ACombatPlayerCharacter::GetEquippedItemByTag(FGameplayTag itemTag) +{ + for (auto Item : EquippedItems) + { + if(IsValid(Item)) + { + IGameplayTagAssetInterface* TagItem = Cast(Item); + if(!TagItem) + continue; + if(TagItem->HasMatchingGameplayTag(itemTag)) + return Item; + } + } + return nullptr; +} + diff --git a/Source/D1/CombatPlayerCharacter.h b/Source/D1/CombatPlayerCharacter.h index ca5e911d..d8698556 100644 --- a/Source/D1/CombatPlayerCharacter.h +++ b/Source/D1/CombatPlayerCharacter.h @@ -15,7 +15,6 @@ #include "Definitions/GameEnums.h" #include "CombatPlayerCharacter.generated.h" - class UInputMappingContext; class UInputAction; @@ -205,6 +204,9 @@ protected: //Check Func FGameplayTag GetDesiredAttackType(); bool WasHitBlocked(); + UFUNCTION(BlueprintCallable) + class ABaseEquippable* GetEquippedItemByTag(FGameplayTag itemTag); + public: UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category="Components", meta=(AllowPrivateAccess="true")) TObjectPtr CombatComponent; diff --git a/Source/D1/Components/StatsComponent.cpp b/Source/D1/Components/StatsComponent.cpp index 963c1c95..6baa1cdb 100644 --- a/Source/D1/Components/StatsComponent.cpp +++ b/Source/D1/Components/StatsComponent.cpp @@ -58,7 +58,7 @@ void UStatsComponent::ModifyCurrentStatValue(EStats stat, float value, bool bSho return; float currentValue = GetCurrentStatValue(stat) + value; - currentValue = FMath::Clamp(currentValue, 0.f, currentValue); + currentValue = FMath::Clamp(currentValue, 0.f, GetMaxStatValue(stat)); SetCurrentStatValue(stat, currentValue); if (bShouldRegenerate)