From 8dcf92a3025162fd61c3c263cb0f7fb34164ec7d Mon Sep 17 00:00:00 2001 From: "DESKTOP-5RP3AKU\\Jisol" <2858626794@qq.com> Date: Thu, 30 Nov 2023 02:20:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E7=9A=84=E6=95=B0=E5=80=BC?= =?UTF-8?q?=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataTables/Datas/__tables__.xlsx | Bin 10299 -> 10297 bytes DataTables/Datas/战斗/角色/属性/属性.xlsx | Bin 9710 -> 9915 bytes .../Datas/战斗/角色/属性/角色初始属性.xlsx | Bin 9729 -> 9937 bytes DataTables/Datas/战斗/角色/角色技能.xlsx | Bin 9738 -> 9940 bytes .../assets/resources/UICanvas.prefab | 2 +- .../assets/resources/WorldCanvas.prefab | 5 +- .../config/json/tbgrolebaseattribute.json | 4 +- JisolGameCocos/assets/script/App.ts | 8 +- .../assets/script/battle/base/GObject.ts | 6 +- .../battle/base/attack/GAttackNormal.ts | 4 +- .../base/attack/GAttackParabolicBangRemote.ts | 9 +- .../script/battle/base/common/GDetection.ts | 4 +- .../script/battle/base/common/GRoleAttack.ts | 13 +++ .../battle/base/common/GRoleAttack.ts.meta | 9 ++ .../script/battle/base/common/GSpine.ts | 2 +- .../script/battle/base/role/GRoleBase.ts | 33 ++++-- .../script/battle/base/role/GRoleDefault.ts | 2 - .../assets/script/battle/base/values.meta | 9 ++ .../script/battle/base/values/GRoleValues.ts | 94 ++++++++++++++++++ .../battle/base/values/GRoleValues.ts.meta | 9 ++ .../script/battle/base/values/attribute.meta | 9 ++ .../base/values/attribute/GAttribute.ts | 55 ++++++++++ .../base/values/attribute/GAttribute.ts.meta | 9 ++ .../base/values/attribute/GAttributeBase.ts | 13 +++ .../values/attribute/GAttributeBase.ts.meta | 9 ++ .../battle/base/values/attribute/role.meta | 9 ++ .../values/attribute/role/GPetAttribute.ts | 41 ++++++++ .../attribute/role/GPetAttribute.ts.meta | 9 ++ .../assets/script/battle/modes/GOnHookMode.ts | 15 +++ .../script/battle/skill/GSkillCDBase.ts | 1 - .../妙蛙种子/GSkillBulbasaurDoubleHit.ts | 3 +- .../RoleSkill/疯狂松鼠/GSkillCrazySquirrel.ts | 9 +- .../resources/json/tbgrolebaseattribute.json | 4 +- 33 files changed, 363 insertions(+), 36 deletions(-) create mode 100644 JisolGameCocos/assets/script/battle/base/common/GRoleAttack.ts create mode 100644 JisolGameCocos/assets/script/battle/base/common/GRoleAttack.ts.meta create mode 100644 JisolGameCocos/assets/script/battle/base/values.meta create mode 100644 JisolGameCocos/assets/script/battle/base/values/GRoleValues.ts create mode 100644 JisolGameCocos/assets/script/battle/base/values/GRoleValues.ts.meta create mode 100644 JisolGameCocos/assets/script/battle/base/values/attribute.meta create mode 100644 JisolGameCocos/assets/script/battle/base/values/attribute/GAttribute.ts create mode 100644 JisolGameCocos/assets/script/battle/base/values/attribute/GAttribute.ts.meta create mode 100644 JisolGameCocos/assets/script/battle/base/values/attribute/GAttributeBase.ts create mode 100644 JisolGameCocos/assets/script/battle/base/values/attribute/GAttributeBase.ts.meta create mode 100644 JisolGameCocos/assets/script/battle/base/values/attribute/role.meta create mode 100644 JisolGameCocos/assets/script/battle/base/values/attribute/role/GPetAttribute.ts create mode 100644 JisolGameCocos/assets/script/battle/base/values/attribute/role/GPetAttribute.ts.meta diff --git a/DataTables/Datas/__tables__.xlsx b/DataTables/Datas/__tables__.xlsx index cfa5ff01ee17969ef4096748507c1cf59da7ac99..2187ed7c1e11ca2949b684339f112ad5e8eab00d 100644 GIT binary patch delta 2167 zcmV--2#EK)P`OaBlmP`w*rp|kc02k8p7iE> z_&(}$n6_K(P&_98e}4JpBk^=y7TzOhlUFK1G$6Jg&U2^M|dWmZ;fA0Ab za7f4zF2QoiEypd;uLmO9BBdCR^@A=tfD{-CC_!0+X+ZH$*Mct1p9i{R)GTwmsok5l zx?{E!eK@q&CLfAT(*#Y_X*hq1Z|4_R-BbNswX+g{(pU;6G;mw#G`o)RXxWag;Kt6~ zlovV3(@pyI_VoGs^6~y0d6}?$>jvJ$b!Z;5Q<7h{?w^0`Kis%ZDM)@IDa+~B{YFdoAx>q5JweOelm1d-W^jJZ2h@2VEh=8B`;+F-db*id=@~Wcr z;=FY+7@%O~QxU$Ff@KjA#NBNg0$;hm+nf>@#TvcC>3QpZ3f6~U=|Z59{FTtE9DH{K zIX=^r#)6(;uDDJ;2ab%r)WRodn$*P`L0yu>B6*`BP1CKr4^}Xb{%P(~e}`N6{XK@? zyZh~%dGnP!CweBYsR&v6cXASc*R6Z&c5T12>X9aws{k`|Z@Q?f#w>*r@abd;Oz5fW zWaPcMRx*7$_ik1T*NK}EX=?^;s!W=-NpNkGW^?a5IrBCLu3gU5n}etSyAebicW~{J zR^IYENy|0~#-U9L;2AZ$}7{pX6X21VA#b z#h-dLjB*LBZ@bCHe*jVu}@!shDBKy{VXE#okmbu;Rf~EV1IzRIIS# z$yD56#b;A-ixpo?MW6=N2TVOHn7=>4s#o`{0u9BTMWV3?EfNhzWRYkz?ky4x$KE2* zcsy7n8jweeL?iNKk?2T&Ov!Wv39Je~fuvWDB8g1NRHJrpk!aNR7Kujf!6MP9Jz69h zwJ#QlqJ}0ftc9gqQKsu)(XA+V(A*EkRHGT9pvEzh!DF)u=|hAPHM)mka5lmf7GaxP zXztz4w3~(~s1b=|(C!u`YMc%zs0g94gM7YdAv`)R09oXm^Ve z6;A0E1r;&m7Iu1@TWD5pHJ%{~DrOS44BFkIM2*-11r;&mHh?39&2HV^`(0?%LL61t zq~SJdcZ^dtYzG{FRot-WdPlZQ2>2f~@T{>5aa6%;JE9b((m(zQ^Yt-!HGO&NTx+h*VVY z2s$$x0>X1qP=1Wy<36)|2$aUWz)Wxw!JkCItN7!GRV(E4cOjmE5#TCJ^E;pV0kvc}rD@`zL;2`*Gch^`rOe{Fk-YD_sC6hb*gLzE@WNh;po8959U0o*iqxHfs883YU~y(y?BMFi)@6)kxMJP72eNluiR+hA_H5XCP= z-b>?j)gCBm)hph)pryPJ?Gr6@6+zecZPUX6`%LJu(x$C$u(Ufp^hTp^gwg6Pf8c$V z4_$K{)A7#Um_*E3hSVJ7P2uzkV_1$^elJ01dSc+%ZqPBvS>Gz%TX2#zg1-{aPwaW% zT8qrdtc4TUR+20imX~I8?~{{WZ@ldHIEHhlSiYM@O>-%fDD^BCH5$h7ZlaEl`e=gn zNt#88SA$yEq1gp}0m}inl>XNPK;bU!O1VV;kN98~m63_$>@bmdeYf3jCvtB$`)^O# zRPuV8r0ePY^=`NRy5D>mpFsa?C^9oQ%Qa3Ojej%#1CScC2p~WN0fduDBtQY|lZqrW z0T7eEB$EYMVFJ%llU5~E0S1$+B|rgPlk6oh0XUN#CN=_JA(MR}9FuV-Dgo7#oF+j5 zyp!H0IstT(87DRYo0Cu{CL1u8c`nQW007?u000jF0000000031AOHXW^OKP$JOO@_ t&L<%otMm*Dlmq|(iV*++7ytkO000000RSKX0063!3MeZE93%h$000?n_h0}3 delta 2210 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 Re=^p<6WF-1rWyZ`{{pR`{^9@t diff --git a/DataTables/Datas/战斗/角色/属性/角色初始属性.xlsx b/DataTables/Datas/战斗/角色/属性/角色初始属性.xlsx index e7456072dcd67f98c70ac8c534b5bd0cde5c4171..e8e07ceadfa3d0084f098f115064c880e58f5886 100644 GIT binary patch delta 5474 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 delta 5252 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�s7Xunz_n6Pd8 zh)b;c+sJL!`H-dI-B#%0vA7CB)DIWmHA5RRz9NfI-a+T-L=N2Cngj>qLE%J*I%=(s z&Qz>u?++%_G`aCfT0tfS%P6s~l%mKQ_mYiG%Tx2`bzD9xcL{rW|3;h@Gp$b1I%tAK z;-Fz(GlBHov&GZOh9V-0mR?0fztx3M+~uM}QFrkn$zR)I1vY_a8>oib4S}a;#v~5P z4{DtjFJ9BLq$>yX*f?yJL;j_t){f_uO|^*(%&YmA>92N&4IgMNVwd;7Dt9V}yD!)= zh?;kSV?lZR5xl$Y)q!v~mr2h?X6fe`jw93$p%2XdCFfm46rXBErOH~4uiOX;c!()8 zNM?qt{YtpPFe{qL`N`+H#yEJu1OMzwmLg?Cav4>%5x6 z&x0A%m~H*a+3E3lZOyTggSvn!_Un-0GArr`gy8kq&pm&Y@@e4@gZj$M>By?+VMQzT zKtwS{DjoY=2oIcY%r{(;-T*;U_jHO}NI~-3N+f`B{d^f1B=0|MVi5W z5+-9BoeWP`KJa97<9VMc>Jk(nHkSE}I}0&Z_-L*n++RA=xNaV>E)L^v`{H&Wy zbb$}p@T=dx3GLZ1ve&~UaB_}+4mIddvI+?-;k6plBepOz>0yhiNFq>2KzkB=$>~%< zgfjDV@sv@@!X|8LK@0|5dnHB%Wcuq8c}73E^238YzZYa7Ez%3xSv{`nN6>FNB-Bg? z500yTF#NW~Q~K$x6%Io|LMl zFyJe5%B&ovB}hD6trl<`_n?i}zb9#rW5_j5u|3;z|8})X`?&t{Zv2_8q(LFIB;L93 z^7STip92xab>hXW$l~?5by|?MbbVxJMRRav-(&dkI=owTOjr$CUD5NCGl~Ymtad{i z-xtn}N6Y*nUx|c}FbPKC`;|yuU!i*wRFw1H@oXb_{2ra2n~;$6iWW z^yX$3H5rDD9fSQ{5iRz#;B6nmPuTzDcKrU`W=xx!qo0LiryTT4W;XO2CA(FMKtbQ5 zB=zdO5Jebc1y_C!C2~@LPR1XRQN7EYjm<20vmxv>`c0lR$HxC^xI9x<^|>#vqXKVK ztH0>)U77aly@9TM4o1zD`?OAqsI?`g?vMF!6*J^c)p{jbu#r63XSk?zpciwX^KVyQ zjgAWKtk3Of5PlH`lM{!g_wxD1B%;0tT0qi(JqUi1M!AkC9FdEATcv^cb9~*+WJTHK zLBXTi2ZF6pVVx%Llm7_qE8**Q%{S(xWoT$5YDl)qcJU__qHn&|e6L)h$ax~00g3+JNtXA#A>MJ^8B?_QNUSJ%Gv;ng3Hn<-}&+T;01 zt5W1q$q(dq=!t4I!dm=cXlJ+9afJr5<<)&)Z<&cpMm`V74FFF?KlCXZUezg9bPW8MW04~z`U{qLGB&=CiFaRPg zp`o20=@&k18Z0*}+SmiG-8xa9L3pX%0!IFGRi`MC>s}mTtwkeB(W5xA0 zw`;s6>Bv;-D8AkdGvwL&^_Dp!hbW757QAVwN-cp$4qOs`TQBOD zNsW%j)57(g9g4o&Oa8VHMR-y^Nm3dz4V|Lf(p*2s zu``J_4dj=9kaIipx!%7jD*&toLg z%DwsEN<7rFz@#-5s_DrU$9cg^DMHhG0?UbxxpDk(p_&4XFb>u-o6DXD2LK0w^>Gig zpmn}OwFaffm}_f__^%OL2LfMx1L~IDIo`O7-MVYf8=U#4=KiyPcLA$=Xk3L;XUaXg zatb{a8x+xE_>6e^0Q%RqF-tFpj>gE0^k5=K^09EEg)tz_ScK4u8IaK|vH!{B*jOcL z|As~!eh0-4Un eO#3&Pu|@{~Vh8{Ls{f}dM$WVGVAQevCI1Ii*wwQD delta 5026 zcmZ8lbyU<{*99bp?ox8-lmP)7zy1{5=91)0jM)G30n=mqq0i}I_<^E^A2&hB#{ENr$6tHMsji<$BMq%l?oA2 ztx$@>MEC!sz)M~79)7h0A zoSi%QMPB1m1ERqYc1m8)Ecd$+>WLu(8nVnB?meVXC< z%UcEgT9TkO6%ebC+s8e>=h1HVuVQ&OdxjU1({TDu?VNAUf1h1lpB&#kUR}bfTa9_gq*LMKB(LBU3e)LN5a9I=UkQ$6Aaq=w>oE1ozj&pR>DJr?uj zb8IHhC=lB5in?#1_Kd;edm9iypL5}VR5)Nbg{3V1b9fssfhbhwja7!$ksz|wtcwbL zdaAkfUA`@*)_905^c~zqNw9CsdmNK4*BO&w7#}z6i8VBh5(O{+^b6rn9!W;$cD5?dSN89`l8 zRuF;?Ct=kUh!pEdPpva%>)w5W-qrLWL}unk`Bq~E>ipB_8U)&11OBmNi!ztF&JaL|4U}I*qWEYko9n09xP@< zl-BF{)Mnxp7F-sG2JVM0i{77siG+VcX8{aNJoD6upv#|c3CWHIG!63$U8qx>4q3PE zl-yu?L8~1lbEkXSBY30yI&+znx7$}mM?-k|7WBF$2dWtuLUel#Ry#D&fz1SKjnz=# z*PYmSJ)LvBxlZAc-29`A%0gVNn$4MPh;>W`B*vQ-4&8EGh+WZLO7}@M*gig&UY_h1 z?F8ETt6}Z?J6rGGZe|a6TrOxxFQeUuy9VaZ&?RtqGL8@8N>dk}ed^Sad0}a~YRD>E zWE?{puU#YMb*-b4120a(2i#>d1QQO~ru!D;hi)?67i?y|d%pC$?ZW)wW2J%=no5ns zZXaPe-aXMaUW!frZtb?4;*yGf5y;1@7zp(+L+naoUg9N&R>iM!evwGJ)kg^BFm3D{ z;x>k`9r9X?6y5>+Ks@2_Wxf=Xnq1rgkBePZNf&|ZzfHtG3vK~`Eq4Y?)+}<~hTT95 zod3e5_{$9kLNM$XHXo5WQ>&a`tXnh^bCm}{j(8S!flW{JoGC!=5{ATB_2R60#UrY* zd!O#oU!m1l9_Ndzm~})EBeB9m=8Z66-;HY2nWRojRvYVfXI-)_#vUQcW^R@7i$;Q0 zg%K~^qVSFQw#EX*+Z!dj z@t58)PA#OUGU_dDOsURk)Jbl#PyuCXZnkt8D2+Rhg?O6b;-Fm#f$1EC!G)`K-4YV( z>{(K-x$M!zjj7e<`2D(gO+3a`wGhTm*=3R!{*!cFKr?pqveM-Tp_dq*`c*m@6`W$F z*l&hqG;$;!?Rnelb()fM>jjsAv^YaD1l>vpS{elR$;_Uuk5@w{#m1bVaRaPJmhh1< zv0v|RhG>%%<<|^Ygmavr0d+=+#W6_E#ymBO*N`dFM$S@`)uS>Bt`lK{`UlQUm+zEW z(!I={#8GjnX7ilyc&V>2tqsGyDBR|eJjhVbOnsBw*iwmhu_me0Yisi<=UI% z%p0s)SsY1BoTsIGsjeUtl&A0rLUww@qz6SmEB_~25cm#N-t~ucv$M01jU$y$ zt9kFaR0{|Fy!=(qZ_)N@VZ3;=Khwd^kt8L^2+b=7Jiz;Kd#M#L-coK1J$}|=97+XMQYVZX9P3|(GXv^KFwTnMmGuadQ z)11M9GqO+9PkyJ0(inxhv3uVpQi|9zi?b*iwk?OkKXWTq)Zfy5_g21+^Ezmmso?M} zm>E6R7M*onzPsupw3v^&TY1*ztDMAD&0$cPI!%jndo;Da9V9I18(lBq`&2@=4@c?% zy}B7FEm+HE6FU%f;U*YY*~{^y$ftzlw5Y8OwzhSA0QDdKHdwxJND?Nmfekyk;scC} z2VZ6E$ZbpZTA&Q!9jbi-&)2;%eY|?-CVYpp+Y!D`yh0dt#7QRcy$DD@EQq^FO3Scu zCB{0bcix%5Y~WsL_{^^Inq_OS0gWQfRSO2JUvBQ4br;u4OQ#1OXP-6K0z^#O&1f3p zmrB?+vNa^wu@lj>&U&Bw&IFxhdzBaA)Z&DZyx}Vc@SdD>HZbsnDaMGrPFZ zd@CH%Y>IT#eS$#tx-Z&HmhCynpxZYz5?lKsnNBw0nWRot zR1Q-ZK`OZ`8XPP7QtdkJg&SN9#vYIx(rC;3%%Y&s+MF-(Fq)dfYgDkZ=9Q>sZSFKp zY=qP$DrD0j@=QnR6n)i$3_AA*3KesLk0fN70lI(i! zjK^VEeFLsT^}@v;s@qeA{?c35Nqa;)Lc0(xL2H1=(QdzzWytTd%~d%y>-dcEN9sQi z)qfJ^V?-UMo*DnS-$RP1rEL(_2if#zmceRF1LFMU^f~iO9tTit!X(rT&xrP1Ac~Ib zmOrdJ@1PvWo|wD%7Ka;|qJqnZ!(~zxHI>};$S5o(4J462%EpC3UXblD@{RIOkXhe1 z@&(wp!Ed6VEf4D^a6#W`fVw=r9+&5FMp~b&vpEA{i+^+;wj2r*T{kt&tdzZwibIm5 zyTXPXY(RS)LlYd{B}3?~w5YSIq+h0(PKnPK7s?DglYKutO{vMqtjiq^lj$TAAW0); z&T{0XVSZqgls;L)VBh_%_pkD$X0$F<1p3*@yv&;fPTjX+u$hKZIA|bR?}+ECxsCd| zPLZQK76oP?6VS}ksr8nN#RevahR(0%hP@>@jGf-wf>~+@=`P)zIZG5;q0u$LpIt!& zR)AL8Vr?e%UPMa!BfuYyIIT4G%?`G0xFkMxnb1k?mY53)QyfF95_nFGM^KD!iz$u{erxcS+SeaK ziVDW=FJUM5U1OFb1l+BZF(UMkso3|&RKV6~MS8D>FP7WHA;GoCg1)WgptrsHb`_O| z6=FBW3gpRWIB1=&^z}7ez5wGcZP54kego(D1DoYPgm}aXG|Lot^FXX}#Mjj|pVBv( zWQ=FK$zfIL1nP?2sh>bHwYKid;qF=6Hd4nX%&c(a+{Dw>GnYzi`QGiG$ zjI5381T=-UGxscC7$%_?89%$}8dC3rdc5d0j!>N&GM|4Q z3_>MP-vtXQ1$B8yl;#e?q13|3Tq`Vk8y;_QXkW0W7CJ9yrWHD`KIUs;>w0mX;m?$OHayaTL0;DMEYv?MQ3Nx)Z-GN~@IZtMsl{AK$9y#wRZ zbi;pvcfGJ&>Orzx%Ctw_r$U!hV)o zt;T~IWW`UT3Upufoazi}a4n5>l0ys@vIBd(I;c?5o;8xGr| zHfa};el@_T{!XO?Dh)nsi$KHH0j$wWnoqBAPvn43oTX(4tnPp|OF?D1V8oA0{UNG# zZc;pkZ5{L@CSUi^Al42irPanfFusyprLxH8ajpFXo2wwoe(Yn)25~k`ORbgF+e&lE z$M;*nOf4al^1ZAMj0!p@&LeU=0za;`=s_zP(|LBeSX9?Bmt!81*k2q?jFOqy$+ufz z+XHiz)`e1-$ahJ+!EgVQm z*I%XYo!(x*`MrI%AKF;#=r2T-d*avP`EzRnSO#*kT4`w&*3mdoUcMb|9VeM6258$a z4mSwd;DqL%gU|1*xr2*wsfihHCfIUv?y#3Q~C=N7c<`p1WCS?rWmd5piT^-kwp_NsD=4KW%S9gH7(ktp$S!h z{N@ho=5zUt4gc5S_UMv{F$!AuZ+))WiC4u@y;T?lt~Qo7_~LsB0cofka59z_%{_vv znO+ig;#uQxhS*RiZP@8=*J8bBiyB(Ra{5ua-Mt}%-y3fMzBo-D4NIm1pcxAzwX&o& zRz63D7E5)hbM?kgtFuabC6*zx!0e4=^~#V>aEOK;iLl?k77pp{sA>lPhY}s( z0H6T(PmP9N360oms>=5}Vk0R9>!?&>7;;d%Jh>@k=2Up*kV5$9)emL3A3g%nApI`E z86pA0j+6rXDgR-_NI+I3mmdDetJ!3B9r!b*>Bx6DL)+!&9TiA3&_-J~c5Pb4odI8O~_nW@h^u$T8lckk`IeYUg0Xp8ui0emxq#jEkpI_5I4^%=D#Qo5CUU5!Z^( znKVJ3fChBW?azJfQyK^wAR;*9!-k52viNWaAB+J%Cq7?S56Ej*R|v14vr}y1z=I1z zq*SErOk1v0YEuti| z-17NAP_A>Po{vT6{NDN$epPx{irlmJKp z$|Z*7<6l3Dyhi-7w^F%C!z@zNAbi1+OwL{6C6!IfQss8$t6b>#wx!Qw<@_jVUZ%V1 zK+B4L|W@6RN1YH9=dPQwpH`bqQ*7>15E+^cmpmOwwrIp1{G( z0%)sG;6}_z|8=#Fm?dccdMAL2g>9&le42~-7m4T}gW1ir( extends JNGSyncProtoBase{ //当前模式 - _mode:GBaseMode<{}>; + _mode:GBaseMode<{},{}>; //是否镜像 _isMirror:boolean = false; @@ -26,10 +26,10 @@ export default class GObject extends JNGSyncProtoBase{ this._isMirror = value; } - get mode():GBaseMode<{}>{ + get mode():GBaseMode<{},{}>{ return this._mode; } - set mode(value:GBaseMode<{}>){ + set mode(value:GBaseMode<{},{}>){ this._mode = value; } diff --git a/JisolGameCocos/assets/script/battle/base/attack/GAttackNormal.ts b/JisolGameCocos/assets/script/battle/base/attack/GAttackNormal.ts index d3367a80..9b9abd7c 100644 --- a/JisolGameCocos/assets/script/battle/base/attack/GAttackNormal.ts +++ b/JisolGameCocos/assets/script/battle/base/attack/GAttackNormal.ts @@ -1,5 +1,7 @@ import { TB } from "../../../../resources/config/data/schema"; +import GRoleAttack from "../common/GRoleAttack"; import GRoleDefault from "../role/GRoleDefault"; +import { GRoleAttackType } from "../values/GRoleValues"; import { GAttackBase } from "./GAttack"; @@ -7,7 +9,7 @@ import { GAttackBase } from "./GAttack"; export default class GAttackNormal implements GAttackBase{ attack(role: GRoleDefault, info: TB.TbGRoleAttack) { - role.fsm.enemy.onHit(); + GRoleAttack.onNormalAttack(role,role.fsm.enemy); //普通攻击 } } diff --git a/JisolGameCocos/assets/script/battle/base/attack/GAttackParabolicBangRemote.ts b/JisolGameCocos/assets/script/battle/base/attack/GAttackParabolicBangRemote.ts index cc298fd9..0b3be07e 100644 --- a/JisolGameCocos/assets/script/battle/base/attack/GAttackParabolicBangRemote.ts +++ b/JisolGameCocos/assets/script/battle/base/attack/GAttackParabolicBangRemote.ts @@ -12,6 +12,7 @@ import GDetection from "../common/GDetection"; import { rect } from "cc"; import GRoleDefault from "../role/GRoleDefault"; import { TB } from "../../../../resources/config/data/schema"; +import GRoleAttack from "../common/GRoleAttack"; /** * 抛物线 爆炸普攻 @@ -76,12 +77,10 @@ export default class GAttackParabolicRemote implements GAttackBase{ //销毁 bullet.node.destroy(); - // enemy.getComponent(BoxCollider2D).apply(); - - // console.log(enemy.v2World,enemy.getComponent(BoxCollider2D).worldPoints,enemy.getComponent(UITransform).getBoundingBoxToWorld()); - GDetection.testAABBRole(rect(effect.node.worldPosition.x,effect.node.worldPosition.y,aw,ah)).forEach(role =>{ - role.onHit(); + GDetection.testAABBCenterRole(rect(effect.node.worldPosition.x,effect.node.worldPosition.y,aw,ah)).forEach(enemy =>{ + GRoleAttack.onNormalAttack(role,enemy); //普通攻击 }); + }) .start(); diff --git a/JisolGameCocos/assets/script/battle/base/common/GDetection.ts b/JisolGameCocos/assets/script/battle/base/common/GDetection.ts index 2d4ea938..97776d7d 100644 --- a/JisolGameCocos/assets/script/battle/base/common/GDetection.ts +++ b/JisolGameCocos/assets/script/battle/base/common/GDetection.ts @@ -8,7 +8,9 @@ import { Vec2 } from "cc"; export default class GDetection{ //检测角色 - static testAABBRole(rect:math.Rect):GRoleBase<{}>[]{ + static testAABBCenterRole(rect:math.Rect):GRoleBase<{}>[]{ + rect.x -= rect.width / 2; + rect.y -= rect.height / 2; //@ts-ignore return PhysicsSystem2D.instance.testAABB(rect).map(item => item.getComponent(GRoleBase)); } diff --git a/JisolGameCocos/assets/script/battle/base/common/GRoleAttack.ts b/JisolGameCocos/assets/script/battle/base/common/GRoleAttack.ts new file mode 100644 index 00000000..2776c8f1 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/common/GRoleAttack.ts @@ -0,0 +1,13 @@ +import GRoleBase from "../role/GRoleBase"; +import GRoleDefault from "../role/GRoleDefault"; +import { GRoleAttackType } from "../values/GRoleValues"; + +//宠物攻击 工具类 +export default class GRoleAttack{ + + //普通攻击 + static onNormalAttack(attack:GRoleBase<{}>,hit:GRoleBase<{}>){ + hit.onHit(GRoleAttackType.NormalAttack,attack.values.onAttack(GRoleAttackType.NormalAttack),attack); + } + +} \ No newline at end of file diff --git a/JisolGameCocos/assets/script/battle/base/common/GRoleAttack.ts.meta b/JisolGameCocos/assets/script/battle/base/common/GRoleAttack.ts.meta new file mode 100644 index 00000000..4fdfc2c5 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/common/GRoleAttack.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "d4ea04bc-bcfc-45ce-9753-126ac88604d1", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/common/GSpine.ts b/JisolGameCocos/assets/script/battle/base/common/GSpine.ts index c3c02ff6..d563a4d8 100644 --- a/JisolGameCocos/assets/script/battle/base/common/GSpine.ts +++ b/JisolGameCocos/assets/script/battle/base/common/GSpine.ts @@ -48,7 +48,7 @@ export default class GSpine{ } // 创建一个 Spine 并且 播放 销毁 - static onPlaySceneSpine(scene:GBaseMode<{}>,pos:Vec2,spine:sp.SkeletonData,play:string):JNSkeleton{ + static onPlaySceneSpine(scene:GBaseMode<{},{}>,pos:Vec2,spine:sp.SkeletonData,play:string):JNSkeleton{ let create = this.onCreateSpine(spine); scene.addGNode(create.node,pos); diff --git a/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts b/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts index d731e1ab..ed00d31e 100644 --- a/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts +++ b/JisolGameCocos/assets/script/battle/base/role/GRoleBase.ts @@ -8,6 +8,8 @@ import { GFSMAnimBase } from "../fsm/GFSMAnimBase"; import GFSMBase from "../fsm/GFSMBase"; import { app } from "../../../App"; import { TB } from "../../../../resources/config/data/schema"; +import GRoleValues, { GRoleAttackType } from "../values/GRoleValues"; +import GAttributeBase from "../values/attribute/GAttributeBase"; const { ccclass, property } = _decorator; export enum GRoleAnimEvent{ @@ -19,8 +21,6 @@ export default abstract class GRoleBase extends GObject{ @property(JNSkeleton) spine:JNSkeleton; - // @property(sp.Skeleton) - // spine:sp.Skeleton; //角色 role:TB.TbGRole; @@ -63,6 +63,9 @@ export default abstract class GRoleBase extends GObject{ //添加攻击回调 addAttackCallback(fun:Function){this.attackCallbacks.push(fun)}; + //角色数值类 + values:GRoleValues; + get():this{ if(this.isDie) return null; return this; @@ -82,6 +85,9 @@ export default abstract class GRoleBase extends GObject{ //创建角色动画状态机 this.fsmAnim = this.fsmAnimCreate(); + //创建数值类 + this.values = new GRoleValues(); + } //初始化 @@ -145,11 +151,12 @@ export default abstract class GRoleBase extends GObject{ } } - //受击 - onHit(){ + //受击 伤害类型 伤害 + onHit(type:GRoleAttackType,harm:number,enemy:GRoleBase<{}>){ // return; - this.blood -= 10; - this.hitCallbacks.forEach(fun => fun(this,10)); + harm = this.values.onUnderAttack(type,harm) + this.blood -= harm; + this.hitCallbacks.forEach(fun => fun(this,harm)); //检测是否死亡 if(this.blood <= 0){ //关闭状态机 @@ -170,6 +177,20 @@ export default abstract class GRoleBase extends GObject{ } } + //生效数值 + onEffectiveValue(...values:GAttributeBase[]){ + + this.values.reset(); + values.forEach(value => { + this.values.add(value); + }) + this.values.update(); + + //赋值血量 + this.blood = this.fullBlood = this.values.onBlood(); + + } + } diff --git a/JisolGameCocos/assets/script/battle/base/role/GRoleDefault.ts b/JisolGameCocos/assets/script/battle/base/role/GRoleDefault.ts index a784df85..17db823e 100644 --- a/JisolGameCocos/assets/script/battle/base/role/GRoleDefault.ts +++ b/JisolGameCocos/assets/script/battle/base/role/GRoleDefault.ts @@ -9,9 +9,7 @@ import { JEasing } from "../../../../../extensions/ngame/assets/ngame/sync/frame import { GAttack } from "../attack/GAttack"; import { v2 } from "cc"; import { GTactical } from "../../entity/GTactical"; -import { Vec2 } from "cc"; import { GSkill, GSkillBase, GSkillState } from "../../skill/GSkill"; -import JNFrameTime from "../../../../../extensions/ngame/assets/ngame/sync/frame/game/time/JNFrameTime"; import { TB } from "../../../../resources/config/data/schema"; import { TD } from "../../../App"; const { property,ccclass } = _decorator; diff --git a/JisolGameCocos/assets/script/battle/base/values.meta b/JisolGameCocos/assets/script/battle/base/values.meta new file mode 100644 index 00000000..27bf9517 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/values.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "84ccbb8f-b24a-4d98-91c1-dcd3f0201edb", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/values/GRoleValues.ts b/JisolGameCocos/assets/script/battle/base/values/GRoleValues.ts new file mode 100644 index 00000000..af8912dc --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/values/GRoleValues.ts @@ -0,0 +1,94 @@ +import GAttribute, { GAttributeType } from "./attribute/GAttribute"; +import GAttributeBase from "./attribute/GAttributeBase"; + +//宠物攻击类 +export enum GRoleAttackType{ + NormalAttack, +} + +//宠物数值 核心类 +export default class GRoleValues { + + //宠物属性 + attribute:GAttribute; + + get attributes(){ + return this.attribute.info; + } + + constructor(){ + + //初始化属性 + this.attribute = new GAttribute(); + this.update(); + + } + + //重置 + reset(){ + //初始化属性 + this.attribute = new GAttribute(); + this.update(); + } + + //添加属性类 + add(info:GAttributeBase){ + this.attribute.add(info); + } + + //刷新属性 + update(){ + //刷新属性 + this.attribute.update(); + } + + //普通攻击 + onNormalAttack(){ + + //普通攻击伤害 = 攻击 + return this.attributes[GAttributeType.Attack]; + + } + + //受到普通攻击 + onUnderNormalAttack(under:number){ + + //受到普通攻击伤害 = 受到伤害 - 防御 + return Math.max(0,under - this.attributes[GAttributeType.Defend]); + + } + + //受到攻击 统一方法 + onUnderAttack(type:GRoleAttackType,under:number){ + if(type == GRoleAttackType.NormalAttack){ + //受到普通攻击 + return this.onUnderNormalAttack(under); + } + return under; + } + + //攻击 统一方法 + onAttack(type:GRoleAttackType){ + if(type == GRoleAttackType.NormalAttack){ + //普通攻击 + return this.onNormalAttack(); + } + return 0; + } + + //普通攻击某个目标 + onNormalAttackTarget(values:GRoleValues){ + return values.onUnderNormalAttack(this.onNormalAttack()); + } + + //血量 + onBlood(){ + + //总血量 = 血量 + return this.attributes[GAttributeType.Blood]; + + } + + +} + diff --git a/JisolGameCocos/assets/script/battle/base/values/GRoleValues.ts.meta b/JisolGameCocos/assets/script/battle/base/values/GRoleValues.ts.meta new file mode 100644 index 00000000..b547782e --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/values/GRoleValues.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "52b4e441-2a5c-4d33-8d4e-2b96df25afc2", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/values/attribute.meta b/JisolGameCocos/assets/script/battle/base/values/attribute.meta new file mode 100644 index 00000000..f30cff70 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/values/attribute.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "e3df25b3-9781-42c1-9b3d-a74be923c931", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/values/attribute/GAttribute.ts b/JisolGameCocos/assets/script/battle/base/values/attribute/GAttribute.ts new file mode 100644 index 00000000..56759ce9 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/values/attribute/GAttribute.ts @@ -0,0 +1,55 @@ +import { TD } from "../../../../App"; +import GAttributeBase from "./GAttributeBase"; + +//属性类型 +export enum GAttributeType{ + Attack = 110001, //攻击 + Defend = 110002, //防御 + Blood = 110003, //血量 +} + +//属性类 +export default class GAttribute { + + attributes:GAttributeBase[] = []; + + //属性最终信息 {属性Id:属性值} + info:{[key:number]:number} = {}; + + //添加一个属性类 + add(info:GAttributeBase){ + this.attributes.push(info); + } + + //重置 + reset(){ + this.attributes = []; + this.update(); + } + + //刷新属性 + update(){ + + this.info = {}; + + TD.TbGAttribute.getDataList().forEach(attr => { + //初始化属性 + this.info[attr.id] = 0; + }); + + //累加全部属性 + this.attributes.forEach((attribute) => { + attribute.update(); + for (const key in attribute.attributes) { + if(this.info[key]){ + this.info[key] = this.info[key] + attribute.attributes[key]; + }else{ + this.info[key] = attribute.attributes[key]; + } + } + }) + + } + +} + diff --git a/JisolGameCocos/assets/script/battle/base/values/attribute/GAttribute.ts.meta b/JisolGameCocos/assets/script/battle/base/values/attribute/GAttribute.ts.meta new file mode 100644 index 00000000..eb88b24c --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/values/attribute/GAttribute.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "72467729-defa-485b-bd75-3bbe791ebea3", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/values/attribute/GAttributeBase.ts b/JisolGameCocos/assets/script/battle/base/values/attribute/GAttributeBase.ts new file mode 100644 index 00000000..2faca5ad --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/values/attribute/GAttributeBase.ts @@ -0,0 +1,13 @@ + +//属性 基类 +export default abstract class GAttributeBase{ + + //属性 {属性Id:属性值} + attributes:{[key:number]:number} = {}; + + //刷新属性 + abstract update(); + +} + + diff --git a/JisolGameCocos/assets/script/battle/base/values/attribute/GAttributeBase.ts.meta b/JisolGameCocos/assets/script/battle/base/values/attribute/GAttributeBase.ts.meta new file mode 100644 index 00000000..595d29da --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/values/attribute/GAttributeBase.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "a0ef91dd-110a-4622-8a6d-4c16a6255d5f", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/values/attribute/role.meta b/JisolGameCocos/assets/script/battle/base/values/attribute/role.meta new file mode 100644 index 00000000..dce5533b --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/values/attribute/role.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "54170ba9-5142-4612-9335-28436a7ddc08", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/base/values/attribute/role/GPetAttribute.ts b/JisolGameCocos/assets/script/battle/base/values/attribute/role/GPetAttribute.ts new file mode 100644 index 00000000..388b39e2 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/values/attribute/role/GPetAttribute.ts @@ -0,0 +1,41 @@ +import { TD } from "../../../../../App"; +import { PlayerPetOV } from "../../../../../consts/API"; +import GAttributeBase from "../GAttributeBase"; + +//宠物属性 +export default class GPetAttribute extends GAttributeBase{ + + //宠物信息 + pet:PlayerPetOV; + + constructor(pet:PlayerPetOV){ + + super(); + this.pet = pet; + + //固定属性直接计算 + this.compute(); + + } + + //计算属性 + compute(){ + + this.attributes = {}; + //*************** 宠物初始属性 ************************** + let baseAttribute = TD.TbGRoleBaseAttribute.get(this.pet.petTbId) || TD.TbGRoleBaseAttribute.get(0); + + //获取全部属性信息 + TD.TbGAttribute.getDataList().forEach(attr => { + //保存初始属性 如果没有默认 0 + this.attributes[attr.id] = baseAttribute[attr.sign] || 0; + }); + + } + + //刷新属性 + update(): void { } + +} + + diff --git a/JisolGameCocos/assets/script/battle/base/values/attribute/role/GPetAttribute.ts.meta b/JisolGameCocos/assets/script/battle/base/values/attribute/role/GPetAttribute.ts.meta new file mode 100644 index 00000000..31140d53 --- /dev/null +++ b/JisolGameCocos/assets/script/battle/base/values/attribute/role/GPetAttribute.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "a66f3d1e-b975-4cf3-a666-54194eeda220", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/JisolGameCocos/assets/script/battle/modes/GOnHookMode.ts b/JisolGameCocos/assets/script/battle/modes/GOnHookMode.ts index d3ed2430..29bcb84e 100644 --- a/JisolGameCocos/assets/script/battle/modes/GOnHookMode.ts +++ b/JisolGameCocos/assets/script/battle/modes/GOnHookMode.ts @@ -24,6 +24,7 @@ import { GOnHookPet, GOnHookPets } from "../../../../extensions/ngame/assets/nga import GOnHookManager from "../../manager/battle/mode/GOnHookManager"; import GRoleOnHookCreepsExpand from "../base/role/expand/OnHook/GRoleOnHookCreepsExpand"; import { ModeRenderEvent } from "../../ui/Consts/Game/ModeRender"; +import GPetAttribute from "../base/values/attribute/role/GPetAttribute"; const { ccclass, property } = _decorator; //挂机模式状态 @@ -251,6 +252,10 @@ export default class GOnHookMode extends GBaseMode<{},{}>{ //向宠物添加 OnHook 扩展 let expand = role.node.addComponent(GRoleOnHookPlayerExpand); expand.petId = petId; + + //添加宠物属性 + role.onEffectiveValue(new GPetAttribute(info)); + } //生成野怪 @@ -262,6 +267,16 @@ export default class GOnHookMode extends GBaseMode<{},{}>{ let expand = role.node.addComponent(GRoleOnHookCreepsExpand); expand.creeps = creeps; + //添加野怪属性 + role.onEffectiveValue(new GPetAttribute({ + petId:0, + petPlayerId:0, + petTbId:creeps.petTbId, + petLevel:0, + petStar:0, + petStarExp:0, + })); + } //生成宠物 diff --git a/JisolGameCocos/assets/script/battle/skill/GSkillCDBase.ts b/JisolGameCocos/assets/script/battle/skill/GSkillCDBase.ts index 43095266..95f3f24c 100644 --- a/JisolGameCocos/assets/script/battle/skill/GSkillCDBase.ts +++ b/JisolGameCocos/assets/script/battle/skill/GSkillCDBase.ts @@ -1,5 +1,4 @@ import { TB } from "../../../resources/config/data/schema"; -import GRoleBase from "../base/role/GRoleBase"; import GRoleDefault from "../base/role/GRoleDefault"; import { GSkillBase, GSkillState } from "./GSkill"; diff --git a/JisolGameCocos/assets/script/battle/skill/RoleSkill/妙蛙种子/GSkillBulbasaurDoubleHit.ts b/JisolGameCocos/assets/script/battle/skill/RoleSkill/妙蛙种子/GSkillBulbasaurDoubleHit.ts index d413ed7b..089fd517 100644 --- a/JisolGameCocos/assets/script/battle/skill/RoleSkill/妙蛙种子/GSkillBulbasaurDoubleHit.ts +++ b/JisolGameCocos/assets/script/battle/skill/RoleSkill/妙蛙种子/GSkillBulbasaurDoubleHit.ts @@ -1,4 +1,5 @@ import { TB } from "../../../../../resources/config/data/schema"; +import GRoleAttack from "../../../base/common/GRoleAttack"; import GRoleBase from "../../../base/role/GRoleBase"; import GRoleDefault from "../../../base/role/GRoleDefault"; import GSkillAngerBase from "../../GSkillAngerBase"; @@ -26,7 +27,7 @@ export default class GSkillBulbasaurDoubleHit extends GSkillAngerBase{ let skill1Attack = () => { if(!enemy.isDie){ - enemy.onHit(); + GRoleAttack.onNormalAttack(this.role,enemy); } }; let end = () => { diff --git a/JisolGameCocos/assets/script/battle/skill/RoleSkill/疯狂松鼠/GSkillCrazySquirrel.ts b/JisolGameCocos/assets/script/battle/skill/RoleSkill/疯狂松鼠/GSkillCrazySquirrel.ts index d1d096fb..4698b6a9 100644 --- a/JisolGameCocos/assets/script/battle/skill/RoleSkill/疯狂松鼠/GSkillCrazySquirrel.ts +++ b/JisolGameCocos/assets/script/battle/skill/RoleSkill/疯狂松鼠/GSkillCrazySquirrel.ts @@ -2,7 +2,6 @@ import { v2 } from "cc"; import { JTween } from "../../../../../../extensions/ngame/assets/ngame/sync/frame/game/tween/JNFrameTween"; import { app } from "../../../../App"; import GSpine from "../../../base/common/GSpine"; -import GRoleBase from "../../../base/role/GRoleBase"; import GSkillCDBase from "../../GSkillCDBase"; import { v3 } from "cc"; import GBaseMode from "../../../GBaseMode"; @@ -10,6 +9,7 @@ import GDetection from "../../../base/common/GDetection"; import { rect } from "cc"; import GRoleDefault from "../../../base/role/GRoleDefault"; import { TB } from "../../../../../resources/config/data/schema"; +import GRoleAttack from "../../../base/common/GRoleAttack"; /** * 疯狂松鼠技能 @@ -33,7 +33,7 @@ export default class GSkillCrazySquirrel extends GSkillCDBase{ //获取敌人位置 let enemy = this.role.fsm.enemy; - let scene:GBaseMode<{}> = this.role.mode; + let scene:GBaseMode<{},{}> = this.role.mode; if(!enemy) return false; let aw = parseInt(this.info.skillArgs[1]); @@ -60,9 +60,8 @@ export default class GSkillCrazySquirrel extends GSkillCDBase{ let world = spine.node.worldPosition; spine.node.destroy(); GSpine.onPlaySceneSpine(scene,v2(world.x,world.y),app.battleRes.roleResSpine[30005],"animation"); - console.log(GDetection.testAABBRole(rect(world.x,world.y,aw,ah)).length) - GDetection.testAABBRole(rect(world.x,world.y,aw,ah)).forEach(role =>{ - role.onHit(); + GDetection.testAABBCenterRole(rect(world.x,world.y,aw,ah)).forEach(enemy =>{ + GRoleAttack.onNormalAttack(this.role,enemy); }); }) .start(); diff --git a/JisolGameServer/Main/src/main/resources/json/tbgrolebaseattribute.json b/JisolGameServer/Main/src/main/resources/json/tbgrolebaseattribute.json index 7e3570d2..3b666ffe 100644 --- a/JisolGameServer/Main/src/main/resources/json/tbgrolebaseattribute.json +++ b/JisolGameServer/Main/src/main/resources/json/tbgrolebaseattribute.json @@ -1,8 +1,8 @@ [ { "id": 0, - "Blood": 100, - "Attack": 10, + "Blood": 200, + "Attack": 20, "Defend": 5 } ] \ No newline at end of file