From a532a62d8d616c94cb1d8f56cdf4aafce2950572 Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 10:04:08 +0800 Subject: [PATCH 01/13] Created set glow mechanic --- .../sucy/skill/dynamic/ComponentRegistry.java | 1 + .../dynamic/mechanic/SetGlowMechanic.java | 82 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java diff --git a/src/main/java/com/sucy/skill/dynamic/ComponentRegistry.java b/src/main/java/com/sucy/skill/dynamic/ComponentRegistry.java index e9f9ab81..59fcaa0c 100644 --- a/src/main/java/com/sucy/skill/dynamic/ComponentRegistry.java +++ b/src/main/java/com/sucy/skill/dynamic/ComponentRegistry.java @@ -291,5 +291,6 @@ private static void register(final EffectComponent component) { register(new WarpTargetMechanic()); register(new WarpValueMechanic()); register(new WolfMechanic()); + register(new SetGlowMechanic()); } } diff --git a/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java b/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java new file mode 100644 index 00000000..a27d7b33 --- /dev/null +++ b/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java @@ -0,0 +1,82 @@ +/** + * SkillAPI + * com.sucy.skill.dynamic.mechanic.WolfMechanic + * + * The MIT License (MIT) + * + * Copyright (c) 2014 Steven Sucy + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software") to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +package com.sucy.skill.dynamic.mechanic; + +import com.rit.sucy.text.TextFormatter; +import com.sucy.skill.SkillAPI; +import com.sucy.skill.api.skills.PassiveSkill; +import com.sucy.skill.api.skills.Skill; +import com.sucy.skill.dynamic.DynamicSkill; +import com.sucy.skill.listener.MechanicListener; +import com.sucy.skill.task.RemoveTask; +import org.bukkit.DyeColor; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Wolf; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * Applies a flag to each target + */ +public class SetGlowMechanic extends MechanicComponent { + private static final String COLOR = "color"; + private static final String SECONDS = "seconds"; + + /** + * Executes the component + * + * @param caster caster of the skill + * @param level level of the skill + * @param targets targets to apply to + * + * @return true if applied to something, false otherwise + */ + @Override + public boolean execute(LivingEntity caster, int level, List targets) { + if (!(caster instanceof Player)) { + return false; + } + + final Player player = (Player) caster; + + String color = settings.getString(COLOR); + for(LivingEntity target : targets){ + player.sendMessage("you glowed "+target.getName()+" with "+color+" for "+SECONDS+"s"); + } + return false; + } + + @Override + public String getKey() { + return "set glow"; + } + +} From 52a767e09ca96e3ca5b0571918fd28cfe3ae509a Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 10:06:25 +0800 Subject: [PATCH 02/13] Added set glow in editor --- editor/js/component.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/editor/js/component.js b/editor/js/component.js index 75cdb6a1..ce90ae15 100644 --- a/editor/js/component.js +++ b/editor/js/component.js @@ -193,7 +193,8 @@ var Mechanic = { WARP_SWAP: { name: 'Warp Swap', container: false, construct: MechanicWarpSwap }, WARP_TARGET: { name: 'Warp Target', container: false, construct: MechanicWarpTarget }, WARP_VALUE: { name: 'Warp Value', container: false, construct: MechanicWarpValue }, - WOLF: { name: 'Wolf', container: true, construct: MechanicWolf } + WOLF: { name: 'Wolf', container: true, construct: MechanicWolf }, + SET_GLOW: { name: 'Set Glow', container: false, construct: MechanicSetGlow } }; var saveIndex; @@ -3239,6 +3240,21 @@ function MechanicWolf() ); } +extend('MechanicSetGlow', 'Component'); +function MechanicSetGlow() +{ + this.super('SetGlow', Type.MECHANIC, true); + + this.description = 'glow target with color (only caster can see it)'; + + this.data.push(new ListValue('Glow Color', 'color', getDyes(), 'White') + .setTooltip('The color of glowing') + ); + this.data.push(new AttributeValue('Duration', 'seconds', 10, 0) + .setTooltip('How long should it glow for') + ); +} + // The active component being edited or added to var activeComponent = undefined; From f8498502144f2f0a49e2c856822229333711d8a4 Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 10:30:47 +0800 Subject: [PATCH 03/13] Updated LibDisguises --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7ec3a53d..575f17da 100644 --- a/pom.xml +++ b/pom.xml @@ -142,7 +142,7 @@ LibsDisguises LibsDisguises - 10.0.19 + 10.0.26 provided From d5c17438f590ba1cd868c987cd1d21d631452267 Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 10:32:03 +0800 Subject: [PATCH 04/13] disabled children for set glow --- editor/js/component.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/editor/js/component.js b/editor/js/component.js index ce90ae15..ed9469dc 100644 --- a/editor/js/component.js +++ b/editor/js/component.js @@ -194,7 +194,7 @@ var Mechanic = { WARP_TARGET: { name: 'Warp Target', container: false, construct: MechanicWarpTarget }, WARP_VALUE: { name: 'Warp Value', container: false, construct: MechanicWarpValue }, WOLF: { name: 'Wolf', container: true, construct: MechanicWolf }, - SET_GLOW: { name: 'Set Glow', container: false, construct: MechanicSetGlow } + SET_GLOW: { name: 'Set Glow', container: false, construct: MechanicSetGlow } }; var saveIndex; @@ -3243,7 +3243,7 @@ function MechanicWolf() extend('MechanicSetGlow', 'Component'); function MechanicSetGlow() { - this.super('SetGlow', Type.MECHANIC, true); + this.super('SetGlow', Type.MECHANIC, false); this.description = 'glow target with color (only caster can see it)'; From 37252c67e25d4edb83097b88da28c78357ee1997 Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 10:54:24 +0800 Subject: [PATCH 05/13] Fixed cannot use glow because returned false in execute --- .../com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java b/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java index a27d7b33..a0dd6394 100644 --- a/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java +++ b/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java @@ -33,7 +33,9 @@ import com.sucy.skill.dynamic.DynamicSkill; import com.sucy.skill.listener.MechanicListener; import com.sucy.skill.task.RemoveTask; +import org.bukkit.Bukkit; import org.bukkit.DyeColor; +import org.bukkit.Sound; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Wolf; @@ -61,17 +63,19 @@ public class SetGlowMechanic extends MechanicComponent { */ @Override public boolean execute(LivingEntity caster, int level, List targets) { + Bukkit.broadcastMessage("fuck you glow"); if (!(caster instanceof Player)) { return false; } final Player player = (Player) caster; - + player.playSound(player.getLocation(), Sound.ENTITY_CAT_HISS, 1, 1); String color = settings.getString(COLOR); for(LivingEntity target : targets){ player.sendMessage("you glowed "+target.getName()+" with "+color+" for "+SECONDS+"s"); + } - return false; + return true; } @Override From 39bc6103f4da0ed1330dea6fbe3df567eea1d0ef Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 12:17:31 +0800 Subject: [PATCH 06/13] Fixed cannot set glow --- editor/js/component.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editor/js/component.js b/editor/js/component.js index ed9469dc..0369e81b 100644 --- a/editor/js/component.js +++ b/editor/js/component.js @@ -3243,7 +3243,7 @@ function MechanicWolf() extend('MechanicSetGlow', 'Component'); function MechanicSetGlow() { - this.super('SetGlow', Type.MECHANIC, false); + this.super('Set Glow', Type.MECHANIC, false); this.description = 'glow target with color (only caster can see it)'; From afef8f2ebd808738735059bf2d4b66713441db2e Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 12:58:08 +0800 Subject: [PATCH 07/13] Added glow feature --- lib/GlowAPI_v1.4.6-SNAPSHOT.jar | Bin 0 -> 84168 bytes pom.xml | 7 +++++++ .../skill/dynamic/mechanic/SetGlowMechanic.java | 7 +++---- 3 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 lib/GlowAPI_v1.4.6-SNAPSHOT.jar diff --git a/lib/GlowAPI_v1.4.6-SNAPSHOT.jar b/lib/GlowAPI_v1.4.6-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c07398c74a62097454aabd160d0005e3d89ac82 GIT binary patch literal 84168 zcmbTd1CVA-vo6}x)3$Bfwrv~Jwr#!b?rGb$t!dk~ZM*xv=)cB*fPMlgNP|QC zYX$IsEmQb!H>3Pr@jo}q3d%`}i7Knm$%@^}PK?V))6&htO4CwJO-wf^F)T3e96HiS zO^wh<(+WX=9~7!3qEY`Lac|3%Vs?^p&Z4S9;X$HyQd0J4%ZyY)mR3^!^D724d=#?` zsyp1I%mZr3bI3Cp0hh8}k8+hjn&ts!4|Wp9qs_hTKlE+d@{G3qt4;9V@!#tU@^{wG z(Tx6|{>Ojqv9NVDv30g^HE}ky{`=z}$-w-tbN_c4X4ZCY|40zUzY`?>SDK)LBncy( zk+q?dQ<1u+J&Gy{FMV2J!YIfumJ7c|CN!K5-YLLhEEOLVF#uZd=|pO5FJ{ z?z#9n`%v4abZ_?dgM?0c*j3=Ik~_KFc+`7%C113~lYi*MU5pa5@ULvNsvk>~!< zPY9g=M2hu-t9nh4gr@9T@)(;Cdz%VLtt#N8wA~m)urUrjim=2!FXHo2R%dR2%^+l6 z?qrOpNkQ53mr98=9p6-e2>6+bjjCfEF+8bExi=piS>j#&_| zknS!#u7z3DpazN{)P}FjC@X+)?;PL|1juk<791A`h+)&=SJC*VK~U4c-1!Q3Adbgf zmUG0QjWAbkN;L={#sS6j;_z2ERr@a$oWR-uBMZejUs8IM^TQ2OA4v&C#rkuw{v3cA zHbI;2_YR3eCDgjB{oSt99Bh=j%LNb-hV8|;U8}Y&Sq_oJ&k9=urs?|?@Zn0o!9=Do z7FKvz@7$07J?1yzd@t*7K}p*D}5 zC&0my&L0n%L@uH`K64NXIOK^yR3DU7hs43g(l)(drdnn(3Yl}`>R1k+ctdSRzWiMm zM%9*Kw-hT(E^f zRp9DqcgwXWi}R~tS-}BjOw?%%u5wZ;l}HO05ha(b>pqSuyfGzSS51I=+EU)|`JpGd zKb|T#WaYkzVH`t!94uR`US`G1RDm^AzSQ;N_m-#9vD9Fy7Tuo^DiU;9tI%v%*c1i@ zqfyJ&sLA-L25yU&7nn&$7XTpslt6t)il1&+wL?3yLwo*Q0(QCfOsf^^EP(ZgPUQK= zivKyN>DTgpd!CcLS3$&@Y-hd@>uJqqhv%ff$h7Sy3rVVJ~0>~fEJz~e%?21rfwU;e@_{2)x! zz!p2nLFP#2RM|;QF%FBdO-Wgua7fSqS{?Cw~hG6+#=a?#DrS~|1BaEedk_(0NCLvwb+gub$oJ4UpbelTDjD*pO+?3qm z;$tovLtdzi*}t3w?Li$yy(1&?%&ar~Pt>Ib(G0jg|DgP8jPmLcxV=^p{fQUyG?-5W zmw%FvyE*ifH?$~st?40}NK2j#_0$INJgFw$=oVDM+ezD4roohJrFz7)LdCu0SP}5{ zcxpRSM{7G}cw|u9D*gT(Np*4LKW$L;pr+d}n?L`Zf=H4%(ctE!;BK0r+IqyUG$F#$%o=QOKjfzAL1$CHw52K-T(qN zhosmP4j)sXJ&rpF^|qJj&e&hfU6=#0sWHPR+pCFsVZ&urh@bAj^5sC0m79ut zXOuj$6;y0ijB$zThzQ(>C^d%h?zn`vU}J;YskB>1!B24IgI+kkTf-K6!Y6ygdS&?c zF|Q!U5%R01{KI6opn6F9d$6~tdGE3Iz0AGrVjD@k4WEcHa9yD1_V?O_wOP- z&HqiH6t=UrbNtU>8J+a%rYwpw+>_uEFSCAHfTATJZBZAg^i+kKL6<0CE(Hunr^?%o?-tVNISvTCxlvm36`5KHR#2muo49tE|Be)pE5;<1b<( zc`_}{WaD7kLdn@U?x%|Z`bM2L?HM4fR)7m)^Y*?s+ICItsd5Tw1^v#!0O@67y*n27 z&(p!7zryld#~0kLu~?Hw7#5age9{F#k30>8ldzpApCpKq3Tve- zEy+QaSZk@VM(0-074`?c7nH&*>#79-#pz}(3fzySDYBVc=`+k}L*8Fx>gXX#u_>MQ zzkVEYmcc8JR2RE5W$Oxajw34&{2sR87q;lGYx)F^tR1lLQ88dU!g$rByTQq3*P^x< zy->(Rx{MTU=u-4)RR(3?H2cOg1-Eh2a{=s|fW2-Pw%?T3jtEQb&^|gG#UkCyx>mE93Y^_ zk3DMvbDf{DfFh~ENiP41qgQ?%g3~4ThK9|ZFXFk&9REZWn!6>6qYV-~s&`C5(41-% zDiAOV#sL*hyBh|Dl1?+EC}K@HOcy|uK*~W~+bNoJUfCbsRe?jmHRZJ|1l*|+3u=6jjVZwk@GVVS_si;04It9!61RUlt zQI08y35He9n6v>`M;(+@i+Xv^u`p3iK6DD^Rn-{BUqLwf5Q!NVV8b+E_THon<0AUX zlWFi`iVWFNt}!t1BJ*8u0z$lmWntMT%kvKX&AH?#v80a|5?tjmOn#5(!SxSpHVe-h z37vTh5?n~S*z7Qf5@ZDyF2n_CN1`af312Ew>Eltvpb{ZPpvh=jTE=CKjVnr%a~8?T z8eE%mO44Q;T=R2G(&MyQCKR71rc^~-s1X(Pctq>k7ORTn4t3d{rzey zs>O}%Z>!IBm9|s7m8H~98~x?n^1P}u7+3*|OL8nt=n0q|4iwi|lq;yME2=LmtW;O$ zFM6*p0o~E&^}poiJ=x}{Y@+uO)BB&=9U6o240LOKaRe!ccPd(>Ib*I2y6UhyBJvh8 zjRqBDN`75L%4)oVRdI+NdLSoVp!o(X#$V8@w4c5?SqsIs@x3S98IU}#P1lAr{obs8 z+#EjYfS`V74HaH5zpxqGx^lK`uO}YcI(4)N8pBg^-MCzGrS{TTm7Hqg9h0NxCf1!R zil(Snk7F;=Zf|NqT`d{uh?lPJsu}SWt?Fg1W3EI!0|HfHn?rm5dvY@Fs&c$#WG&Wd6Bq5=S%Ftzs+_m!Y)Qs13D|JQxeH z>I4zm7lYFr(l>=elvhg~ny0Xm)o)KR;Up2-7eAwi^y^&$;)?wC!2WkI)Eh-OeW)@C zQRqDhD5nk?<-{(Qq#~RV2~+5LUPo#7edEpY{Er~qeDntfsue^UWAWLEn7jDqt5WH{(#c&5 zx_9t@-ApAz;~|Pcfq-J5{+<6P`@iu2|LOUgv?0A!78k#B*b_QO59&w=|I}UsNDxp( zV8Up?qD%$*e@U>yjsA{;V|FkF-m|T!TGXo8{Ik@&W@&9z0frrj(o(*%bXC>VRIS=! ziT|-HXc1?wEy~bIix30e z0=oBw0FG*tH}Vw0`k`6ZycP^0mUF#*R0HwaZ-e@nF%921AlnKu-%$1F2D1J$FGiqI zh<*z31!e7M3YrdLh#DBGEuRb{61*><6jIrM6MItK3*rbTCQq}1C=VjV6O_}FBGqAq zbvO-!P=k#^kENDWq%JVdesIZvV+QHbE?hnHEcTuKZJ+is;G`0Em^H`vSK>}#L9t=J zz>ZolNQn=FoT<%CDA&((S7#8JD8vI&eNaEJnk6E`=NKx0Nq>`lRxw*yLSdUWG7zvQtTIC#*@`^a9 z@po#t@YbjYYmF9y7Tjb{TDUO5TFBmz$#`jD78Rp1ab22Vv$vEoCNi>PJM2cDVnYw* z5*%o;uFV6)v%ZB%;zLeoSO*&^^~f&sc#^w&2gK_HKAaZvQ@@E4zETfvO9JL)3-d^k zV69_b3aZY5eY4MnIW7 zDoiFc)1NUlaKrNV!)uthOrlRizz(Qj6iGWqq^xC%x>oglYA1&I5=?>gn5C68zXLi} z#2bvSz#KD}w0lgX!y;{1MA*u10i)to!B)s0Lpg`Ov&09p|>6kwMa$OWlj0?@(;M7VP83Zo>S1jno>;y*b$5kf3lT_n8C--%`^Fj z%SL5L2kjbor>R|lLF4yw>apzVoOO!g(hj!RXU{nxf4r8euQ|9l#}^H1YG9EiR6$UX zwb(zK8(0}@{}Jk#bo;GIk5RFK&3Ogpm&w`VtA|TahKN7YltN;43Ioju{Q#eo%;<1)F zk2ZlLruc^#k|W%?ZzsQ2&#Lac3DLoC9biDy%84--xq+Ki=X!+&+XxcKwPH-XZ$H*= zD;-RjN9)=0ZZz6@5FV_Rm0$bX51}Xw$kFjL@9-0!2$I(-9Y8ATIByDvw>1#P7a*-x z72%`R;2??nf)HfO^3LVNO0XFkkfp*H`l;xrLuqQQg;C+U!!kR)=k(f&nPXOn&0)6} zx!~QwuZG@AVQZM;*pSs45{gddubpE2xJJLP7V?Zrx&bTITEj?8HpNM%@mn>u$Rvnb zYSG20p+aEhA@8ur`pkxEl<#>rH9>1rvcU>+Saq70OQ;{ddwY;K;@d0KwesT5PO0qC)>|BLrHV<%EB7!EH4lMy z`%3)iA>&h1&ZC)DVLNXFa9%-Y3F*9I+dAAwBBK^EtOt$Epcwt+!5~?CBz%@7!y`fN zf}r|ihJ^uq0(XW_(;Xw${T2bQiDA+7h7rD4E7i0I$ABzlDAG0QR+`>7KwpysjMTDX8zR|n=4xobuFG8vG0Wus+Y8!B zv0Tg#f#wycD?0qR%Uw{BuHm%HIBx^*bGFagt3`cP>Op%m!hE4eST`p1B>~+}4Rle$ zQ!3($_oX6t&wluf;h3Rt`uRE{W%;y0-1Sx=10(GPJS%4+^9a5LpyBlijotM^{x#|7 zS{p6<5h@v$YmQ}l`Hc2;KKQ+B!}cB1tbSE`JG}RlB<_LcHJT4=V@~3V za81R{HE?8(K!SYjHCuAF`%&KRVttvezFet6%;BREy=q@=ldM7X>mW}!6hSKp-0r@_DqEkmt^iys$2bTKNQE^m4O(uhviHosF zy?O%?K2>RCesd!3NMZSrnii9IP>(XcZXvPYX|dOwCVNlp0z<0)lnXS3CK??-ONMM_ zMOv*mzoLtEJYj(^0W=|$#AHkbPm-gyE1kfvH6#j8nMnpa{* zJ}RCwP!V&2u?(%Cg&mTAG5T%9&xmoK9Av&ropKSADfmO%qj8$h>fUm8b^%E;hbSA&D zCCOrm?{|E85R{Vns=?wfk)P}C$=0vpO{RK3V=iX6E_!|?`k!3_QkGLn_tH0OeeN5H zw0(9@yg6{wuc#Xnlz*C#I%NQK4@S})lhI%22r#~=l$YjD0Xv$ww+I?OjsMcS@LOj|bemn7|ni+P>S>>x>JV->^yh$;;d{qTZko6+2<~O%cOs(@MjfZIS zIP&3p8$~DC;YTAU2ge{MLttB+?r2Af=UXUl6t~thV_2&GV7^L{OA?6|@8GG|Wwpk| zeZc7LjL*~MjE2M9AVg0{)afHA(_T@HQxiKMPh`70bi@+i`9)uMAT=hmP%)xcAJcG#tsiC}byH|AvxiY6l8-S3~0`BcALf z|Flj!>(7r@3T@r8eUAZ@z`jkXCwgY{H4|a3eXOP>Crnzd5BF#8_5(v0QH$=f$lDH*Q?M&X zfM!}bH_Gk&6`HA&G&cQ#H*!VozQ-PN+FKaeGo&fp>5P?dmW`lPtM+idh;1gXGfFM` zY@AfO#HG+Kkjt|g)&?UpK`wH<~8OI_pcXEV&k5hLKmJXf}iMXShl2SB@eeKi*> zJDp>ZLkE7!H=m+?7mT9-!;|KFnlV&Q$&Zxj_>wV@$2!LIk%&%wNFF%Y&%m_)3wg+N z`GIF4XBL2oo$1y)y1I%5$LK;#+kwFYMou&~WIhAO388ZxkCQF*Y<&oFA%jCIE;va#gVz*Uk zyCoHj+46_`&xpv{VFsXAbM4C@ybn(@cO0d5Qd3 zr1neh!BvwT?UMD_q_!J@4n?oe(KRhJ7VT789zeCIKciQcE^jE~_DIoLz_(Wt`p7_& zYZU(Y*5vpRxp30Ma`shYfah_1a;?q8Uz>JUtqxb_l`!~JeXXrgO79AD^Kc0Z+utY2 z)q-JLKldFnX;eGgfYjnEg@_l#t2gE9mG&%Qr-Y=FwTc;b#Q;10Gd;vhcYlp)9Al75 z_AY7`Ga8`G%>rwkt17_=)infBATguCBqHjep$6x~ZiwP_8`w+cgc9A?tn;48JLLZ8 z!_rSD6Xav;Ae+3e{>@^Ti%CkSR;EY4@kYEjm;C$wvpjbjK2w-6`c%&dY)bXn@VLDH zFt8I~puK{Btx`5sWy#;A7|Gw*iw|4w-ZTZLRbXjO>5`?*4xSHZEFzpK7-yXITz5LY z^1zL3hIbqCJ>zyjMWpl4(+-2bv?T5u^tr23u>HWl`F66vxNwRGIx2exx0%uC1#r%p zZ$7WF%=;5z&w=#J?X(4uFl!{O2Q0CCZkiSVKQRkZ{lkn)`lV8n3=~5ZBlji0U z)q3`^Y^dd>p`D_gx^449eDuiv!;w>hy?*tlR4HfpkSeEyjBcqiCAn?vA+buv?2ONH z+oZH%yKjC42A!_AXo0^ecHEwG*U}kuZ=%@JnRI$_rl5ku@pM-FmT}EKfMv&0CkUr9 znev50ybWTXHgpU2g_ci{3eSj6(zZD1C+vVmEU@*?x|o&?QXG}j3)1sk^fE6_(QZoT^WrJ)My`q5niqD(F^zk$y9wi;S zy(qpuM_HA$5q8Cj?Tsrt?d6Cn{`qzYc6&MTtp zC_WUpn6r9vV+l`N@Ni(NlGY_xs0F1u74|#nai|*V&gxF|93?ZelZFgac~ZG3;^P4h zr4l3as)}o~osJX)(KoPA=ctOsx4^mZj^EGY)OP{KDXJdSE!*5BXD1+tFfb}R@_vevU_4ykHu-4 zs(dznI{4W_Fx*sGaUC-1mQr-?s8l{k71ZU2?zrLR_SjYE(S+I_wLa+>CY+t)@^^3{I{wdKhe@RTy*U5`FyIROpC+YUl^ z+i$b&%mm>r6QpD9E}ghUbBj$)DyCniEbOe-!<-FSH69>SCIO9zp;wnZ`RO#m zOC!q5WE&TH6{mlJ+4V6-=lG_?x4+l-YV;GeC$x7dyrV1$QLg+l^dn1)EpikO&vYf;S`Nz z1s-~@gfa;lS+{OO@xsP^l2dXJA- z<&0B+Kl_B;P$|APPagOb{FI7v0}7WKV8B@B$7f<$A$;cBX8(tc(aSc+ne8ghM$}O; zR!3@p`sE}pws;>6W@v8lNhHpj2iLa>)@`*zt{t>OnXIOP+-0M^ZO-V~%E%i}ECM@K z;$Xggbsi|m+VemRTMW}Fi^1@W!SE?G-0JYnIMu+6%xqqWufOoDS4fkb{rtCm(EeGu z_IjH0W7epxO^NrC!(-MRXIAxMWxZGn9;Ma9EU^h|+o(Y9b9_doo(;73K$#&!d5HWO zW73z>lwPd&4vyxut<_K4+&EuhEQb{9KBKu{zcJ2u^5Ze*c9$aSWRp26GiiT2?Ly(T zLn=tczAznn?Xvt@Z$+-gM?XLoy^lxxlgTCs={xb^_yz9U%SFLJsNf$02s&)Rt-}Ukopk2By7M~4y~Zy$9ZRzP2wlGD zyuJoE9m&so*{%N4S{`Xl1P&W>xTGtJ{Ka*6*>V`7b97y5J8)F}hxYDFZ zV^Go$lC{CCA4=)ar0gTL0jrOz0(=(tv)Nq0T@uZ3O2)HwUV$$!&|d4kMZ3kQ+fzt0 za9h#(XJ$vWNj5j<)~Vr5hiGefNZ?BbtGq@Yx(e^Yc+M2sRJRlA*vOOgJUSB<-$JpU z4ULKW4X=?ew2M-9ORQr*8r6Nf>iC(so4UG!@IJ+|T|rt3?BPAO#}l?fSMLC5R~#5V zQQa)${fYSfhXI2<#eqbSF64P&!|QhB zQd&2z0L{a2x!jnJFQaT*P#V@mk9Nur-M5fGBvEzJ5TdlB(?WOm@}W6(T-`W*Bp&d? zBkvqb3g4%yjWM*XaAn%Rvz$~;v&U?*Kcp>$-#2_+i2F)9w6~;QGCQ+w;)0wrpBtyU z7HNILJ%lqo`jZ|;yKRZdcN0GEP5a2BadgMzq%vA6%u6bhx(D)k4y%mGZ?kK*q`g!O z#A#a`uGz&{+MjMqMlepd=$){2H^l_|@r-1IV;QSAo=(CiNXE*}k8o?bJOze0?uY6+w)N3mf*U^QhuP6 z6T50GQ!eQYb#fUUoZ*i9GLS(TlCLK}^CRQbtMj)TTXm9p#!zM^7LYRqVK8NQpEQO` zPbQhEJS5Na8HyU>9h%tGXo81#V6kHF)_32uwNT-gg-j)UKR^&~a2sE@P6`fK?>R()X3#!pVk;5$5fEzt32c@BKb695f(!<(q|MmN_qdn|5vf( zzMyn)6$1!pg!kVSOUVCE#S#%iXT$%hlPk&E%?lv-SaCb-b8QzYNaf`fk;s(^;wXz& zDg6+nBnVLpTqn~AkF4u;=$qaJ={g7mQSlGvKn>pxMrg<&P@+PGiPb7 z0R1DoVL$<9xa|6ww=aG*6W%Hwv-ud9@?^ub&a=mbA#9oh-*)NHW3_E}&7CC?I`;cR zw}EaBrlN#x-E&5x3|tT4ER31vvqEhcMp(x855qj-Go0VlZ(Aw4ppi#w;BuJg{gEM+ z){ga+YPRoKwI;EyJ?!dhF;=i9l`ZBtp*4R1jPR5EJa^}I0VkIu*xg8KYDk)YAaD@c z;|5><-6?U1@vr3jUw?S1=o8cZ&b4Xzi>o^1RG!^)r0$CDRH8vD$k6NsXS54TILHEG zq{)sPe9@#Sm}>nA-5i547z~ANW1Gvt<#F0P`v<71Bc`Qc!jsn@Jy;+pOQNM6Cv*F| zc=6ghFFD~u5b5{drn-6?nvvyx8&mIPm57)lVOJR-xMpfsLreg!x$|@ePYWb~Eg#g8 zwDZU{BZ)vIOAqF`e^((WB{2T3gNtk8BmO=?FxxV^s;bl@wu-suh;(w+FECO7nKL5(_ye8VS&z6lhDty0LgSjjEx5CF>BM`$1Qc8X`WxH% z5-6Q3pR63Go5hv`ldjXGa;8ziqZ_V z%*a;K98d^jP9tesB4!LShMj)u8XsMp2PXj-sk{&Bic&R3wX_EYqvW5J%x}ewEoU0Lp)`agmcV!LNsK^Bn2obrU;*QZu^u z%q_`g8p@o}9JffKl_uW5$tjNx6>?QdlFWncRfV-Zu06=~T#5<)oCz-L=qyns}6)qa<9?T|=9r$V2_|9MF2?Dd`(T3!Y<7 z{}Lr-A0Q4MBy+f(I;OIz5&1&SD0@4+Y@P8r)%o|@qvSRYj(QDj7391H+pdY_6f<>? z0uS|&mGduC8hOn2diVhZH23r0nbP0VF_8U#T8oE`weAEX6fh%#z%1Wy?gL;jkUEJJ zDNu)>R^({CxcdgKrjn-nkI_||^msXYFjF{8e%>4wtl}hQtt62P{vg;A6TH@E17A8L zRzh=B)pvV)6Zi||f@LE<4Ncq~+fnHFL;LoNQWazJX$C*iGuuL5+=DXfpb$`cc0Qs1 zrLjD%T#x5peWL%4|K9lF|IYqTrnQaXUn=rH;tdo3zqkM8G}Ha>eB^(^i>Cg+6ZtQS zv!T7kKhl=zpNY1&v!Qdhu^!aWwA*Jx@P+^VZGhopp%BMcFAggf2^!J-gRMibUK{14 zKQP%m13N-Ra?DlXp(iCDPP!frtZAJ`vp=>!&5i>+XzP-gZ4IfcbccPPGBrv(7@Vlk z+lTq9WX2=xZJa@pyiirmEjwKE85Hx*8&?V}A5dc?K6$ODswIg_; znhH(t`M=`5uUb$b5gPWGSiiVp_NHIl5s6n9N$jo9uw(r=6w4^q&SzxiN1#D-qDfA# zw$F_=o*aN1M(K^95kC~XDcQm5e8S`J?(zG0oHqk$Ih;isauE5@k4k@jZh=^W% zZPSH5KkG*uBu&2fnH((smT~^Ih}sFfeS=1<5vJAH3+Dpix^jLZF4^zTPCdpFM>gqA ziyS|c`(pb;dF$G<`)Zg*QyDIs7+^q%y@CYMoqwK3dzg-_3vP%S!*m|QV!YQZOf4C2 zVoi{r%0$#uOxn@#CZ`P%m^cJp$jT4Vv&+~J+iza~=GJat>8)ga-*FP!{R_&;Ge+RNg zcFQ=2_oeAi<@o^CNQ)eH_S`lv)b4Mwl6RFrXh(eQno&gWTomWs%Px)dt@6b^%TkU9 zDhuZh(XF{^xeC>IROZ3?n-)SEvb%w^=w8I5Bj7Ft2QyqAu=e3aXS8H^Haf$qKe}aM zb!?L%>U05;nL04e9ZpNc0(C|xHU+fKVqkW%@^tI0}3-JFW>`j!iYf` zu3LlnoHzLna@hm(9qOjn)|9dW94LUEFATAm;S zcwEcTJ_PhPSaIFskr}MLK5zxoBh;k{6s{;Gj02$GbxleZF~!j{b|uMi^V0~E?1^-7 z+#cNjeif26E#xi(gLkIOZZI3(1eV`z_@TFbgF*bo2EeBL-hQ6*k$U{r4uFT`(Rt)W zyn^&r2Yx4(cA_yPesp!{7^gvc;=Q8U<~NN6oFJ|v(XK&)@Y+>T0>?%JgO)EtsDXS<^u5u$wBR#o) zsN_mLreZHGtHe;N!obwX#8A(~s&4NJtH{8_(71C*^Ik6iYkwF8#W@LYL`B=^&=C$9{6d1X z-p4Mg>j(o~N+u<$s@-pto#(JfD1K(^YAMTL>w-@^4U^&BKT_s@$Z_VHpMFhz@Nm-~ zI12=2n~>6@I|^C=-OxinN6!GtkOtWsC^czx-g*#a%p%zErpg z00V%5fZ_en4^lUfM_h)N>HsEh3GOQPX0svD_q{V-i<*=~P8ay@-#0HsnL$Yvc+JIR zuObZCBt&N?X5>x6GVj0;08;gRQJ~#vLYqVpUcvenZ6z4)Hkaw~$q>7@fomQ|;ZfU( z5Xf5Zp`^ALLO;nBV32nvGK?mjyKPf$$sdY;5Ebr%DUbuyiRUs|N}saB1gr^31o+?i z@bH;!Ai49fY^mj2f@Eu;*DjLHFCBbHo{Ehf4*Ld_EQ3x{HYZ1qk`k9mBc@n0_-kEM zi(ulRmySj%_9pnU{ERqOr;r zK({Q-(MzQ;lkZ0|qvNKK^N`e}5iteG+doeJ2quS}-p~)Fk-JG1%bXej$(lbUWD^5- zEGg>3;O#@VY!wxDHPkcJ9gB0b_`{R+9{zw~8GG5z!jl%yl zcvqu_UZtoBHZ_If_Qc+=R{AB!2NHwEu0gd=&PYUzXEIckk^+-#=R+97jOL2U_(!w& z1Hxb#F)4;l491FaHyhHBYN{Hxw{8Y4oRTXIa{`3y^JYH^FprbUE^DQ@ z<9HHxUmMp(nfY7*j6RZu8~LZ9{t+K9BQ?cd^OqcSCM+*fBKKoL!!iXAfies6@eMji zI=%)5R`m#SC}{8K-}~VLS_POOsM|4*`IwToGdEJ*7PMR@Fg>6-vTg5J7S!z9qeR>F z7|ts+6bQ|5OsaFpmC9Gn{tBITLg^E$AJ)TmK+}m{@-L|XpH%HH(4S0AlhNda!-GgN zCDJ%6od4r}5!UXYEtSt^w==)Cnjj)2hXtlzL(=b=eg7k6v>#Y@@Nfx8-vOwnZ<9Q` z=MMx9b@O|$^aO{bO}CnB=tsIg`9UUu+lM=@-OV3N$wDJ1!E|^k{h(@u!21uCo%0Qh z!ygF8m8Vp@sxgvkQ`+v@>2JmU{N_VJPk3S@c87#znzsgp*Aj)-^@x?h_j9(vLVmz6 ze7*!GekbB0)qdR7q!X=-@S8d(-tH8CQX6Bf-F);ZyGT)CRW$5tUfog@ocM((6uJJI}{9c+T*J z$aIF)EQxV}#e^|RC&Fs&Q<7_JC|{!yNxBwyKQ;l=BFnM4f@R{j_`sP+YqaJ)He2Rl z_C`fZwU-j4Q{%(}p>`~c*x~5HDw{%kf0;LeZ&$&Q9HozMx^M1&E6ke1OWcam*WYe< zAIaN~Q_2?uM$Kw%AFu+G&mQbadMRJ;$j@lL2ug``c1U+;HVeMpL+JgVb-1=y@Rikcy7vR+)?3nYk}!ogw1OM z#wnMD0)urtUTO1O`0j7CR=eqg3aAn5eg(Z!Y~)viJEoRTq?b9Tl{E{dQ+DBh5Qgw` z6%VsKC>;}t*1!s%}oR91z2Hsl(u>n^x0zIwimb7PM)x4NIk$a~+c`mJ#@zkE>X zePF1oleP1S9ptcVj1Ax$^5KTY&V6=)d=i;jXnmm%W?ri4vxV`Y2BQzRnqxcf`Jk2; zlqt{0X+c}}Tplr6J}4b=R6Wkw;$J?^5BcMs_`35EKOSO@v1HCG^x6pm_yqT%u~?Vd z3F3?Ts6z|K2E)z(SgWuy!;dgXqHlR**dnmWH%fBxp$%ll?Dh=`GY+ggS}Fx0+*kbj zn3lHfk!LYS*}irK>R3o^s7nGfCL1I;s7bSrC^>uYjIKi#+>UYu@`^=-v;*W1;Z5l=9-HNmP?9;cc$Oy>*Aq5*XfCS)g5X-%G7hb%kPs}S4!s>K(-Au2G4 zvz|kFy0*CN?sXSjmpr`Qe4@K=aOo>f{BXa8M8)++1objrUXg^8b#RsR66?}QVd18| zY^aZ4AApPK<5Qt8Hpdgwntj%Zr47ivT_JUvAmd)Qb>sR+Qz9Mj&XPIWgwiS=#HM!# zsAHW&cngXp&UrO3fi)2jSY3*(r zhaRQ4Cmbe^TEMAhQy|e`#yrH?3Egt0}t)R(FTErW4fj0Y2|vO&6Xm87{es}8t@4G#lkm6B>sdG z4DMCzmeGbrwWiL zmn;Ur;mdgs!us+8g6(dzOdAbl4-$#oKFp5}-Hwl7q>%S{hTu#t&`*g>#))C*aKCBD z{`m8>k+81zCbv$)w6eBRO~Qqgn0GjI*gADovJ^VH?RSug=)6)XGz+ASF?F&UB^qJD zJ?yZ@c{TGj$=PhScIn(wHD}vJ*}b6-3!GIHOsHkJ*0Q^LGAT#H)GM{_nr2v|^>RAb z^LQ+AX0687JKIq8ET=}hmjmaqS7=v?T=MGz?b&`(o7vKgh!rBZPUwYR!?&ME9GoPL z{KfMKz=bCDgCzWfli=~V0+7ClHb-=C5 zlAbkFF13cy2-cnA`%&OU%(F;5pcL<>ew)Hvuu}p)?jqy!K^d(2BROt3yj{=C?||$2 z$zq#{QTg}fkRijT_Jz;3n42;qPFJ^c?H zF8J#&GB-4G{x3YPs;iDHj^PXNrhyb>fl4GoYBG@c-Dq9~`vaQD@=&=H>d7i0%E4t- zmK|H`>Jz!^MAptzdfK8c8L#VH)K59~Da{(GPh6h2@R)>~`MUGIQ-8Yie))V`AGkF* z@K5U{iV~oSkal_HceSl!JXPvb3#B+8lgSjTb>w`!jqP8aa|>76M6!4#6qSX$=;rx zr0J8yElpBU17~wR6Pw_O!B8!Xo6sM0{C0Ff3>!lb1VoGt)})3iomB^vm&dnW*7oIW$y%fE!37l@!QzKKBI3qtX*>0L&;(H2a}sl@w}&Tg4f+V;%*rZkE+eq5jTB z^_9(hBIstOGt{BWn$-+9^^98rhFYb0ij>$A18hq6khA#Ef#>X|^`J*Q$JXy4lV!%r zzEts?0EQ_;g?`LpA9zhx7|6yrscKt|B5p?~d@0rhVJk!u#ti@nU3?KdQ`mJB^l4o!!r%VI*RxK)m?p) zzibMOlF5$7&oxg~NH52$v%SXNwRPoLSGlQ+pqHg5B*-#4wD5N7bzL1D0kB(s$=;AR zgXD&b83VV_)mjMoDy85t+w_#0!LiIc?t7eT$lNCyJ~8_}L~qO{eBOh01M9<*&W<0R zu?HyPS$>0Zq_@NoW+y`I%TS+`;`qY~L~YUY+D^YJ99jGcJWDHgI;g~jRoz+7`!Ovq zv7lHnxYPo;C+~e=D)2R{0}+_9ZaaaToc--!9#8x^rWFe|q`tzJ4#x3kx`Ui5W}mb7 z`zj7LZpIZ5?bGq}l6Ep^~IL}4XcHFVa?ZKTMo`Ki5c+jXo>(An} zVdE+)-QOA(o*OMWF^t9j9Pg39U;D`$*+qNS*|L~bce!XjcEQTo_dyF{VF;l|XTMg(zvb0!Y~7^sQS=oC zC@wyeT9ohk<6JQS8KQqlWXCdqK^F|Vk<@_+hDDAUa*D@VAzI_I=kz&9jb@oyOsbip z&SE{UWso+W1Dw8Y5@zDK&NVkPA7&^Y8e#;62*W(kf!i>7vvWuT`-ksHt&QSWxe5>4 zy6$@FZ5&S1pigj${a-?iqXxYoZW44jMhx;g&sgjNQcSZngOQGzU$AOU(tC~JfO-vVL`y}kaj9;a06 ztZkkgFOj*rd6Hdym3*mEovjOdCdF+xDW`2PcdXf0q(h^@{KExnW9_({M6R8PA2K>G zzy+I(QJvB3HnUnaj|m$8>S$wQmwfPuyK(2Xp9#CA$X)vO#6w#eS~lGazGsu=+B2-i z-g)S>5u#rD)JM~aWbd&iQRT&Ark&pnq4>oU4VY1*SR`v0H01O}8FCk_$9Tv5DRK+w zO&$m%st@o*^NT8XEZW(Ta;$3BE9@!o%K$}2p*Zi3cPz#*psU^{T2yrZ_ZNB;Pbiva zfck?U5My^E9*N57U3nM{#W=~w2*c7TwwTfH;9YR{?d1CF@Zbae5vX8dBRF=S;fG^r zImYMGZf1!Cx<4Mwjmim~A?IBTh16?3maX~1;5bouaQ+MSYn%e_nV-k&us(gs*U`C;-rh8?i&)Sy+yd_2&kID@1&?u%b}c4xev}oh{Z+8QTl_o z%l7K}E;djI9^8$v3V~&=33| zor&At z-o9Qy9KAtyhhF8C8NTDCXb4Z=f??~3xUBTCAV)zbI}U83UILLQSV5c|8JRSb@7Z%@wA(-B zLYuT6ao6-eCQ`C=>c(tyTPK^>YS2CkW>h_TJ%^`mS&#FSuATBaoa;hz*!6kfreILl zgW@2GR^Nx1$rc+PB%ErQq7@{(aTzZ12nmz*0*Jpl?f;=V+zHU?zW*F(?2o+tzvt6p z|J@@O`bTEe{}SH~uT3r=j|~1wBsK=?LcGi^{h~}IBVm*kqHYt3C?ufL9Wt?RwsM)g z;-dWIpGoBbfz$*NPd<5a`o? z>taps;Bp!Ex6$lD$F~M?WxL&l-oYz2CI9+rO~8Yj&f$$4(S&U%DM^BixF5IRfhC|6m5OWx))^S%WLV>yMaG>FHrJjR29N>F26Gqb? zg8&l>kLPtWy6DDvF@rL&!f9%ACcMYfudIO{cWB!k8Gpxk{V(H@p*WD0I^=j;#tAZd zGe_>5XSd}h^uxyvYXiV*28IHLO}=~#dkV5J7o7Ymg!6YoSBc6~$&BVW+q2fip2hew zeY0JiEVkJmPc*vy2z4D|WqvqgitHj#RygwQH%qgu471D)Hux5;FLoEN!xmbv0PFyW zwmaO?>svF7IJrc^;^yuBD>Qfv4}H6nG%M~LZ`aoOCSc=qsZQk8uD!Y_ zSE8-=D>(eJl~t#H+^2Tk^0|oKi@G85#SZ2S{$d@lS2yc|U+2d4 zPUcfHR!cd*3sk>RmH6lBB2lqSi@-&a{M|_7RbyWyiS=^4WHjaE`OIn*oN|2X?@SMP zgUzu-Hf1s}C-Zl4351|>QkZ$J$ z-r;GyRD1)*^z0iEJ_F{A$-4S@D#`}C6e~0-6=ZY=cn)*(vl{9Y2X;~f-0rN{DNFeb z<_fcaD`GI}gHuA)OB1TJ#!-32*V8HN27gmX$7+YaVQUBvNmhL!J6U&sMP=MFZq>|x zi=C`~z9|`9ji^#aoH|I~1d64h{OMNubkyyO)^r73z9mHE7AxW-(juE3ppIyL@Rn{i zsVo#VjE>PQUGEm$67`CLjKV~|(3`*xYv8PvTrCHi{zxbz_$`XvGy8Z{58-6nU{(pc8QFCJ}qyG^mlBATd#ZZFf&i(Q5 zAOisahagwNt5RwCk;v;H5WxZ^K+1t4NUE*Cc+mDC!lOv+R5gz2jgn>hLO`n}?Nk)q zD?3JPC5s)}OA(1r!Q5zR?SKCG^sOL`ZFlU zo@-}mUUDaSrs?L=u<9T^1~JhMmkl8Z1g!gTo}f)+*AhYiLmz9_y zp7X~oB}9-mYJ(BBtBs?N0Y(%ygz!s|U}3E}69`_HmR$GZ^l@shjYVqPwlSm=pkZ`?0MSHH%i9OC%#?|?7U59mFQaR;L9QkqY< z9=52SwtD4*!$rKKrqHqnyQtejS(Iw!1#-N{@Y0pLJ0^?r7ux6XFhxa1->A{T!)?3M z$Ueu8&r-CoU0B>+lGL%7zQasDtddIp5cwe z^IwarC6k7%=#OyM}28UzAMRe1ZP(0VXg0=Rz0r5&3pe=iuU%BOBU@ zZSEyF11EbRI2g*2*|v{M&S(R0y)Y)HuBDB&$dYRtm*N1 z+*&vem#!f@QDEGE*JM>5a2fBP-J|*E-xOExBB;3abmL8R6$E zUofXqR=1SeB=YDJP`-Z$NSr06Q~Ze-j%Tes&q0Q+a0QM39 zdZP&_E9<)E{|C*?)vwJ~|0$o%|7H2C{@>+1GR973w*Q4@B>(YE$=uXN-^tm*_&a@Sq!rFw#{S@m?%aNFw2$Mv@t;pgRP0w#h`c#8d~0h<{N~SwY?rq*^KbJ~CGg^H&S#VR6`AxHXEM&? zoZ)NNuI*>fti+DTUa8}sc))EaCz8n=58gW7oZ5#=duofD!meTQt1|ZeO;H|`(@_xq zc?m<$jmm9(Q6i0|vBzkOzD05FXk_%#X?g*ubQp(9aS__@bLW#+CWQE^beX}m=69>!7 zMj62!Y&C!PwR^om%?ssqPI?Ho*r1qIPHkpzCyMD!QUR(tPgVesf~e<_`{kA~X8Bc~_O=$@-YpZp$zjANrborFRib}5oGIl(>J&_2>2SBg zL>e8O0e<<75j__o55h-6S_oi}O@tjp-e8&)i~+Cs?vFdd2*YP2bNei*(6uN(T0vG! zVt(4mTg`8WLr4=uG$~YCmaef-(u)dj^^*J~y(T`d1f6L3aZoSSxfIki_3YFmm&&*b zRWO9cs#63CEW|(<IpmCTcP5wpG40n!*2Z*)5-H_uC*-$4w{ zkOr4E8Z8uny}4xN=$fB-w>PR7->m^SS=|<*YZ*5rs8Fg^fh}Q26RbfJ`XxmL=~^|w zhM#y-65G@iU7|_}u8>&{2=fCQgG=?wt6;-0=ij#^*KL-DA*S&(XR2SeGl%5Qj3gF) z7AmlX+9Vw^gLnMWh!J_x?e=!~OI3|57E}+LF#Pg&(rBCDV5?*G84*MtAlN0lHM8Sc zq)NRe>dkVvGPUioY!a=Y#M7>(Qq1!ng~v28Z{XHTOW`cj@$_JK7%6(wB^iT zTk11GA`BugZ&K4A4O;_+MEmn%^a4?jB$cQ6A_=k;1s>vQ&lH8qKR37uw11|+<6oJ$ z_Cc%hMBNLhyBtM^G-o^0u1+Q4_douU2&ax$QcXMxpbC+3=;oDp=+I5N zmslO?J?^7+3`r*9yly$LF-|lPGNdwi6rOIS7@3sYk30*s@ZkxfxwYB`9JpT~bIpdz9#YA- zaLse>ME#lc7(U%YkUq0!qdCa6p54>k*5M zg_BwsSt7gg3rwV?<;vSaYm_)-O8?I=V_@1c;rqe+s`*WVgqb;VE66hJ1UU2I#^{_(G3%gS4Bx zfm77s5?1^KCCl}L>D!LAi;KH9MT~=_`L2>`!QJ4+qZ+W!Qp@dWM2yT>L3hH%a(n?j z&B#5|n%?oa0XVK+-s1_*YFy|cdp)pp-A0h`Uf}iQ*NU;}vN0LwB++54B~QjWXmRE! zqUNRfB5d@Bp+r=ek5R@V_aJL?Mltb>iu*<=_ynQw7E;{yA9e;&!NMymS`e#p)Sj=7 z=RE|;<_o@c{lYaR&l;8xbPrRT!t1*I;20qF8ZAnmoxx(1%X=(bs| zt3+&GGUwEkqX^S&C2O-uuv2v3o$O}n@M+%01m614zd8DryV1n~r4KQ5-=S?~>TtAr z1=y)}RYs(gmt8EfJM18|UtiX22D0Fo8bIzx=?rmI$$;XS-bQxoRcH%O5nrX!)aLY4 z8audUS;ah9v&vOT=KVu;T!{~($*-Zw|FQAaVH2U99?HH7x6?@c!7gZD*U~qEv&>l0 z%2!Er(goPzHj{1vMO_1%t7*qalPTnIqRAjKi6iQ524y|jw%n(L0<7`630mo8`!_VK z%%B@!xg3j}vaUW!-7Q>?jnq;7PtT|BM@-Z0b6F2QLLdH57RGF@?-A((ddRk({>}Qp zHmdXBOh@l;M$5P~;y)pA@Jho^&^%IWU1TVHK(X)YFGLX<>{E5RS)Q7EFx?RWZ0Yh% zfsiKH{M{}L1-MKcx^`gbV8e(p#M=1g1n^@SO<>#o&ya>x8K?UyAWX_qU%gMc9ns%| zi@x_IUa29NG~n92i|RqEP(!n!u3q{_YQnTB#h;iqjbux^F!9}i=?+`C&VEF1(= z_$J_pO^WVT$`8}dc5m{5_{PNbSq}oOJIFRkknko@^k*6|!5{PzvNUizm()WA5I14D zwMJ`w%nNi|v%R^DX0iscUimQ7A$S$#85$Q`5KDIW+u37MiuE?Bi(8e0Ofq5H_xM0Wc2=jL{&E z(-reZZMNiAr46>q@&=psW`RVP!78`=@Jek|z2%xp#*($=y4@XjjP9S=RaevL1FwwT?fN}F>s%X$l+>v4cBf(917|(5V;`9vVsY3o1*~YV- z)>&yak}fm;LFM9qAOl6oQe+HDw1+VavI|fD4700_d8NL^?xs9vXDrfe&XgMyjSel^ zX^i-3nm;?HFfDV{ZxE0+M>QuF4zz53j+Gc*pPZ*C+#op<#@xH*`Xf&J8=#wN6KK`u zYhDg96mg>>(Jzt`fi2GG8Qm=~42Z9bXxI_sp1ny;xoynQ0^yw$;7!km_p5@cVH6zb zPtBcYDTD&+)0Dkncw{bMZkV?ju8u`xBoi9~frFHnIy@cx5&c8Ie)Xr+L{25X- zwA{2SB2{pByekyxBwMa)1~L1-4OcwY4@VGauTYXku)hNmvbrFm70(<2sCoSXLx5Y(gE zQTWVyuD{~};SldBe$`TRS3tyjM*;tZple?zs^BPWd;Sw4+B_x=dwaO8vv}M7>uc~B z!;^AqnBt3>2_$+5uinUf$XT3SMT$7o-kvWyGL7H?EwoXtTfYy7uqX;5$!$|%WLS*_ z{&(`rVdh7Uq)#}TkJYr;MWde#%PC2Q6A~X6B!0GI5R0S}ol|kY9VGq;$ix^(5NCG( zS*Z6vK9&!~a1^^fq~KXSQ7P|;yE8UdtO;v;)ki1Kz?sCvv0XX+l;QHw|5uUjzpOk8&c+VzB!bT7Rz}AEnaACvV)+k;9IujQN(!ol zxq??fK_e*TO9&c51Vxd*I4rzEB5kGdNd4kvb6B?|60AVMZ3F+9n`wJv@Dp(Ui@vGp z^~O(8?Rh=%_4>Y#?gyS`m^P-dioqV)Zhl{2V+kf>ph4V%-0%P&(q(g>B{AjEQ*I{o7vAOt zlZ#3?F{OAk4h6*P#7|FzTA5xOg0b~dCdV|*h9Iu6U4i2Y*T$B~Dp)D`uGl&ZwJg+etqRPgi2vD7d@VPVF5O8Rcp9b(dB4Yi{ztxrAOcX@z}Db>(gWr3UX1{pvyr zlzBa5{m~?jX-G$ffs){BkM3dm9gGa^xpO?07B0O7Ms100u&X0&&XekMG}Xp1pG_DT zYf2jn$I$DTn+`PD!<%K(*}<3dS^TqK#|x^KP1epaCtXg}zpKufwZ)Z8Wt3V-f^)>+ zQTt@RIV*x&f1UD5=+SBaVvcrtOfZh1Q8FvQ+=;!~H+Vq6{qqjtBX*qgAUjuiw7OC$yNF|e zSWF*5&Ym*p?)WlsDt}iMm2wSDmhQ6UG++**cfcF@rr~GVgMOu$wLnN7M+2JPiTGiu z)9YTEPGA)p ze?BK)0Kw&U`kDkb!nqaf2n%uuVlFWtAxZYb)EsvKd6F>rv0Kob9t+D0u4B((dk|#$ zR@$X0lxjy+dfOHNg-b3qIJPWh9gSsv**f>iR(98N)%|?{Lkx?e%7DBqmuPw%GlHIicM&t2jMitLo%4K>KqpncQNXmn zL8>SV)e%7HxW$87&Li;w`UhWg6zc(N{5b*Ce<`5;`ae3O|KMrGsz1{~#wb2p8)!?v z1pVTmtOXPt0{v2(Q+~B6Q$Z{M8RYA>`?Fg8-P|z=?C0>g0e=DisQx6tcNzj4j)}>A z>)k#mJMN4_NKh#4F?zmmpXNK}oOa(%{J34F?*??k1r0eTZAoj$0-nFE1fFNMVsa4q z``|vs%HK4JJ59xDlp^)ye|of(WM68~9*Tt_^x$v*`@pK7^2i1qPrd_;U#ODME^3(J zAeVpfCMX1{h2bweG4dMJdY&!XxzEBpvNKTQj>Q z+94gyGc)V;f#p@meY~#2JS5(T*@Ri%BC$7D+ByVLL|P1BQ@_K{j@#=5wh%abs&1$DKKm~gYHmm3=0$aIqG!1V?(tij-q`bOnJzj z@)26~0^9J|DMmjBFg2?UDk{mEp_{PhG{yB~s*B9*!XU%e0IKXhl~9L@Am$yKShsA2 z{5BO^Z>>ncon$>uNLK^uQu7@wF7pXlIyTlP==Qu4v2_};w4v{|lMAM(R#Vq#ah$|X zrdwtpJp&BM@i*@cF5U>GDfnP`x<&tAukRMB)^uTvdG%eWN(ak0!%nfxN;?NZ^s?_` z{-=e))dP1sGO|O$&6(MlXUw(bssckd)Km}LINDg+R2LY}c{|#|-!_16i z1F;8phLP2Q4w&dSL>shJtBWes ziXtP7N@Vke`Hiviq|sGa@n_GB6(v*?3%Pyi)4m{Y@hw2bYx5)rdIkIX^|1S-BF;`z zk-tChY7K4}d1p72VY<{{btFx@gc$6S+(V|EP)A|ByF_MulU{MVP-U+%PX$_Nyeme0 z0!Iu_G|rUX70T2T;WY3L!IorKk>@2}bQB z-?^ts4MV)#&yIh3X2m-pmrGoA45kzZrfnW|(T}PPW;gKS@GlCDnn$ep24eAxa9hBhQ*Fno1Fz*4ct_$I zCIZ(fRdq|$K7+a;gm8fHC1idTSnqW6n5}&N(`A^7fLmbo!_R2{rA+c~BilbMA^-IX z_|FPdRZ9(74dn~2O_~V=ghU&}TvMcPQeAm14&sog3N-)$l(JJMfe>a0lPf*wX}0N2 z>TOQV3$nUC<*|+a6ZaF`yJFMyC=I(j1IW^TYJ$_#ce~|z^oXr$RRN9%nw1jqY=9JO)Aff_OV}kPaBg8GS2ZK#D1ITTkJ9kX0 zB%yha`dv~X`~Zdb+;7;#5XN;Xh_ZKbMuqs1%T!%J@qI({W`uIF9Z88(Ed1 z#FX;W)fF>Gl2EubA+oq|%dZInq;|};APL2N0GMSg>T3E-0FN2!LQrp*&0VE+SqJ)2 z2m`;~LTWjcv8zF_nMO^Gzwd^cygPlQUcZLPia>Aj`yUa7%3>(>)yG8zrj^}wiwUSy zv57E6oTCL*TP2b&Sq&sQDPs=p63ORl4JcXlqsHPG$@Igh&gC1P+(@(95WXU9kd}>K z5b}lB>lh}2#ayTSWYX{rBMi5U)Zud>E83lw6yJ?-_K)2&pEp_hgWK&xHkW|*3l40OqUD#>_BC7omf0FJDojx4>Nr78OT0T`#&!IO}_q8!G!eThNr^{ z)+Q4!A|#|tIx-_16CMc#cdEO`mMNXf^$Lx^0+XBsOUODP44h`lngn2TuSQ-mfM5$~ zpl`9p?0<>Kcix_HVokKGZhhfC+19KE+!%)HKIt-cv$H`}y=v$58tOgmztCl2atXvV zCv7QD%Sae2hkyNr+a|b60wt$ZL8-cykdok2Ux5?m+E$qc^hDlNS*;G5XiE|ukgl5g z^PXreJ+CmwZ_g-=vCR)T_T^*v+AL<2u|@nbq~z2YYP-q8(~itw*rCn(%Vwy&J+D#o z@d%;QK^?odj^ded3)p#Dbp(AG!r&zfcx1@{_T|zUhG|pVRe^|YGXl2AJke!*;+&1m zQgI_ubwJFDg3jrMJg5mYuTS9`Z9;~#Tye3CBf0bM=Q7+KviQ!?%;I?a-!9$`9E_W{ zSgs*IfNXZ>nKGTEXWYs@cuKX_JvM}XzP;7dg(KPE?kB2+;gOQ*>A$!V;q;<>=HVdL z+r*DZfp7(4DBQJhT&*}17?&#$E=I3E_-BwJYCpu$7N@GdL*(ZgJt3X}=))sT8FPmb zw(2U~bs%YyNQ>Xhit~%yvcFwR8D*1VvlGJ4i?fpTMa@IWrNkz*Jpkz~(R1cs=Xn8l*k>u(Wo+ z(f`5Tgx_VbU4Af55awUipzQxHd$TsTF*bD2H~IG#I{w>U>i_p|WM!28SGcMyCx@(n z@GYZdrhy(29AKt$1D~SW9zhfy1`dgl(AS%R_4r_he|YNBvg%!>EAxTkalfZRKWNqm zezOD4B$};8l`$7cW^-q9G}*n~kv{74^<|IW!@5DR@fes<*pc$kXdywXjh2;h&hH4+ zwm%l3+BIx&@|PBq!})MjlE9_0p-Ds2Sp;M2JY$cbZ_-zC2^pWX$g=@0CoF{kW=k<= zt_5=TLVI_0l9U zwxRfDh7ia;qnb}yr8brM6=bv$>4v#aC<+q02y7ZG*i#kA`%k-=vi9;+>#QNn#7`Ri zQ(MuSzxSElMI0tCRjlRXOc1M~*vY&RBl5@gy?vb8BqWW#c}@1C6s2)Z`i3hsA~C-r zror@kkex@@8JA3>I=KG$B!^~Ey`k==h~y14Q(t2Xileo)SDAQgf$2=zNkop#%gml^ zRrRkj`KjDx3W!uws~LbHR`+=!#;q!ssJ$F9kRJiJ@xpXor`0eu!6(()MZE&$_Qse% z&`(6JjDvKW#8TWRpGcB*e}h54P6(d4VJFrwBu;zvE%ftdNgJ=FefepWSedL1X`dPg zZGF8Yj9(Le#~=%H=gm(Ls}C4YFdsMSxDlgrC1(hdVW4OW0uguUOT^#|At`>W1H6lM z6AA{`TsUT5GsZ~VXiz)!qWdo_vU}Q$Myf z!dFRfbLIG;L;25j4xml0E)XZ$1BS&&2nc7zcs!lK8;k#$aOAD(%6OrEm_*lm1dSs5 z0Koqc7%Fp2@sK$Exz7$JM-!Ks%*?BD+k8K3|3a{XxP9bZla>>5RB6kD#{-mHKTBl^ zTC_D5$DY+;yjw_tP1W4%vBGFCH*~0ywGl&}*Gfpj?Cx_DoCk&>3$ryM<%FdWkXn*T zAFKs=Qnzd4f6WQPD+b|pRtff5yz+M%_{UlOMJ#cM9S7UC4_0%f;*!_(Cj1Vif;x-~ zhg)o~QTr%S)ACVGh6T(f%_5ltpBdMEY@yP`e9-{EbRjEnr5L%j-tNLq0^^cI2$G_JPkZ2LaXp_aZDDyhyf`Wu6^tYKMZr19*MW~{!g+yMvPpc{&S^`|K*kbx5@55jg9{!*=sSX;lffLSrKl7KvIwZHGo1QLc9rZt-93b*qOBlI}S)FlCZjDmB@TZSSXUw z@~nF{$c$lYHnWw;q`%}JnUDRUzHb8WSKd=NQyUP%Ec-3Kr9?4HYuDTALyW1|GL?( ziA(b@WU>_+B57;U*mH7VeE?;^lI@(c8Jbx9?YR?0$LB8aU|L;tVhAIk0=_Ab>`CM@ zCj)IqA9ja>K3K#KKa=AXaeiHE&m_HkM#UgRaL{5)kW8zC%pgOULdK0LecL}>S=m1( z9x7@S?1wu2CC+8n?Z;nG^uP>Os02azV~W8Gi^e<#U1EV_NuEIT2S4U32mL!=zPaBy z=T|fy;Nk!181QZtQWCY9C@PprM7L^(z^Z;FhRH`HpM9Ji5-L6&6o1BiBG!kYgOSaNnT3&7PYSXr-tn+wN|N396(JTNY))w8Gb+t6O6 z*l;Zpcdnanh-IkHfQybgpa*tX6=guy5|mhvpPU^BUqVclN?t9=)qc~=rSQyFyJ%d* zRW5@kXcquzrD_+_#^QKlK|p8Agb{`atlKU5CFdntMG?6@O5*f|I69*XSvN9-K`nC38{ z2sAW77{;EWlj3jluU_IA%|;W+`;1?Tc)|}pDyR37{mKC3Nkd+Cu=7@GQ4Qw2855RJ z7Yo*0SOfEJWPYVLlz243Qq zTG|U!$cQx)1*anHvagg$yyTvx?~}rFPkF`S^K7w{)c2gu9%D5SN$i@(Gt__`Q8iGN zn}~8^!+mvbR91iBsBQaiZ)+d;Hst+ln2GLa!f6Tc9as{M)owEu9%PQJsBFAp_MFr0 z&u>C{5<+S*q5q`NYWv$B@0t?x(SNy;e7PR(M+1NvL%aDBhOegVlX_{Se8R69aS8@{ zq?qM8cq3ENyrhA)8UTJI0n~lSvecMT^~u&D%e%l92Qc8t#ii&$fo!l$#>a-ZD?91@p5|RA z&z`>|k%sgUdZM!^{09ExF6Jez1GR_9>me_f#`V7O*>2&YcF<+ia|yo~c;L=KtJA#w zA~q48mLo~dp{F6AeiuMoLkl>pGF0k7QY_%14O~9&W%u zRIrLUL0#&)BhHta@IWS}+xBi5FUAYO%ZkFRNryoOl&RctB{ zr;2@?;~n`JkW@zmcJYPT)c7TG4ynG$%GI*Gvw|eTQX_bgGmUjXJEYs;XxG!6`x=*zsT%y+$!%D1vnD?fiH1l^2fkBjXzSN8VtM^L z7M@lV`MI02cND|m4x7=<3wY1temG7mSzldt%We#Z5yF{-NJy>3357%-PLW8TsANlg zkPIh@cAP5!ch>h#nf-K3@D zc@RsxZhC#PEqB-r1R{4>XY@+;z^S6_Lg5G8=)F0`e65-gXl}s72YAz8mg*6c%RB>S z#V8p=f2$ZnqR>e^$>+I&E+95yw#<^M63vvXJ+rdGBZvMr2Pqbq1Zx~%FNZ*zJoj)ZBl=Iy3nK=HA68)I8r3eBa7`07^w&2* zJkF_grKAVu*AGh`%pA57e4db6hi|faRklCjeAi_VDnX6o5X*0ZsF&G3lpb|UxxL5q zy=v##ZR))s?%xHW)0m9=Ru+>i41&*HJyjFad*{9Ax1>$9x^`Jze&{y^mre~1zv;tQ zhJRllM*vGF2M%xqN#OkGoaSA=F}wvNMcA6oi`L2(9OMJIEPXYK#CblJ9QnKM>G;mB zW%K86BuYc)GZd~wE(AZ_&D&hB<9)Xd2nEaIu=Z8~PB}7?^0E78+ut`MupJXvubPwW zOs&H4w)SQ2iSW>uo|xKQA=lf=84aVg5t%kAsrzvB!>E>5z`wdi@c^ik9w@7MqaVWx zg6~}hP^qP}*UJ=RmJZ*{aZ#@wzJT8>4=>GK-9IR5cz8(1h__j~$62TybC2Fk)fuLb zP$sef)o}X0rD*G)h6m$h+^8=<}2BCoeplI|_L8fTwZ$G(DHNk`sUI zvdm0XB0~3xd-<=cywH<>w7;=rx|La2@K%A=w2m3ywJq%&Kd2-3rC8POA*c9nv2Yr& zZY)cuYh^pwQ=jZozoV;8^h@=2H9pokv#gE{cPD-}j4fV{plEG&)-GDMwpZFcrhrzu zuro@%i!V0;agR)2qZx?dKVP>%U+kQ1(=Wg!^FEl8$Ds8yqD9V2Wf5&n(1Db0$QC$! z$VBsf;MUh1&?Zik-hBU4kSd;{JLmWjqx`V`RpIg9NK^TTWBY%mX|JBjrl>yM6AsM% zB>p`hNEu8hB%>q<8A<95^8E=|8KB|>km{$C6QpfUX^;&;#gbJb*5_T3*b&XjBA{Bp zXxQ?RQj6Waxu5WFFAtPm+nuf^S2U{xQ}B-6@3hAq$Gpef#~ZHvZkA}jsJ}>O5F_PS z&S%YOGZsplim-O`+=-C5H*uC@#2V!lV?{Wn2Z-i1JKFT5WQY2|tJFXRe^=UuBgw{C z-ZlnJbs?WMuHh&YBA;%i#KdIdN`afASM^ZVa-rX_mCO8IP8cYG#}_xhZOC*jeh^oe zR0CPN){6m(^)rA(wsSpG;B8a-Ez=ntzlq2ie`3aQ5eRRr+bU1DBQ1Ld>0e!3Z&T_& z(JqMixWRcguC|PsG*CnJi*Tn!2wQUK@dTs}66CHKZXkiTPMM|SSz0_ZfdNHX0{UYv zz!@kfu1<=#98wuA0!7`t7jKTdz=8?&xa;VxP$X#@mj_6z-V&Tvu%xM%lD1k>oXraU zT|S%@FNuIaKHfAkKn%h`Q0i(njH^0W=GEz!wRit)+v9sJCjOlPax+9_u4!(-TXD$# zX)70Nvi)h;YYBnb9*e2_Kj_gbL*q(8j-czHOOvDu0??bOzT&-x zQFfQglF=l0eP(taAabrOIJfz*_)iAlc<5$2F!<#~c;;7d!HvRu2%%7Gpkqjyb6Io4 z#EqTS@y+NQHOM-;PJYh{2=;@cUW%JXQNJd=2v1~+Exsyo|euJvn7;u_wNKuK<7pgI6wWmln{g>T-vrbep&7rS!UKhb(^#)Q8w&)v}_qRSRvgQ&sH#iRZ)ebGFyM~gCa8BltM?32`pcWR< zBdD|DAD^*bN}N_&KyV&Sn!jVvm0sxjg>(-ZfU@CTBGp9hv4#9`MfyGc$Hg=(@8yiw z?(p61B?789aiv810MB65!+=a?;c#LHfs0=t|FlkoDhz!tfyy70<+1xjUf7o%ZY~n8zYFiqxQx zW-J~2yGNk{txcsRq*akM-N-f<#4GRUGyknMe=ez4dtfxXynQw?_}9cYl_MH;-5AGV zik<||E8H+2-(>nC&gS8Y`vwiM_~I`$!c~CTj{ojC#GlS$5e`oTGKgM#`@x;|o8KKsi6G3~bJYiQZ8ZKP!;D;`mlOW{|A zg8PJV6DLQK*=Buo7wm}`lS+(1Jgb&Ux1dA$H4UK)>``y-iZ;zaZ=CDn4}G4fZbvb6 zZTviKfk1?3vph9{@Bp!BSI{abmm8V5r!`OIqxveKYkM-888D=Qm>gn>cMM2}n^Q=( zshv^F&qi^NDUkzghmVWV-_I+xso0_H_Rl61D+W7GLJt%n8L|1xit{pyiju3eEHM%) za+^IpO+4hO#>z>n%B`@!1is+0^35Wc1B)jd&fm~Z)7=MP^*O|}8w5f#-{FwT<7j_& zSxq9;`+yOH5t5=2f}@j={TU)L0e5YQPaC!#h_VO2*HcMRV#RoZv_lqvqi4ri5Z?Z~yJ?UTCgj;W&cS)JnInkWr# zDoWRyhVX@KmC;LXYR8v}9#B*p!j!{a4@he4WZNR`SP-uBSz3Nt?JsW<(VvC8+ooU= zgt)-?yQq$pqD?Ge^YpKd#pcU%8spru=U5MZ^UXQhK59b5v^dpU=GE`BW_=6FNx5MM zKe<)b?l5RD5md}HRJI6dc%FVoD%aRj-Wlo|Pc%OzRY~X`n%udIT_VU<;%qgCXYWnFN)&QTX zJLj*TK}`p+?k@lBgJC@#FkReg@Iu4@`UZ=&LOt=oFHIHl@@fy~h7Poo%HNS29ft1)YQ@g-v zSEiYRYIdf-TO*VT^BeXVhYv90ml|lRjx^HKjK8Mkr`!Vv9XPg!p_nKJERf7l-(1yP znEh-uH>{^oJWT$!)GriifhA_p5K_CnA=sdDe?IKV!rwVb?4HJpWHqOTCwpQ5`cm`= zq)yX;4dZP^tb=m6y~Rcj>JJcJ?t{70aG(ZQh~%MV2p{FfAs{{N$*qHkkk>!km0=lyd1`#=BBPThYRZ4}34u>}w+ z^<~hIA=n@hbOA-;jrCT9;v7Z*5t>P*I*f4OURY=@7xQjuGX5XZzBxG4Xiu{{Hah6o zwr$(?7j|qXosMmOvD2|_+qP{x+1%N=vs<+_w`OLm-oM|fbLy#6=l7fkxVAl&_FJG& ze?vC*0SHL~cBv;9Craw_n;)GW->*d#@pnPun@7aN&@|SumuF(xh#s{K zcoIDXKsLp1u~J`n91l<8m>g>7mr7yFqRASEO~j0P=SE-?@-#}X!a{$)P6`&)Zz3&u zjMu!3DEu;+1b>Y_8iZaZVdp2lI*laa8{rxCj}u^=W0FKL&QiZE(DF1rSkg2h!t<)o zI*l5U&wnHe72wTln?<8eQZY7^j`ShaZSgdz)Z)H>8hKJ0>AkE}mPe@DMd65oWXms{ z;rUb<#i(fo67DSYKl~9to(+|n0~P{Ym5?!nzk}dwG%FY!rWkdtc6oi!ZBeVMH=Q`& z_7NrFp%iHZ1*--bU0p|RO421Vgio%Dmf5$BB|=Z2wIcP+N2iPs^|0`*fB(nhLkMXF zW9paKiuFsF_MbmKaR2ua@V}j!|Ac_7yz-Y)G+EsXRUtg=hEOPi@I0uIVIUBewSh#I zB2`IqYW}Lt8xA-T<33yT#`^Q)n@_@ZhZ;>d8HVOK&~uWP^Kjzr?fxC|Px2CBn**P8 z9qkf?uAPFIKpf^H>opHUI>fnEZke-SBp|pK`1->is@_rcZy!Y(DZczKR}AvGXld5WB(gaYK`#L9WH3prYAlIsgJ1 z(nW|v0nuy%OYkAQK(|2TRa|6Qe` z3G1aY5B&6Dj&Ej;hYm#n)%lKzM2Hx-jcE+!izJYTgo*@}?ab6n0vZowVE$gW(t_65 zx?-VUCwkseVBu02Q30sOUMi|0Gh0* zi;2)FqG=&m9AA8sov?AA8swz|X`trzchBTRzsEO?Sd%^r>< z@zqKRh844VCzE|Ud-K+~Q2R*|=Qd%ahCox_+7{Dr{QbXI-GS6#6*BS>IS&2tv2=o} z_btXAxD%4BHLPV}|&nJ50C=6+WNZj2@c@z>sJRC5-sBfps$ z)`PQa)@Q9v?&7j*TFB({Gj$FIWpwh^Si(2(>VFwDY{6XUTQee1mReemg}KH~&z+>= zx~Ds=1l%!ks^tv?bN)5CiIO!ns4$r3xFso4^Ea5m@PZ#hNl-l87RgOH0cpMEjU_j5 z`+2VMCy;M!F!%Zts9c~}<(AI9s13{{Y19*^o~a|ks-HR5Fk3TxQL|NlMjl`)P(|^c z`YBmZ4oGw?_$yF6wH3ai9j~r=YIqEXI~9S($5Exk0N6|QRi$~?@Q}6DKakV4U47Sx zWG(pBuXQjeMa!HLa;J6Nw$_N+49Px~R7e~Y zn&y8q#^jKK1&q5sX#PG^{>6^}3bd?tf|V}iMg};S%aVE~roq_zg?f`;D7ifdCJD-^ zL^T>{JIC&oH0LAfDOhry;(193J_T!%f`N3W6Ah|W`;SF$_J}7$J|06^5b~^rQER#3 ztVM6C8S;-rG=_5kVGb-0x-UzN%E=SgHj|cqh7O)73%aXU)p*FXb!OkV4{rKDrSzmn zmwt05kE66a5|DkpuJTJk;_FVWB^>aVhbFVM4)P4i!S%}|LUVVg()&v~73KpGoUoIn zdR6os3GS1He>q&y44-ut4dsRP>^S(+F#7G4C{(%30KfNVf^6quZ(a#ubDPE738L!m z&&|!;VY7fy0)BWnqgL&S91^SmaV08#sfrCYih(=f)IX6Hsfg(N(TAz!j~8^Q9~J>N{&zS2x3pevnl2iPxGd%o7rv zyWu+;2Iz=AkftlSw3W>WM|TL0QOE>zFPzFl@#fv52GFr)S+SwM%C;2-WT+Jvi2F!E z?$rb~vkFNgew3j~t2$sd2i$D6%4A@Ct~`l@m(Zg{q*zdWl*pruVa?C8qG3&s;iBcG z@#9T%g)RkMj0EEg&OZ4ufwT>&tph;=rLL^babvy4KCYp$fUU+FSkj06@(qZ33UxC=1iAxF?(F-0|ko) zhs&wbm5EJzd#GF*`K|YlIB?Ovy%0D}5nR{)AG*KI`>?WTl1S_7xf9PWEoGTP-)m6W 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.0.26 provided + + com.github.InventivetalentDev + GlowAPI + 1.4.6-SNAPSHOT + system + ${basedir}/lib/GlowAPI_v1.4.6-SNAPSHOT.jar + me.clip placeholderapi diff --git a/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java b/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java index a0dd6394..e5cea300 100644 --- a/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java +++ b/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java @@ -39,6 +39,7 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.entity.Wolf; +import org.inventivetalent.glow.GlowAPI; import java.util.ArrayList; import java.util.HashMap; @@ -63,17 +64,15 @@ public class SetGlowMechanic extends MechanicComponent { */ @Override public boolean execute(LivingEntity caster, int level, List targets) { - Bukkit.broadcastMessage("fuck you glow"); if (!(caster instanceof Player)) { return false; } final Player player = (Player) caster; - player.playSound(player.getLocation(), Sound.ENTITY_CAT_HISS, 1, 1); String color = settings.getString(COLOR); + double seconds = settings.getDouble(SECONDS); for(LivingEntity target : targets){ - player.sendMessage("you glowed "+target.getName()+" with "+color+" for "+SECONDS+"s"); - + GlowAPI.setGlowing(targets, GlowAPI.Color.valueOf(color), player); } return true; } From c12bc85d5df9cd5633bd86ee0bc847475f32bacb Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 12:58:19 +0800 Subject: [PATCH 08/13] Fixed glowing color is dye color bug --- editor/js/component.js | 2 +- editor/js/data/data.js | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/editor/js/component.js b/editor/js/component.js index 0369e81b..ac8af8de 100644 --- a/editor/js/component.js +++ b/editor/js/component.js @@ -3247,7 +3247,7 @@ function MechanicSetGlow() this.description = 'glow target with color (only caster can see it)'; - this.data.push(new ListValue('Glow Color', 'color', getDyes(), 'White') + this.data.push(new ListValue('Glow Color', 'color', getGlowColors(), 'White') .setTooltip('The color of glowing') ); this.data.push(new AttributeValue('Duration', 'seconds', 10, 0) diff --git a/editor/js/data/data.js b/editor/js/data/data.js index 0a7018b9..591b02a2 100644 --- a/editor/js/data/data.js +++ b/editor/js/data/data.js @@ -66,6 +66,9 @@ function getBadPotions() { function getDyes() { return DYES; } +function getGlowColors(){ + return GLOW_COLORS; +} const GOOD_POTIONS = [ "Speed", @@ -118,4 +121,22 @@ const DYES = [ 'RED', 'WHITE', 'YELLOW' +]; +const GLOW_COLORS = ['BLACK', + 'DARK_BLUE', + 'DARK_GREEN', + 'DARK_AQUA', + 'DARK_RED', + 'DARK_PURPLE', + 'GOLD', + 'GRAY', + 'DARK_GRAY', + 'BLUE', + 'GREEN', + 'AQUA', + 'RED', + 'PURPLE', + 'YELLOW', + 'WHITE', + 'NONE' ]; \ No newline at end of file From 0a3234d700a93b72c156b3bde713bab00d3d721b Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 13:15:01 +0800 Subject: [PATCH 09/13] Fixed multiple times glowing bug --- .../java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java b/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java index e5cea300..33c037cb 100644 --- a/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java +++ b/src/main/java/com/sucy/skill/dynamic/mechanic/SetGlowMechanic.java @@ -71,9 +71,7 @@ public boolean execute(LivingEntity caster, int level, List target final Player player = (Player) caster; String color = settings.getString(COLOR); double seconds = settings.getDouble(SECONDS); - for(LivingEntity target : targets){ - GlowAPI.setGlowing(targets, GlowAPI.Color.valueOf(color), player); - } + GlowAPI.setGlowing(targets, GlowAPI.Color.valueOf(color), player); return true; } From 393507f5111d0ba65172958bb263e2a5fc62a0ab Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 13:41:41 +0800 Subject: [PATCH 10/13] Added missile feature. --- .../api/projectile/ParticleProjectile.java | 52 +++++++++++++++++-- .../mechanic/ParticleProjectileMechanic.java | 18 ++++++- 2 files changed, 63 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java b/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java index 926dffca..a0ef0324 100644 --- a/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java +++ b/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java @@ -34,6 +34,7 @@ import com.sucy.skill.api.util.ParticleHelper; import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.event.Event; import org.bukkit.util.Vector; @@ -75,7 +76,10 @@ public class ParticleProjectile extends CustomProjectile private int freq; private int life; private Vector gravity; - private boolean pierce; + private boolean pierce; + private Entity missileTarget; + private double missileThreshold; + private double missileAngle; /** * Constructor @@ -96,7 +100,26 @@ public ParticleProjectile(LivingEntity shooter, int level, Location loc, Setting this.life = (int) (settings.getDouble(LIFESPAN, 2) * 20); this.gravity = new Vector(0, settings.getDouble(GRAVITY, 0), 0); this.pierce = settings.getBool(PIERCE, false); + this.missileTarget = null; + steps = (int) Math.ceil(vel.length() * 2); + vel.multiply(1.0 / steps); + gravity.multiply(1.0 / steps); + Bukkit.getPluginManager().callEvent(new ParticleProjectileLaunchEvent(this)); + } + public ParticleProjectile(LivingEntity shooter, int level, Location loc, Settings settings, Entity missileTarget, double missileThreshold, double missileAngle) + { + super(shooter); + this.loc = loc; + this.settings = settings; + this.vel = loc.getDirection().multiply(settings.getAttr(SPEED, level, 1.0)); + this.freq = (int) (20 * settings.getDouble(FREQUENCY, 0.5)); + this.life = (int) (settings.getDouble(LIFESPAN, 2) * 20); + this.gravity = new Vector(0, settings.getDouble(GRAVITY, 0), 0); + this.pierce = settings.getBool(PIERCE, false); + this.missileTarget = missileTarget; + this.missileThreshold = missileThreshold; + this.missileAngle = missileAngle; steps = (int) Math.ceil(vel.length() * 2); vel.multiply(1.0 / steps); gravity.multiply(1.0 / steps); @@ -224,6 +247,25 @@ public void run() cancel(); Bukkit.getPluginManager().callEvent(new ParticleProjectileExpireEvent(this)); } + + //Missile + if(missileTarget!=null){ + final Vector vel = getVelocity(); + final double speed = vel.length(); + final Vector dir = vel.multiply(1 / speed); + final Vector towards = missileTarget.getLocation().toVector().subtract(getLocation().toVector()); + final Vector targetDir = towards.normalize(); + final double dot = dir.dot(targetDir); + if (dot >= missileThreshold) { + setVelocity(targetDir.multiply(speed)); + } else { + final double diff = Math.acos(dot); + final double t = missileAngle / diff; + final double sinAngle = Math.sin(diff); + //final double m = Math.sin() + //baseProjectile.setVelocity(result); + } + } } /** @@ -240,7 +282,7 @@ public void run() * * @return list of fired projectiles */ - public static ArrayList spread(LivingEntity shooter, int level, Vector center, Location loc, Settings settings, double angle, int amount, ProjectileCallback callback) + public static ArrayList spread(LivingEntity shooter, int level, Vector center, Location loc, Settings settings, double angle, int amount, ProjectileCallback callback, Entity missileTarget, double missileThreshold, double missileAngle) { ArrayList dirs = calcSpread(center, angle, amount); ArrayList list = new ArrayList(); @@ -248,7 +290,7 @@ public static ArrayList spread(LivingEntity shooter, int lev { Location l = loc.clone(); l.setDirection(dir); - ParticleProjectile p = new ParticleProjectile(shooter, level, l, settings); + ParticleProjectile p = new ParticleProjectile(shooter, level, l, settings, missileTarget, missileThreshold, missileAngle); p.setCallback(callback); list.add(p); } @@ -269,7 +311,7 @@ public static ArrayList spread(LivingEntity shooter, int lev * * @return list of fired projectiles */ - public static ArrayList rain(LivingEntity shooter, int level, Location center, Settings settings, double radius, double height, int amount, ProjectileCallback callback) + public static ArrayList rain(LivingEntity shooter, int level, Location center, Settings settings, double radius, double height, int amount, ProjectileCallback callback, Entity missileTarget, double missileThreshold, double missileAngle) { Vector vel = new Vector(0, 1, 0); ArrayList locs = calcRain(center, radius, height, amount); @@ -277,7 +319,7 @@ public static ArrayList rain(LivingEntity shooter, int level for (Location l : locs) { l.setDirection(vel); - ParticleProjectile p = new ParticleProjectile(shooter, level, l, settings); + ParticleProjectile p = new ParticleProjectile(shooter, level, l, settings, missileTarget, missileThreshold, missileAngle); p.setCallback(callback); list.add(p); } diff --git a/src/main/java/com/sucy/skill/dynamic/mechanic/ParticleProjectileMechanic.java b/src/main/java/com/sucy/skill/dynamic/mechanic/ParticleProjectileMechanic.java index 5015fcdb..e65c171a 100644 --- a/src/main/java/com/sucy/skill/dynamic/mechanic/ParticleProjectileMechanic.java +++ b/src/main/java/com/sucy/skill/dynamic/mechanic/ParticleProjectileMechanic.java @@ -40,6 +40,7 @@ import com.sucy.skill.cast.IndicatorType; import com.sucy.skill.cast.ProjectileIndicator; import com.sucy.skill.dynamic.TempEntity; +import com.sucy.skill.dynamic.target.RememberTarget; import org.bukkit.Location; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -65,6 +66,9 @@ public class ParticleProjectileMechanic extends MechanicComponent implements Pro private static final String RIGHT = "right"; private static final String UPWARD = "upward"; private static final String FORWARD = "forward"; + private static final String MISSILE_TARGET = "missile_target"; + private static final String MISSILE_THRESHOLD = "missile_threshold"; + private static final String MISSILE_ANGLE = "missile_angle"; private static final String USE_EFFECT = "use-effect"; private static final String EFFECT_KEY = "effect-key"; @@ -144,6 +148,16 @@ public boolean execute(LivingEntity caster, int level, List target copy.set(ParticleProjectile.SPEED, parseValues(caster, ParticleProjectile.SPEED, level, 1), 0); copy.set(ParticleHelper.PARTICLES_KEY, parseValues(caster, ParticleHelper.PARTICLES_KEY, level, 1), 0); copy.set(ParticleHelper.RADIUS_KEY, parseValues(caster, ParticleHelper.RADIUS_KEY, level, 0), 0); + final List missileTargets = RememberTarget.remember(caster, settings.getString(MISSILE_TARGET, "_none")); + + LivingEntity missileTarget = null; + double missileThreshold = 0; + double missileAngle = 0; + if(missileTargets.size() > 0) { + missileTarget = missileTargets.get(0); + missileThreshold = settings.getDouble(MISSILE_THRESHOLD); + missileAngle = settings.getDouble(MISSILE_ANGLE); + } // Fire from each target for (LivingEntity target : targets) { @@ -154,7 +168,7 @@ public boolean execute(LivingEntity caster, int level, List target if (spread.equals("rain")) { double radius = parseValues(caster, RADIUS, level, 2.0); double height = parseValues(caster, HEIGHT, level, 8.0); - list = ParticleProjectile.rain(caster, level, loc, copy, radius, height, amount, this); + list = ParticleProjectile.rain(caster, level, loc, copy, radius, height, amount, this, missileTarget, missileThreshold, missileAngle); } else { Vector dir = target.getLocation().getDirection(); @@ -179,7 +193,7 @@ public boolean execute(LivingEntity caster, int level, List target copy, angle, amount, - this + this, missileTarget, missileThreshold, missileAngle ); } From 8434206c20ad87ed25df233c71f3214fd5cf1768 Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 20:46:28 +0800 Subject: [PATCH 11/13] Better editor UI for missile. Added missile_delay value --- editor/js/component.js | 30 +++++++++++++++++++ .../api/projectile/ParticleProjectile.java | 11 ++++--- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/editor/js/component.js b/editor/js/component.js index ac8af8de..70cdd0dd 100644 --- a/editor/js/component.js +++ b/editor/js/component.js @@ -2505,6 +2505,9 @@ function MechanicParticleProjectile() .setTooltip('How long in seconds before the projectile will expire in case it doesn\'t hit anything') ); + //Add missile options (homing projectile) + addMissileOptions(this, true); + addEffectOptions(this, true); } @@ -3407,7 +3410,29 @@ function addParticleOptions(component) { component.data.push(new DoubleValue('Speed', 'speed', 0.1).setTooltip('Speed of the particle. For some particles controls other parameters, such as size.') ); } +function addMissileOptions(component, optional) +{ + var opt = appendNone; + if(optional){ + opt = appendMissileOptional; + component.data.push(new ListValue('Use Missile', 'use-missile', [ 'True', 'False' ], 'False') + .setTooltip('Whether or not to use the missile (homing projectile)..') + ); + } + component.data.push(opt(new StringValue('Missile Target', 'missile_target', "none") + .setTooltip('The target you would like to home at')) + ); + component.data.push(opt(new DoubleValue('Missile Threshold', 'missile_threshold', 3) + .setTooltip('The threshold of the missile')) + ); + component.data.push(opt(new DoubleValue('Missile Angle', 'missile_angle', 3) + .setTooltip('The angle of the missile will turn')) + ); + component.data.push(opt(new DoubleValue('Delay', 'missile_delay', 0) + .setTooltip('The delay before auto homing the target')) + ); +} function addEffectOptions(component, optional) { var opt = appendNone; @@ -3485,6 +3510,11 @@ function appendOptional(value) value.requireValue('use-effect', [ 'True' ]); return value; } +function appendMissileOptional(value) +{ + value.requireValue('use-missile', [ 'True' ]); + return value; +} function appendNone(value) { diff --git a/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java b/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java index a0ef0324..13b5a59d 100644 --- a/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java +++ b/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java @@ -255,16 +255,19 @@ public void run() final Vector dir = vel.multiply(1 / speed); final Vector towards = missileTarget.getLocation().toVector().subtract(getLocation().toVector()); final Vector targetDir = towards.normalize(); - final double dot = dir.dot(targetDir); + final double dot = dir.dot(targetDir);//degree of inaccurate if (dot >= missileThreshold) { setVelocity(targetDir.multiply(speed)); } else { - final double diff = Math.acos(dot); - final double t = missileAngle / diff; - final double sinAngle = Math.sin(diff); + Vector currentDir = vel.normalize(); + Vector sum = currentDir.add(targetDir); + Vector newDir = sum.divide(new Vector(2,2,2)); + Vector normalizedNewDir = newDir.normalize(); + setVelocity(normalizedNewDir.multiply(speed)); //final double m = Math.sin() //baseProjectile.setVelocity(result); } + } } From 759ca60f435af23bffa4c5294177ffb5b9d71cf1 Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 20:53:03 +0800 Subject: [PATCH 12/13] Added missile delay in java code --- src/main/java/com/sucy/skill/SkillAPI.java | 2 +- .../api/projectile/ParticleProjectile.java | 29 +++++++++++++++---- .../mechanic/ParticleProjectileMechanic.java | 10 +++++-- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/sucy/skill/SkillAPI.java b/src/main/java/com/sucy/skill/SkillAPI.java index 60527e3c..e40586cc 100644 --- a/src/main/java/com/sucy/skill/SkillAPI.java +++ b/src/main/java/com/sucy/skill/SkillAPI.java @@ -74,7 +74,7 @@ *

