From c845e7ac21f9442a47e6765b882ba056380599f8 Mon Sep 17 00:00:00 2001 From: chendian <-> Date: Tue, 10 Sep 2024 22:58:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=98=BE=E7=A4=BA=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/character/bullet01.tres | 2 +- config/character/hero01.tres | 4 +- config/character/monster01.tres | 12 +-- config/character/monster02.tres | 8 +- config/character/monster03.tres | 2 +- config/character_move/slow.tres | 9 +++ .../animation/character/basic_move.aseprite | Bin 21413 -> 16430 bytes resource/animation/character/basic_move.png | Bin 9361 -> 5148 bytes .../character/monster01_move.aseprite | Bin 16080 -> 16572 bytes .../character/monster02_move.aseprite | Bin 36661 -> 18480 bytes .../animation/character/monster02_move.png | Bin 12712 -> 5181 bytes .../character/monster03_move.aseprite | Bin 32050 -> 34040 bytes resource/ui/hud/break_level.png | Bin 242 -> 236 bytes scene/ai/bullet02.tscn | 2 +- scene/ai/monster01.tscn | 57 +++++++++++++-- scene/ai/monster02.tscn | 69 +++++++++++++++--- scene/ui/item/headbar.tscn | 12 +-- .../action_with_target/action_cast_skill.gd | 7 +- .../ai/action_with_target/action_move_to.gd | 6 +- .../action_move_to_target.gd | 12 --- script/character/battle.gd | 2 + script/character/character.gd | 15 ++-- script/character/player/player_action.gd | 4 +- script/config/character_cfg.gd | 2 +- script/manager/ai_manager.gd | 9 ++- script/manager/resource_manager.gd | 4 +- script/ui/hud/headbar.gd | 18 ++++- 27 files changed, 190 insertions(+), 66 deletions(-) create mode 100644 config/character_move/slow.tres delete mode 100644 script/ai/action_with_target/action_move_to_target.gd diff --git a/config/character/bullet01.tres b/config/character/bullet01.tres index 0a651be..9847329 100644 --- a/config/character/bullet01.tres +++ b/config/character/bullet01.tres @@ -12,7 +12,7 @@ script = ExtResource("3_p63bn") name = "hero01" type = 2 -sprite_harf_height = 26 +sprite_height = 26 sprite_width = 16 move = ExtResource("3_gqffj") shield = ExtResource("4_qnn3b") diff --git a/config/character/hero01.tres b/config/character/hero01.tres index 37db938..74a45ea 100644 --- a/config/character/hero01.tres +++ b/config/character/hero01.tres @@ -10,9 +10,9 @@ [resource] script = ExtResource("1_2054l") name = "hero01" -type = null +type = 0 sprite_frames = ExtResource("2_cssb0") -sprite_harf_height = 26 +sprite_height = 50 sprite_width = 16 move = ExtResource("1_ebj0w") shield = ExtResource("3_5l0vx") diff --git a/config/character/monster01.tres b/config/character/monster01.tres index 107f65b..828a5d2 100644 --- a/config/character/monster01.tres +++ b/config/character/monster01.tres @@ -1,10 +1,10 @@ [gd_resource type="Resource" script_class="CharacterCfg" load_steps=7 format=3 uid="uid://b1gf2jimihmc7"] [ext_resource type="Script" path="res://script/config/character_cfg.gd" id="1_4orbu"] -[ext_resource type="Resource" uid="uid://dx54fjf5t0uu8" path="res://config/character_move/normal.tres" id="1_b0lkj"] +[ext_resource type="Resource" uid="uid://dkjv5kj8mgy8v" path="res://config/character_move/slow.tres" id="1_vaqv0"] [ext_resource type="Resource" uid="uid://dpajmgrlaytah" path="res://config/character_mp/normal.tres" id="2_pl54c"] [ext_resource type="SpriteFrames" uid="uid://dkljs5h8gj5l" path="res://resource/animation/character/monster01_move.aseprite" id="2_su3hg"] -[ext_resource type="Resource" uid="uid://dlaekoamystx3" path="res://config/character_shield/normal.tres" id="3_3nfrx"] +[ext_resource type="Resource" uid="uid://h1curvk64vm3" path="res://config/character_shield/none.tres" id="4_ei6r7"] [ext_resource type="Resource" uid="uid://cac6mk6g078vn" path="res://config/character_stun/normal.tres" id="6_25uqm"] [resource] @@ -12,10 +12,10 @@ script = ExtResource("1_4orbu") name = "monster01" type = 1 sprite_frames = ExtResource("2_su3hg") -sprite_harf_height = 10 -sprite_width = 16 -move = ExtResource("1_b0lkj") -shield = ExtResource("3_3nfrx") +sprite_height = 20 +sprite_width = 14 +move = ExtResource("1_vaqv0") +shield = ExtResource("4_ei6r7") stun = ExtResource("6_25uqm") mp = ExtResource("2_pl54c") hp_max = 20.0 diff --git a/config/character/monster02.tres b/config/character/monster02.tres index 1a0b7c6..d18f67b 100644 --- a/config/character/monster02.tres +++ b/config/character/monster02.tres @@ -1,6 +1,6 @@ [gd_resource type="Resource" script_class="CharacterCfg" load_steps=7 format=3 uid="uid://dmfh54jffhx28"] -[ext_resource type="Resource" uid="uid://dx54fjf5t0uu8" path="res://config/character_move/normal.tres" id="1_hjl2t"] +[ext_resource type="Resource" uid="uid://dkjv5kj8mgy8v" path="res://config/character_move/slow.tres" id="1_tsstu"] [ext_resource type="Script" path="res://script/config/character_cfg.gd" id="1_wkjce"] [ext_resource type="Resource" uid="uid://dpajmgrlaytah" path="res://config/character_mp/normal.tres" id="2_gly3h"] [ext_resource type="SpriteFrames" uid="uid://crdd52skym3ir" path="res://resource/animation/character/monster02_move.aseprite" id="2_h60bf"] @@ -12,9 +12,9 @@ script = ExtResource("1_wkjce") name = "monster02" type = 1 sprite_frames = ExtResource("2_h60bf") -sprite_harf_height = 26 -sprite_width = 16 -move = ExtResource("1_hjl2t") +sprite_height = 42 +sprite_width = 15 +move = ExtResource("1_tsstu") shield = ExtResource("4_uyg17") stun = ExtResource("6_vlmkd") mp = ExtResource("2_gly3h") diff --git a/config/character/monster03.tres b/config/character/monster03.tres index 60f38bb..844f70d 100644 --- a/config/character/monster03.tres +++ b/config/character/monster03.tres @@ -12,7 +12,7 @@ script = ExtResource("3_0gem5") name = "monster02" type = 1 sprite_frames = ExtResource("5_4dnud") -sprite_harf_height = 26 +sprite_height = 45 sprite_width = 16 move = ExtResource("1_ol2gy") shield = ExtResource("4_3daai") diff --git a/config/character_move/slow.tres b/config/character_move/slow.tres new file mode 100644 index 0000000..b52ff6b --- /dev/null +++ b/config/character_move/slow.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="CharacterMoveCfg" load_steps=2 format=3 uid="uid://dkjv5kj8mgy8v"] + +[ext_resource type="Script" path="res://script/config/character_move_cfg.gd" id="1_7itnl"] + +[resource] +script = ExtResource("1_7itnl") +speed = 1.0 +gravity_scale = 1.0 +jump_velocity = 4.0 diff --git a/resource/animation/character/basic_move.aseprite b/resource/animation/character/basic_move.aseprite index bec0e4ce72a093b94a3145c933744acea96a1e3a..4c2a75ce5ee20736f9333aedc299f25e452413f2 100644 GIT binary patch delta 2103 zcmc&#Ur19?7(bs^Vcj)#mR6K=Wso}EuFGvY|87QxSxzCv7r{{`{TcOOnw73BN>Eci z!A!$OMN(+WprQhyp2dP*^rfT+AId<4pwR5x)Agd)4TC`M;OzSj-}(K1-*4Z!d-NEF zybxl{>kMhs_;^Bo&6>$^LWp^!EuQmFh5EUsaGL7%A#|nB;<{%|lyw8?3FY5Nddk0^ z^l{YfP<@p6Q%jHkEf)v&2AYNG|86Zxvp|TKe(L*X#(WwgsEFfT^|5cGk@4?4?!T;i zW^|WXM`QcPaZIH*!zN9i?j$mJAU0x04X?w=O=bud zxgZ@Y`C7=rk9<3g+ctNBZP}{aapO?9nO01NchfT$BU)u-fwPcoERS@769?#;j)hts zZqu4sB<8)^a>&3rtxG-=T-Qp~B6coLY;i$0CT*3@!vjoJ??X)-4{11Z3jd$6U(~3slbkYB zp9Rwy=wiwv1)fgcPN535Q35BB0-Uvo(-JUNo`Jx~ijIRJ!&2ueE`?-ayVVO%n9^&K zQWKq_Hd`G8o-E~j2CiB;Zz*IyF4$|q!*~wLJoz}AnHfyyayM4Zmr_L!bG0Z>yhT}# zYEb4QjJZW(PNg00b~ZvQ+ZF%Z!t_9l^ycgGE5OIFK9};4i$C%`@Pbv{maFXe<-m0q zWL0AYJbe$GFN(&Qf)oF`C*8Fi{BUUL-mzF#t>R3?fmm1_5b-I~(=7KQ^4H5VqM|oC z2WyU01=#6jnq!N3a9~1l4ZLPZC?Tbgbc}G_f;X&6T_WDin35K_%Bm{l{+*~RJ-W;# J2YxN}`~fO^>~{bF literal 21413 zcmeHP2|SeB`#+3*YwRLsv4p~yv1i|9Uv3E5McE@HWy_jSy6Pe%Wsg#6(H$Zs3aO;- zO{7$kN~u)ye`lD?+<(9SZ@SIzcW?LK>tkj<=XuXL&-Z!Gd6sj|`&K#vFjDCc5}`jf zzyJX7gZ?Ql1_ojw(1-s16ITlx0PkNcA@#Zh>OctkXGM~_r09+V1^^R@I|c?AT5`FO zxs7*VcuMxqhwD#W8@N6D`mK-KPsy7%6z@!^Kah=YD(-Es8y)ThHBVXV^?2xw zB$z%gHUES+Bi!Als-&c4u+i5iH7?rjw=!oLa^!4YaVfn(E#%mleo#KlhNYW(i)_Hx_ykNYbKXZs1mQ<@6uX6DwO?&~*4CZ+ButUuOy=HlSv z=X0x+wbmJ!WH>m~Y*=?OZNp$$#N)0k!t+)Ql$beA!_!JP#LX;m`SbYsQ3UNoq1nwXxPNYy3ikLh=$~8uuo5H)g*WX_u2#RMs`sw$(QEQ1S>@4BR0X zc|akj$zBD+`ICl9w3S`{I=3SsuJ{D6k^D{fs&n+ru!if`xNHdyD@e|4+_U>^QGMUJ zTXS;&sl%Y`$zdMP=e}Pe>Q{}uqYf=^;xD|iu#DX5wt0VKdUIAmf7PJ}__Eixa|zFD zq{ZPHSQ{6M#Q1=w;^aGZ1(PjRue#d^Xz8`fasDfHqP6UHIt0{uM74w@;j{Aay31Gj z>zlu_sk=K-2-n#RLL_qLdK;Nl^yU?8M@EfHuIEn#KyegCdD?u>P9 z#11fQpzUI>!)bz{4V4uRJ_8_J!LBM?qbr zV7DBpYX+bWFkrE3erOiN7LSdIF;^sR1|Z)8Wk3}3`xlHP3`7=1NEM+E=pr!8e-l6d zK@CF4X@YD6-Ny`taB9#TU6i2+kc4FD>jfBfb#+;S6PNIWXI5M~$a&#V6>`^=t&tt9 z`*CI^xV)1t!h}wc$k6r6PiDl#$MNd?iEYXE75+%7I$91!VZvJus*B2k6nUH zZQB%*)ovBepc&&cRu*4YmA89{ukmsc(hjhnyV$U8>AmR-5%0?H*qr6r>t5+5$X)6z zy=DlZ4YnDI7w)Bzosb1~uv9`o0%?ey@q*LbM0RwNW)Z@oStD>s`^3~ctDNH!;Rm_m zmnm`W(m1eUXT(-DCR@{sr*od)bo{XCoZdJ4U}c!L1gVxKfVmbGnt^=d@ZY{*%iSSGT?J) zoVhye=10$T&bINS-pL#$)*?q(trMy@hep2q7x+?xB9ukbC`vL?zFuAjnI>~u@l>v~Kj~@S84po2#MT1KrXG`|R?*Yg-gY5s> z2GyyoGA|U!k{g8L?F*WS61q1?jIL-IxtN6!Ld_xH0*6L0t_emLW79TS;u6WtHk8NL zGpa-(N`8R)jJyE={(7|K*EjehQu-{zze{ka3R%8I`yvFyK6CgB03C(Mgs;`I8r75* zSe(*{P^!gPhdBMU4gT8z`#EXCz(@f$l*0eZ0DC@JAV%!+6p+QBd@{E9#-K7!A_fj? zi*NfxIIWV&bS8F_La3QRn~>8pJ2^Nv-!b%HeoU&ac{bejqL#kOv=E$?Dzf;AV~DT`hGZ6_rxR>%3RHe}vJ| zarLZyvtGv}u757n`RCAE&AR1&Hm8aZ%haNi?hWZZOFbrRvSioFHc=@i#26XnDkz}; zf%1ng$s@L##t}-Pl7ti?C3)CWyNu?pp_XQfP^y%Pq*r55Fd#dz@ z#x%7z;fH%HRM;ySPDm(Z^d7YE|i6ba`0w5Dbw?gvaeVUBTwQh&GL8<%HS+7vY*Vh2317!=S;>7jcg|_u)TuH zWS~hVW4u6_2ajQc#U&94cWaC)^F(%SuJ5|bKDr}Al_TR)pZF+$Mbx3+?XI#KnGL~T z)Wv$+%X^oN2z_``7kvFu+{PT=!tr5_NuQ+VajwF3@ zJ;-b_Kvg>Ufgb=N4HK{LR)fDm%)fu}?*o@0=suz~!BGv-rKA-iUoU;w)(J+qJrXaU zVUnD?#4&jZ_Xyvk3n;EV?@m}nCCr>5nYw-KFb#- z)R1Vli#Ljw1>8|YE0Kq%8Xe}}NgBZ!E`U=7l<9^bDc$h(N@UO#(GQSh_sQxv&RcR8 z*;;qxbdiV%#;Di;)w$QH?a0LypwTFC^C$!Z44bu=m#3%XDq;%rCKDCCi#fY!8UH9U(}bG{xo*7v?d61@xCJg zU6N4%cx{2PaG5hc$$=|unWKF0{@UL#rdAGvE|*kR)G4}Mk%PI)5l&&O>+7WE9OWKX z8R!XIyH^_=fNRT9P5vEoT$gvXXqa=H+w(Q0*O}iHpiyM(azN{wM>-3%EI^CucQ0UH zPBlMeNTE#qpa)MPv^+ghQUpd?#*KhcW2|curp&26`g;GSK#nZwj14iV-HgtwNyZFylzk zw3csDnX={8;PSN&evcwzIf6q#lf+*yN zr`@S9U~X>c_2k*Gf(|wTS|g>&CZsJ$fI4Otop%R&EIIU1Y$hH_bDp8+u<%#1JO@-V zcByZdMaz5D%w?Ref+3XesOKJ3?icl|;>Hb>RaHI8<-+#8F3WSTe6?jgr~KPI$(-wB zK8}$?RvmjL#ID}+7TK`YOC{y)w###&wS`H3xx(>VkoU;Qv2<{RU%RNHMwKD`Hx^as zkq7<->8mCkhUIq@lxfppEPmHP8RhoNp9{gi*Px6Z2Kf7SK?-z8z`joxgrmc>|NFZj zO*)|b3tW%}9bC{;8Y82ag~$j?l_)Q)ChjI3Coqa(e7^mzE}A3yI&#=~#{8iW#=i`E zHQ1sI-(yh*+w_v_M()&ygy!E3wBIKL_wf5yOTdzxLp7In&Grkm@3vl}UiYav#Ya`b z{L%)87#zr&lV~M}LRw(eH>X4+G(rttfQq3yp@0AgXn(1--;D>rxs3Z8yx#ok?kS-V zx})R60UPE3BR`QQP7hV~qaKQNd(7TQX5@Z|J0+?gcVkt+RKQl}F0u7z_w0$AZS&Rp z=v114J89j_m>w%$NXEAc7=AOp5*qQ5&*NdJ(o7_2&yMPVADKCQVDW=FNVuO*GX7U3 zH$tOY|B7L&1@yjoWPB$Uh#v9&U*aRaeeL)^W>^&d&W42^%zbUfqd?_yq)B@P^@F#$ z@z7eNo$biSuKF!i))73;HQVDjj2RMfOqnR{m+7N|gS(W4&@Ut1eanrj?e{KyeB5wZ z?=Fplv5jd=YmVw}sCrOt+kIzXvcG0fK5UQ$+we1=$$s9w6~eXV#wSkyWH$0iBE08) zpSsyks0y;tSA@=VEN&bAxs2xxjixIZx{tUIq(rq0ja*oUHXts=8uuRI(q<@Oop{Oq{u6BC*-m9x&fT&7?0zQD~*!VS_3`IR?Je2 znfmBFHsaSobB+QFLqYZ`8O|peMmq2MEmTDOF;gQ_0emJ7WmbGO=K89xc4o_-Tu$Ho zz$E@9(j>IGnKR}lI+{G&l~P&!03^Z*(0q}oUdBTI4O5>{j#WBG0l zc{aJSG!Csee-*slPw>)#@JeeI7SNuDiX(H5fu3brl-!@Qj{h;Ysszk`FbApo>*IBL zNbWmY)YYNGy4K&{M`+Oj|vHz45jeGD2oOS&FycCyX|MNFW81I`6O{do^pd zcqo4#OKL)*;;anPn{1FY=wM3!_8{r8PWO>UO=d1=Qkg0yl_VVxs2sE>o(zFDL;L0s zw*rruls8v>+y?)-$)uP8F4Ho)!?b9IW7Y-V%j#goaEKe18IkOqnyB5cbgV!?Bq~XG zqN`fW$gVmLPd& zP#u%g8)QU^E;<-;xxMZ_^x)o}`}ZO;!zJT>6&A^3cq)549Gy=dxk}JO#oy{mpV5db zZUNUys)qw)fGC8ke!zeSpx9ve^JRqX4VO*%oY#(c_b&2jXXb&C7FY*=et_W4-#Z8ttotVmIB-G;FWoG+Rl%`h&WlR-1!iU2x?MG7Q)}E z9TxYJ)qX7|9vp7&k80@a_T$Dn?8Rhy+qrDIx{|fmqAcx1>0PZFUXK|ksftjE=yl8+ zDwHn#zAGv60DAIiK3Aur{Pjz7)gSMho-8Z6+{)?Lv=}-m(;?}9N29)XEQmmv>RDz4 zDbTIoZO;Sc)rQ2=T~mCga&5}@$!>p`6mp%>go#~==k?%PmlK2cYZCc?eH|y8ATYJ+ z>^j%`Pn>SQxTsWje(-*r`)%j7CZgSIes51W*>yIgi&KE5=gH$UD%S)RSW@&-Dyz(< zpD+k`B2SQYj{{cUtot9pA&vfD&%*rUH2(Fcp;ahGnHcFYrPcw8hrjo3nRevQm+0x$ zt${NIu<>c_jP38~n!+UNAUUU!0Ry7FHnz8&hW6MT*xH67S8&+3T0KbcPOgVb2X)3-Uxf zsPP|XIR0EDm#jsl|F0Gq3%z&bTSJdo8eLJ!zi~y0n0Z&!V1K;QK2U6h=aqF6B4Tip z2Kuc>h@n6J8=BoJ^lBy16{&Pv!0%~Zn^e;b?dX| z&Pru?*XnB*dpB7$$U3yNq_81;9|QHmMMtDX2iPMt!Vdln`wM2NuMK($1Qc=E^nL77 z4fJuUGLU%lm>rGhVn=f+j1CpO&diK&ma4wl_;$#`>ZjHMg@>65^;xD(KYJcZfAq|E zSdr7Bu0QJ6BqXQmv4%yfqzP7kvs(Y@_#V-yzfBAJ`;t-0$%piZ;<}(ke2K^FU1rtz zJmGeWB)GCkhPlUdeoADQSF!w&8R3C(fg=wNr#{WFKJ)hOG{Vp6mD1au*PqtdbjDAO z|9)lr$J5uE&S-_EL~4S|*A~r^HXYQ+N@J|NX8|VhrAmtyVLnzafwH~%qpwi57jt>1 zW4ZqF()SJ(2LlcPHBsoDc1F=Jae^J|!kXJ-B@8WOwKkaFt&fm*<6(4VW0dc83T~G) z?b$zLs-g;eW#lsEc1Nm+qh#+H(M$ztxs#*OE=RJQV^e1`u9Y^ZU3h(QfZ#OuBS?RJE}M5y5i? zJZh|ifq5`v1MKRue1DOl)!1~6okJIA0*>&VMoh9T?N3`bo)&iYJmRms}f%4d&=K z61>d=LhMn}a03-ZA?XRNw4eEOeG1@0XiN6A8-w=AopK$r<<^P5y!aA$xr4ci006o9 zi~CF~fHB25`*Z8ZU!U|+KBK*y^a_dk>juQJZESCYfs%Rlpc4VQdv~l%H*;s>b#;hZ zt+SkA#>&>!aH0s|ve~O=AGe1e|EG$=5~sq)x)m+?7#Qo)*6#h1>pyv%!}iqtw6=cB dijAfl^e%{V%V{Gl$eLRTy%%h8QvErw{{sc3{gVIy diff --git a/resource/animation/character/basic_move.png b/resource/animation/character/basic_move.png index 41856b442cce4701c9e6a3b794945fbaadeca260..1f573bb063c06cc90311d19e7e8ac7b70d6ffd25 100644 GIT binary patch literal 5148 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 Awg3PC delta 879 zcmdnf$atZa>4M!vraIoY91IMl&Pq4B$Zn(SMU%YVjwEumR_i@SUJ^%bULifMy{PWL0|E#e? zqwKE+bDY1H2sD^gftA6O!EEvd-VR2>WZ2|>J|jlc$5O7cM%0QGarP7|6_pKoX=?;05~s!nc@n2AKDPu{F=#Hc>` zoSygO|B@hk4OJ{AXGwun&Xrous5UuYCTX&bj1d}Z3XsntI|1mnsj``1^A`a{>{T}b z%?g!Y4;0_8uoH=FpQHpb!dPi5kbJ4M7VL!d$^VogR%T%sQ9C(b4WAB+$u~4W^4yy9 z7ajjg1n)kw-OvM zwNSSr0?N?9h*5cRiotS5(3eK3!!z15Bn(UTFdf{5vKafKk?K z+6|08NwWpOh}&hh4M-N6uR$WKCc9c1G3rg`wMv?N3(A_pXgGP1)eNwzs>xfeL5Zr+ yTy*kZ>#0DM>b8lKzu18EsM}5ks@!cm3mCy+cDsNPBWS-HnCQ;hHvq-`9P$9f>LhXi diff --git a/resource/animation/character/monster02_move.aseprite b/resource/animation/character/monster02_move.aseprite index a87f6b513e827ef3136f84fce872d6d127d54d71..4a6f5ad05b284273ca45ae8547d617ee50ebc343 100644 GIT binary patch literal 18480 zcmeHP2|Sc*+rJt6mYq158A~V(V?VO5*_SLy_I;N%DO+|SN*#ox>=99NN#bd}XXv-?&MQ54J9Z@b; z(&fb>!hujQL29|k`DQ7loHJ+~GwYv^o5Rv8Yj4v~mN8XQaNfQ>OkXe6&aF1K;#QR& z2SWlM?*&!G$IkW(2M&HYQHE_B#E#7=Nhs*)8$0gy3=fG*Jd|I1zN_`d$jqCSpQV-e zXy~L^SXBA!xsl{EQW8AVorZnWu882(M=LrSsruXN#rp0lN)G9$N*irIE6>bl1pnDz z$t>G8tS+z+v%mV$@%Fjyr)*m^DKxBrr33Kx21(JNIGe2XykgH~Ax&{NBUF^TQPw{D z`dr`M>aZ6#ld%)^R_yG-Lh{+#`qj?1SE8N!j|Wb+B~B02sH1jRnk2e<6b0{V%sO)S zWYJVh&GJki)__GmYRmRA71J(L&u1Q4AL8n;r32XRXBK?Iu8K1I40Lkscb^Xo?>umz zKO=guJYGx`p!F&BoyZ+SsH2nkj^>LsSIgbMVq=d6!K##rrnCiK94+ZGx2w0$^lM{Z z$H|LqR*^BbwRQ{e_Ro%qs6QItTc7@R;+mMKq_nE8im8gOgOo#%q}L&_kdqRb4d${a z`kjihVMb;-d+g8p+hJmyCUW+US7xf|$!L07+wSuV%!^O0&ppysP&;t>{>ln~Zzq#> zq|=XP-F<>T^s3^~NsEggqOZR*FbvsmAATYvxhXAgu;TPnOv(GvEbN;qVLoO>853KB z*l3T2!uW?Zd9xQQ-t~51k;1#Spxw7^4^uYFu<)pM2)*bZhe^xEsBZb$U0pB2%0AQ0 zuP*A~<+RMf+FIwb#`Ykv&#kd5k&Vz!;D!r+-y39r{QG1B}Ex3g8$L7C-?ge@}*}(o_K2ii8&}fXFgM?W{1E|8q8uOK zCmuuryu3rD1pu6wOp7D0&W`{{Vjg}7S`Y{klPQ5ePLwbZA*R#e>8rA~08wJ*>L9cj z*!Fw6A5NGAkR+zl0UUi*m=wS{MuLkH&qSkv3IP#%OAYphh6O<5wgXjS4h!%M2@DHx zbHsf>8m~Duph5f@2ExzCXacQ2XRnUd20FxS>b21_y1^FG98qFGQw*|DFv4e(s*|KV{JXFXsR^x4?)1!9V5Gg9vx$puhk}7iU*r zoTvVybPC`S=oW?Zm4D<>tquQYT-@YgL5M#cOZ#o=u%Lf7v6s8E+dgP8B^>$#UD&mC z0iaAY7DN`lzFo=)P&7c}y2sAhtIUD}*(Dbv&Plph%U|Uy?tk&_<9^lu`Q_@1tIngJ z!+-a&ucnk^Qsc*GpcyIQlt2zh6U@v7#GsiohYXmmqi872jx}`ZJc-=1yx$$A#o8i1 zswm|s%@1}puwPF5_;kP99pzW4sR2f%77{!vy3$nXoUSJF%F#iMeIH-GZf#9v^l~eQ%W%*61r&$FEPL&)qPY8ewhrClDd_W+@MZEJTTV_C3>a3m zYpX#AJ$I^dF!tNiFrHXH1}&0p8PscsmN*k0Z< zbn6OlD_0oh2_Bof4-bCkk8z*PNDf+{_RVg+%L3)npWc$=y%SEu-1r-Z{y-NN;(fa| z6tbZZfKMhjR>;Pd+3+D7PIV*7Y=qs7JY*v=+sITmQumEo=7%iqaNRLdiaRmrbCl4j ziULq3sCL-^9IAGwrg$mKV#5K*F+ganSD+l&P9TsI@O=~LR02SD4)WQ01l#8W7{fHV zt+sB5DDE`uUI)Tq{Xmrn?wk!EzTbHr0Bp5L!}SaNi&xKIz8wD_3X}tC1Xkt*yx*<- z3jm$@@R;>lS)OQ1v;VfGW1(XR@*06l>lOGfjZ#M9hKc^ZVPpwznHM^1i7dQ3BFz+w zVup1@cYMWOl1-&(jod2{pr_HnY4zGnjG2-3JaQx_B2iU8o!PFLFO_C_YT-nq@t#{_ z^PF4LUmtn#lLK=6PI#Zrbeg7`Vz|Fn8=wD!jw@61u91KpBhU@$lB7Ky@*Sca0Yon7 ztSGYZLXJ5dfHP=rk6Tg;=zyP^sSs5g?_{J7W!WKgHxZGL&th{_WpIMr(sIX=d6Qb_ zEP8Myz~)%M{U+5?HI7Sy-qyOrL*bqwhkU43W2E&Wb4=20TQi=J6*zs zO?fDA{??x60D_P;U7aReG33impc;N&C<(5A+)HDdODDaBkJ7KZ6NNw5C&_;ZI@4z$ zOIuEMfnOqJAf82z4+g4x;MaXgoL%etS|W@O?D+WL3QbP2KPc9i0b$@E?H6t)qlkiwzAOEkIn8-Yw0~;ep?giY%cCxGQs)zWsTqPizwer*ZgN6 z6%O07bUE?kwWU=AC%m^38L>iieUye&BCT1#@QPLhmB_cduH}#Hm_sO?1 zoHamx8ZWXndew%(P{H1>Os|cQ- z(|0ei26EQL>K$eYWuXEOC6Q7-Bm&Z010)9sQzZ_3s^sbvOQy=L?jcC)k~XNFy{Qe} zUUT+R0XH{FtIz_i_X`{p4l*pFU>I_d^ zQ#4AU|MH4$m$zk!wtBa+K=i;Pc?+Q$v+THDRUPwtXU5J;advT4VrTV_Pkegfeu_qP zj4!<_2D{~c7xwTy?vi_>gAbx_c(ryHap)akX)n5Tgh}oJOTe2ha_aziU_FVDQ`R7h z5;0re9Ep?IkuT#y%RoqLe(qVhXgmN^CH377T$uS&I9esQwkD zYh*EEdsB96jimi8F_@hgwgqKeTO+h$DfYZVLyf(EyxPwL-H|C5{}|P%%Cdte&?d_M zjdk%b<;OfEqLoCvN7nFeAzE)Dc$Z!~;=mLOXMjx%PvFF6Jdm9_1@+ zkc`Ek7GMeKXPgiedYa}9`84+p%b)C#wi;2CcxD?XvUSjDu&OzbVo^QE+t}V_Zd-NQ z`xiap!5yZZC`}b|1EHs*HWx6gsV(V|mTynH`$ee&t6!0J8_55Doi~%XS`L3--GtFj z5WgX7hYVRUa2lAIN%o3BOV}_A1?z>;%0LP=56Af%V?d2tUF2v-p=$y&oe()p_&^zZ z-x>0Wf_Y`vxDsi@JAS3REZkM5@`0X}fa?4>w=Ayceem)1rp59^na{s7VgDP`zm4Fu5uA{S z4R^EQZvOT2KYu~BSxjPth**mdGDL~yS`~K$*Ce6QiXeY;@R2H#E^HV+X0xdOoD=0< zB6G*jpaj!rPy*Y#z;HKf?sH7jV-1y0F@Ak)?v?zoIGX^a&D~3boY#&RTPxIjZAx&F z&ah{m&#^yv6N0^ zwty4=QvaM%X}UuUsUL(c+JzkgrP-6wT4iQ2SV$KjTb~ z%r{`0Zj5whl7EOm|7Sa+>rL7f{m^ws6;%=CVG*^?apR3~}?t`pGIL?3Yv85Tg|I@kTa&b0_|BB3t;;rr?d z{{;ozkGqFY zkhnU7*H))2AUtM-wZsl(yi!?YTyID3kkVA!6 zHpH09cz=1iGsg6KivN-$RpG%W*vSSE0)${fS1f$ecTiXI1+WcJCC0=`E{VXMe^_7* zBx)>mO=HqTaZ3>2)+`?}$90aOM%BQIzQz>-8~-9pee4I>MG9g@Z!(`pSC!l6Da)R-Fk z+R?Mkfxl@$|A@bP@FqCRBBFD4-baMH;D&`JgZ=y7(@)29pNt2m1_?%8<>JmJdnGy= zgv===5lhq>mTg1_`67S^!cse=!2}RAFwB(_?7_MoT~?c26HZy7@%&)FKBqtPhZ-9d z8Mx+K!SYkL>*!f(SQ=)J@~9e=FX&5J&OYYCYf#S9@mVNlyPr$oDKAsbEzj}<% zNmS)MFP~qKzB{6Bpx2F2#^NX{)!EE;@11Sbw+%{?E)+jfu3~Xmv=S-{;1AnF=~E_k z{qfZ=2%;@OiGW79(*3>KTNJeK`X`deq@*Jg^?#!v20i0M~TL;&;8uC$L`5XtI@YN zq-w5=Jc-&pYO_m+r`P)NwV3AaHvevVcB;OYGp(}y91>IsY6;~Pdh;*I*d5^)Ho*S7 zG`s%OSyh5ugBSl;OZ(6*T4<}o28^=5bRXR}Z^@R!-*;QJikZTLhE+Kua^32MFJMGE?6 zFk#;V=ZK1iG;sS|+uU>>>dRQrbUX+aKT*C3VJ@g`)|DA}xtZbK_JrUN)yR-Ap99CW z(|R(i9IQQa-fRweSFm|$_~yQ@fRS#Q%VWkIOu3Xs@j;X26k-QVPG8@@^(^Jrz~$uY$sfd5YEImoI@vfr zuKsChsGDnZ+N%r0hP$3rw!eO3BUOU2tL(pVd#^#AsKv#L2{Zz(Ge999eqp^G7HR0~ z;=dVuZEFm4FhYGe7{+AaOShbti&cdN|A!e`B!+<&$sjTLpx}LKYIKuO<-Pjl2L?tv z+w&xzr^eK#={6j5Je~aFwd4jQ#A>Gl{QKj9Zr<%?r3$ zy^~t*d;itiq$_&v+2dOWzg+5XXjKkK2vGt({oGk?BtpwwgC;@rl<}M?^JWEoZz^u z!6Z*T;*|~4){xmzlH<<(V24byV#b3TiymiLFA2=jY#vP7^DHT_?F#+zx8c??p}tnW zl9q^fGLf@98uDt+5~@u?MQWC(CC*#~o%IOXI1;hjeaBAtw6fr80Xs1@iNsHO#{PYYhS-P*_g$hJYJX7HM2L@oDLQSkBu2Mq8H>?vJBNqv%dGintopJb1G){|07S5as>tlDd*IvuI= zxma%tp}Rd1B_k$wK;6sPDdALPL2TxY!p335v-SRkZD2nSo+u;BA@=>2G?E@9N6#>Y zR0@Cb=En)Qol7^ixdb-J0F10aL zPpWn4$>P~qZ>h*nIod2oMgPbz-@Y@nJ^o2SL{3-lu)VGO$$;2|(-&$R9<@FmefN1& zQR2Wcb?qb*lj`Hg9w#0jEjjV7GiCd8n>;70o|L@3fr^ifZj6`pr85ET)hT0bS7fQ! z4B(1B3Pzch!Por?5fL>Ld2OFMU(xbuK-EowqjrF&Cy*Ep6lX$O8|1t1a%%{>7>J*8 zHOL6FsXOP@QxiPjb!L0I&XkVs1h;IamR^mc<-Ksnfjqz2I|*+Guc?V2JbEO-+3nJa zu*Qt+--<5HHC_Amu6J9XTJ{v5a=DV>BSZJsZW*hw*SAXtw>w{(u<tWN zjq+d@7)Dj7J05 z2LD3@7&xAC4S-AS41-V0?;GZ@Bplogh5vDw81QiPb#d_v@!kK+aZ(_})zRP2*WSs| z*^Bj;AHfH_UETNnatI1I`MI28|K%9r?#zF06nS02{+z!&7KXm6VE?~&Vh>kG7iREo znc!^T6gwLPz(fCY=WiI`>Ei8b@9pR3j}MSzk3j+ZfM8!JK=8-i;9dzrfE0T-3;=ga zqGlrd+nK;IDGGoR`w%GL;Ta@B1yEz}h9P(F%tQmwVvnH?k)i|Wv3C;yKFFyU07mTn zB&hv6b1?zT*n>L37lmEwWuOL0HvCJb2!nE%;vUu1YVqoLmb3F zoJzf-@>V%5oOTdKNQVcUx~n1Xh?)i;oaO+=G^_v}IL)O&V-f&PhG+CSTIj}2+R?ZY zHJpNj8B_U(~S# z;IWbz$5Ns0@zTH$IRZ`$9lUtn%r=R@@*OXKruo&YLtnP0sFUzwR^jCvzEP|r$_CmJ z%FcR4HVLlbUN6rZc&R^DNbSF-c*l?O>HUpGS$0u2F{@2HbEP}Y)~K@)fzOT%#@R?v zXG`yGhXLZm_y~g+X01l&Pox_d5pbAUi*rzFK;hYmT|CKd=JY5o4Bf`P zc&|SBd?+8kAXDGi2Q@PckOlZKW~Kw}w9vxb!FFo!KD35>9Nu5%CTWBaD5=Hef1^CG z=}V%Pb+owlDo4?z+vs@iQbuxf`tv!L?{zuCHhDQp){Ff*&Y2b-JzrvjAxT${6>C6QJLf0ZxGSrh#w*gwsGs z9rZt6!f*nF6Cj)b;cOtB4TLkI|9T@@9>eV&lOqx04#A*nd%#6RJ{L^`PBdO>&-Ai)k#$uxpu$ zz$2niRQ+gTJSC9)fsZQ^HQOKa-qgT8aJI^fc5;A|7}{hlSOKvfC!v59mMxuV(U<%aBQk zh4gXRtpt2ATk+JoqT5u74XvS)aM3o_t%57YiV9?s%i>Yi18nyUbt}j(t+(dCe4_gF zTGaK(>;q!5VQCe~IBWrs%7Vl8zfEpI0??lHuHvpvz-AXw{LU_d5K*#2CF@t1R3bN^ z54Bd9sA9aQ_<&+U?wTDvM*#AkFjW90fK&mO24Yd<(vq2Ge@?Guh$$C^5_(+TpkvU3R5s zY$dSlhNT=f<907!b7dzq*4A3o3AoO5zwnY26Qx#q~^B*nQ z5uY)?eJpQT&2UrSrKn7sw^fLDNRN@+v0bT6#zsq&d-G6rk&18 zMLq@uRxvHi$?di!Dk7@;Kc*&kv*9IcF_^XLu$HDbpZF@>Oze)Ys}&VWGa{~8QhNSw zVcY2$fv_XZ=PX0hr<~|oEgJZ)=G|+q(=LN8Jkozm#ZECEnDX)4H|C^Xc82UCyP!P+ zuDuKRAB`+BlmQSEYgi1Y%L!kk)dCocAsyRV(i~-s`J^Us9q#alx+9cOz)OkOG46M~ zF)AZC0gDgwA5lg?E{KOtsHd`CZ z6kS?p>NRUEmZYi${mnePd5UUZN}=%jCH0x$zC7n}js02H2$Z>Yv_4 zTnNj+VgfnGp@r#ZlTp^4C!)2fLL`ll!c-}p>C!_c_t(_SMgeDwPIYiQEWT05vZ@q> zcqfkwMAwD;b>)6Kv{|LeI@S5vW5|cie_3SE?Ahrur*$8I2k>88C6gE{AbWQ5C0tKe7~$LBet{l*zaeNV%xze{F$OKLvgo2hwpBzbJ+&M8*!v8UrkZZUUa71%F{ zRKF)^oXqV8IBI6(eUB>?KuI$cz57qKGL9DrRK5DHD*Bb`UYF;tR+0Rrb|Z5nVVtzL zn7v$jM@1C?iksxnJZ%}^S5`(h5<{&aPeibxzGyEw_c3Tf3Gp%yMU*5Fel=67KE8~G zPtx0RsdM)qOQ(+Y9#*-gd;Me7{(}WxshfoTui5-+Hjn$>l)kau3cRl`&A^2gz%LoO z{fVIk-#yBz26!3&Abb2uY}C9rx0vxp;3Nq=$!pnu^*yDqJ>uCGEA>%lWE%ojgVO z$H(eF-!jqC(3Wsnd^_)@)?-&3KA7tmU*ymnylyFaWTNv!>}{CS^1BD8DmEU8srH^# zg=7ge4W2=L?=XP(SLQR?d}na*)oE?FEQvczkO94TsdU{3eZ>I-_qRCplZL_=WPdV}i6^s>6>;d|L<{6zOrcdu}flDsGrKN1mS zFJrMd-)Wik5khKIylAsW=(TnQT?Np^0F4T)s6)okVqy%*s(|$9#SuPJYIzRz=#D36 z3X+}r`NR>Oe6K{a*MWpL0v>4KMX@T6m{D~yxkFEoS`vTI;EAAJ7pV)6q0t#bZ2?n< z9BCS zLPVHcI4jvpobvf54^b8sTymh3uXCYRO2EFR`SkfGUpowMJ^8do7*NxGsCHW|_^Fl# zm+O85Pmb_Nh(~b+I}Tb`2mwJM^+ zb^m5V+H#M0qjPi$zs7qvM+f2^tF1yk`v9t<{z`>2Uo(?Z5`S#Uu!{kn?0AB)0g$8w z#Ef`ULQ&ry0cd<+hL5RGE=pzpj=wdeDpC`~3C58O2Z1tf>4nOBC46!CYLl^VH=d}u z(HyeAuKV)BX2j5o;ZGU2%X@9N6yGr1mOJF6u%^=Y=7h3r^HRNJ$lNIhLvG8>^LBUr ziY)uL(NScnU;25tDDpq5@ck>J$T;_IR{{Tt4hPP?gTnxvd-uQJy^Gl65{EV^urnky zz)prlEyhrsrAI!L>T!n%o_nN5lG+#(mtI6wqz4|qwSRRxl_P=+58xZ%*-qMB+$6D_ zt3M{CJ__1_jTe$(BngCCX<_xM8LzAb!L;qsxPtz(>l_og;*{k@5`jUE-4hRJB0>rm z@;S=dwWV_`&n7AOD%@8;*m|o=iSSRvWQK{Tyc)y5bQxAfo9;4?sv#UVyjOA z>N;RxI1ZDGf)3lqB9l{4tLb^S3XWa^K|#8s-rw``CT7Z$&g4kCA0uUm%MvGdkkm83UP7XGavxjb`_j9bDlU6EQe5?5VL8-c=EOq;#PPgKO ziAAg2G5m~#`b&EA?Og13|7MysvSy&gBl(Yvk@e18>SPz0p)S9 z#f#u>6JIi{vJFy6IpzYq#s?_ec^!A2TO@%EGs#MaO0r%W+<9)*F1umuyulET$;H@w$Y0p?D)#j`(l2rPc*Ge->t?q-jiaV zL#-z*0!N1Lt~?`5zgec~x<`1Cy^D}upBNUr47>0m03wOg;##WhZw-r?#Pf>vXtX8i zde#$ozri%AF7Q|97sG-6xFkFvC`dtnCv}e`u_<5#^O#UB$fdzl7)TQYjIIQ0F#7ZG z$MD>;Zn`Tz+IQtK&M4wSovrwnL z-iLx_w{ix$dKI0fLYBrE$V~dqQ}*}br-ymB2)90%>*zST>gr4!dg#nWGPR|R(eF!# z6Y|NNw_lC=ax;XBt&m=gdI#UR78uCm#Z+8OU=RuH)RZ-Z?9`-b1rL-mA#{!{J3~+Z zc|79VQW-?cCB-CJSRqDr;$0R#!2$Qxx@k{a`JhKL@+ae^3tX?ad)fxgDeJZfE$dEJ zaT+^HyR?k3>T0DIO5eCF_wMBvnej_ECN7=)kP7>3Y59m`3*b6lF|gOb^S|qRKr>?` z!De7T6Dk~FTRrgJGhfgn?_ElSwn5E2Adckb6^D01_C>a3OeGhlz9nj;5+tPwqzOfL zJRo;Jd7$p{6*rT(qJuS=ff|C_X`XB6T94bGNz|*^AD0!`z9kkDbls=arQMR{R;>4r zN3~`r=6y2~?lhod`Wk>b#uYGt&HIpjvW#f}Dv*`irZ)dc?>b)(|D&`Y5xpic3DS$4 z$CeJn7QE5@7*k<>>^Nuc(~w#j0mWO6iGFr;tjEbY9$#%femvB-Q^~t&lp=!s+`RZ6 zMI6~i52>sL027Q0A^`}&3vzadiHj$zx@M^6zetORsH7GK-tD7y*@-bArTGZPA*`sU zA~F+Xs&Nu)D%RFCQ;`N$9)bI-r!RdV;=Fs43PAL7+kTDrzA7UY2-OobvMUXcR2qNF zx^#{x%xOW3ET`s*gfTSxhy2FrPpU}=0Egnl?`XW#v9dYzD7<_Ihv)$~l)#8I?}gse zL#18e_Q4rBNx~mW&nNe0pL!c^PWjM3;ZC_-nGCUGWz%^ct7X zs!(m4gssmK92(8u#NqYN;e}J7{~0P2XY+yz>~{iu_rKd5!|{y&6`nEs9v2~@-9<3u z*^^&K$vlV{rOJyejRPMbvNd^zt-h?*yu|g9>zW=UVl7w`3qNZ==>veaOqv7 zVnc3!d3qO@Zv45T;L?q_bRz-$|4N}MF5QSrH~ybslLqh6GDXv-)v>DHDR$G1@}Y~< zSHLi~iiBD_pFHAK7J*7>KxVqeYYB&X*c(Z}Jzj7D9s3jcMF_h#6C?_Ob=X(WlX%9Q zza3X6OG%WOt(VWpQm3GmL@->JVBE;85_YkTerw4!D$N>-c>3wi;+Pa9Fhudj>4YtB z`deCN>kl(L-8q;mKODP2`S!KT#ejz|n4&>z zf&i3o0WdcIGyX-7s>_NTdV-AoL5*0Rw>E)Y+GC-Mn&PdDZtTVJDX*$}id08aSjMJn z=-YhHSvx0@)!G>W+!1C9b$x_XNtR^$4fU>G?5vx$Uqf-{%vHSs+orN?(3I~+CENY?x|)E&03D< z@|#_XJ-6W_T17tFt+A+mzf$?Ko%^U}&iYN06ucyr`_OAw@2qyEsly`@iA$T0Ch9Du z@!J$EWEN&|`;+_HD##Fxg^>4LOEW*C1T(yOd?)mXgkIxspidthq6XRX_=CckEs7?D z@A0g!-S(f&=lEi$MUq*sC+q<$?^{iw83@XGMRI$>O2i^0{@KONiHGCd^--!vR#`7T z8c(W;H&Ha?SsT|%T`sf-&b?{XfKZS&R zN957qTO#;ec(d6Fo39%-D^TU?5poJW=uik12k58OlS^QmZh=}3Lr%60VLuNCf7V-e;1$z^Y_Xtr=DVn)s zlJ5|VrCN0FII`{aB!4tw@qS-BPAruGa!_w?Ph4m1Gbh#GImPKk;x}a zQZn+5RXa6N$lg7EH9LLPZWKI2v|gZRJTYZZ;khVzu011csFAV-atj^qo_ z#J8yB>djdCT%^pHa#-Zl$j|@qrDH8o@zcAW)`I+#Kjv!FspXoir^wY9kL=UuJH`fY z)?amLKKdZLW104|q7L_LTJ;$HNOI9B`vWd1exkOL_^+25Tkme&RGM42=Tqqjh=Me} zxqM--F$#1I=0Pmd1raKB?Cjtm-vtmFEsXH-lfRB#H%ftUuE8$FRmY1P%e1F!$TI81 zdH@|(ypB6A69MRnVA3U+QD0;_*gOQ8?9P7*y90pPhDH+gblztkaFwhKx0p#YV6#4_ zKN=ACUXeG@IDYOE;<=^PZPDVexSleo-QZC?n};`BqqHg-=_BH9y;(?+sd*dqhIzX1 z>QkRt!%X`nNYr?vRqQVMf>=ejjHntwq#cb?cd-{Yb)3W*>x?|CZ|S@=yhs#F3OKll zL*o)$$|w1T?Ks>DBSO+wGs~B+`NWlqk=kXM4wb9HB8LY#1Std|#I8yq=8kiF?Q8#ZGWRVvvx^j(8m&U|Rd;$Nc)a?bvvtef_^8q6 zuu6F&mFdWYd%%In+w5Wijf_=+OBZcDsc+gqk_@h#ak1L`$rAHP${!_ zwD?q0lyt^9xN(k&F;}(qAY~zM*pbsf7CiZ23xSQZYgG9pqBQm` zv0qV1dfkgUiJR_u@2rRscb(JU+e^B=RsI$d7H^1{@%`blx{)06thhpZq{gc%HT}J>x-4df*~F6Cb#x%HxN& zTV%1+C@qQtmOhY*e2{ngJs_Kv@KU8bj;adtqzx_AicQ-vCKE_{r8Om{sSfSEvNoEa zIiM(TrmBZe+m-8ZI%9tRL-O}sHcKor>yK@hBXT;=$dlap4!wx1@A-1q{U3@Sl@q2fjV ztim%r%AuKc_C~e3!Ek`-jL6c?B9BzUn4~~DR9N=((2j0ED`6+R_59(uuw-NV>zVv9 zXJ*I(nLM-g`lim4U8dZpqdCBpy`}b1w$bq|wfdL-%6f(4Ub+UdnoZ5EuE8%@3t$7Pw@x3lCxH22Ox#Pl|wnFvxoab)O~}3`Q2SRvN&mjjcUZlsNPe zirThrCa&$(Y!|O)$EGP3w6dOP?JfM)eKb_|xZugCyPGazl#DUzf&JZ6{A)SvL~D$4 zAMmI8d&1HUr+c?`+Kb*-y+3rfZRS#w-IM$J=ke{O{qCm4?BdObwgx4-<8r*A8X|_iq`M@*I8;6z4pB?{mM|TqaT_l=d=cI{DNX^<@e8p= zphOLszs7v?00pXt448L7*&XQSi^(u0H4*88Q2VumBeL|4y$0q5&kGO<6R}jfgvs}W z!g+#&<((=huTYpKHZIvP)GIX9+eb)8VZf}lNZSzQ!c0feaFP({W#!u3v0#zP z8?!AEl5R(Y`C{3kLMw|(7y;+l{UGl#n~!_(ry z#Ye0RE_G5n{hpCctueXnJ1tF4|E|NETl^|mdkIJcMOa=OOX8)R(QIVT)Omr&Me>_` ztlwjdY`ItMF3Qy-MsXr*MQj00d$tc`^2tF*q982kQ zyEO5rAR)OuxwzFqTk~(a;ku-=@2|Fbm;^dle5}eoM4efAPd&9{f$b(Gk%+*UR`gNs zrq=J%R!@2!7x&}al@l3HRs^D{>DY~icBuTpNGd-ZbQl@^eRUVY1QNzqS6pw$>OEjs zQ179++8TR?;QcAJ9_t#_bcTx1r#2k9W%qiQM@yz+ZrwN`6gxJt_S?(8iTA;LGsD@u z&U?fc9qo+{1^)f+CRx{T1OUt&V6c03YK*PVj^lvzAO z=yg&IYi-(x>M)(VD@TK1*a>7;(2BCBiY~Po(KSGTnmDSyKD6?(Fzf1e7z7$ zrz0X@eYTr7GLdW>Oj+AqNdnyw zKga&}*rP}q?mqG|02js*w$lK{=PdXIiWB3FMGJvVBfmd4Oithld=qwbrumUbDob5M20K4v1MSO|$dXfB~>C7x?~qa52*mLmVtBNw}Q8Vl4KR zlg5ymqmdeM-n&D;43@klCTL}PWO%Bqx|^l`AfH~b-SF(E%QQ3oYZk%{0mGe7?^s^E zcmk5^F1#=ruNFY(^ZnSm$Q*w+N4=G(fc*0SbaQ)2tboOCIpEL`vXm=f#%B6Wzn)wk z=}rB#%s8$e_S_tTNosB$%)(q3zJz-EC52bFd>z-T&GtO5Kr_swuo)(q+t-L#Q;F_W z9qI0I9=F*fE@odjbe(3eOiVOmLKdVe|1=fQFJ}O&;=!h8@!RicTLI|YOti*RsH5|; ztdH9B4@TLPlEBw8j3r1|{On4J84jXCSqr)Slc;L+>5C|O^)&eKvmT)?r)+!p zaDW3aDoi{4UjN+8V==x?nCrEZYv0sgzxuAsC*DZ6Xz5aDT4QW4TQ&Y$?|f>@OU>7A zYX@FTb}rvf?-L6P=xqHNmpFiN`F~*etyX?M8qqO>Fl>IVMh0|!=Z-`-P{cO%cIvh( zvrqvAf_$V6VH1;^SE5$=sJcFV%{hRw9iD~15L^GzIDfR9LuGYHx57tmNiWH*Gek_s z@skeSX*nhBXj0%_aSflXK-dgyxc14)aHs#tWy1G~YGT`)<;pb7L~|RJst|v{ds;E5 z)d!in!pz;ElPB${<)RS?4Ce+*U0HZ4jfQF^fY<{&MH~iM&tS zjV{G*AsUvai&nds9yYJEO|xh`R)D?FJ4Lc&DFsbF(c$f%t?^>&#uUx7is*WkB?3{B HV!8hZ7iwU% diff --git a/resource/animation/character/monster02_move.png b/resource/animation/character/monster02_move.png index 75352353368bce98e9e564be349970166e278017..43d7e5bef18d585c7def54e28b1abcea3fcbecd4 100644 GIT binary patch literal 5181 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 literal 12712 zcmX9_by$<%+aDp_%>e0;?hb*Gjt=P@Y&4Q8Al;1ahSA+$LPAlb1SSniNO!m5JAUsU z+n#IJ^*lTGIrlmDC+@}SYO4|A0r3C;0HKCDNFM+|1EQ{f;b5WOAuoE-Q6FgD`f5sm zh6(yT0DuXg0a7%4n|~BE>0-Fp@vp{TWG@y6t)z*>tc)GQ3GY%WS(R?249c7;`5qDF zj~zt!W0U8<{u#k3>VCU{gEhHb1tvwqAr#vG*vA}b5IRjfDFO{xyC zF$#82SG;!05)rk_4&Y8tNsA__ zbv;KAcS|J;=gU7p43z}P#qkC%0ASJWsePAE+Tv0MLVXc?7G2xN#HOE4n-X_eJ#5O# zKT}}(TLQblK!>uIfF1tTbwN}?%Lb;*pra{GXFz1=7bp~<}!cJ$j zQ~cykHBOjSKSfSeO6w1ef}io)w+XyIea(cZOV$2=mkzhVTyCEXjb{dQ=X9*kTi#Qq zDqaP(>}ZOq$1TxXu+r*Y42rvIYj9w88q6EcO?i!;-bene_}qxNNo55tMt@8A|B->c zN`uwgJnuG*|H=*M8b}5YHHRGbKrqSk>MEv2##hzqhey>A_hgIIhVcKtgWGGaib%gy z@jCG4>+vHx2TGhLt>Ts5Ou?fg_~|Gd20>Y zW<^?ceqO;GC9@$`h%rNk4 z%Z0pO;Qk{js+YQ}YUAoE+Q4%@vd6887@gukb#WEQmYJh>iI|t&!vaiPqHthza!~6d zFPe6?ws{YB6Kat5s|zWm<1ydxyioCISaEo zX4qsQdi77ru%O)P6kdY6VW0K#iVCpyc$}HuWuKZ8HcBjLJff$ydRPY)xH*@}bmw&H zcuj{&Pw%d@auz83Qji7si!Go_!XiO(WKQ~3Q`Z^WjqPPSPm*NT!OHnBf)Nhm97~%A zJu7W)nPXQWUMudMzrX5-is!#uj5xJ?nyO0FG+0=Y3pt@`)R3Tb&m?G%eAnsSTYv^Q zJiO6N5`(9YKveEJ>$p~lc~-X@g8z7C$9wO*m+@vs5ZwM1SUf={4Svf|xL8t4100{Y zi=oCaG4s}duvxQ8oQBksbo$w!y|L^V06^T(J7KE}J~`n$!P5h8H)9C<9JcYZ``r24I7(?GV+-B;Nu_P} zK09~3E*R!E8@Tl4^`cUAFTrc-I4fp0SKrMm0S@Z)*S$PB73mvy=Utfy%G5Ev^LO=| zYu#3gAH@IwxTb4+q2;WOrOoTWnfh64{9iZuV_(<2)=Nk4`+^Cm&9l5uzH+s?qs>|T!@`o-FifO%%F5(o8dL1z7rGUU99WAO9ae$n64WK3{aR?FQ@cg;L zPyWN!xG>o6@xQ)c*)#cn1(UeDWWtqV1D@#X%Al+C2b?K^jn8|vW&=XQw9errn*&

}FdOLG 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 diff --git a/resource/animation/character/monster03_move.aseprite b/resource/animation/character/monster03_move.aseprite index 24368ccffdb24c2e07b43467e97d930669ef1f33..d5ad94e073e4265812703a9d9e568c6e3ab934ab 100644 GIT binary patch delta 5810 zcmeI0U1*zC7{||PJD4rHVFxOMwV6$!ap_0S(l$+#v`OB)`B;)>)1_{;?bbGn^fOzU z%r)Cg*VbwW!XEFu&^y7Kp@LpmWr!$>unX^YQT0Z=(}Lg}qCPpCcdX#WLwSW1#P7-U`*{MF%<7V5ca-h`~6Ja7}XOFsI(^ijt`r1}deY)pNnzFOzi0kn` z(j&{MLvYw`$J%Z`e@pGqB_e01XEfdicf~6D<;~M2ahAvkKJ;A-?sNpW8{TlNqH7L{ z(W+sXp~nJIkFe6iEmQ9)sC9PA-mJr>vmUjrq+i7^!$h8u#4gD@1b2sA=)K2MMU!*J zjFX|7{97XGYxJvbgr%CFg)p*k(t*Bw>%kB_O==NjuC4z_M{U}s2`#Mtm)T* z8_Ijl!IYRHa$?HM9mw$oqTB->|1x(<51YwZC$7inl?~T3AJMrFK8b8#b>mu@oHaWc zo`z*vV;ys_2n0iAuEAHKQPD|Ukx&Y?vD4tw9sDE=EKc(nZ0Y7O%uvQG*O)cY93g7^ zoYGcj!*JxRjVB>FlI3yuF`gD?Fw8g=_EOxqBm6&8$Rg1z#zZuTDc+hM#H7lmH@JY` z(|K`?$S{(@$6Sz~)A=B5&Ta4zgy)MQPGlI<^C0tsCD#alz1W40Z9j7v-`_hkVv29g z@V*(Rky)obwZ{RK2R^35cVm8>f)0$YsGEryj2pxr8|%=R25aa2INg17ehs}gG_fYA zni!LJl=)zLLc=qxXYv}7KAtQH>ZIvYdT7i6`jnSDU~Q_5&flLYi6XHUT`>Zz3*O0u za7Oq!a~&C(3s*&&$Z#o!huPup3%#gBPj-d-VKbZA1>=}xI3xpiph=7wVl6|emTuMy zpH3%v5E^D)<@tWpNi-)GM=SKxUC9vxs`08(HLI z$Kl?55N~%)3rkqb+Y8g=Ulk00RC;U4g>cVhbFc9*{Fa*+<3v58N)HF-swMXfz{O6? z)-Nxv@F+wsjfx2($JjF+YyiHvq@kkw^Bc%`E5Dmr>jgQlrR2O8mGfGbxQ?W%$H}Z< zEhO+BmM<*xe)yv>LB7=)XH7S2#oyN&VZC@9{yh2wd|P}O{Zes#wK$gQdP5Zti^4BU PiAtiCR(UUcR$BZQ+Nr9U delta 3751 zcmd^CU2Kz87(S;f1gwe#P|0!Gh}jrxOMkZF+OF$=zpgFamF;LX?Y!E4&e7j0r3OefQ=2a6P;6BWa@XqHVtR zdCz&?=Y8JyoZda7y0}DD=98bObebn#q=YQ}rXmSKi0V>)Yk>Z@zhV^$VNyTfYfZhH zv=S5aYrdxqaBE}YAEF|nI5na;HMmYxT&spSND!{q?xsfA=E>3>@SbOo`8aGu!rF)c z=jy|VovJ%Qn_#JKplaAgj)Ps|U?rV!UTf4G5ueq>MvPE+egxUrY;nd%wXcY}(``rQ z&3jUGI~W`K*(=-*0SViIS>89=;m?N0s0rp>3>q2}R10StGpv`3@k=qwD%LjpXbaqF z%A<;VhQ_OgwQ(FOm9Zh`MePjg(W8qoBZsZj!=y<|Dq2y+I{g?bQ*L{mDe=laZU@f_ zMXuLwhHD8uGWyQ&j^wQY4qvIdpSHsJS7%V|Z%kR{<*>eo74pMQiw4&ZFE>F2PtzzV6IBm6}b4~lw zkKpouODz*zj>iN4RxmEt+xNNXVgiOWa3I%)|;^(GqgH8O^V9cx9A8 zy)YNbQztwfjqG-?ElcaeVoqnjCW)2e%b5BK3LaRqI#I?JI)3CG$h+dBXQ%eq6ngFBV?*o>4%_(8vTR}T+M0I<|i#YXfjmKD+!^@s95IY>5@MC6ICrXI*WtE)}-Q2oe z5)TWhhc&q+5y5%YT#?hI96g`EPIkelNT7V{*%n#T!@TL>


L_t(YiRG0$3d1lEMBkt@rA!e>nd7E3q)3@FiFFYKvQR8p z>ms1()_9+HJo-oq_PkyIc)ULVZ0rCNmF@LN{L_t(YiRG2O4Z<)Gg}*1yM9Bt}Y``3;n1c-{*?^LnqN9i` z8Oy|uFGVE3?xNh6dwKqm6zp|A0dRSL07z@ISyC_nvsnOny{4ar{6i7$8DJBjXMkND zl>3KwK%&y>sye6v29Xpj+Ar0;oaI?V$SDB+XLEZ_06eaD;zE1wkfmTbIImYNwrH51x&nC00000NkvXXu0mjf Djcr+L diff --git a/scene/ai/bullet02.tscn b/scene/ai/bullet02.tscn index 1b4fde1..d7f8ec2 100644 --- a/scene/ai/bullet02.tscn +++ b/scene/ai/bullet02.tscn @@ -8,7 +8,7 @@ [node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")] script = ExtResource("1_go1b5") -blackboard = NodePath("@Node@19487") +blackboard = NodePath("@Node@82296") [node name="SequenceComposite" type="Node" parent="."] script = ExtResource("2_k8nph") diff --git a/scene/ai/monster01.tscn b/scene/ai/monster01.tscn index e98c12f..945a457 100644 --- a/scene/ai/monster01.tscn +++ b/scene/ai/monster01.tscn @@ -1,13 +1,17 @@ -[gd_scene load_steps=5 format=3 uid="uid://1bjfixh8yjc1"] +[gd_scene load_steps=9 format=3 uid="uid://r4o07ns0q8rg"] [ext_resource type="Script" path="res://addons/beehave/nodes/beehave_tree.gd" id="1_bbyao"] [ext_resource type="Script" path="res://addons/beehave/nodes/composites/sequence.gd" id="2_04nig"] [ext_resource type="Script" path="res://script/ai/action/action_find_target.gd" id="3_c43ds"] -[ext_resource type="Script" path="res://script/ai/action_with_target/action_move_to_target.gd" id="4_xtt4k"] +[ext_resource type="Script" path="res://addons/beehave/nodes/composites/selector.gd" id="4_hf0vc"] +[ext_resource type="Script" path="res://script/ai/action_role_check/action_role_check_is.gd" id="5_niu75"] +[ext_resource type="Script" path="res://script/ai/action_with_target/action_move_to.gd" id="6_l7hec"] +[ext_resource type="Script" path="res://script/ai/action_with_target/action_cast_skill.gd" id="7_up57t"] +[ext_resource type="Script" path="res://script/ai/action/action_wait.gd" id="8_pkgji"] [node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")] script = ExtResource("1_bbyao") -blackboard = NodePath("@Node@19488") +blackboard = NodePath("@Node@88159") [node name="SequenceComposite" type="Node" parent="."] script = ExtResource("2_04nig") @@ -15,5 +19,48 @@ script = ExtResource("2_04nig") [node name="ActionFindTarget" type="Node" parent="SequenceComposite"] script = ExtResource("3_c43ds") -[node name="ActionMoveToTarget" type="Node" parent="SequenceComposite"] -script = ExtResource("4_xtt4k") +[node name="SelectorComposite" type="Node" parent="SequenceComposite"] +script = ExtResource("4_hf0vc") + +[node name="SequenceComposite" type="Node" parent="SequenceComposite/SelectorComposite"] +script = ExtResource("2_04nig") + +[node name="ActionRoleCheckIs" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite"] +script = ExtResource("5_niu75") +key = 1 + +[node name="ActionMoveTo" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite"] +script = ExtResource("6_l7hec") +dist_max = 2.0 + +[node name="ActionCastSkill" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite"] +script = ExtResource("7_up57t") + +[node name="SequenceComposite2" type="Node" parent="SequenceComposite/SelectorComposite"] +script = ExtResource("2_04nig") + +[node name="ActionRoleCheckIs" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite2"] +script = ExtResource("5_niu75") +key = 2 + +[node name="ActionMoveTo" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite2"] +script = ExtResource("6_l7hec") +dist_min = 3.0 +dist_max = 4.0 + +[node name="ActionCastSkill" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite2"] +script = ExtResource("7_up57t") + +[node name="SequenceComposite3" type="Node" parent="SequenceComposite/SelectorComposite"] +script = ExtResource("2_04nig") + +[node name="ActionRoleCheckIs" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite3"] +script = ExtResource("5_niu75") + +[node name="ActionMoveTo" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite3"] +script = ExtResource("6_l7hec") +dist_min = 4.0 + +[node name="ActionWait" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite3"] +script = ExtResource("8_pkgji") +wait_time = 2.0 diff --git a/scene/ai/monster02.tscn b/scene/ai/monster02.tscn index c8de471..d9317ac 100644 --- a/scene/ai/monster02.tscn +++ b/scene/ai/monster02.tscn @@ -1,19 +1,66 @@ -[gd_scene load_steps=5 format=3 uid="uid://2e2ws176hev1"] +[gd_scene load_steps=9 format=3 uid="uid://c0velv8p4imxa"] -[ext_resource type="Script" path="res://addons/beehave/nodes/beehave_tree.gd" id="1_y3xa0"] -[ext_resource type="Script" path="res://addons/beehave/nodes/composites/sequence.gd" id="2_ohjmj"] -[ext_resource type="Script" path="res://script/ai/action/action_find_target.gd" id="3_fmht1"] -[ext_resource type="Script" path="res://script/ai/action_with_target/action_move_to_target.gd" id="4_pwax0"] +[ext_resource type="Script" path="res://addons/beehave/nodes/beehave_tree.gd" id="1_c24lj"] +[ext_resource type="Script" path="res://addons/beehave/nodes/composites/sequence.gd" id="2_jjdrd"] +[ext_resource type="Script" path="res://script/ai/action/action_find_target.gd" id="3_82jsi"] +[ext_resource type="Script" path="res://addons/beehave/nodes/composites/selector.gd" id="4_wtlw0"] +[ext_resource type="Script" path="res://script/ai/action_role_check/action_role_check_is.gd" id="5_80c8u"] +[ext_resource type="Script" path="res://script/ai/action_with_target/action_move_to.gd" id="6_u68e8"] +[ext_resource type="Script" path="res://script/ai/action_with_target/action_cast_skill.gd" id="7_w5xrf"] +[ext_resource type="Script" path="res://script/ai/action/action_wait.gd" id="8_kaxnh"] [node name="BeehaveTree" type="Node" node_paths=PackedStringArray("blackboard")] -script = ExtResource("1_y3xa0") -blackboard = NodePath("@Node@79226") +script = ExtResource("1_c24lj") +blackboard = NodePath("@Node@19489") [node name="SequenceComposite" type="Node" parent="."] -script = ExtResource("2_ohjmj") +script = ExtResource("2_jjdrd") [node name="ActionFindTarget" type="Node" parent="SequenceComposite"] -script = ExtResource("3_fmht1") +script = ExtResource("3_82jsi") -[node name="ActionMoveToTarget" type="Node" parent="SequenceComposite"] -script = ExtResource("4_pwax0") +[node name="SelectorComposite" type="Node" parent="SequenceComposite"] +script = ExtResource("4_wtlw0") + +[node name="SequenceComposite" type="Node" parent="SequenceComposite/SelectorComposite"] +script = ExtResource("2_jjdrd") + +[node name="ActionRoleCheckIs" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite"] +script = ExtResource("5_80c8u") +key = 1 + +[node name="ActionMoveTo" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite"] +script = ExtResource("6_u68e8") +dist_max = 2.0 + +[node name="ActionCastSkill" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite"] +script = ExtResource("7_w5xrf") + +[node name="SequenceComposite2" type="Node" parent="SequenceComposite/SelectorComposite"] +script = ExtResource("2_jjdrd") + +[node name="ActionRoleCheckIs" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite2"] +script = ExtResource("5_80c8u") +key = 2 + +[node name="ActionMoveTo" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite2"] +script = ExtResource("6_u68e8") +dist_min = 3.0 +dist_max = 4.0 + +[node name="ActionCastSkill" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite2"] +script = ExtResource("7_w5xrf") + +[node name="SequenceComposite3" type="Node" parent="SequenceComposite/SelectorComposite"] +script = ExtResource("2_jjdrd") + +[node name="ActionRoleCheckIs" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite3"] +script = ExtResource("5_80c8u") + +[node name="ActionMoveTo" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite3"] +script = ExtResource("6_u68e8") +dist_min = 4.0 + +[node name="ActionWait" type="Node" parent="SequenceComposite/SelectorComposite/SequenceComposite3"] +script = ExtResource("8_kaxnh") +wait_time = 2.0 diff --git a/scene/ui/item/headbar.tscn b/scene/ui/item/headbar.tscn index 164aed1..6ad4d16 100644 --- a/scene/ui/item/headbar.tscn +++ b/scene/ui/item/headbar.tscn @@ -29,10 +29,9 @@ offset_bottom = 2.0 grow_horizontal = 2 grow_vertical = 2 value = 60.0 -stretch_margin_left = 10 -stretch_margin_top = 10 -stretch_margin_right = 10 -stretch_margin_bottom = 10 +nine_patch_stretch = true +stretch_margin_left = 1 +stretch_margin_right = 1 texture_under = ExtResource("2_g5t31") texture_progress = ExtResource("3_vh1p5") tint_progress = Color(1, 0, 0, 1) @@ -52,9 +51,12 @@ offset_bottom = 2.0 grow_horizontal = 2 grow_vertical = 2 value = 50.0 +nine_patch_stretch = true +stretch_margin_left = 1 +stretch_margin_right = 1 texture_under = ExtResource("2_g5t31") texture_progress = ExtResource("3_vh1p5") -tint_progress = Color(0, 1, 1, 1) +tint_progress = Color(0.996078, 0.752941, 0.278431, 1) [node name="BreakLevel" type="Sprite2D" parent="."] unique_name_in_owner = true diff --git a/script/ai/action_with_target/action_cast_skill.gd b/script/ai/action_with_target/action_cast_skill.gd index bc689ea..046b90f 100644 --- a/script/ai/action_with_target/action_cast_skill.gd +++ b/script/ai/action_with_target/action_cast_skill.gd @@ -5,11 +5,14 @@ func execute(character: Character, target: Character, blackboard: Blackboard) -> var skill: Skill = character.skill var status: Status = character.status var dir: Vector2 = target.pos2D() - character.pos2D() + var dist: float = dir.length() if status.is_skill_running: if int(status.break_level) < Enum.EBreakLevel.Break: - character.move_to(dir) + if dist < 0.5: + character.move_to(-dir) + elif dist > 2: + character.move_to(dir) return RUNNING - var dist: float = dir.length() for skill_cfg: SkillCfg in skill.skill_dict.values(): #检查姿态 var stance_from: int = skill_cfg.stance_from diff --git a/script/ai/action_with_target/action_move_to.gd b/script/ai/action_with_target/action_move_to.gd index 07f27fa..ee65a35 100644 --- a/script/ai/action_with_target/action_move_to.gd +++ b/script/ai/action_with_target/action_move_to.gd @@ -3,6 +3,7 @@ class_name ActionMoveTo @export var dist_min: float = 0 @export var dist_max: float = 5 +@export var offset: float = 0.1 #0为无偏差 1为偏差90度 func execute(character: Character, target: Character, blackboard: Blackboard) -> int: @@ -11,6 +12,9 @@ func execute(character: Character, target: Character, blackboard: Blackboard) -> if (dist > dist_min ) and (dist < dist_max): character.move_stop() return SUCCESS - var is_far: bool = dist >= dist_max + var is_far: bool = dist >= dist_max + var to_dir: Vector2 = dir if is_far else -dir + var offset_deg: float = 90 * randf() * clamp(offset, 0, 1) * (1 if randf() < 0.5 else -1) + to_dir = to_dir.rotated(deg_to_rad(offset_deg)) character.move_to(dir if is_far else -dir) return FAILURE diff --git a/script/ai/action_with_target/action_move_to_target.gd b/script/ai/action_with_target/action_move_to_target.gd deleted file mode 100644 index 22db4a3..0000000 --- a/script/ai/action_with_target/action_move_to_target.gd +++ /dev/null @@ -1,12 +0,0 @@ -extends ActionWithTarget -class_name ActionMoveToTarget - -func execute(character: Character, target: Character, blackboard: Blackboard) -> int: - var dir: Vector2 = target.pos2D() - character.pos2D() - var dist: float = dir.length() - if dist < 1: - character.move_stop() - else: - character.move_to(dir) - return RUNNING - return SUCCESS diff --git a/script/character/battle.gd b/script/character/battle.gd index 33f206c..3072c43 100644 --- a/script/character/battle.gd +++ b/script/character/battle.gd @@ -127,8 +127,10 @@ func add_attack(from: int, to: int, dir: Vector2, attack: AttackCfg) -> HitResul is_break_skill = is_break_skill_real or not character_to.get_status("is_on_floor") if break_level_sub < 0: damage = 0 + pause_time *= 2 elif break_level_sub == 0: damage *= 0.5 + pause_time *= 1.5 is_floating = is_break_skill and is_floating is_hit_down = is_break_skill and is_hit_down diff --git a/script/character/character.gd b/script/character/character.gd index 7efd476..f8e7115 100644 --- a/script/character/character.gd +++ b/script/character/character.gd @@ -42,17 +42,18 @@ func set_body_scale(cfg: CharacterCfg) -> void: cfg = status.cfg if not cfg: return - var half_height: float = Setting.pixel_size * cfg.sprite_harf_height - var height: float = half_height * 2 - var width: float = Setting.pixel_size * cfg.sprite_width - var body_scale: Vector3 = Vector3(width, height, width) + var height: float = Setting.pixel_size * cfg.sprite_height + var width: float = Setting.pixel_size * cfg.sprite_width + var body_scale: Vector3 = Vector3(width, height, width) + var half_height: float = height / 2 + var center_height: float = Setting.pixel_size * 26 collision.position = Vector3(0, half_height, 0) collision.scale = body_scale pushbox.position = Vector3(0, half_height, 0) pushbox.scale = body_scale - status.basic_offset = Vector3(0, half_height, 0) - status.ui_offset = Vector3(0, height*1.1, 0) - status.ui_center_offset = Vector3(0, half_height, 0) + status.basic_offset = Vector3(0, center_height, 0) + status.ui_offset = Vector3(0, height*1.25, 0) + status.ui_center_offset = Vector3(0, center_height, 0) status.radius = width status.height = height effect.set_body_scale(body_scale) diff --git a/script/character/player/player_action.gd b/script/character/player/player_action.gd index 4d900bc..da16797 100644 --- a/script/character/player/player_action.gd +++ b/script/character/player/player_action.gd @@ -52,7 +52,9 @@ func check_action_pressed(key: String) -> bool: "weapon_pre": combo.weapon_index_change(-1) "weapon_next": combo.weapon_index_change(1) "test_1": - Global.character_mgr.create_character(ResourceManager.cfg_character_monster_test, Enum.ETeam.Monster, Vector3(5.5, 0, 2)) + Global.character_mgr.create_character(ResourceManager.cfg_character_monster_test1, Enum.ETeam.Monster, Vector3(5.5, 0, 2)) + Global.character_mgr.create_character(ResourceManager.cfg_character_monster_test2, Enum.ETeam.Monster, Vector3(5.5, 0, 2)) + Global.character_mgr.create_character(ResourceManager.cfg_character_monster_test3, Enum.ETeam.Monster, Vector3(5.5, 0, 2)) _: return false return true diff --git a/script/config/character_cfg.gd b/script/config/character_cfg.gd index ff5107b..4e821aa 100644 --- a/script/config/character_cfg.gd +++ b/script/config/character_cfg.gd @@ -6,7 +6,7 @@ class_name CharacterCfg @export var type: Enum.ECharacterType #动画 @export var sprite_frames: SpriteFrames -@export var sprite_harf_height: int +@export var sprite_height: int @export var sprite_width: int #基本组件 @export var move: CharacterMoveCfg diff --git a/script/manager/ai_manager.gd b/script/manager/ai_manager.gd index 086a7ec..a9c75eb 100644 --- a/script/manager/ai_manager.gd +++ b/script/manager/ai_manager.gd @@ -3,9 +3,6 @@ class_name AIManager var tick_time: float = 1 var tick_time_left: float = 1 -var role_num_1: int = 2 #近战 -var role_num_2: int = 1 #刺客 -var role_num_3: int = 2 #远程 func _ready(): @@ -25,7 +22,11 @@ func _process(delta) -> void: if not enemy_list: return var pos_player: Vector2 = player.pos2D() enemy_list.sort_custom(func(a: Character, b: Character): return a.pos2D().distance_squared_to(pos_player) < b.pos2D().distance_squared_to(pos_player)) - var index: int = 0 + var count: int = enemy_list.size() + var role_num_1: int = max(int(count*0.2), 2) #近战 + var role_num_2: int = max(int(count*0.1), 1) #刺客 + var role_num_3: int = max(int(count*0.2), 2) #远程 + var index: int = 0 for enemy in enemy_list: if enemy.get_status("is_stagger") or enemy.get_status("is_stun"): enemy.set_status("ai_role", Enum.EAIRoleType.None) diff --git a/script/manager/resource_manager.gd b/script/manager/resource_manager.gd index 1409a2d..a0786bf 100644 --- a/script/manager/resource_manager.gd +++ b/script/manager/resource_manager.gd @@ -17,7 +17,9 @@ var particle_debug_cylinder: PackedScene = load("res://scene/effect/particl #==config== #character var cfg_character_player: CharacterCfg = load("res://config/character/hero01.tres") as CharacterCfg -var cfg_character_monster_test: CharacterCfg = load("res://config/character/monster03.tres") as CharacterCfg +var cfg_character_monster_test1: CharacterCfg = load("res://config/character/monster01.tres") as CharacterCfg +var cfg_character_monster_test2: CharacterCfg = load("res://config/character/monster02.tres") as CharacterCfg +var cfg_character_monster_test3: CharacterCfg = load("res://config/character/monster03.tres") as CharacterCfg #attack var cfg_attack_normal: AttackCfg = load("res://config/attack/sharp_normal_hit.tres") as AttackCfg var cfg_attack_box_normal: AttackCfg = load("res://config/attack_box/circle_normal.tres") as AttackCfg diff --git a/script/ui/hud/headbar.gd b/script/ui/hud/headbar.gd index 4bb67dd..5fdcdba 100644 --- a/script/ui/hud/headbar.gd +++ b/script/ui/hud/headbar.gd @@ -17,13 +17,29 @@ func set_debug_info_show(is_show: bool) -> void: var debug_info: Control = (%DebugInfo as Control) debug_info.visible = is_show + +func set_length(hp: float) -> void: + if hp > 100: + return + var length_px: int = max(32 * hp / 100, 10) + if (length_px % 2) == 1: + length_px += 1 + hp_bar.size.x = length_px + hp_bar.position.x = -length_px / 2 + shield_bar.size.x = length_px + shield_bar.position.x = -length_px / 2 + break_level.position.x = -length_px / 2 - 5 + + var hit_text_damage_cache: HitText func on_hp_changed(value): hp_bar.value = value -func on_hp_max_changed(value): hp_bar.max_value = value +func on_hp_max_changed(value): + hp_bar.max_value = value + set_length(value) func on_shield_changed(value):