You can retrieve a reference to this through Bukkit the same way as any other plugin.

*/ public class SkillAPI extends JavaPlugin { - private static SkillAPI singleton; + public static SkillAPI singleton; private final HashMap skills = new HashMap<>(); private final HashMap classes = new HashMap<>(); diff --git a/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java b/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java index 13b5a59d..42124fd0 100644 --- a/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java +++ b/src/main/java/com/sucy/skill/api/projectile/ParticleProjectile.java @@ -26,6 +26,7 @@ */ package com.sucy.skill.api.projectile; +import com.sucy.skill.SkillAPI; import com.sucy.skill.api.Settings; import com.sucy.skill.api.event.ParticleProjectileExpireEvent; import com.sucy.skill.api.event.ParticleProjectileHitEvent; @@ -37,6 +38,7 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.event.Event; +import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; import java.util.ArrayList; @@ -80,6 +82,8 @@ public class ParticleProjectile extends CustomProjectile private Entity missileTarget; private double missileThreshold; private double missileAngle; + private double missileDelay; + private boolean missileStarted = false; /** * Constructor @@ -106,7 +110,7 @@ public ParticleProjectile(LivingEntity shooter, int level, Location loc, Setting gravity.multiply(1.0 / steps); Bukkit.getPluginManager().callEvent(new ParticleProjectileLaunchEvent(this)); } - public ParticleProjectile(LivingEntity shooter, int level, Location loc, Settings settings, Entity missileTarget, double missileThreshold, double missileAngle) + public ParticleProjectile(LivingEntity shooter, int level, Location loc, Settings settings, Entity missileTarget, double missileThreshold, double missileAngle, double missileDelay) { super(shooter); @@ -120,9 +124,22 @@ public ParticleProjectile(LivingEntity shooter, int level, Location loc, Setting this.missileTarget = missileTarget; this.missileThreshold = missileThreshold; this.missileAngle = missileAngle; + this.missileDelay = missileDelay; steps = (int) Math.ceil(vel.length() * 2); vel.multiply(1.0 / steps); gravity.multiply(1.0 / steps); + //Missile delay + if(missileDelay == 0){ + missileStarted = true; + }else { + new BukkitRunnable() { + + @Override + public void run() { + missileStarted = true; + } + }.runTaskLater(SkillAPI.singleton, Math.round(missileDelay * 20)); + } Bukkit.getPluginManager().callEvent(new ParticleProjectileLaunchEvent(this)); } @@ -249,7 +266,7 @@ public void run() } //Missile - if(missileTarget!=null){ + if(missileTarget!=null && missileStarted){ final Vector vel = getVelocity(); final double speed = vel.length(); final Vector dir = vel.multiply(1 / speed); @@ -285,7 +302,7 @@ public void run() * * @return list of fired projectiles */ - public static ArrayList spread(LivingEntity shooter, int level, Vector center, Location loc, Settings settings, double angle, int amount, ProjectileCallback callback, Entity missileTarget, double missileThreshold, double missileAngle) + public static ArrayList spread(LivingEntity shooter, int level, Vector center, Location loc, Settings settings, double angle, int amount, ProjectileCallback callback, Entity missileTarget, double missileThreshold, double missileAngle, double missileDelay) { ArrayList dirs = calcSpread(center, angle, amount); ArrayList list = new ArrayList(); @@ -293,7 +310,7 @@ public static ArrayList spread(LivingEntity shooter, int lev { Location l = loc.clone(); l.setDirection(dir); - ParticleProjectile p = new ParticleProjectile(shooter, level, l, settings, missileTarget, missileThreshold, missileAngle); + ParticleProjectile p = new ParticleProjectile(shooter, level, l, settings, missileTarget, missileThreshold, missileAngle, missileDelay); p.setCallback(callback); list.add(p); } @@ -314,7 +331,7 @@ public static ArrayList spread(LivingEntity shooter, int lev * * @return list of fired projectiles */ - public static ArrayList rain(LivingEntity shooter, int level, Location center, Settings settings, double radius, double height, int amount, ProjectileCallback callback, Entity missileTarget, double missileThreshold, double missileAngle) + public static ArrayList rain(LivingEntity shooter, int level, Location center, Settings settings, double radius, double height, int amount, ProjectileCallback callback, Entity missileTarget, double missileThreshold, double missileAngle, double missileDelay) { Vector vel = new Vector(0, 1, 0); ArrayList locs = calcRain(center, radius, height, amount); @@ -322,7 +339,7 @@ public static ArrayList rain(LivingEntity shooter, int level for (Location l : locs) { l.setDirection(vel); - ParticleProjectile p = new ParticleProjectile(shooter, level, l, settings, missileTarget, missileThreshold, missileAngle); + ParticleProjectile p = new ParticleProjectile(shooter, level, l, settings, missileTarget, missileThreshold, missileAngle, missileDelay); p.setCallback(callback); list.add(p); } diff --git a/src/main/java/com/sucy/skill/dynamic/mechanic/ParticleProjectileMechanic.java b/src/main/java/com/sucy/skill/dynamic/mechanic/ParticleProjectileMechanic.java index e65c171a..5884164f 100644 --- a/src/main/java/com/sucy/skill/dynamic/mechanic/ParticleProjectileMechanic.java +++ b/src/main/java/com/sucy/skill/dynamic/mechanic/ParticleProjectileMechanic.java @@ -66,10 +66,14 @@ public class ParticleProjectileMechanic extends MechanicComponent implements Pro private static final String RIGHT = "right"; private static final String UPWARD = "upward"; private static final String FORWARD = "forward"; + + //Missile private static final String MISSILE_TARGET = "missile_target"; private static final String MISSILE_THRESHOLD = "missile_threshold"; private static final String MISSILE_ANGLE = "missile_angle"; + private static final String MISSILE_DELAY = "missile_delay"; + //Effect private static final String USE_EFFECT = "use-effect"; private static final String EFFECT_KEY = "effect-key"; @@ -153,10 +157,12 @@ public boolean execute(LivingEntity caster, int level, List target LivingEntity missileTarget = null; double missileThreshold = 0; double missileAngle = 0; + double missileDelay = 0; if(missileTargets.size() > 0) { missileTarget = missileTargets.get(0); missileThreshold = settings.getDouble(MISSILE_THRESHOLD); missileAngle = settings.getDouble(MISSILE_ANGLE); + missileDelay = settings.getDouble(MISSILE_DELAY); } // Fire from each target @@ -168,7 +174,7 @@ public boolean execute(LivingEntity caster, int level, List target if (spread.equals("rain")) { double radius = parseValues(caster, RADIUS, level, 2.0); double height = parseValues(caster, HEIGHT, level, 8.0); - list = ParticleProjectile.rain(caster, level, loc, copy, radius, height, amount, this, missileTarget, missileThreshold, missileAngle); + list = ParticleProjectile.rain(caster, level, loc, copy, radius, height, amount, this, missileTarget, missileThreshold, missileAngle, missileDelay); } else { Vector dir = target.getLocation().getDirection(); @@ -193,7 +199,7 @@ public boolean execute(LivingEntity caster, int level, List target copy, angle, amount, - this, missileTarget, missileThreshold, missileAngle + this, missileTarget, missileThreshold, missileAngle, missileDelay ); } From 2d13108a72eda824c4d0eda327513ba58816dea9 Mon Sep 17 00:00:00 2001 From: matthewchoiyiuhei Date: Thu, 16 Dec 2021 20:53:53 +0800 Subject: [PATCH 13/13] Changed text display Delay -> Missile delay --- editor/js/component.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editor/js/component.js b/editor/js/component.js index 70cdd0dd..5296ee76 100644 --- a/editor/js/component.js +++ b/editor/js/component.js @@ -3429,7 +3429,7 @@ function addMissileOptions(component, optional) component.data.push(opt(new DoubleValue('Missile Angle', 'missile_angle', 3) .setTooltip('The angle of the missile will turn')) ); - component.data.push(opt(new DoubleValue('Delay', 'missile_delay', 0) + component.data.push(opt(new DoubleValue('Missile Delay', 'missile_delay', 0) .setTooltip('The delay before auto homing the target')) ); }