From 19542c55d96011b02b96d1539ad81b62bf88a9ed Mon Sep 17 00:00:00 2001 From: Eunomiac Date: Mon, 27 Nov 2023 05:03:44 -0500 Subject: [PATCH] Starting on Downtime Actions & Fortune Rolls --- assets/dice/image/1.webp | Bin 0 -> 10516 bytes assets/dice/image/2.webp | Bin 0 -> 10568 bytes assets/dice/image/3.webp | Bin 0 -> 10406 bytes assets/dice/image/4.webp | Bin 0 -> 9802 bytes assets/dice/image/5.webp | Bin 0 -> 9452 bytes assets/dice/image/6-crit.webp | Bin 0 -> 9646 bytes assets/dice/image/6.webp | Bin 0 -> 9102 bytes assets/dice/image/ghost-1.webp | Bin 0 -> 22448 bytes assets/dice/image/ghost-2.webp | Bin 0 -> 23560 bytes assets/dice/image/ghost-3.webp | Bin 0 -> 23136 bytes assets/dice/image/ghost-4.webp | Bin 0 -> 23488 bytes assets/dice/image/ghost-5.webp | Bin 0 -> 23244 bytes assets/dice/image/ghost-6.webp | Bin 0 -> 23698 bytes assets/dice/image/grad-1.webp | Bin 0 -> 9344 bytes assets/dice/image/grad-2.webp | Bin 0 -> 9344 bytes assets/dice/image/grad-3.webp | Bin 0 -> 9184 bytes assets/dice/image/grad-4.webp | Bin 0 -> 9846 bytes assets/dice/image/grad-5.webp | Bin 0 -> 9632 bytes assets/dice/image/grad-6-crit.webp | Bin 0 -> 9624 bytes assets/dice/image/grad-6.webp | Bin 0 -> 9102 bytes css/style.min.css | 427 ++++++---- css/tinymce/content.min.css | 60 +- module/BladesActor.js | 7 +- module/BladesChat.js | 1 + module/BladesDialog.js | 380 ++++++--- module/BladesItem.js | 43 +- module/BladesRoll.js | 407 ++++++++-- module/core/ai.js | 2 +- module/core/constants.js | 8 + module/core/gsapBROKEN.js | 582 ++++++++++++++ module/core/utilities.js | 19 +- module/documents/actors/BladesPC.js | 23 + module/documents/items/BladesClock.js | 45 ++ module/sheets/actor/BladesActorSheet.js | 79 +- module/sheets/roll/BladesConsequence.js | 59 +- scss/chat/_chat.scss | 89 ++- scss/components/_comps.scss | 32 +- scss/dialog/_dialogs.scss | 6 + scss/sheets/_roll-collab-sheet.scss | 18 +- scss/style.scss | 1 + template.json | 11 +- templates/actor-sheet.hbs | 4 +- templates/components/consequence.hbs | 8 +- templates/dialog-input.hbs | 14 + templates/parts/dialog-consequence-block.hbs | 43 +- .../roll/partials/roll-collab-action-gm.hbs | 4 +- .../roll/partials/roll-collab-action.hbs | 16 +- ts/@types/blades-actor.d.ts | 6 +- ts/@types/blades-clock.d.ts | 1 + ts/@types/blades-dialog.d.ts | 7 +- ts/@types/blades-item.d.ts | 1 + ts/@types/blades-roll.d.ts | 73 +- ts/BladesActor.ts | 6 +- ts/BladesChat.ts | 1 + ts/BladesDialog.ts | 412 +++++++--- ts/BladesItem.ts | 40 +- ts/BladesRoll.ts | 435 +++++++++-- ts/core/ai.ts | 2 +- ts/core/constants.ts | 8 + ts/core/gsapBROKEN.ts | 726 ++++++++++++++++++ ts/core/utilities.ts | 26 +- ts/documents/actors/BladesPC.ts | 23 + ts/documents/items/BladesClock.ts | 60 ++ ts/sheets/actor/BladesActorSheet.ts | 84 +- ts/sheets/roll/BladesConsequence.ts | 63 +- 65 files changed, 3723 insertions(+), 639 deletions(-) create mode 100644 assets/dice/image/1.webp create mode 100644 assets/dice/image/2.webp create mode 100644 assets/dice/image/3.webp create mode 100644 assets/dice/image/4.webp create mode 100644 assets/dice/image/5.webp create mode 100644 assets/dice/image/6-crit.webp create mode 100644 assets/dice/image/6.webp create mode 100644 assets/dice/image/ghost-1.webp create mode 100644 assets/dice/image/ghost-2.webp create mode 100644 assets/dice/image/ghost-3.webp create mode 100644 assets/dice/image/ghost-4.webp create mode 100644 assets/dice/image/ghost-5.webp create mode 100644 assets/dice/image/ghost-6.webp create mode 100644 assets/dice/image/grad-1.webp create mode 100644 assets/dice/image/grad-2.webp create mode 100644 assets/dice/image/grad-3.webp create mode 100644 assets/dice/image/grad-4.webp create mode 100644 assets/dice/image/grad-5.webp create mode 100644 assets/dice/image/grad-6-crit.webp create mode 100644 assets/dice/image/grad-6.webp create mode 100644 module/core/gsapBROKEN.js create mode 100644 module/documents/items/BladesClock.js create mode 100644 templates/dialog-input.hbs create mode 100644 ts/core/gsapBROKEN.ts create mode 100644 ts/documents/items/BladesClock.ts diff --git a/assets/dice/image/1.webp b/assets/dice/image/1.webp new file mode 100644 index 0000000000000000000000000000000000000000..7cac6498fc815b7a2538ccdc91d04e7d5eaae049 GIT binary patch literal 10516 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 W(uq}Im=)L!_md_-000000000iAb2(a literal 0 HcmV?d00001 diff --git a/assets/dice/image/2.webp b/assets/dice/image/2.webp new file mode 100644 index 0000000000000000000000000000000000000000..2810840688098c7288793dd0a25014a047df9b7e GIT binary patch literal 10568 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�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 Q7t`7NaUuW!000000I{$(m;e9( literal 0 HcmV?d00001 diff --git a/assets/dice/image/4.webp b/assets/dice/image/4.webp new file mode 100644 index 0000000000000000000000000000000000000000..b689cbd22910835234e53b2cf57c7ff49886f3b4 GIT binary patch literal 9802 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 literal 0 HcmV?d00001 diff --git a/assets/dice/image/5.webp b/assets/dice/image/5.webp new file mode 100644 index 0000000000000000000000000000000000000000..e6043fcf083d808e2d887ebcf1702282b75af752 GIT binary patch literal 9452 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 literal 0 HcmV?d00001 diff --git a/assets/dice/image/6-crit.webp b/assets/dice/image/6-crit.webp new file mode 100644 index 0000000000000000000000000000000000000000..f00f54a39b753290088c598d40e491db4f23843c GIT binary patch literal 9646 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

c3Ts^9Y70u6__tHOWi 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 LoN@pF00000**(|D literal 0 HcmV?d00001 diff --git a/assets/dice/image/ghost-4.webp b/assets/dice/image/ghost-4.webp new file mode 100644 index 0000000000000000000000000000000000000000..6789e92dd4f4f01d5aa85db84c51a6e4875433d4 GIT binary patch literal 23488 zcmV(*K;FMnNk&GvTL1u8MM6+kP&il$0000G0000h0RSrj06|PpNT)&o01>}rAZ?pB z_pf>;A|kIZEBb=6g0h6Nf`YR8vVwxLf+7Tkz96D3;TTBUruDCT+wUMECctwDJlWi% zx7)T|wY9eG)BZuu$fAH?6BdS&6~IK1HV8>};$8Fngm)W-O7?DWKYgUv?P?SiDbyg82kU5oMR+mT=zHs{UZ7gQMRqB%{uAJrU{9NfZ7kB|5KI!zyJRK{`ACgax)=X7^*((7wSAhV zzOJ6ZzD5HT{12ehY?Tw6f}X&I)y?yl0q?)eO4G{f)Qz>;V08+j7ztk;lvsH_91efi z(?jt~k|;`2q{F=C5QGR*2tX3U{Hh^orB;vk)Ef-k1zp}+a(s!hTHpM4Ww&N(cSs=} zK8Xo}?Ns$elCFtNfCMygkR-6t4gtVd?t$7h?rj8#X3h3PxqR{{tAZ@_YK%xaD&q3~ z+pTBMo!DJVis_(ePDY5R;?-&am-kJ&ss|7fzDxpcDCOS@V^)IJmGy^^cy1~<1%+MG^iA*Kn!-sk;Da-gO!gq52d+9p9`EOkcN{+!Kd;kE}GGbE+ z<%|`6xcn|47FTWkN1~h*IepQ80A+L)k>;|qKvCMN*ZO0}xOC@^Sw$@NZX05GJuo-n zS0Zi4p-H39z}4FF@+SoqTXkXhZQ;Gu^FKXG_%EHEDMU21%;rdhc!k~WF#9a)*$Hr8 zN%RI-Wi4nAU7ypk<+N>DN-xx^UFm#kDVI-5DYrTW02egJY~H(Ih@Wx;z}82{`5F%; z*4#KaP3x^}71-?uEJMk+S$2I!0!5`8tlp9$efx<$8pXCm3L}tHi0%Vz^i{=6iwbcm%=7$ciXO^|Kp}ZyuzC7SK>SS7q})bk zsy_DzTWVek-%AL8<_5S_qN9L%m7#~Y!Tq-dHULM%U>l)*iLy5lFaG)IJ|86Sje_<{ z;IvF(r%+qlxDa4{jS1A|$>eVB?}Lf$c}8XJtM1ABIJT8c*SpzQzEAI1Cx;5ImD~+q zDXcDo^Q6-OIJ!z}Y(&J>7OK;eXAM!5zyEh1@j}%O#4k#{50Dnd1i9}%Tu)ZAUvy1} zz|E)=${8hDiUv&b*5cm)5WEuQR?JY$ugQ?f66L6F(XgD~I!5HoUrhT*D8-fYP7x97 zwl(a1Ni>WZRjS&wp0W@(Q~4QK#69*H~%V*gR}yR*#>Nv=PM}BlbF3l2r{92V7JBr-*up69r&C-bt5XvrH|L? z?UhlDP>AD|TUp>*VlC#Me;N~biE*9zG>tM=qKK9OAqdG6n9Aoe{wS(1f;>`)2YM|C zUtdoUP3C8)^atTuYHc+pek>)YFq7?FFGiCDsjli+~%1`z5E2-MN>CFxqZw&)M$|1;1$`n0W>cjVJ(}wW~fpG zj=mtFNTS?%;~^dqsXqLn*)G7BC2U98rZ%=EDi4yGST9SZ$sNDBtyKB zuw``Mn3h?>x5i=Frsm(9c!|;A#e|0HGMt-aOeonW#kP<&8R}XE)D}# ziBL#DQXr5lr|$P-{#&*-DXxMLTadjUjnDycm5gb=O+|?gYXFH(p~_I)%cl7GwaP4E;Z1-)f16E z?+Fo?S2v%RPepUP5hR*=qW7}_Bp%1;9DkB!1{Nj(2$MvGh-*xHk3>_KNkk%6-v<(O zSbW;ufH>LG?<4UDry}4CX>nH7sb7X6(kd$NPlcvma`{h}RR`#b>m!TuyYW15aKP4POwTimckLcnh)fV*+6TBHz7 zO8|al1=t#rvz3@lq80v4GK<={Ct(PGw~O_9+Ep5Gi~_)TmG>S=#Tu1X9%ff!Sq{&O zk|YXzG?AD|ApyeN8!6nEDgnKEwo@+h>>wlDMA~COk|4@q*+Izxv|G;EY)T#!$S1Bw#;s~vn%tY(hoq`b|Lv(X_%HZu-vea$l_BZkWSf3 zpU*APMb(#-lo$?V%}B9+%)&+7xUq9oWotGD7c3DbLDv zq_S{t3Mli#hwM2dl|kwklo|qU+Ps2kask#-O4|ky-aLw!+iv#19bbQF7@tRC?ji{g zEA>h{jJO<2cX4_86-)BASgG^@0NzTr`TtDmAEsZ{PM4~T@yyQ5lUG(wMq+{z@cZRZ zJhxCG1Yl3HSv7 zqU%Rql*xB|78E-*<&8xu`!wT9k-oFX1f3y{O=T$VpE0bf@=C_du{e%a0E}}a$&E?? zxJpR^Y(-h#JL4FV4VN;9hs`xNsX%^|bmw2Dqn#20K2p@YtWcM`Qm(3GtO`@WMC#xo z5gB7CBbv1;law|v+{YM=ji&$x(_vpgJyDL)51A1Ww$@Zxqq}4@W}M!Ni3!U%_00i1 zFuqq21Y<`4msV>KQh3hDZ&0pLG%5_XZXMO6DwXDmbpU0#y;VdDApoHUA~MG!^Cvr2 z2&RfJ%U`}-0(QEYqf5QLTk#r-^}IgF^RB4xFtMALbzJlg4<7H!UFG_-RM~AV(HX4} z_OAeXsyt71-|v}J-JfK`>Qs+C&%qgG!jRwZ){63a&V zs8S&gEVBn963=PrP~_nWS5lnK;$m@ean&Y3bhy!%eV|YxKM>g#CR8VndQS6SFdZy* z8}>by-vDe5p7WB&e|~N_25_Uq-=w)n%))3`ad#W`C9@X1tri}SkUxt`MYu(r7!;?n z1)#Kawnb%k;fC)a3BM61IhxWcBCZGM|A}}BDE0o!G{d5tDB`~ocZYl^fbY!6SfLos zzajvp&nZw9GmXU+q^N4N@V2|A26uM=?~c>$%_O3tJ0zJ;)ifx#*>fP`Ka{ZZ;y`gz zxH*MFs#*b*#dHuA<&c_W?m*VMe_oLj?t%LyBT<1%nKSO&bOTI2*^;>*e4aPE^q=9C za9B)(Glz1=V?hP8y)j$|B0Nz}y1IVoSZ)(z?Armk2-D8l*4DH&dy3ZLxjO}#ioWcL z%+U_7VPbzPYv;crAbCt{YimDka{PFs(#--`^Hb~)!%L*L7}7{U!rA7s&Xw@-xC9_@ z?F~sxE9EJ_06u=ke-)RE>^`yND zhXOeRM7PdHQg4o+EF>w`;GLnDKpfN}CGg<`P@XdVpXV=`7}lf|R^^hKlhQjLrwWTo z`pb@_xJFhl{75Lz4fFqblJx-N;}-8Gr)HX|kNEQki6zgL*v^kn%+W~c8U9Da#Hsqr zQ5g64i79#ZusyB*-Q-Po_o{oyUEt2n_IAZ)xm+%lCbv%Kn&})ZsXWi_k(fdc9yHeE zOZn=@NH`qc1U?sT2t%Q#PoF*kJ{CSwhTl3oh``$gb6#$4ZiaAZg>H?~0D;`$&1Z+3CDt>)P7=xElRtNQZs^L9^2Kb8QE%N7Ujh zjICkokPIMM82S!r_oF$T=%1aSN5oO)_Pz==cMTw!7$fR%nX=Am027e$T8nG%xeiC%4W(ok>`(kknysa~VlN4TPRr?E7m$-gbl|j{ZHGRh!0kqDT_@ zIDqFL-<$Aqn#KYJckaj+e_be~5NR?kq{2Xw5=ZJ-mQh43n$00lA!pk6*9SBJ+?T78 zDDEk4?_R}@WTrZLzY$=RXbFbXLei7S)%rl}oCm@UDjhIblqQ6<%KO}3YVg|7Sc0Wp za?+{4Cb+hX5P|^QjVe?Iz^?FM)C6_qGA&lw5?Wcn-W^Bm-~#`6;|OD;aovX`1Z+{# zxcYEq3crygK+}ZA_WqnT(Q>&XN-EHmvN0hEk%%=unvoSmpeMc~lrrzvlj@6z?9CG; z6sFBV#IE`ts`3N%$UkxmNR=qG=QRTt?EpOa|#Z8;r+0@i~lJCtmn^q9@)2iQkW2eu!S2qg|WkMwe|d% z?eE`)Vs85TGa1t*s#AWss^Api_IT3^`zyXjHcSasfr1vdqAbY--HBhjif|2I5kFT& zM8zEjQekoAu400IfN!sW$NX}itMVgFPWe+ zB~oJOZs6QsC(IZqYc(qHj?@XN%%5I5on|$iXDcR79;ZzK?Pl&A!hEK1Hs_ZwW+pw&h)#*8&d1X zjw&5zvzd&C1tiHYoh24Cf`*L{;@Jmha8-TtIjBF30zcsKLShadX|$mka*E$n%A!Vp z=W+lqje=B9Q_n_sI4qmzPod?r1WrXf*U&eeSA)Yz736 zstcrNOWukowAy;0A+E#XsI6Qx0DMp%t(L}BxGa~4g!GWANF)-mEe#q3>I5quJ#`Cr z;aW&>2yb4|MWKU$^U2QtiFf&@kk94wxhxPN_0q{?0`|!b-Uw}=7aV%)3PR60;HB&X zCF}EN#;9L8uK`B|sZVDoWvk6?J+I6usaee_IwEzPO%0Igjx3{Vu^EgrKi!On?l6nThT2DuCN5GVLx9B%pODV0+42jLrl=y zuPz(Ooj15*3qMl5Dqz`yRgrXpgesz2(7@(~ouEf!g`b&4r@ukraSnoh#%p{ zFc0rXT0gOElQkA=E+A|Vf0jvaBb>az#uDG&51XqYe5`EhK%)_fDQfXZ3TBdek z9bQ2OlprRPNj*#45Fij$h8^KDoS5~&j2AD|`ccQLYW#_IVZT?G&hp%r0-h#m$A*OK z{o3U7h@+jbl#uhSI#O#&4h2;$t7Q<(Ja~7S^q^*1^{4qI8l{Kdg7sl`YSk$mI!<-U zYHKHaUqux;_26y?88Ugp0$9CYS^gCB=sxP6ke98;3 z8|N@HV1Ds%KE`P#jnfRz#xYl5CT7-lWE@JhE%Hol9~BO@ecU%ZMLrMlXC8D2-DVWh z*CFX4T<+MyC*bk-j=bMn#d@;{oK|ycp)Ipvvr9!9#+H^Bc@X&7f5~?|`Fluswwp-Al`e3! zt#C{s~ z0hlL%^PDg7hoqi}bnM*70I+UQi|kjgUM)AjQp>}C@<5l((k;)(7yk8c>yimZG*62k zI0~dP!Q-N+5x~I?;Q50D(%;zPo7O{ZWA;>z(z9NuLNl34VF+ruz|i>A_it;o&XF}- zW2@I=2hV;87|s2tAf}0T?;@7BS*-OeCYqExgj~RkY7VvKrcAQ?_CifN|M35xrqw^_|)3G?Njnw*SZ0P_%;q#c;C(m>f{35HG7S{s&Vbr{sI|N)k-Xm&R5;5BJP$*pzaQrmdE|rl+DtvSS>H|w~A6@Pv z=5&EoMx@uxSO$rVYQl8`h)PZ41>n(U8^2@;DWLjmt=_2so%Nw87jykqI5Mefz1d#wZ@zqTOQ*P6DTdE z=aoMbcF|;dfTAuH_&~wgjwoPjdHLh(?`r^lXY9ki;*h_MUH*2>XA% zCT?&<`mP~$ohz;h2{F9@q>WN4BkBy`;kEg!p6$~~(S~opL*!I~Yl5-Bd?_sN%u~9K z04>JK%0omhBeE%vl@gr|p#cr2(UGc>$8JQ3-M&&Z!+3bFJui)N2F<{ow)E8mUKQFS zgS{P$%FMa+DwhmIy|S$^XFrOozNkud{zIzETPS6QD0O2c_~0&!aI0g4nZpeCbN0+% z24lSpR$?i>U}I(7fgdp4Lm>qn0I0P-;e%jN8UP zgzJiQQaZ`9XngLQsHk1&-2nQOIFU>s&|<0JF_Bs!`OeQTFhy4i3`GFWbz{J3X6bSP zX;ReXsVKWAfDY!u4K7=J&}A~taWbRvVzGU1;--X8xT8w?L_MBJaNiDkJysG1nSoA< z?3Iaa1Ticyr4Vu*qM%_<(&{7?rUU2gXR>JyPBSn{@2Kek{SFg^BvjK+p;#z=@RvX} z5&U0Aq5x3R=hw zU4`dSW@NkpGqJg;LX=^=ud}tK2$&OOtSB?T;Ge_08>{J44 zBjedync22d&auzAT-t@YY{~+foc)T~eLV zhStNKcwCFPpr^HGt15)Zsy0ub0iccw3+pe{j)>Fsg3Vhl1RzM-nQG$FlACw@THz;W zT$Q8EV}B_siC8=ax4iAm*&d$v!OeRC!Q$PyhHMYSsWcst)~q+A={QoeOdVyCu50xK zY;rTbI5jkktW?#%0vars<;|w+LV{$9#@tb5gcg zDq=hZ4ewsB292$}3?)2dKK;%H59(6-2Nriei3fa+TKW%!v;q)}01yhfHUJ3z4Ln3Y zp;9jK1~Z4Dzxk_RH<`p+JeB0*uzJMs0$mFd@1pGV4S4@e-Vy`=*!=w&Ie8U1IhnaC zRx&0c(qjX#V93OSMQG@vGZWi|(5i6guY~P{s^v%m!zq3&0B3>RBj?+XeShqg zhAOUsP-lsG(*nRrRFJR5G6903ZvGv&g3ZmEQ{)@_0%17**3k>w$cRL_J7sE=v$dXiJa9Ri`bA&Hc6{PxYbS~Bmt}c z_yE^SjtmABesAn;R@wuIbyRi(U;BXV0r*yyf3zC)+TKn@G&?)H%8FX+H-BY-_a;3U z7xh7twcpqY{26W_0zqV3tn{x(Eya_VSXw)kBr!NGVW z{Ap5EAJBNys|eEW9ubC)>gZ^~Je(ZAe}J1k$Vk~1JG7Z0K>|GIk&F@vH57qVrbabk zal15@jE|T6ZtwoZ-FXnrZ;>Q^Z*4UOghsR3Yyq39sKF>ee|hMu<#LH`@v_BAWmj(m zq>dbHF67?c@Bu!ZKkE*kpNG$R;58J|c(dJL0|It68j6I$q=)jhfRVlR~}jMqt8u#1}AR-!S@P_*0# z-vRuB4G2zr@dG&M@9u6eP>xz?xR`Mfava+wJN+kpD3~;9H>wMzy4{Y{+wblJwS&{2 zyh_-Cd70WH1Jr29Xtsz_v`&OeYBUE)8#0@3-PXKeGn4+k08CxAe*nQFe{b$Qt7SRG z&Fa80Mk5N&WUK2cJLMyijyL)Njdhi95na%WfXz1QAn2hA4v9ETOM5_Vx7BHP(6nOP zC2V!Rf5&mzX-D<6Yy#A>1z2q!7dyN$Hn{)@z|5f`M?K444|57VgmMw`Xt*&6$;PtQ z?*Y4Axq!Y9FQnfSi{UVU3iW1aNUR&P4`^B))v#&hT8SOmYj=N2nzTr%Bl0rDE0Kh& zf96Gro!U}UdTYxdhR=_$>=vI!VRc28p3I2JesjYt>GxGL7!2jNFTaESaDW0TuxZTL zh4EI09;?Sx>R~bnUA#L=n!A|BC6;f(5AXu~2%a4upMJXpu-80yE=K8!)HKo2@q2d5 zKh^oc{7=8;917Xa`w~gEI$5Ce_Ilmka5x-|M#G`(4U`sII3LrI1%U0Jb^91KH5fU?A~ZIEq8W)cG75XP}7x*ja1Otx%TC< zU8@0mmw^BP%X0GdiT}F2f#&geJksg|{h_H@*l6gyTB}(J&{TB0cJ8!+Fl_3-W}Gy8 z!_{x;YWxOF>bo$*v=)JHCB{n#0pP{cpS8uyyXv~OWyY~tN?FFaTynBP4Ta@9cz}qb zMjr3o{$M!NG=wur?shut=Lsy|4TY9k4vxcRcVSk-=5aUx+w~8Uw%|nwR$b5YsKH5} z2TeZq{kUq&TarXzu;|?D#!a_DO>(WkSygzJvq2&HM)?Cp)^`#ih!Dc~{fEweTh1!z z4@au&!^xl#LLIz3!(jsjI5Kz&Fbb0Fh11hOI7yO2|W&81R2HoQ^j799{flQ=5i_u@XBi z#F}n8T{Z6jjca8XOTHi5AxDu3r^a&20U5s$o~=Yxrx|$y>vs z>i=Q*w{g7Vtd5A4p?_=?A&ylC2Oxfpf#ARXc%!ffY4 zmg!cMTNPL#rgeAb8blzMRF)zlvL(Xw>Qz~dJE0#Mz~q%g;C6znzywWdSP5~w6^_f4 zW1JFxG`H2p;3G30FjI6DZ;-4|t$JF{)knAAOR{d!4dTUC(LEYq@L>gA0_&>5V;&ys z0H8IPYz#J$VlWES4fh265_E9Dl1&$I*R{r(J>F>%A&;;Y#p%^_;o|o0m+=OVtQAb) zUfWzvqXjsxs~?87F`9q6&P-sluvT;^e(X>Hp=z_1_$Q2TIuTOQnC01<|9Prz=V zIG{Bs+Ao`x6ufMW(iEy`uKznix_8RIxi=45p%B00wLUX5t;-V(Fn#Z)uo#rNY?&qY z73~fY=HqsoE~sk~9Ten{>a?Ykv!V?tI8<9AV+OY(Vap>cz`Vun4+5Tv41=nEygct) zSNOLux7qWS{QNi-dnn~{-0Q#2&!0gfl=DinWs`j@+5uy6NZGY#S;HeC=pNLDTcHUC z2XXQs3Z?=P37F5O#W{0d(>~Dby{0XM1KZgZz%`9VBTR4@s5gMd><^MR3)Y_i@S&+s$#TZp+?!~+ z4*~4u>=csvQa=<+x^8M}sz0G#%S1t<6>LEZ6%=>dh9Sp)G*%vr)flYMD;hw#;g}#d z0aw(E4+=PXHpsS59mlMlz0;uu7&ir&d6u-uRRC~4m0jQ^%xwYp2f*~%YuY%l zGM8b_Jg;fAP{}hcL#IaiRLY!8(cC2Dr#L>yBcXgaBc7kXQoeru=JgxpF9t6zE`C43 z1cCs@0_fQNULP&opTAlx7W6MTfBhwCx3A1Vcx+K#heSXU0a03_BQQDCbh|lqp5Lq0 zQdT>FV*SuP67mEKy+JA9$D`$JGMS(-gb{%N_dE_7y>EW7HSe`9}p-5_r^tad~KOX=!SnMyT%wbpD;~>klxyDiVJwJWKe2s?$YCX^Df?dQ0_wt`ZRd#+?^gu*2X#G zeB3u??)@NP>Tm#&X(}0hVZ)~##jS3V9YAopvdw)r0zvRaq$;7mHXx9gwJ8N%I`sgK z4VY_Yg8-3p$$qMntTj&TD~+u-$PzWI5iw6T;Cs%MIHe{}j2i&nH7dQCb2!Vu93O(3oV)|v9U#FG{3$>fKe5vqg%aEz>|-`%^Trp!m38U4u>sh2!_!oI zC9Rek-3TqKq6@4wF#k*HQbe2_Def0yU zO#0x3v3?Ns&5*&oE{CiixDQu-qvT!&gvu}wZXYODO`msh zOyiOJ_N=gauuOl=5~6$;u~#WV6}dk@nNIQWn6thMcX*8bTrOr3JbVEF0lQKY&Tj&h zjqsM0gipOF$=d~rt3&EJhTA-@3*pSTC!MD*LfyGjNEz5A%|tX)A&#Jvqu?P)vL}cD zkOZ+HCj?}(U5ESaoL?)t<)?;Cw5w@gwS%4PGN;m;c^XzPR)L@;R60@HL9^4qA=xgV z6uWT?Rh_aj9O!GJ>GE~Z8r%n~q@qlX8;_tMROMHv`&TC?Cy*vqEtTMM^eofaH$P~e z2Nf)Ac30ZLo7w(ped|}IZCETPhxHSwES-w0rKJuk^?EiFYaHu+4jPnaCg&fs+%UF7CI5j%;%?bsCODLn3`MNTUQW^ zo~U-q0q|F0_!fZ7Mn<2A;MJhIi~<0A%7(R!fH>|X)^^3?o6ksCirM@Wq|-&v{!oP> zCwomiT(=6jv+Ug!s+x&g-`@w01~BNq3%*j7C%>a_nBC<9u#l=KTADlbTw8)MJ^IIY zdO8;cCfTLZde3Wift!OdX2d=Tg?O$5u zHKr>!0r2qdS5)qKmfni+?`^%HrdqnMQWFhF9B0VR&dx~XvKzWdS3fU?e9_o${6N6x zkKoSxY0}yJ_SLCKkAKu z$98#!fb&?y4W#+}ZP4JI_bnfJ477p0eF_7*&iesZ-f2Ozs~2UEKR4@k1@Fb z|8az$AHl@7663T2`1@+c*a%l!U8)L|+E5u(RQxo4lhir?*nXR9``DTRJfpfTRCRXa z1|iJ|n25~%!VUo8aH!PqVp5IYH{BslRt!~$n@^>Dh5u2%&WMn?B!Ggg3Gff!4Q2EE zTOPnKuWI6r@hLG$dzz=N+YI0nmCU4WAbx)FWO~%ECl-&VTo#;R$hf9G8Xes@1vZXW znpUM_Mqp}sIkV#*4P`G2S0!pLmtorlK$@j z!J|xs{mn6$?9R@5@azYB@T*_54y#$agoWNQPCarjfzl&a65h#cG)eOO=+{2;{0NBi?!}=NESU?L+s0gRgXlR?6Jh8}d zoywaQm`I{1Qt{#AH2PYH7sqBZUTXx5@hK8L`R=qX0zn{Okt7aax+%cEzzqNnZWi#Z z_(U9X%M$nj?s$mQm29dzuobY)qi;346ft2QY@FJTv=|=dD0dc)MpVXKEXAEE1?YFbC)?}Mh6;mLatj{Fa zZXec%CC|1&>Olvl_G%X4E3~s9V7s0v+wgZiyFihKsOR%nnUZqLJ+6CfWz+_=xg-%l z$Y#q{6HY^$4r_!;6s*nr`0qx_)#N$ zSk=7xKHSv!5KArH0^3~fu26=vyp$^d-x{=UMmT!P6l|}Ec^e~w=d793B==hmz1bpK z25^6B-vv&0Cjh*6qA&LMZmKw2?NuseVX1h& zs&9A`bDGsJKe@^YtW;GM&;@{i$kc`_+;p)+9o`|_9vz?B)c5#Y*JcY>LPWD(ET@@* zC&$AB3jlO&%sSbx8~A!S;Df80{{7C{8W`{b;sgDDX1yieqtEVO2j9epnWSE??(ORT zNm48n^0{2~W;I+|W>)R%L#qM#AJhRJ35NrUeY%$bc*gOUyJOPUO&w~=n+Lido2K}g zf}A7x)_$}TarN!_WE{3kvj?8FZNle>r~T`6Jl+|7ORL#n^4E=` z!yjPdZWXMoD!Oqc;V8-_`yUw6cOV~51QPY-$c98yz?2XbBjmZ{_8!E7rmnoVFU z^YC?Hw_?3IvRHcPdEJY;V_==i>)PG>`Mb&ca5CX;YgvRo^n_0su_$qGk4{r;+>l3@ zAX`%hfUfjq#`Gnlc@yx!Wj(e0-Kn$3cpy1z$b_rsq_zkmb|wIHSa3Dw0ROhei34`Z z&vqE~JB#v$hws>)QhO~kz&AG}?|eXh4YBg2>C7du^YTTqyY|n`$-kQzpE&szd#254 z1-sNb0h}`}_%hoRX8dGJ}(Nyz=&z;Ty|jabfS^o1CC17&GJhU#&r9D*$1qT z@jmJef{mqYySceJk2Viu_ibJS!kd?1avgkt-^;71!tWHWNS9sWFZ+JHWJdn$@$vDA z)jyk`is#P2GB-DOY;JD0ZoC``Lm?)Ktp}knkumz#wA;eoBiu^x?F10A-or^m3zi+6 zWT;HD%buIYW#afm0z!UC^n}0&-+WjSh$!ul9a7RL6eA|@_UD|LxeRJq>2k)5jNIv! z71`i(d6{{@g$7O9-0aNPSfUU4;|l!rsmQ+ae{=O@yajMo`$6I3uLt}+4uo}#YZ~MB}TbXm=|D=OL{HaqSymv@G_evMC z2eyDvK=MW-Neh&jGY4A;@zYN|5EWmu@2t@mE$K=|Z*CoA3D=t-C;BCS`x4@$iR!m` zfbA8^pMa=8T&5<6{B&(YBWY|9=L!~N99x&AL=;{qC~Z=5Sk=3-MXe8DSAH42f2&!u zwbfR(Mnoy=8||g+OnyQ{csxpSDJ_eLbVfU%pi0SIJ)g+&KyC2V1R#H9Y>D+m8!k1u z1N_g3Uikob9gSK7^CKf8Ee%`N@$rVU@$pj}1m*8i&Gq^8_|OCJjYPwYEw0CZW>GAL z{_&yl>b_GXfvtppM*IL)nQMLf$7dB+>E-9^J^Aamg^e*s{7L;}x4az~}> z(pm@Aq#eLnR*gf7{TX!>)}#?t{=E)IHg>Lk5df}p`5=Lr)4s4JkLewxH8eB~;%9>{ z>iOpC^M(_Y?I3BQv$lE~)>6`s@9e}|4StQnSO1&EV=)o?+7UzmI7(i2xdcc-;1?MW z)b&6`2nskdGJB0dt&U`QBDN$69~zdPCW6|z_;*9XO%9w-%okp~~URjz#@ zBCfJ6Z$|Nn4xR2e=R-`VZbBgkg@lt0Pa^z73`e;u%GZ|I2g21&9tc}4WX6>#YYA}L z#Q4tFItJU?Y`A?pFh_<$BAl11&j9r(Y*>v0_saST6zo|6)EfprUV=XZbkotyIM7Z= zDhp*$%3lBA?wo6CaBy%Z5}us!Fiyr#HwSkIqp4p54u*FrH^F_6>(#3}f5r547(lId ze4>WA-pk7S0o)G`&WCZ=MSWnhs3FbrN^V+TNsgB;4j!X>Sgl`i6+eirLHR*}y`E9UJ_fJhMC$EjAWg|pGg<1eNN8UFE zFA|IApsB&eR;0tf>$-u1D*(Po`09O46;b*vc1=5}tv+CV!dkYtP}5vQdD>^$suMb; zc}A(OA=r2kcGM~KhL#P#1FfzONn}F*#4q)JgS1IXfGTN2b-@XA>2sR zJem@W2!bGn!=gYh5Q{k6mFq@g$;$%!8YM_!g=LaZkRA^A=<{wwgqPf7Hqojz8?}^~ zPU?)gZvGyap(4c3SAEXK2OoFZVnrGP$$nE^0H65ViJhUGB5*#{P*%Zl%l29RX|REt}bl z2f&;Au4H^uKBfw0yTs_ zn$5b=%Z3(ne`8HX*QRG$Z9k@lgbB*43l0-~{P_1(k5SQn zk~L>|rr;fhw4}1k`x<3CDC}@denFBXWEL_X`@pM8JaD83DqMjzMwsMkcqE%%E?yrn zgW8l|fFwaG$dKe0GU~Y*N#eNqGE!qKy8bqn{c;6NLZy{U03vRy<8e-iOF2(MC<6ca z`EfLLWdNK(0DXC87t5_wK1GpB9=H!HJXICFR{qB@1>9TwTS=A2$C3WZ(+lz5j$sZ! zOnSMI)E6!3o)CRic$ZB~RoidXl`t)s?b}i0Ayv~v5)N-+{ZdQOl=~JCn07K9;|}9i zQk8*U@&J;gFbpG7d>#G$9|kqe#OpfL60 zG6*2@!UKSxXs=p~k=l@KgyuNwp|pt?lPDqp=MS9xvj^oI*%1mu^08%GJym8shTY}6 zQrMyz6H-9b=kNlzRW#ROwTG71uZuNyaZ*pJ`>u0Ls4;8JRR_!p;RPV)IO^)dPIu5L>)L#HCQixA{8us)f_SvRWwA_S#~th7KGeI}#yMjgGpQ zBHV=l$r~0S*!(`=Z$@@#-*-KdPDCRBmNt=0qzwxmGcM(`S#Om&4&$uwxlfZ!X<|Gk z)5w_V9o3mkqyDJyfeX?tgdK@zR@rznS2!oYyrn9Xm&y9pECNp6(z+mS+`-etWt^R_ zzhHLEyAQC9b`L7Me`wxruUz;d(VnuEE!82rQ;%VbT3_n|>>+@8Xeo&Ce0gJVtjT)W z+M1f%+N!$67dIH7JnKe&US@d!XME+8x$JBKA@}w5bp>~W`4Vq@%cX6sBP%|=2q>F- z09$d&sV{D8EGS(E0O4c4Tw-gznswVweg<_x772j3n4fC(zBmSg13mj1QfbyDr(JBI z0V2v_r;q=lDMy4XH9&oZ{J(nKjnxeiX|j4`Td7Sqb6biy2@ANpy}b=d@#>`a_BPR) zZp*5&Bdc2&&CYFfeC=7N?eCP~Z{xHD&b-@@@{vnD*QL0ZAL6pI`ej|{wUmiB8O_5l?w(~Bb7;ak@W22Fbjh&F^>=ji52#OFR?7GG4SO+5^zZA4$;&*-sPDv5V`Enc*!c@wNq5XnZ%R`!Tu!p&G|X*NEE-w)GwGh$ zAdW&x(_Ep%cII1%n@I5?f|1*KyPv7pZih5IC4e36YiAmFXB$o3l|;4UO>I8df?ZTp zUR*AdHqfV65j_=F5NV%KI!Ed2Wg6TEBuHa}g&Ktc$sd;!K%kj*yGoQlo%QARHXuRv zG;GEx?e-x0Bu7MBw}Fs|+gO;R^30ql9xD6q{K#q!DH+i+Jx5*w*va*vD*`r4bP~ef zk`#@u<>a(2z+=A9v6h{pP0`BxVtTC#7v&anL^RQ+3BVB&)^$XAdP>VHo`X-D*^n|w zd2gsoVxMP5PZYbCLKJwBOd67=w6j=@--pzdCO&Rh3tR&@W%kCV?BBR+PpuH6R-6?ii_x>b*am6#F)lnM6${H-J*a2k#}<`>3+Zf%bGRRQ(fWHb$AG%-D20iPRSQNP|K}G&)V?i7b{_o1j?=^rHA{0RZr3VPUSBK2qfsxOmjTaQ6;lUb8Vth8r3Vvg*csFA7I>6F+3G%AN0|raw%L|2mLovK1Pp|`olAJx3pll zI|aGmmbbN(Sv4JgSz$z99}(%6U{93WesyQJ+lZzFcHduTe@-s8$Pq~bw*M@z+u!V4 z>ohwB^(92QEoOGKniR9RkoMoeoJW>bK#v;34g$mV z2Kqmi*+Ja1ubcMN^BpREv98D@|Q|bR4B}LCMS9$-Rtr*hi|5WAw@4x@Q z|Nj330RUD|I3Vg6008ii0G$CUECDP5K7lruMQ?jw}dUX*#Gjs zhku|SAbiT?1J*y&efc|b=1l$H(lhDWFYzDoc}?*B+~wf^{^LHM1fUt-9#8*|2e1Ce zNKJ(=^*05=c%&zNmUtytM?s3g3bi0pNH+)^>a7Ub{Y}6s2(h)|qZc=2LGqpqRrM|C zlb-;;0eF^H0F4Iuw1l!H@Qhi4&j`8~6yr`vFNXb9Vg14jo3JqP0snhu3;$!^N%?4; zV=${G9{Z;ib52;THj{m}S1&8Te%aV=khfX1?k4RWR#nhNYE&1Mnh9 z0C3yGnc~E^cslbw+sP=91GHBGi=i=wjWMvGFE0uo_B}EO1Lz1-f<(?z)v}~j6u;Zp zf*-Pc1S3?lvf@U)&X&#qjjVzHvSU7i85tfY7-X!ct z5Co?ewCpPr5@N8&R$cagb#-!=dRuy&LGeVeGx>Z^7QwKRfro6iR&2@7+|kp-HN`RV zb1^}%1YMwAz0y#PcjmoSpmqJ(lR%_p=;TUb@BYs}RXN$g(A~kZCptxf>p-uT+znyK zsrc1!{YGq~VTQn$=(>=&3Yr$_C6Z4PN;c_hI;wH1Mq zz*6%r_$Nw0b|%ZtM^pdfUB#7nshj#}XmrkfCWz{rFf((OYTaI&94Iw}nLl#;-yfn;^3TCR4=+VcR%+;PM8t`2hyjg+U?zC=&z6#YB1^x&2 z^+IKo-gkcV!4IOj;>UzAON&?i6Z}8hVws{BOi-@j3=*c<5v?C#_hzl4dZT*LiGbew zP&xkZK1Xr^omz^$|A{~hpN#}c#()HK z<0Q*^35FvH7_AxE1qOfomuvs`mEJhp8^SDaGUh{XKPwQEXf*x=`hvXQ#5@kQwktHW^t$r=gkw|%O zammYwg>hjCws=Y4?*B(SGgpDMvK<{Ha^uGmLH~@seDQJ=WRDnwT0B>PP|x`O%m8ie z`wy|B2XzF*MVW?+!O60XJL#iFM@oK{N`d<8WSO>)Sp3R(Iw;9FdmMAPz_=xbF*n@F z(4`YbX>e1>;f|(byQ{|aA5oE#vUn61N%C60P$OzsezrDa8EC^PmR+LOQgM3IEw>wX zEkD9jtGOEAxq@YAH9KY@;%DDNJ_8Cm8z3~BB_;-)0a&SSymHJ_)J<%17RvD{D0J?$ zFiG3hnIFeio zJyz6KKhvV*X*m(FSlA}JW%|s@`nx#qO)C$h9NQs=1QI-myK!>lAm(3{Nx)ow(2qFJ zs!ILd8Uw<-Q;EgzQee6`#htegLz?v2K8Mt(BB&;!+1{8s5bRn%Utw^aW+GTR63J`q z+oX?z`7%oXA4`JHGFxM@X!DEdVjjjrQ7H6rP%A+ zlmO0-nz!F05@ZED`Kk);V}KngV6WA4<9qISfayeJ8>AfBr*VGI8BR|clD?Y_<6}LN z?43DfX9E7ps90k`jFFHf4oe<_>PBDZXKZPcj)iTLkMz(E3=@d(QM-xzo2fQml^SzQ z#0U%b(~u23mUld@xPz(MtczFX;x^3||0o8xxs=7!(gZj>a_p1xXTa?u}7nMoBHoKPNv|JS%ss(s%>E z(Wh$;V5Is3rh>Nyqp{YF;IuaT5i-6M5y3!ZE(BIGeVj1&Re&1Io~Jt?TzG=KMA%|} z)VP-N8&`<+`E`7r5&af*lm3XM${unpBKS8k7(O*8A>7zTxoOa40#iAD4vA9Q%B=oz zb0P-q0p7!ofR}fV{59KCn5eU@gaknn>lawvA)~2jT55p_UPBdKXD&GMvAKu_>O0A& zwW$8Gn%~amJkuSx$1~B6+1oD(6b~a?@M2o*_d^%2_*$mi6m}Q|?|wQ=45)|{&?DH~ z`#&9?fX-#5ybG6rsDccCFmDM%GGWQI+2lmA`1}@=qTABc4sen>xU&>iTd+Mi)?EQby=@@APJ6F@Zrja6?TdMBzH^;SX4@@&DaSxE<#9`0-iqnXem$7yvF*w! z7O_{L_dMqi&DDWoF6DkC*2-ek-%0fJr5gzQWdBa z$j%hl(HVHLtM2M?9j1xLx(-@jfgXmx3fTT19pj`CL&$%P8coL$D+@p?^k&t<-=Fek zX}7xG$jQ9%H0lziUvLp<%0lT^)PTtuq)}KLPYE9kA*$${I_!f4M65^xor|`oF?CTm z4q)~h`pHoy1A*aGEz_tyt=17BJ94cBM8gW9AXq;7_UQ$DG3)ItBp)s_ZK8?|mxd8EV+o@$h}nlK3$0N8o!qDluBS-dzf)T@^Q|4i zInT|g-;HOv=s<65Ye^42O>Tv)r#JL4Aoc~~79D=cb0MCyVUCG85LgqdTf7wv%TEMx zX*L!Fi6@8aqe2Iq6m#4J#t|slmYp$>ROUF2KGFDz(Q4NdwR4`pWG#N?7Gl%iiT3Fu zqX>SoS4Pu0QTrRi9h1DrjIG(~UEzt<6m=<q}q@BSwo%CG>c);zQhO9D6pE4Na6x+S@>|iNCkE4bkm|(@mNgU-v z!z`JqD|JsSD%6pW&GJ&G<~YAvl}8PIy9F4P@dW|)p8qwJ4ka~fv?WOzA*Oxoi>iSP z7HyB&hT>3fB=XByoxx>@<)9UF$x0oXP`R*j3}k>E6a)*F*|X&KN8i91r+q0d7X1EU z<^~l}iSxlMMmBJ8I9HqdezJC;ZX8w;hZ}*^u>L5jWK_gN6GEscF0TShjMc%m$Tz~B z@A*KD$XM$zKGSi@TXfe0>Eas6vxNW*>V0L22?HwF__=~}8;y+rD>n_a`r+D0swe|C z-oM!o>=h*4fqXB3ZFNLAahQ}exei1bpq|j{dX;#*79A#r@b8m*=iV=wUjcQ!M!6TbCwk ziC;boDqB9Rt4>tEg@~ejG8aGV^EAHMffx-gmo^zC%0}UtOOE@Eec<9jc-8*r;G}qh zTz?#Wo&VnwSrRb*!*+o{C`JVq?J<}?Cs;cV()`)e3!|U#eltZ{SJyvG+nNo(B(t;V zP|I!J{_ayaX(6L-#wZ3XjbK|L(YY#X!@N?g79Esc)zpU}7J1h8cAR8wPUa9*FF zY1ZAmUv=w>B#8duqG}dZO_jC(40B|wR!1q52<=NOVguGrZASLO`^5Pv_rINiHsz}+ znEg8mGhW+>cuo9-RAB+`A@kC2_}|Ip*X)jWdTBmP`+(E_mt76khZ4Y`$*0gXQm0n4 zPQ$}xD7VZ?8gpQ@sZJ+u^UZFu?3duZ5!V95(h;E=9dEIJ6Ek`<{f(_zfe4g1v9g{U zul0Kyp-GCS1E~~1_(-$}SqW#EL8+>}914)bRKlRw@X3uGQt zbau*YKY4XB=fcRL7Y4)mOqB;)FUFoQ0pq)t(xriRxM+kVV_uT|9Z&E=>h6CF?T&EP zO$giqVTAj`N`)+Bon%u&=y6}Hh=Nu9XG_6>By#1-(2?PM{Y!rR`68dkY6h<}W4Fh= za_dzya%)MBg>=)ritf@S=TE;OP`a6}%}QrvPt8L{eDvE7;lsKqApNf2{Md_-sD{bO z=Kz%DPN86h^xNtR5~mQL2Biw4zpb$wI}pE!Dr@`dIGgD(9RWFUmtox8*{*d{{p13o ziB6;9#whVv^wVx0RDN;$ZvG*iN^d<9s!pvK7}Elia*QDI@4UIzY+CMZ!llHMqNb7C zIel?h8Qh`%wJMI?NzQ=ReR2&^e3*y_B@MWpS&G44o~c>1FvcY@x@;wj33(Ij}XzE^QuY- zR$kS8V@YPzQ5%k!f<9ZIZwG2Gx=*hq=e->t)A~$5_hmC4B}iq&U?aaG*$l0aw;cox zVw~QjE}c=y*g$m_XI~0{t9Ket-%(Ou15VT6-YG-H%!#%xbox(dMp()gq__|hJ|3#( z>c!loYo0ogvz32uj8hn8-pu8y;MTp9q!YXK)B8=;HgUvIcTSKV;HRR@W$~l8H85kL;5*`(|zsy@@}O=uFRXeGW)-B<_wtROAFLFzA)VuJ!=W6ctn*@`v^ z%ag4LXaW%7r&2I0Rc%SJhY?G*icZk=x%@u^xdm8*pZ&2<{pv>SPZG9nSJFKK0d|5w zz0c&7Cbk~`XKNgqJCU#2lyU+ph0cB5w90Koq&Vk#H^sP}Y}={I{QUHp85p3C2~(i^ zNXVTd}XBS3iXYr(s{%L?BIF6#q9~>#u`2p)*@-uMY zGL2czH%tW9Y^IAv@|BZD!9uXsi%)>oBZ(6~TJz@Nc_LI@3j*w8+DhWbU)-={Mmc8@ zG|j&(_fvO|qk+#pf@c_&Z}GO@ZV8E#)je~mwY);gW*jVsBkxtdM#sr&su9s6^P`#< z`9{)#&g{_x%?t3^c>IKAIs4og{|qfkLK$Wlm>lI0!Z4-G1MkWcFVAOQt>av^FOHMK z7x_w2vLQ%SS9B9yI$%{ij+00n&DAm0BEP84y{Z#16Gvsc77%0j# z_wN14rc)o*ng0|Y`D|Nm@7)LU*}dY6;&&wm-bHOrHA3szTVrRrgb-}xqlkm$$SC}s9!y%1OB#(k zb3PEerOe9sSz8shum=|HT%2B=l~lgBa^}Ti6b}-k@Z%a;5oKag0aMm5G2g1AFVuXk z2LK>|mIQfF?MV!jX}86AlBr}7%4I8yIbS}qs5nr*xX3$ zGDYU7`YUzFWRxZLq<&Y^33jfVsNjZIG?O)i|Pph zsKW@QFx;xLbYdB?f8q;aFYU`acYez25!_kO3`T>0n=uw9b*(Z(Zm`gXaaS#p&{#FNg?`aN7=pm_I!id<`bz@8XpFWaT4@Wg{%(GrE;q+R05^N z6vvYE^dO#6| zA>qZoTE<{$Wr?^qe)zfO;&)$})4%RULJfu&%u+T?djk7&vFqug#GX~_gCR7nvmeq6 z@Qz_O#c+;w)N$NR&O?*XYjAKYe{`gbja1 z3lsGXg1QP1Zig5dgH*FG!IPH9TjA?OUNA5GYVC5Xf=}qj(L@9GgsDR9SK*K6 z@XBkY9~ApwlY+cx`XRRawCuV%H|64wH}F*@PNoDloB#`#&O()WYJ)OMJrTOu3^G9* z$n{I^4nO7;*j!nILiXm&qe@j62AdgZeSw6k+_Ea@#NUzh&asO-nn(IgjJ^e1rxHXK zA9i~gT}WBq@h%1D&x3c#)2O>C6(EmZSh~lN*>2}E~7vyBm>_j#_5R%${BS; zoz4Z9ei)f>0WCi+Qv-fZ3__a0b=EA=jlVC?`>7xQ)RR>e&r$61g}Fu9_2}9*Ke)%% z;AEaDwNVq@N}Tl$$lxbYpfDyYi3y^#j!x8v?Gyo_oRSW$&0aBpxu&3_5@!22EVm#) z(ROKm?Qs~0=LI*K6aL!XfLBb8CV*#2jl;3CvH6%&EUkWy=7*L;1&8uw?)RI|XG0M0 z0VD5{Q!BhbH@uop7nKHgG!|(P=Lcq_=>r6&`zwX(@q92Dhv=KW!a17WeoulwInAJs z?;`<|cpqyk1Qy=aLT`>-?bOtc*-P)k`BnzQozJvly#N81&i-%ii-7fj00000)@&l0 literal 0 HcmV?d00001 diff --git a/assets/dice/image/ghost-5.webp b/assets/dice/image/ghost-5.webp new file mode 100644 index 0000000000000000000000000000000000000000..144b5e8458efe177ef153399aa7b0f3f230b6685 GIT binary patch literal 23244 zcmV()K;OSoNk&G*S^xl7MM6+kP&il$0000G0000h0RSrj06|PpNHanJ01>}rAZ?pB z_pf>;A|kIZEBb=6g0h0Lf`YR8vVwxLf+9p@3H6a6;wWg_hN=1E?hb>9n1Gy9q@!eD z@al2@|I1~zZTn6n61A#TQFcL5N-0GtrIeJNQj|)qic(6Yp$O3=7Kub68JWy{{@>&` zlZEMV9@lj*&WQd)lq6Y7R0Zm?91q|906)N+Y}=|EYugrA4X7T8P6sJc5V%A85~k>g zC9{25DLl-~Y}a?rF~+vHef^Klh>W1H!bvKi;jZH-Dng47b z?yrqk6n`Hvnf~3|nK7n}udYkS>4p2`m6pnW9@sCPF3*ks#=Z2fsqaw=sO#4>_jmUW z^*0%)@IL@L&2|N`7WM}I*xWpS9`OFlM4DEXrmk%@2AfL|#Yp&aztqO_;c)nio>GNh zl0;FGBAw=SryxX_Kmd{$=GP2KQ)cscPrSjvZScZdN6wE?Y_^wwFF9>l+Feqx(bm`_a`@ybQw^E)e4I!+Eavk6?$WdO zR_v)GMLQ|#@hA~hK3^;3@;^(L4FE#I$0@)KCI787W+%voG6Nwb?sX-nK#?2phZfgy z{Gzh5NFELES*>EMLWE;d8eFrAJ^4?*o9XoLH-%?0C`J z^DhEoUeq}#o}jvSXtgu~b| zEJEfy{b?!GP^-gn_Q&y_%5BaXjc(1XaxyB?h%-r@WSE`S>ohredk#PnK~dt^rkBKF zD<+}%t?{tvIAyfUU|`amQuX{;0_&ZQR(PHtOVdNy2o%f@gZ0s40r8!pDLI>2>H55{ zY^ZrDd?z9Nfg9w~i4Ftmr5wG)4Ow3m+5sGnfGvcq66I_mp8kcIejg<7wE`Vgz)876 zrBGMbv>0Id6eCcVFC%Z;Y6YYHNoG~u^PZ`@IP54f)8J;$+)A%mjt>;LQsQ>xQX#qw zuH!Bz;Os7|wG$CnSENoJK5mRc1=inI#FJ{Ah#!;&A0RD`3v#~ra5YuMzUi6|fa@_A zlpQ0P#e*h!Y4L9W2wsYER?SfK`&7teiQ=qj)v&lecaF+2e>7QA}+Z*Ia*HPr_rKEzW`RWELCLSjVD^DM*+BaXpA?KL3OlSWS@01-9@r9hPI zPK6Avl=SFZyl_Xr^79Z%UiR@-RE`*$H7J->v6Yo}8334CFVqc0j8pOjaM3JsnVPMb zQxTjdPFrjdxz%vkWfi1b776QR6t#X~YUhaE)mV_t@QT=X0JJO}Vm*htXQ@gA4nHCx zB~i{<(*aWBSZ&iFL;a-^?L36xru-c@;5B=|Smy)~6tH_41J9l|88owc6`|28qir3d zYV3N&HM1AEJr08PbWBzw6pYPHOd%r5lBOaZ6lLA;aIA((4%X-ZfF~>k5+P(q0y<}| zlj6iGA#@RzdMfQKqFW*QI@`y7c$=EXCg3rTRsD=|9l9|ex#*b(kr2vjjvtZnwTc_U zZa}gf1QE|Ud2z~R*tc7o7>XTA^l$+1i->9)iwAdZ5wr14LQJ+^#Aj36B_xA*En(Z} z#1XBq2%noqWLeGsYv+%O*7J}uc2|2nfZF2YS+R_QM!P(335 zB&Rla6PRBEFhdn>P~ePZxHgGAZf$GJ+yQ!K5@d;{+nn+EM&qI)f~dg3hCQe90(12j zKK<4OFH-i{Vqil>g`?kOGFkkh_^WXh$;cDwk4!6a9Em_JkeTyQx$bKl?K*J%DrSKnmF2|n$tqRnaNsx0V;Peb=se&jWIlZrY_5~kP>^@AN+&p%g zTk7iSz5!>HpGev<5q~>8-~+C$JOKB;b&4J{MMt@&WCP$WZrCFs;D-yq?Sxh>q!G?KPDZ$yv`2s>L6lW8kb)zmB6Y1IfM*(((!B(} z5#WMIvw=jtcEnOF)n%^0LiD1p+~IJrk$GI@2O#WRAbBq}OvxHpXd!lli0(&c4f`G$1Gy1lo)R1!m|1u$5894uJ61VZ_{iZT)<7^|oR`sntE#3VF@h5CrSeSxa5od{>*W}hN5kgoHfkG)vi4jtDVb}Ln41sA zlmfADncEkUxF==9k<=qxN^!EqpQWXxHM;=O=|+FfzCwunKx9XlR2})$ds6U}X<)H= z*!M&}0oWQk<0X&(?96Zk;93cPv*u4?ERKa0tJ|jehBA)W!H)_=KXM3f_n_*-;$%DV#i!t{(4g5mlt z0$|#l0#!4^SX^P6s(K5rdTMKNdkgUHIL+QHA}YQ`lD@B@Avs&U`y&1#!>&L3JQTb> zfr8a-0Lo)@5*6o?n#kIPtaSgdDo3~j?v{;2g%`@W;(krnz|_NS8FxcZ^5>TS8oUw? zN@!^IK+e&4P=UF=7+fbJJW=igQk9)6?P3haPC!nCDd+6#>)P61imb=u_5^4y{`gB| zu6B40lh*C*-M@u^O06jOXD{ zAa{`H#??gX^$^O0B*hfGJNyiY1GP#C%sv1WX)}L4{?f@2O*;jc%s?PFrX;@#rZjAr^Be*Q#a=Gzmi{P@H;94$M=e+W&Ss^1R7 zxVuY?(#J?%-}0x=pXX!F*7eWJHJiT}yUtD|+sGEM*?jY+p;-skYPHS%)ipD@T2i@> z?~oWpo)ob2x~He7x3@29>#IJw{W3*E5?nzdaR@vx?i=^^c6WDQ0e6fqi7zsNd-^8= zuNKYud3kwhD&`#$;!Z>=oQnOgzyEF2{;2GBN+Ecy)rJBQ14v-7^y0|8QBBG)*DbT6L7n4eHC=Tnp zAD#bx^eQK#+|uO&Hj7GI*^wRl&}l-o06HK;+z4LXTZ5Wko1L9q zJ?ZPmq2^h>`pBy{P*)PHR7y!QAMev!1(QkX6Nizc04RWyMrdo-j(e52AL5Xse-G!> zMpFk-BnkRCfag;N8#M|uO@0%1qg0j$5E=e+|AR$oM4BuMsZdB#;t-O3QQYGIJIhF= z#Jm@yWP!3c1O~uhj2U)L?jITi?kZG?DE?B+?_R}*WLDC|sYe)O&D|u<=B&iKSzN+n zsFcuPczOSbT?;_CQKcOQi_(CQR=Ljoo-{*43Pk6(eNkj>UPvg!q$ZEWszx2+HN3cI zt{ftSAOLrh3MmKRP}mtYL(vp4B%kGZK2~B5puHuGg=niG!LvJMv6Bhv{^`@_sbzdD zE_Wdb0eci_LVa-M3jdKLK+}w-j)B~D(Q>{kN~s~v9tV_Kc-W+ruun0Cx<5+Giqaxt zp97aM-`B&MKM~oNCrT*Fn1_fx_3f(aE%nOh-7i336bN}OMVhMW>YSxiy(qTphK3cj z?jCg;71ot>d{oODv7a0sS|>tNXSicils$LukZ2Ia;X2hZDb6df?+aVQ@@swXBfv(% zoF`cZhZvaz%>2*vK4zXMip%l{P44heoFJr&If>`%+`zyN6ull8$YPi&RUH-QYYLno z+!62Qdh4n$+09}w@xVk$blZ`U(b18Zsut0+)1F*eS>_3F@=#bdd_sILi-}4)4WvTz zB3l{7#qR*@n1EIf@H5V(?G(T)c|XEBDpv~tO63sKU&qc)~)bS&TBSWMZhfih;{Dc!+=SYib1>`2_Ny+q~AFo)1gs29Y3eFwg$d zHali_2-w-7AK~MM`BdR<&W|6>e#r07fzU($S&$v=Jv)uX(*WY&YdciVUp} zM&H?`O^s2TQjNQ4J*3!$H?QiVpp$^JsV-Hna_@`XdwH7U6FW$mx7%-HFDwm>sr*Ce zJp;Uyv#-R)!l^OJ_uLnNvy#+DR~O~nD-c#fsZz0U&&LEJkjmS(w%^2H-7t&rh-o2pnYFW>OUrlnM=K-D&=TZwFWsVm6dTy+VrV+XeHaL{+?j|)oUboa z)oK@Yqb-J zBz)su*1=^nsnm=6*^+bpTzrJj9wa8acq9eHVWK8=Ejv*Gb}pj_(`W=j=$>gNp)@Ba>G3H6&EcavlE~zIX9l16$0c;r5LeBH&&sSQWJMWcu1hN<=7K7B!pW-F}`@4YW zClYX=sns{5huZq==^Q=CetMrT*{p(?1BXC$uhKGrN@9w5_a0)t%4XTfX4ItJB6I=F zs^(H#UfL8}w-;$T_&WD)(DWy;FqFzhtQag;8V_J<{R^DW!mVUvU$e}*e z@C1(fua6nBr!51{2(zaPCT@1u*?h)z%u-=C5j{{7Ca{juBU_9!V{58`BT5mZq8E=E zqJZs{m3J?`tONLwX@z6eDgPR~{T-U~y#}Is^`M&$K;|r!58Mn4RQK>HrdYttdAvWW zGAL>Jm)pn9)!MnO;L0pB+}Rd7nFqt=}Om2Ukk+U5P^F zvPK1*qrmsjy!akSee=oFK-HFvGe)arGXLm%acl45zukTX-i`uj%R2y0*MVZvWvZ6z z1~O23X0;5roln&&1zCxD=?ehU;|Lw3(;5DBHp|EY=>z1<=dt}(SXnH3vW%#N6lUYFA#Gr1DMwMVq|t;kko9&W*N<} z>|{}XTgEH>QcC-weqJQc0z@Nntc7F}zP@uI>5zRmWm-c4(Y=j@wgX_ZAD9EI6@YDY z6TVAlA+VLJ>M19kz_OY7c&w~UqnlA=v@@LKA7mk@RmBjBF$AtX64EL62mB^a8dA{K z8JTDp+I)Q`fO;w_YB*Or zM4YYs~tsYhIQYCx*t+)#`@VJaC63{Suzl ziYRxX7iLkO&gu;VpVDP=xeUCYnOEx{o{lv}&A@5iFb;V4g3|y@l`pBxyR+yEes8Gi zG3&nWb!*j3-gp_cv>1r;Cnf^G?+HV#9V??}riOJ1z|yoX5qQ0wXC#Op`xZzd-Ca!AEy3}=t0Q^nyy z{julgR!sh`rIZ#O0POaDHUsW&C7%O(K8ph*-J{5RNLcboo}pwYLOPfN1_9k!y_sm) z2mDrDfSlYP^-pEd=-Sz;c@T_#XBlcQ8y{#gIZA8y2CF*c*d3PKW(fSoV4cWZZhaCD_?&h0H>eeW zU<80r#I*xJ@OJ*n<9$&tOr{R z+EZCtl`MchFoU{tI!af`G`nBQ@mXV^kG#@wDm8Ce0Jws`>Gn2pqPTGBtC*hv_(rTbEK)vRXpsb1)1(Oh%--`U=YA?X_1dR?QRX=`Dh>V!p zv~DJw@nOspP4VZ=8r>@2nh|l2kSEkf`qJ`nAE!17doH%~vIO8|QFDx+L^BX?`1_gO z*6XetET>kl*FBv#0uaJjQHXec$pv{yYUd4cS=6Ryl6X69I1;hB!lox_Z5TJ&DTE|o z?H?a-@r)ybL4}`u0a`yKoHpy>%phP){-eqF0Y?RlI`~epn35AsVc{TW(4?L=j%g5L)T&+ z_54O?NNbFS!kPN%^G>_fYBrnpzil?b5h|532-IUERzctr08KKj2{o6RPET@)!f6M? z&sEQENsV);h`4S^!uoQQ@-0>N9JCLrYbr_~=TJ$>KTq`8LzOi(Ma3UY)N`A9ZZ5l> zPP^Uqtfnj{23FxkOxa;+>Q^&G5a|M7f|^^=z;7cdZ+)_R)@tTqGwssU!GZIphrj!S zTTOY$lCS1o7FVbz!;Baa1R=VyAmSeUb=>Q9yOz{Cwh@%&|9S7M-gDui=B^7;t4(YH zn~Kox&vWx$B&8$BkhUXsYO_Lu1bEIOnWYkHDFUfnjnsz4owAsj@6P$XKI@;`vmjbt z;a)sjiv6Y*Gcn&j{@bA@y2R^>jYg~8>2!hK)Q(gaO0mG~C--vpxF>ve7Cz&F7f`V2 zdZ*D21RQE)I1&b9FXe9oqy2}*zRmDY;a-qVH#axd*Vot9R->*shsM5X4rmP+I!DNU zrweTv44`FD94iZy7Y(X48G_x^;oO2Qia-e2LHUMhb z25ffE1>3zbHeaw$*3TXoa!ED57~vEKGAcyK)o|m|U%>6}C$5L-6z&#d3m}f|Y&4xj z!?T_g(h{YQ%EJ&ZL=rClSrD1Pgh);H)s;gGpB-H~EIv&@PGtGvtSJ2rZ_}wuGjvSM z4-NWeO9podO-L-hNk6~~@FRG7bae9h9Kf%Z`7<$!u2@Y29i2bsw*AvxZ_WPmp`P-iEA)6bYqt3 z;|D&M8qXmFfTxeX)s?L5sq5L6S?5+6WgF-7$i)(BEUMT=N(`RdKR=i*ra&s*({jkS zWLfkg1e>n+NtB@}p9jtC5TAJ2p1&-Kz)*0jJgBInE9R^-b~}MK*R5 zK@cH?0R!%z?_4QN&=;0>OiTu+$cq5KuhHqbE}^?gfG8^76D`?JC80jT1f^S}B0})} zdcwU)FTGSEP%$k-oE;1$kP17t_Fqi_Py?e0C7ki-0@8``Y-?+CGpQW&cn>!2>EN8L zFl!lqreXbPli1Ri2YgeG>ut=AGVS{}DjE%%_}ETl2)ru0L_}f4>`LLwS>}Eua0Mjo zjkW|T!4%^~2UZIJTW zaG@SHJ>>?Dqq~KCSHd+%Bz{2JsWuGtFhcEH;1- z8%bU6+z`!(3AG1&H#Z?EF4q}3dyiBDssw`F${$*Nmed_G=^CEN=R&sWMwGKAu!NY> z-IZq$fjm-~#YALJ1k>~9<+bjF{%BMcC{ISiAsC>;aRgH1G+o9!9ff4o+j^!xbk;tS zHH)qhPkUw0Sb%{KE6^>d=nt5e92v}N@B7NoL%?0%7H9N$w^f8(VLb|`SJQ)wJ9{4| z8a=X7FoCspxY{NQa8};Hm~?zQrN?#x3rDCl>-&}U_3bbEpUrtRGv7K5tc_=NI|#v`%9F(MaTB_-5YBI5?P zBEq&u7Jvnd+aClxlbHrmljmps8wx)QbCa`RDJX~&4Z~^Y6JGySLBTAV5K~1Q+Zp7h z#WOz$F?kB70}%;WDA0`h6#Eh-qHuL}wdHj`=`0 zJv}{u1aM3i?f@#}C zrw3R~@V-ZJF3$>ezF3fB=F4ScnAc5ALK7=FB9{Tc^+@)BmoUE#-0cH1r!Q!8-^M(K zIs2rx$wH-%xlElJ(Wg_^RGQ{GA-;(dL%a$(@;H~og3uI06t{cy`(mvE?BV^%dqZ`W)x^k?qQ(L z_z6b*9ozP*aUZNU2O@#x2kN0JkH%ss4EPB1M+xyOXMs&b0o5%&I`S*t*R6SVAJdYM z6j-L?;6*$vdr>YHd~e5t`2Gz$2Z$V0k(#uAY&;%0LPFk!6zJDLrs|-D4Intm?=FdJ zZKh5q5SgLUk*9XN-&M?YQ)~x<)0J;o-3SE17n7<8{k8*v#8{tJpj)R}^qLu#2IYHu zVokln1j#*TU+N`WtqWGAzSSmKqKs%nERY@el6xsmtBHrkO#rW(l=9Dfu2tSQ*X+v( z4PQ!rm4ZAv5+$7w!H{1|6ytk#SffaS+XE}+(zdRB5nS4qpBNi~9XCA9b(hjwnbD2V ziYl7GS_AW2Qs*M#xSzMJ(C)3-l5n{^50U@Fi-+pu3@G$+0;{mxm}s0GAvx_5;8@Ip zeWd^U>=jn}7l1vuX1&Y+q)>hhz(S-7^hDHbY5JvvyWi?BuU8s-8m<=Lo{r(XgF5~3 z^77)s&P*++nserbHD){MKKsUgl+T7t01%zGV6@_*p-FPD076w52zLxtsHV-kG_LW; z`TV%3W~f|$#Ue!U{RsnMG3hk9eeZ{xhr`vC?`~jOQ7dI>_a> zfT|{V%S*#2UXBwe6U=t zmaC6{d>H&RpDz~RuDu$o#drmD=|_@C_CHY4VcbS_mn;nX`r4@7zD`<)dw-2ok*|1bWPTPA@ znO%y}(pryu!uaX0@#B+aBuQgJSq`MgIsHTJ6oAdLvlx~ICTBL(eqNs|FH#vTLCCo4 zE7W`Mk@Q%_X4?F9JCFno(ZRueImOSN63b3yGAvjAuLigI{Fiu-3vcsk?K(!TTv&ntwK$Q4m4@7$b@5=s zCgjbrt1FzciQBMRfx|%z`EP^IRmH;}ySuxNiwgjY>54={bBo?9OE5;SK5^b(EU;Sw zw%gBtjWPFP4o!Bi00}%`KWb83?~gM*_9-anxeCByb>F^g1gXp-7`QZd#OUiQT4>T}n~RBZwtw|EXU%LI zTYy*%gpO=vjcI73cOPG&ln)7V40h6OR?i)z320|B2uf?MzVDOXEUs~F9Lw0)2G z21#Yu8DpJiAYVm&t0rj+-z5^SV0# zKtr6CBV%Z%j8sbYLjbDMdK(?d;P*N6n>AgyFfeR343UbZ`CR^7 zJLmJr9!?g+?gdi9w|BCPwHm`^i}L&Vtg#6f?e*y@q|A=0pduxY;ulF>3rMP62PsVp zcDc)547nmYDfUu<`J60uw4+clSHfi9`C&=Xdq^`1Mv+-B>;w=Fhsq33r_}hl`4(|p zHB=+6@5}f~f8y=B1qiDZi0^lvOo_LFg~L1IS~%qwir2y@hu#bRlC{EX{P3(~OGq); zJX~#Fla3ey(=#hso&RVkXGORyRTD-#9IdNRGA}2g+Kwtt6MvZ-%!wPKlA=5es$%g% zcVi2I#~?@a90}f9wIg9X%7}2hJObn1+?)rGzp@v<1~eP6nYGJU>>KCQL*6-1c6gBl zuVvSjsJOZ@!BtE`f<%C7*3h>%tTImwsc2p70(kD}`6V6kqTHarmiW8#nIac05bVk= zEb0V+tsFXNm<5gmw9=%C;4~Ty?J$EU78zWZa@GQ)B#I)H93U-qi-#z3^BqySY7O$16KkL%J&m!1B(!f@T5G66<4~v;x8|$4>M0(a@l>qZz0`o zr#-ww;^x?8aCQ$Mt(42glbPVS^XU+*w|yn{i%IIOB^5f!w&7YS*Mc}+tpm8*GcuQ! zoM*or@!EBFTT|uR;Dw|dIPi(>3|}(A_b%~UYfp=tacqzTc{j{O5a3Nwtg)NB5wH0` zzgT>S{K)IqyM@E)YNVFI!gXYTi41vLuKyDg7X@!Z4Esehi6I6Im6pBkzb8C)ux6kS z_j-N!8l5-cXg1#YJsI?0Vgz{LYe!E*+79ID*9<`VLJd7kGs1TSh#Nfxq(%o_G5De$ zzk?-vU6!S)nE=^?U=-{(aaIvCeY*XTPVgBcL0swh(4RUm-Vcei{RX+lySK?;znU%I z^mjl0gJKO)?}tw^N-HdPxazf+Q#;UpA&CG&c6*MR;50;4@)9(*EtviwCtn#H^zm zV28`w6UuR#pLPl0bEEd5UTzbu0JuAG>;WfxlK|eh z&|e+JO_itXJghV!$e1%wvr_epFF!=y4K+`6*#_~lGjFb84)$@W*I{dtN;xboZX*%A zj&YJbAiufF1*}$A7t$X90j33iaEa?~wyVQCg`2~p6TABM&vkFLa-~Ex=fz5fDR_J| zGPnpp*UrR=wSMr^!JrQpHT3TnmhHhoFYq_v_~b4;W@-aqMxWi$iGNuQBT27kqeugH z2l9QCf?~0Dhxl{L?3!a^cr75`pdRo@I2crH(>(*gvzhGU?Gb6~rw=q0ErUJxji%(W z0=b9qt$*zx;u<;%$T(t|2_dGoUHB03bUc~>>(s#7CggT>?7e>jczYD_>7jmwYj%hB zVC-bXGhLX(0h)E(b;|de3WCLLG#qzpyO(=mu-=VnOpvK`?YIyKu#xM%1y*PfL;91A z_pSGyhILBycVQ6Nf0RWs)5rZ%45Psek0kuEgq3dbxGj##RMTg@+5bdb^ZS7GZMoRP zhMF*juU16&9S&^n#_Z9cYhn0%!*#G~XE{+|4G@D0rG4auA1#{N zoCQ^_lCdmoYBDm?wR*jVTp>Me0uk43rtTx+D7>JjMEZ=EPfvrvkU01c!UQ+IV0c%> zZ&bL;vJF66`$P=5qO>Nkfx9WKqWuxAC>EJqH=ef#MYiW>V8bE+*fdNr?Ycweg98%( z=0V8A=aQN%8O(hOSf-DThH`AMXtsdutb-RtJ)+`hr^V7sPwJo69|0RwQQzUV{^uI| z){wTI5f`)QtBss!g4T$o1CYWxM5@(%3y;!ag4mlo0dzlDVVF5*XxRchxUijAe(%;h zVt63AYRQDlC!{t75xbKBIxV;ycY=Ra>%#s%vx@y7%8zWy9~rr2TS^^uOb6fG$gm?% zxUy{(ei+JZ9&MKW;1Lr6?9XY%=GeOOMY2@~=H0pE414d2LXR-@}CzDO|25?rXZj@h=Fs`!#W*@LI&ikk@2v$q^PD@Km zK5ZSu)@@k_!t$}ds~|(%St(LJD#Xp$JtLSZ6f^sDKxhrNfmk>J}6AY{9Pi-;C2yEx8N87&u%ybLZ2 zN5>Kn@=Ky81cvbS+hu`>GT4&KPh(I}wo}ip?0#jo-jz2)qAo|BH#4Qe%F0){nVESr ztE;jAuB@<;+o;KypPT)}`1uF`KXW3oXZ~-Vo{TpDF6-VZ%)dS0?|3juo~RBzmsRRk z2$vL=V&Q2uJa{mLJT(#C(2+?`(b;A&i%@XG>#fTDHx`||1`Gu&W;9MLcNJC+g0W@^~s0k)wo zKLF7{xLi#f@H2IdO{B3yoG)CI;oLqiBckwPVOg^h2i1M6+tii<_T=M({_Pgc_I7*u zIuWI9Y<85f*N78BgvX;q9%W<`kwjq(e*Mv6sd=ikK85?3f(dLDkxCQ)= ziJtoacRh_+0t=&~qpgkGwuy<8uFQtj2*%*1dC@Qp_O!W5+w-?AyDVPIl- zqNe`@Nx&w;pQC;NYs|C00~2$KQF{L2>X-cd?V(maq2aVC+i#}i9+klJklaxo=rY=d z)I)9hNO6x)nCi)u57s(xREBb&Qdz6gMeGkGV08Pon_PadXqkkQ!KID~JFx+qV! z)}AyTqkI=hBf9EpW?(BL{lxBWylC)i6yE(WmyX0luxdvU0pKis)_oyB3IgBBxUa4q z6(cC%(8$ypLs}ihOv_vq5f%X61wfQhVAuzWOOY&1ne-|U^&^ocQ%7gfAdL6j1+Jc2 zxcZBv0r&uqDUNa@h;JYy$E}${V*Y8pt`7kS1 z1?R$0HajmON4SW(PM;!5Px2P_td=zvjX>@f{XP^7_6<1`WlYN;UHAcDlBgO9P*@#c zc6Z_TWD9;B)Pxh69z>p6gn=98p5)oI` zoZ}tTgrr<7 zhmyYrhW6$!riX@xb|c}bNe{#E#L3ps-cZzrbzpyFkMa_%doG?ozx7wn%!C2dX(uLY zndiN1ydS{b(9l8{x82ka#w87DR#ppW_rppRr@E;xcUy+1xzJHtTYIDcMfq5(aPjma zXWt%1W8uh~dF100Hr3^SYEMj|@8>ElPJS6BYjohr_{^OGyYf5w(n^ z1tWqWh~cm(&{M<|N4oReNX-0fu;(a23M(v=gu(~maIZf9T10r+J#H6mTC-70Sr15^ zn(G(tfLSU=d_U=P|Gf2q2XJ1F`>;3bOS>nLXjLxaik}DUvKY23-T@daD=XGh`$om^ znUoMa3H;tp{}zBy+S9K*D8HC|m*u3Vs_>XjrBnWpA22_1vxIzdTy@lX3~ZWq&zAC! z?}ewjp;IK(@KD6tV+A&tz0b<;{`5_~e%&|mI_Jw$)H8)P4TET3`rWs*#{&=)Z!$4H_HlYrP1VAOLO?DO9{T;bnxK zVF1&=?7SnG1bxP3$ds6fwS|F`%XncU#q+uWvMB!tfY2E)TSp8^HOFAXd#W?$EJ?Q9 zk=er67}k=?T<|r?Dk$u7jNc(i60(Yz*$Oy%iTluzc9sO82>fSfM^Wp` z0l0zy`t!{fEN-RnDH1v7fxEE6p{nTx&Xp4}mGm!%|L_UpzW{Jpy0Q{IlW(|{bxeXQGo#Y!6~gPX(1n!Q z|AnsMwQ;`;dpRKihlupLCqFSlS>j$-SAVIgiL^NG(51b|Q5!k754tg_CMZmQWuB#r zJoNzJCp)T_Vo2>sR-q+MJd`!_ViG|F;QET=e||yPLkB`(NIo`fYbVOsj^McPT`J_L zri3UY>UVm9n`)Zxv^hd68&@S7hd8At)qUz37i!H~bM-zGA-n+O9!0r)JDd}a@wP^i z5`$OhudXWK2Ebl}lSH<_PxMHmNLo=qqWWsIJfkRuWkHMvV)z6ndF>(VO%t{Ae04Pd zlRhVlGi<8`E;}Hgi+6%ivc6t<5~Ggk=O-Ks2%bd% z{vwR~^2d}i!kJHgAHW!`5^-si`FWwgt)%&w&%CJN+*!I38WSzB9r zUR#^$7XP`%Am!UO3-Yrn0yyQX9?s|F2ne~auC6M%Yb=y{`Sg&EZ=^#G?bwj2EKwK(Fw|So)0l~putAZw_gkp%lft~zwD9Y`~G&UK@*wh8Nr_ZSdKv0AjVdG+_e|)Euh#J2sBR(Ud zo*gC^|JgZUGkG`&;lkgA#5LD6D&E#52))L}UF%Oic5*SAGlmCOBtaI_IT-=8*FzGq zw|`Jf#?SOBPcy4R>c190+hFM1ll|O+*aQ}j6oceuiL*4yel22@@t0#`KFRI(2#6ef zyo7VCh!h-)Imr@fpaCK(8e8x=x5nmwcw#uc;1AA`1b&|sW5NXB9JVvKrhffwUWN71 zFcZb^2kK~S)Wo-5iS2JVU%ohs1psemp)lDT&=}=2FP^fWk4cLJ7&)!E( ztn9-q(e3Mr@mW4)HgsXRsi`{z?EVHWrCX-bo7Pm0RFKTv#`ztJsgZ?0i|&{VaTrn> z<_aZNnQtSmk&*)hBR2~UKa;TCPHARZ0NdNw&Nl7MHJN&q^>OSe#3g;3cv|d8=G=|;I<>Zo>VQz5#`S9Fn9Y* z8yoCC>!g85dokO%A+E2wDoLi%v$5?y+Su5;o!1dPnA(WXW@{iBLUl_-ABnC&hCO({Qx#k@JE9%cw5tDB&b4gj>WTj4 zW#cDOc(qYvvwSOYI=w!?a9z#dsmyq*kDAVnk4r(YHr(brEzx@9;L#qGGfbvW!q(*j%f*E^oj1smjuBmp}=S2i3kt+sm2Zec?y zk#3tA9jzfnmliYr4w(DMvJ2^6HGD+^2DYzdo%4ngBBD8|DpBgFpqm({I!JELN=);o z<;AbI+f8YU%|#;yO3)&sroQIyV5F6ZN}A|?Eqwd-Z4x!?Yl`utzs~;ltv4?3&oz`MPpww@4w`5tV(boKs#y^C+jV zl9KenKRVLUe-1fH%D%j$8EuKtI=vF*1=kCC!(ua+%f-LM#W|}p$;xdgVW9t6%zZoT z*c_@zK~26VMva6$A(!nquV3Kpm)%5}vlL(3mw}M|l;=GmA$;f57xRamp#zTo=P)%z zP{!2n?O(_9Pu8ZUVPjlKz|`zz*Q@BQ3=uxHD(U*dn{@{i&BxpTzg5uWUz+30>#qFev32jBk3QI|x^KR?Va z3wDYYKSS%k3bEvon7OGF6uvDMR5_f&;J0Ul1hs=ttPNOKfo9GLERFc13ziQ=EkxU; z7A6on2WD8wWR$fTpoy! zF$(ux%Rxwrw)Bk5zNI%0&E3kFF}4lr?)!1pIMuz8^pCNDx%1Xv6a+^f1`FH2vBHBWiWql%L02#syz3pZ-;ACu6vaMV{M6e757kDHk3EFbArUDT@DBQqX`DBzLl(u9 zle;n?pRraNgYT8+%tV01Jn$T8%d;3T{z74b7NVuI7Z?J( z{S(FMf&jkLi-NwG)rX+FLGh5g+nRH^$d*K%`%&C&bYg$WmaH7`^<-f+P2wYzK18I~tgFaz;ypY1 z&`8j?|8KXoglEpCsCHDJ)pn`whf3o`X;n*TjFg(&)q_(@ZZrG>psd3v7|J_IoxsU; zF!(J5S?>uI@#}oC{e9oLKu#YTiY7bVJx?ka8Xf#`iH`z9gBVrFWPEw}X(ba6CTR&} z`h0`q&2}$ao1YbQA%5@M3$KGj8Gpz*-R}z*jG#BWo`Kptr~fI@iMLs92wRB)4e14? zUw_>%u&OMQJKWjyiG4psLE6EfqZ<)(LMltU4e=#2NB7+8w9xNXM@B_f&i-x*Ir`NF z35BLsGmk%0rDHhuc@r%B|1h{M+9+84GU%0n0RI0=Kmsr0K^5`kf#dn2a4_`;Da#g9 zgcgBzUH;%U|NF}9hZ|#fKaJ*G$ZfObViouVC*V)STL=6@$0K?Ve>~4sJKnT^L2?G7 zuO*|ZbAcOs#gO#t)Np6n6$YmVaaBe#67RSwx)sc52y6fL9PiFU>Dz{5Gtqa{7F(Y# zTV{DPaOW2}Bd=t_+nGf1om1YtSoP(PGPUpr}LuZ%rQ--2MYLIgYT*p6J@(xC7^WRH^{W^$_Cvaiz4)@zaXY)J zO$2!9Upi3RlZ!tUhIhQ}4zyr`&0x zQ~-^LWWLjORoG+R+iese- z`!l>zhy6iuSvQ|RaTGi?k(`U}NTIgkxxmkpJ6h7LN7<@{vcLb9wLB21$pBDw;W)8c zCbg6tgJJFMhtknyC z_P~fmloy%Gp-)-2erRojevXA)wHfGH0de>?a{G4b(#lXhP~e1$Mz23}9t&5x-I{D2 zOiuby6Wc)_Es+|}O$0U-6Ek}$0~VZMD7SK;1JXoSQPv!=v3V0^L`Fv)HhbZ%=GEmQ zw@fAP4r{*rVC7>Sxe4DSr)B!_a5qLMd6tp9P-wqG5Yr8@zFD^-|faNV@Tx6gE<%iQFehJoM+k3R<6L zC(U!>sCM}G9n_&ix$t}tXrX5G@;iG}O+S}A{A|qzqfD9g9g2aV`A+Ac;4G`QY?Y>; zb$;hWNHTM^=iF>PCH>l7phJ{DjB2uxKcTm=ZYLcJX@3lXrIw?RSqjuVC<6a67H>lV zuM)OV>P++|9edSC(^8xag{zfLc2Fv{D2CD^>0*^_n=-1_J=|E+gcofDy!jUG&+0SW ze#G@NJ%e;nQcW^&r6J24{V9ORVB_c$`6+1APP7(hJzs8=cP75;0ep1Z4AL+&!#@&E ztvrx=`M%;96=OabB5S-e3b9)ZQW!mZV~3W&UujxiBmB)!kkm*K1WYxta&~qg!W<@o z(Ht!Igrsr<|FIL38zK)uP*1Rfc!dm5!}L~qSTiTR=Q^^4$~x{7mjv?azcuqaw#pjb zpEbbI&YBQkM49u0WWOvb<4RZ(3-1^cm`D{xKV{U?3yKbU9D_bfdH{-4-)Q%nU=MCA zpqK3?h6dgVf{xXeB@Y{HZTADn6(Nm1lMfGV^|F2#3s4jgtvwI!MWj;7xyC7hY#P$hTG2OQh|xTit-erMlQ9Y z#|63pyWd;!1&s011oHZK#UweCYKOt`qbT0m%F6yU!&t?(iH*9eziGQ;KaI#gP?Zk_ zilrr4Qq2bd-h4{7>Br>6K4oQxEiF6`q>}h$H7H$H;7tjYWglr;_H!YYeDhu|-s9Ey z-t*~$;WjBFBMA8iW?y_7XnqvAO=Kedq;%TkWbElF> zoV&2+7&cs&+M*m-f28Bg}L; z$lxzV^Q)Ef+;?W2YvmsY?Ps*!{9A?H7hi>NfXzWwv4_#Cj2~k)zd`Fk=NTJ8 z8J&VADJ);viUmv|eFY^ssm?}?bduie`?xA1qCLqCQZ528-7hQth)E$6n=7EqTLMvv z_FJPl<(laU&>g!?fu9uqF)|e)xkAS5DrM0ye0bg(bEwceiXfXmo_jDv7jBc=RyMk){=$K2iP~-nanb0nVPh=7>`JdL%mz zHm&j%_ekFD351x`7XceDk$!oa=JtiyLP1|FgC_7s;no`;jKXI6U?pO6hM{lqR;=o^ z)y(4iywVJUNq716Ds*s`pQ{93{5C3fZ?2g`zaUmVB@z~*z2f|wyM4L$Nk-a(Iunvv zN}e6t@s(>GNS?=_P3~I)?Xbv_8e`fL;J`|i6XWk&V!t@;^`c|E%%`PPgC?n3^ zc|PQmeRQ&;_HwTZK_8xQvFRw(V!!U%Aq-U3;1=Fi9oD{!q8=zUL>2 zU^kx_067M4_zgLK!0KBW8XpPFe7ZyM9)dL_NF*2|OG8nm+WwU%_*LTv;LV=am@*&| zsox4hT$nu79!wJR;^kbbdp3>KUU`OL*Uj6Nq3xtcB$9*`7)o?jTBChwB6Wi!%R-v32?+2jvW`K*`%S!MTpbT(%i(JQ1e<`c57kdmuvE9av~ zLc<<|3=-1CuI*+0eW70(3&>{3Dv-N+vr~ z;Q|6h^BVPq%2eRP5o-QMck=qS z9$t83O&I#I9{|};i48UI+_ng)G(vMOcuf3_UM<2KTb#`JJ1AvmIW?nt5@7IBdU zv%8!d(*dHkN*rLoqb3n$u_DiTg#PoBOle(AQ7xQNQ+>M zj1cn`hi(I0iYk1}OGAbI)tGLFY&{mNW0HGk{fA@~utxg#yz2~X(?bO57fm!yyi>Sb z@l)Dsk!<-o4fi@4SviO8ytz*Dw}J33`#=?OzLEFJ)6+tcU>O4VXe*ALfS$;8jO}Hr zG=q1|BNAj+C&%~2xdCgP5G_HFKiJL`$lG-OZUS{jNE`*jg9mgNQ*hQ!nZ_)SGa#@8 zx^k&C!`MyH)eYL(IEQ`bqZN&38J?rwH*V@5Mc%JJXwdJukyN5xc572*^G2k1XqXu} zhucqWaA@*pbku_s!VUlPqcL_qI6DJ@zmggxR}+J#IJw>tZta@iNS#E^OCNviH^djh zG!5&)UC%hchZ!5luR(=sX1U<8{JLA4q zTRExrBqcET9Yc>LK&thXD{q@_lGNgAW(YQR15$xVHAGP-Qb@&wZCYQ15NQpsUEQR> zy}8Vs)h%raZv(6Ov?5emQFDDkGmZ4tzpEFphYe&$N$_F;lfA$wRBHd}+{Cy8D( zlgVZ)0)nOkEbizC)ni&59~jN~MIxHff%e!J56b{2UWWT|n7P3fXg7Rns+FXm^HQg_ zjXo;g_)8nEy4CA-P8?hN04DE2=k(R3!+$;2udRebXWA_;22Yd++xQqSBq23^PiGU~ zYI&%&j;s4G{STA}@14K={C9HDVq+(aD z3`O~&#j3qI+=g8fhY@Sl+yjW#T%4Z1*Glp#Mlh7r72p|(=f&D^fRAYUKWkPJ3>~!I zA~(7*w$X5wi%#)4qx>iO`u57z{*83vDwk3w3^eO-RDKYeIiukP%uXH8HkP45| zLq)^)&qVQWAqgrqqC1mr7*3U5^+8(I zT_?Ef~DbesV% zQ~vBGczK6D=viWY>-F=D@Z3Y3wz%fV@*edN#226$5lR!4cnoJ4swH-{U16!rjUDYQ z`!(;zCfTxHeoWa=t9!C=MvPyxO!-&r?@TAjv*ZSTtkSc`Q&I#4^)zo;xds>Mx!2~b z21ZBAiTL>i!(gh2y&Q!=MeiM@0p4rZlQm?m4O3{qEZ@%+rM4E^c-cyU?Jl4qQx}f5 z$5+3uPc zLmCL{;;R%?$tpy$}4Z6BINF&+ZeJs48O%@*V8o;n1Ed;#*iT|CTSx z8$j%adm}wF$ZsU3ZH02?3@GX6ZoKn7rS5mV#Bs<6;RX0%achMgMaol9Dwks1*OFEzcRs5pt?!0M;pF7{ zP2k9>z?XjC^sUEcn3LO=G|ND9PQ5xX$EF1K3cKY6ty$Grwc+%pHOw7OH~~oLu+0^Q z{fYbhjb6QF1E#47%{!+NcOI2Hi;omOUZywk;W!~iR?Pl_gv{o^gr7({5iS!>QUjou z0!?{g88W9GOu3ZG3rIDX)9#;PTiVu6sa|MBhdqluE15zX=;$L%_1FQny(t3X$g+q{ zz*r-kj1~)_g@=7>oR6yD+-p)KvU73^N37KY{(#ku_iQ#>Xb#&Q-F7B0rhSaV9U>E(%oPP(8%PdC0DQy|vPdGIaLKBRVV zu~Od|l|S6hNt1Lk`!zDy7O}+dNE}-dWuVlr9N#SpX|@vfW%g)(qj=GU+|C_PhGYeR zt#`7B?cd#^)l&>ogVyGbq+15e!+ZQIi}}a#X(V53ngD_7o!2cuxhXuZt33~Rp!x(^ zpuUjlqfO@)n#gtQEfB9;s<7Qf=4XWA*@sz#VdI6S812g0sYFoP&1X+!wo%JMnuN43 z-*ZFIOxlHuYncRv*%S`_!tG0=xG4)c?(H#evl{Tb;WOgT{1Q)dV^RCPn5t}xeDdl4 z5fu*Izz>-i6Ua-6uz+p9`!oc=Hf$g^ArC(oJ*+4g@>Yie0Sk1i)IvHG*wsF&W}#-C zl4Tv+F@FEQi~%Db?i)L@X(`(30f%;|bZfw80KzqfGrz4@62iXA&Cmqf4o z9aUA^Z+Kx*YB^&s>W)?eBRQ)HSk<0d;5l=LNg#~sShSR%1Y3OJNm41Wi2DDyT?_e8Tw< zx{81@?;A&-5NNjlT9GKt=8bak9EK=L!pmjtItcuJUNM?u(s78nPD9Q6;~)LhkN@gP zs)mPwx8&enb6Q|kl)2J2AqT@#{Xo@lUB_|nlP3!z;5oQ1hAQDnDqBr}N%$34`yoJl zG4yI@%T~xE%{|fDfGA>jW7J`8@8Vl0zM-muw6>C6Rwu=VU#Rcjy6hrp9O^gl&!L}rAZ?pB z_pf>;A|kIZEBb=6g0h0Lf`YR8vVwxLf+9p@i4X}Qj)Jyr7?(fp?l6dm3CKA`I$8$W ztFLL>o~N<3t;W(=P5+~Dz&JpeP*Ek7NKG1mveX0(WF^`jc{q$bM(5%Gd!GAo+%`7r z5&d^?TT9St`_PR@&4r3M%j5q4m&6uIpZ$5&efK*|yDStw@X@m;1h$51{|5{9ph1U;p{P zO9-jS1|oxz25MCS5%h2@f;rBC7yct*tSB)@Fc^3kYDyF7Nm4qEryKLjiZdx8uOvcA zQF^ivFN&&bsw!)0tDYLkTwMOFwx+Irpt1h>qj-@?!haIdc>KHClTKCr9}3&+iEnKk zQFF>)8wY#KBgJ{&2L}fJ+1{Kii5vf(U)fJCoyV_@RQPk>cI7yC-Fk1G^ZyKVJ&6NV z-G=(^_RhZUx+Kc^4}i(AQB15koxU@xQxq?J?thp_Gpf?mjkO}ldM?RwD0sD3U=_t+ zF!@xrSpvaBefR?CV*l0r-%07VXp%Ska)Xmz=d-G1Ml|I%GWj!$8%)>nTn=}oD| zE#lbfQ5fNGq4H0Pa!oVvjjZzN2|&9yr2>as zC*Tdtt>EZoX=$!H8a}8g?eo7aEh#QKL@8@(@gyHZ(x1Vz$r;$Y@|oIM!i!wn^-7h6VGDnxdh;hW|-`~4F>r`rVrS7?>Jo% z!NZyv1;NmCtBL}r*SoF zsfp&yf7wurO7LDm@T1TxBoZC?^h*&sN$A^sonr%VFbK8~+Eplh9ntj8PIh~sxNkVL zlmW*@oJygps&3B5@;QR9DoaJ?#_lc{ZGWefRlVpKzmLKukI5P*d*r+HhUI9V!!?h) z!7EO5C7mC&IRHm{VWo|TgsNP9^7v_O7|P!Ly^Cm4g#*!pQsV)Xxe-atR}Zeo%h(T7 z{XTFrd=9?Dq%yB}KwVn=;{*IxvYI6exPBiG4D5t)R5Th`&cCz{sj++-*o7wZ%Vy7I zgshv^p!+$|Af|Ll`MUL(1yP;IPAHv-O3DrZEPe{9*x6ICUH5%0pKAJ6He5h++b?kO zH|48XJmkcQ(*wQ>DH~kQ$CtslOn(azl%}%2E1a(()bZ7g^lWH!ce&>~Fm_=*YG^7Z zf=)3Xt$c^Cz_8nueHDehl2A>(q_Xj^etMr)yMVo06ed{#4;*E1j8~orWUWKCS3Udrq&Cz1EG>}^#YvJ z6f&5aElq*E0MD}@xcdUkyCklod=pUv=GY?}ZY<`1xvPVG}v zCIbhbph-nmb6U5L_&8iy*UM0S#iLn-)L)mi=>*&s7Z|G?0Q?fRt|H+1v$`b1lvzg@ zjC_oZ!&Htfx4dj|19wM$u$~O7YJ}|J>Cth7WL47S(n4WYk{%CNQ2zch?E`QH6`vLY zHfYc>c@q=Iy9xrAL8YVA#v(g8(bw8M{KH*WKRgPTWw`8Tn47?@AhY4=FMe)q%ZBsU341K6!A?;V^pNus?>sC zh{^c`oARhe^@k$f`W0+t{RXZtfa8uk?-ccjW1Mdg93oTlGhn^~-%@F6wc+ei513w? ziO8Jwm`KQ~p3TapyqWC~v|2;-cG?H+I)-P&qcjUJHx57=C(1=sMvV8+YIQ0R$yk2t z)5w1QaYrqpxMALfc0*Ib0aD+{FORVQch(v8`ASlBfU(dRrsB}u)YK-Q??|BX%_cWA z+dwoJL~I%})_|F10FzYQ1P-Sx{gpA~@!h7Tlue*xQX}&;(d3B6HyV+-NHT~0Ra<)L zC8nz{J?8aGQKq!vIp3;|3Pl!@hgw!1pq&> zb%mH*>cC;c&@odsZbVK52X`%zhU`;CBFn*m2MBHrhJ$KnV$ampZv__W-Phxz>p;AB3pHL1G;*jeRG{Ww!pSMnPzG5+Y`Wic>`5M`*nONh zwsz#OG*nepeFIJ@OH0}rAn~rh#{=B#iU6E@yW{kfDLRS_`Ky4q`>+q@3PFaV5}yYCT`)-cJ%K{gVL zGDJ~U6j>6(h9Znh8jxmQDZ%bU1?V!fjdEFJI~l=xG9Cho0$EkbK=BWfjx;sO0G=CI z3br+z5#W-@unMi-*dr;Hs!|rQL-ew$$Zof@k$F_+1t4u+B6hC~Ov&n7tew-c_!t^& zQ$_l0W`QY8O+i6H(w?dqNm;WqE~gY4?e-tL$E(exD;ItM69&ZM2cjY?hwa66iId3e z?i}zgb}hJclQKxy?{qm#4G0smlcAD|=1wJRq=^1)^@oU|m)xGGT^A5NHX&s6dLE zVFiFtrYL|dFU@^dGJ;qY5@rxzuZ3|A>Z_z%|1b^hgaGiK!py1yb+N5v>WY+QX#yBa z?3*W|l88k_(^ftTFN5JeLP<&8F@U~Du+O1}D5Jy+6+<#?O^K>PccG*t<@i?CMo`7M zxxt4xBX)6tRMP6hh1KeZ5}YX!*C?|@F5z^xZXFe*E6OZms{o2JyUK~?0ssQFL}ZDm z;%9m!5KIzZR3E-w0k%4rt4m#78_^1i)vRu)eUsO{ukGb#Im~;5xa)qt%}+lIWgV6R zQ;8MQ?iD~!_~TUfJ+5)xZIbe4F%0bU^F?a_;H)RsHwzJVp7dMFo2aQL%<>CvQnFM+ zn`@7Td4bs5nckD3-Q&XkQ2ddulqlKaY<_-z*(O1DIMJQH#|e=a2yIGZx+9A^kF%dK z4J&pQ5u>-4(!Brf19v z#`$j<0Mq7_sGJ$b5^@rB)mwPoQCW$*J3w?sY4)ZPQQjS5^g{*psafyblko=`JU`px zW`!GWr=q+GKv9HNqPz^!6RBHJmF^#x)JXTh{Xz**&LyAosHf=$7=OH>;=b?itm%b6 z2DgI!eCnIpS93Vx=P=zBL1;xtB+7V1y0Ue#S&m@e^r;Ck<(zG0#aQ`^%Strvj)D5T zPrqd5YKJ>%YrcU_xCT~MR=(NPh@*A9*A8IKPOw7`E|A_#N+t=K-4xPJd5F=t zlmOqgJD@P7l&km*c>fW9j8fEJyQ|Kw0MA~75dZ?DKa*kro(78AGxUkjpaS44jp0u> z`9(0`%jhM#J+CAEdH_BFg`0x6`kw<)phiW*{qH52K?y?sY-W7$)B1=TB%e%ciaJ6SZ+LRCt2_5Do~s z{x}HY{$3jePZ1|Q^HVc3Q&rtFYAu$pLB~l)g>*09h7$YY=y^K9Q%yy9wa9k=Zj^jXb?igu>qvVS(zW6lQuRi7>SLcyVv2%y@olh=) zKY5*=T(r}64y@%CG_oT*w!RaM$m8s!p6lbkMDpAcPKV@4(i~zDW55afh>#pgr3IVSHz#g8oK z=QnIxTe%?ZEX=%qWu@QO#K^!V0i-1OrD%{vhe$!>nTWqTvzI zUt4~cjDyt8T^-WU-iuf)3B`()$?IIzYcSH*2Dz&mFn|qPB zJWGFMRwq$g3@nx^F(OY#nR~}^anZ(w`9cx_3ecnl+Ipno!8WxW;6R{%4yN@+T?BfncppI}AI#0U;y5&ix)6%IChmJ`UmOT~`=Yn->WUyXZ-6vAd#|;0h1S zwOxkf2jHyJAw>Y}oSjiU;^t{zMD?W3^N|v>hyIpv7K*)w1)beFk6m2Qj5D|GTa64y zJOoa^NpeahI-Vs^kl5aI~QBB65HpLiYR;R;kEEsr6uE^GKCu-t!E`^ ziCdoo7c%GTam86kbv|STxydt-v8}&dmA#`*^;zHg3iyVAfO{v`P*z@^J|A0Gp`Y`{ zZP)en^UR7B4Wq`pvO&My^2V(n931S92F6cuudtrGEjD#K)f z?kK)k=5UN)OSGHocb7ccIa9?;ADe=iC<$*nI5;#k7|~tDwCv?f?!2ss0vvoQEF^tK zbg%M=@>`Qghh~P>lk@W41K1n@8ePE8^Z2x!X4EiCJ`A!Bsr3vXsS;-To0y#~Jh*M# z*(440tHxvV8+16cI6x$fJ8@nQw3_3$7tSY>-_`pYj;NYE$TN#h>7G3^ON_wmti{9H zNmO*hB&2%Mr8VknMfP~1OsXe#UNxr{C;ed>9tk3(>+a!}WIs8kk|=FCjPDKU6U1G6 zPfri?t$GFGeMl8$x_v6WWV{tgFR@9FJtr=^ZegO6yVc^!gmpl!Ca92xhbO)*E-plzo0|>4hn)@k_3KQ;>9C(WSvXBPcI-NyT$X?FIH)Ix z953Kt^~MUc*~M03|a{|9dG-O zuu2o&xe;f~@;r@O2M9l)lGfb@rqr%=e6!fTNW3M_U`E$DR7~ z#U%w~WpZ0vAxFN^(fC$W?%CH7*pIsU_z^S=0?Ieq;Gu+ea)@e!ZV^!Y89I9cA(5yP zUPs)iEj(XL(D}@Wb6Z=PZhI^8`Ya;OIe4y<_h-D@z|yDWYseB*t|XDr1PsA{)nn8Z z*_+jr^aVitnP1=+N+~6_NZUz~nSI3F+ke|xYT^#Cbbz2+{kp6sBO>mQzD(WR$e@M$ z2LdAFhL({lqlPm)fH#XR49~rI2z^18`vGE+XQ~Tz^}lRPqrLR&vU1}AIDIys3=@Dw zDPZK34G-e&d}B>bP4xryL*G}j%{oUti?!EK}r|cxr$kPJ5+lPCpocd&7YTVfqk~8-OxR z0wVa`J^ErTw)+N`Y{6J~@+3ooUos1>=ru=2ZTM65)RUP_;B}-g^00WW9orWNV&G(M z?!$tg2%r41oS9WyhWd2I*;e{NR3!C1;de4(;Wv*SnUE(bvd-0?jE!hnZr%dMMy>j~ zf`lbHz{7YvJ4;02xXzk*SdNbWF#KHFeK?@MZWe$>eT{4+7dRe>qldHk6-)}!ci;ri z{w?x{;ISgQ(!YZu-0x}iXh(m;{C aCrX#m?yZdI;C7eyE_PlwEk>Q>i$(d>D0>y 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 literal 0 HcmV?d00001 diff --git a/assets/dice/image/grad-2.webp b/assets/dice/image/grad-2.webp new file mode 100644 index 0000000000000000000000000000000000000000..c743b40e91b9ec42ec6b7d6c651fe2e518e60522 GIT binary patch literal 9344 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 literal 0 HcmV?d00001 diff --git a/assets/dice/image/grad-3.webp b/assets/dice/image/grad-3.webp new file mode 100644 index 0000000000000000000000000000000000000000..32a132d3447a2cefeacec7ef3ee89c5f4d5dd0ec GIT binary patch literal 9184 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 v#HP+^2H9D*{uY20&kh>y4H6rPsXD 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 literal 0 HcmV?d00001 diff --git a/assets/dice/image/grad-5.webp b/assets/dice/image/grad-5.webp new file mode 100644 index 0000000000000000000000000000000000000000..c3328cbe3bb9992ff8e6e07e774aadec77fcf208 GIT binary patch literal 9632 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 W`s&TnUj_((`H%vTus{F+0000{+@0b8 literal 0 HcmV?d00001 diff --git a/assets/dice/image/grad-6-crit.webp b/assets/dice/image/grad-6-crit.webp new file mode 100644 index 0000000000000000000000000000000000000000..792e595d7a7fd00e36bba95e7659e0f16345927f GIT binary patch literal 9624 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 *:not(.chat-message-speaker-portrait-wrapper), +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .blades-roll > *:not(.chat-message-speaker-portrait-wrapper), +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .blades-roll > *:not(.chat-message-speaker-portrait-wrapper), +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .blades-roll > *:not(.chat-message-speaker-portrait-wrapper), +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .blades-roll > *:not(.chat-message-speaker-portrait-wrapper) { + filter: sepia(1) grayscale(0.5) brightness(0.6); +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .trait-label.trait-verb, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .trait-label.trait-verb, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .trait-label.trait-verb, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .trait-label.trait-verb, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .trait-label.trait-verb { display: none; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.active-chat-roll) .consequence-icon-container .consequence-icon-circle.base-consequence, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.active-chat-roll) .consequence-icon-container .consequence-icon-circle.base-consequence, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.active-chat-roll) .consequence-icon-container .consequence-icon-circle.base-consequence, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.active-chat-roll) .consequence-icon-container .consequence-icon-circle.base-consequence, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.active-chat-roll) .consequence-icon-container .consequence-icon-circle.base-consequence { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .consequence-icon-container .consequence-icon-circle.base-consequence, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .consequence-icon-container .consequence-icon-circle.base-consequence, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .consequence-icon-container .consequence-icon-circle.base-consequence, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .consequence-icon-container .consequence-icon-circle.base-consequence, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .consequence-icon-container .consequence-icon-circle.base-consequence { animation: none !important; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.active-chat-roll) .consequence-icon-container .consequence-icon-circle.base-consequence img, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.active-chat-roll) .consequence-icon-container .consequence-icon-circle.base-consequence img, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.active-chat-roll) .consequence-icon-container .consequence-icon-circle.base-consequence img, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.active-chat-roll) .consequence-icon-container .consequence-icon-circle.base-consequence img, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.active-chat-roll) .consequence-icon-container .consequence-icon-circle.base-consequence img { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .consequence-icon-container .consequence-icon-circle.base-consequence img, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .consequence-icon-container .consequence-icon-circle.base-consequence img, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .consequence-icon-container .consequence-icon-circle.base-consequence img, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .consequence-icon-container .consequence-icon-circle.base-consequence img, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .consequence-icon-container .consequence-icon-circle.base-consequence img { animation: none !important; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].active-chat-roll, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].active-chat-roll, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].active-chat-roll, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].active-chat-roll, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].active-chat-roll { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .chat-message-speaker-portrait-wrapper, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .chat-message-speaker-portrait-wrapper, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .chat-message-speaker-portrait-wrapper, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .chat-message-speaker-portrait-wrapper, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .chat-message-speaker-portrait-wrapper { + --border-gradient: linear-gradient(-72deg, + #565656, + #9b9b9b 16%, + #565656 21%, + #9b9b9b 24%, + #383838 27%, + #565656 36%, + #9b9b9b 45%, + #9b9b9b 60%, + #565656 72%, + #9b9b9b 80%, + #565656 84%, + #232323); + transform-origin: 50% 0%; + scale: 0.6 0.75; +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].unresolved-action-roll, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].unresolved-action-roll, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].unresolved-action-roll, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].unresolved-action-roll, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].unresolved-action-roll { --bg-controlled: url("../assets/animations/chat/roll-position-controlled.webp"); --bg-risky: url("../assets/animations/chat/roll-position-risky.webp"); --bg-desperate: url("../assets/animations/chat/roll-position-desperate.webp"); @@ -12934,18 +13014,18 @@ template { background: transparent; outline: none; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].active-chat-roll .trait-label.trait-past-verb, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].active-chat-roll .trait-label.trait-past-verb, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].active-chat-roll .trait-label.trait-past-verb, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].active-chat-roll .trait-label.trait-past-verb, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].active-chat-roll .trait-label.trait-past-verb { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].unresolved-action-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].unresolved-action-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].unresolved-action-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].unresolved-action-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].unresolved-action-roll .trait-label.trait-past-verb { display: none; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].active-chat-roll .message-content .blades-roll .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].active-chat-roll .message-content .blades-roll .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].active-chat-roll .message-content .blades-roll .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].active-chat-roll .message-content .blades-roll .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].active-chat-roll .message-content .blades-roll .dice-roll-strip { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .dice-roll-strip { margin-top: 5px; } :root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll], @@ -13000,6 +13080,19 @@ template { :root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .chat-message-speaker-portrait-wrapper, :root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .chat-message-speaker-portrait-wrapper, :root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .chat-message-speaker-portrait-wrapper { + --border-gradient: linear-gradient(-72deg, + #6b5630, + #9e7f46 16%, + #6b5630 21%, + #9e7f46 24%, + #46381f 27%, + #6b5630 36%, + #9e7f46 45%, + #9e7f46 60%, + #6b5630 72%, + #9e7f46 80%, + #6b5630 84%, + #2c2315); height: var(--speaker-portrait-height); width: calc(var(--speaker-portrait-height)); position: absolute; @@ -13009,7 +13102,7 @@ template { border-radius: calc(0.5 * var(--speaker-portrait-height)); scale: 0.8 1; transform-origin: 50% 50%; - background: linear-gradient(-72deg, #6b5630, #9e7f46 16%, #6b5630 21%, #9e7f46 24%, #46381f 27%, #6b5630 36%, #9e7f46 45%, #9e7f46 60%, #6b5630 72%, #9e7f46 80%, #6b5630 84%, #2c2315); + background: var(--border-gradient); background-repeat: no-repeat; outline: 3px solid black; box-shadow: 0 0 5px 5px black; @@ -13072,11 +13165,11 @@ template { :root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].action-roll + .chat-message.resistance-roll { margin-top: calc(-1 * var(--chat-vertical-gap)); } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].action-roll.active-chat-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].action-roll.active-chat-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].action-roll.active-chat-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].action-roll.active-chat-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].action-roll.active-chat-roll + .chat-message.resistance-roll { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].action-roll.unresolved-action-roll + .chat-message.resistance-roll, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].action-roll.unresolved-action-roll + .chat-message.resistance-roll, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].action-roll.unresolved-action-roll + .chat-message.resistance-roll, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].action-roll.unresolved-action-roll + .chat-message.resistance-roll, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].action-roll.unresolved-action-roll + .chat-message.resistance-roll { margin-top: 0; } :root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll, @@ -13566,6 +13659,40 @@ template { padding: 4px; gap: 0; } +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label { + font-family: var(--font-emphasis-narrow); + font-size: 12px; + line-height: 12px; + display: block; + transform: translate(0%, -50%); + top: 50%; + text-align: center; + white-space: nowrap; + color: var(--side-color-secondary); +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label strong, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label strong, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label strong, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label strong, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label strong { + color: var(--side-color-secondary) !important; + font-weight: 900 !important; +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h3.roll-state, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h3.roll-state, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h3.roll-state, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h3.roll-state, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h3.roll-state { + white-space: nowrap; + font-size: 18px; + line-height: 18px; + text-shadow: var(--text-shadow-dark-strong); + color: var(--side-color-main); +} :root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container.roll-state-container-left h4.roll-state-label, :root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container.roll-state-container-left h4.roll-state-label, :root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container.roll-state-container-left h4.roll-state-label, @@ -13580,6 +13707,7 @@ template { :root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container.roll-state-container-left h3.roll-state, :root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container.roll-state-container-left h3.roll-state { position: absolute; + transform-origin: 100% 0%; top: 5px; right: 5px; scale: var(--side-left-x-scale) 1; @@ -13601,46 +13729,12 @@ template { :root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container.roll-state-container-right h3.roll-state { width: 100%; position: absolute; + transform-origin: 0% 0%; bottom: 5px; left: 5px; text-align: left; scale: var(--side-right-x-scale) 1; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label { - font-family: var(--font-emphasis-narrow); - font-size: 12px; - line-height: 12px; - display: block; - transform: translate(0%, -50%); - top: 50%; - text-align: center; - white-space: nowrap; - color: var(--side-color-secondary); -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label strong, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label strong, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label strong, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label strong, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h4.roll-state-label strong { - color: var(--side-color-secondary) !important; - font-weight: 900 !important; -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h3.roll-state, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h3.roll-state, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h3.roll-state, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h3.roll-state, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-state-container h3.roll-state { - white-space: nowrap; - font-size: 18px; - line-height: 18px; - transform-origin: 0% 0%; - text-shadow: var(--text-shadow-dark-strong); - color: var(--side-color-main); -} :root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-result-container, :root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-result-container, :root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .roll-outcome-container .roll-result-container, @@ -15136,18 +15230,24 @@ template { position: absolute; z-index: -1; height: 100%; - width: calc(100% + 24px); transform-origin: 0% 50%; top: 0px; background: var(--csq-icon-bright); display: block; } -:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-resist-button-bg, :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-accept-button-bg { + width: calc(100% + 30px); + right: -7px; + transform: skewX(-45deg); +} +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-resist-button-bg, :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-armor-button-bg, :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { + width: calc(100% + 30px); transform-origin: 100% 50%; + right: calc(-0.5 * var(--container-height)); + transform: skewX(45deg); } -:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { - width: calc(100% + 40px); - margin-left: -10px; +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-armor-button-bg, :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { + width: calc(100% + 35px); } :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-label { position: relative; @@ -15179,20 +15279,18 @@ template { :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-resist-button-container { right: 100%; } -:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-resist-button-container .consequence-button-bg { - left: -7px; - transform: skewX(45deg); -} :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-accept-button-container { left: 105%; } -:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-accept-button-container .consequence-button-bg { - right: -7px; - transform: skewX(-45deg); +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-armor-button-container { + right: 100%; + transform: translate(0%, 0%) !important; + top: 0%; } :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-special-button-container { right: 100%; - bottom: 12px; + transform: translate(0%, -50%) !important; + top: 50%; } :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .consequence-type-container { position: absolute; @@ -20875,6 +20973,11 @@ template { margin-right: 5px; flex-grow: 2; } +:root body.vtt.game.system-eunos-blades .app.window-app.sheet.dialog .window-content .consequence-section .roll-consequence-row input.consequence-name.consequence-name-none { + box-shadow: none; + background: none; + cursor: default; +} :root body.vtt.game.system-eunos-blades .app.window-app.sheet.dialog .window-content .consequence-section .roll-consequence-row .roll-consequence-type-select { min-width: 130px; } @@ -21583,6 +21686,16 @@ template { right: 6px; flex-basis: auto; } +:root body.vtt.game.system-eunos-blades .app.window-app.sheet.roll-collab.gm-roll-collab .window-content form .sheet-root .split-root .split-root-right .sheet-main.roll-consequences { + min-height: 330px; +} +:root body.vtt.game.system-eunos-blades .app.window-app.sheet.roll-collab.gm-roll-collab .window-content form .sheet-root .split-root .split-root-right .sheet-main.roll-consequences h3 { + margin-bottom: 10px; +} +:root body.vtt.game.system-eunos-blades .app.window-app.sheet.roll-collab.gm-roll-collab .window-content form .sheet-root .split-root .split-root-right .sheet-main.factor-controls { + min-height: 112px; + place-self: stretch flex-end; +} :root body.vtt.game.system-eunos-blades .app.window-app.sheet.roll-collab .window-header { opacity: 0; top: -45px; @@ -22000,8 +22113,8 @@ template { :root body.vtt.game.system-eunos-blades .app.window-app.sheet.roll-collab .window-content form .sheet-root .full-root .split-root-left.split-root-left, :root body.vtt.game.system-eunos-blades .app.window-app.sheet.roll-collab .window-content form .sheet-root .full-root .split-root-right.split-root-left, :root body.vtt.game.system-eunos-blades .app.window-app.sheet.roll-collab .window-content form .sheet-root .full-root .full-root-container.split-root-left { - flex-basis: 85%; - max-width: 85%; + flex-basis: 80%; + max-width: 80%; } :root body.vtt.game.system-eunos-blades .app.window-app.sheet.roll-collab .window-content form .sheet-root .split-root .split-root-left.split-root-right, :root body.vtt.game.system-eunos-blades .app.window-app.sheet.roll-collab .window-content form .sheet-root .split-root .split-root-right.split-root-right, diff --git a/css/tinymce/content.min.css b/css/tinymce/content.min.css index f4f2135f..2527a44e 100644 --- a/css/tinymce/content.min.css +++ b/css/tinymce/content.min.css @@ -1315,18 +1315,24 @@ html .comp.consequence-display-container .consequence-icon-container .consequenc position: absolute; z-index: -1; height: 100%; - width: calc(100% + 24px); transform-origin: 0% 50%; top: 0px; background: var(--csq-icon-bright); display: block; } -html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-resist-button-bg, html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-resist-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { +html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-accept-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-accept-button-bg { + width: calc(100% + 30px); + right: -7px; + transform: skewX(-45deg); +} +html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-resist-button-bg, html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-armor-button-bg, html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-resist-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-armor-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { + width: calc(100% + 30px); transform-origin: 100% 50%; + right: calc(-0.5 * var(--container-height)); + transform: skewX(45deg); } -html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { - width: calc(100% + 40px); - margin-left: -10px; +html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-armor-button-bg, html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-armor-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { + width: calc(100% + 35px); } html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-label, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-label { position: relative; @@ -1358,20 +1364,18 @@ html .comp.consequence-display-container .consequence-icon-container .consequenc html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-resist-button-container, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-resist-button-container { right: 100%; } -html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-resist-button-container .consequence-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-resist-button-container .consequence-button-bg { - left: -7px; - transform: skewX(45deg); -} html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-accept-button-container, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-accept-button-container { left: 105%; } -html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-accept-button-container .consequence-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-accept-button-container .consequence-button-bg { - right: -7px; - transform: skewX(-45deg); +html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-armor-button-container, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-armor-button-container { + right: 100%; + transform: translate(0%, 0%) !important; + top: 0%; } html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-special-button-container, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-special-button-container { right: 100%; - bottom: 12px; + transform: translate(0%, -50%) !important; + top: 50%; } html .comp.consequence-display-container .consequence-type-container, :root .comp.consequence-display-container .consequence-type-container { position: absolute; @@ -2995,18 +2999,24 @@ html .comp.consequence-display-container .consequence-icon-container .consequenc position: absolute; z-index: -1; height: 100%; - width: calc(100% + 24px); transform-origin: 0% 50%; top: 0px; background: var(--csq-icon-bright); display: block; } -html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-resist-button-bg, html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-resist-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { +html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-accept-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-accept-button-bg { + width: calc(100% + 30px); + right: -7px; + transform: skewX(-45deg); +} +html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-resist-button-bg, html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-armor-button-bg, html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-resist-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-armor-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { + width: calc(100% + 30px); transform-origin: 100% 50%; + right: calc(-0.5 * var(--container-height)); + transform: skewX(45deg); } -html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { - width: calc(100% + 40px); - margin-left: -10px; +html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-armor-button-bg, html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-armor-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-bg.consequence-special-button-bg { + width: calc(100% + 35px); } html .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-label, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container .consequence-button-label { position: relative; @@ -3038,20 +3048,18 @@ html .comp.consequence-display-container .consequence-icon-container .consequenc html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-resist-button-container, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-resist-button-container { right: 100%; } -html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-resist-button-container .consequence-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-resist-button-container .consequence-button-bg { - left: -7px; - transform: skewX(45deg); -} html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-accept-button-container, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-accept-button-container { left: 105%; } -html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-accept-button-container .consequence-button-bg, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-accept-button-container .consequence-button-bg { - right: -7px; - transform: skewX(-45deg); +html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-armor-button-container, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-armor-button-container { + right: 100%; + transform: translate(0%, 0%) !important; + top: 0%; } html .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-special-button-container, :root .comp.consequence-display-container .consequence-icon-container .consequence-button-container.consequence-special-button-container { right: 100%; - bottom: 12px; + transform: translate(0%, -50%) !important; + top: 50%; } html .comp.consequence-display-container .consequence-type-container, :root .comp.consequence-display-container .consequence-type-container { position: absolute; diff --git a/module/BladesActor.js b/module/BladesActor.js index de4722fa..76f020c8 100644 --- a/module/BladesActor.js +++ b/module/BladesActor.js @@ -837,7 +837,12 @@ class BladesActor extends Actor { get rollPrimaryID() { return this.id; } get rollPrimaryDoc() { return this; } get rollPrimaryName() { return this.name; } - get rollPrimaryType() { return this.type; } + get rollPrimaryType() { + if (![BladesActorType.pc, BladesActorType.crew].includes(this.type)) { + throw new Error(`BladesActor of type '${this.type}' ("${this.name}") cannot be RollPrimary.`); + } + return this.type; + } get rollPrimaryImg() { return this.img; } // #region BladesCrew Implementation ~ get members() { diff --git a/module/BladesChat.js b/module/BladesChat.js index 94f18850..56c4dc90 100644 --- a/module/BladesChat.js +++ b/module/BladesChat.js @@ -8,6 +8,7 @@ class BladesChat extends ChatMessage { ApplyTooltipAnimations(html); ApplyConsequenceAnimations(html); BladesConsequence.ApplyChatListeners(html); + setTimeout(() => { html.addClass("display-ok"); }, 2000); }); return loadTemplates([ "systems/eunos-blades/templates/chat/roll-result-action-roll.hbs", diff --git a/module/BladesDialog.js b/module/BladesDialog.js index b6b5d70b..c0310c9a 100644 --- a/module/BladesDialog.js +++ b/module/BladesDialog.js @@ -1,7 +1,9 @@ import { ApplyTooltipAnimations } from "./core/gsap.js"; import U from "./core/utilities.js"; import { BladesActor, BladesPC } from "./documents/BladesActorProxy.js"; +import BladesItem from "./BladesItem.js"; import BladesRoll from "./BladesRoll.js"; +import BladesConsequence from "./sheets/roll/BladesConsequence.js"; import C, { RollResult, ConsequenceType, AttributeTrait, Position } from "./core/constants.js"; import BladesAI, { AGENTS } from "./core/ai.js"; export var SelectionCategory; @@ -30,6 +32,7 @@ export var SelectionCategory; })(SelectionCategory || (SelectionCategory = {})); export var BladesDialogType; (function (BladesDialogType) { + BladesDialogType["Input"] = "Input"; BladesDialogType["Selection"] = "Selection"; BladesDialogType["Consequence"] = "Consequence"; })(BladesDialogType || (BladesDialogType = {})); @@ -46,9 +49,39 @@ class BladesDialog extends Dialog { return loadTemplates([ "systems/eunos-blades/templates/dialog-selection.hbs", "systems/eunos-blades/templates/dialog-consequence.hbs", + "systems/eunos-blades/templates/dialog-input.hbs", "systems/eunos-blades/templates/parts/dialog-consequence-block.hbs" ]); } + static async DisplaySimpleInputDialog(parent, prompt, target, flagTarget) { + const app = new BladesDialog({ + parent, + title: parent instanceof BladesRoll ? "Roll Input" : `${parent.name}: Input`, + dialogType: BladesDialogType.Input, + content: "", + prompt, + target, + flagTarget, + buttons: { + apply: { + icon: '', + label: "Apply", + callback: (html) => app + .writeToRollInstance(html) + }, + cancel: { + icon: '', + label: game.i18n.localize("Cancel"), + callback: (html) => { + eLog.checkLog3("dialog", "Callback Scope", { this: app, html }); + return false; + } + } + }, + default: "apply" + }, { classes: ["eunos-blades", "sheet", "dialog", "simple-input-dialog"] }); + return app._render(true, { width: app.width }).then(() => eLog.checkLog3("dialog", "Input Dialog Instance", { this: app })); + } static async DisplaySelectionDialog(parent, title, docType, tabs, tags) { const app = new BladesDialog({ parent, @@ -97,12 +130,7 @@ class BladesDialog extends Dialog { }, { classes: ["eunos-blades", "sheet", "dialog", "consequence-dialog"] }); return app._render(true, { width: app.width }).then(() => eLog.checkLog3("dialog", "Dialog Instance", { this: app })); } - get template() { - if (this.dialogType === BladesDialogType.Selection) { - return "systems/eunos-blades/templates/dialog-selection.hbs"; - } - return "systems/eunos-blades/templates/dialog-consequence.hbs"; - } + get template() { return `systems/eunos-blades/templates/dialog-${U.lCase(this.dialogType)}.hbs`; } get hasItems() { return Object.values(this.tabs ?? []).some((tabItems) => tabItems.length > 0); } @@ -113,12 +141,19 @@ class BladesDialog extends Dialog { width; docType; csqData; + prompt; + target; + flagTarget; constructor(data, options) { super(data, options); this.dialogType = data.dialogType ?? BladesDialogType.Selection; this.parent = data.parent; - this.width = 500; + this.width = options?.width ?? 500; + this.prompt = data.prompt; + this.target = data.target; + this.flagTarget = data.flagTarget; switch (this.dialogType) { + case BladesDialogType.Input: return; case BladesDialogType.Selection: this.constructSelectionData(data /* , options */); return; @@ -183,11 +218,18 @@ class BladesDialog extends Dialog { getData() { const data = super.getData(); switch (this.dialogType) { + case BladesDialogType.Input: return this.prepareInputData(data); case BladesDialogType.Selection: return this.prepareSelectionData(data); case BladesDialogType.Consequence: return this.prepareConsequenceData(data); default: return null; } } + prepareInputData(data) { + data.prompt = this.prompt; + data.target = this.target; + data.flagTarget = this.flagTarget; + return data; + } prepareSelectionData(data) { data.title = this.title; data.tabs = this.tabs; @@ -225,9 +267,18 @@ class BladesDialog extends Dialog { } return {}; } - updateConsequenceData(html, cData) { - const csqElem$ = html.find(`.roll-consequence-row[data-csq-id='${cData.id}']`); // flag-target="rollCollab.consequenceData.${rollPos}.${rollResult}.${i}.attribute"]`) - // Update Type + updateInputText(inputElem$) { + const value = inputElem$.val(); + if (this.parent instanceof BladesRoll) { + const flagTarget = inputElem$.data("flagTarget"); + eLog.checkLog3("dialog", "updateInputText", { value, flagTarget }); + this.parent.setFlagVal(flagTarget, value, true); + } + else if (this.parent instanceof BladesItem || this.parent instanceof BladesActor) { + this.parent.update({ [inputElem$.data("target")]: inputElem$.val() }); + } + } + updateConsequenceType(csqElem$, cData) { const type$ = csqElem$.find(".roll-consequence-type-select"); const typeVal = type$.val(); if (typeVal && typeVal in ConsequenceType) { @@ -235,61 +286,142 @@ class BladesDialog extends Dialog { cData.icon = C.ConsequenceIcons[cData.type]; cData.typeDisplay = C.ConsequenceDisplay[cData.type]; } - // Update Resistance Attribute - if (/Resolve/.exec(cData.type)) { - cData.attribute = AttributeTrait.resolve; - } - else if (/Insight/.exec(cData.type)) { + } + updateConsequenceAttribute(csqElem$, cData) { + if (/Insight/.exec(cData.type)) { cData.attribute = AttributeTrait.insight; } else if (/Prowess/.exec(cData.type)) { cData.attribute = AttributeTrait.prowess; } + else if (/Resolve/.exec(cData.type)) { + cData.attribute = AttributeTrait.resolve; + } else { const attribute$ = csqElem$.find(".roll-consequence-attribute-select"); const attrVal = attribute$.val(); - if (attrVal && attrVal in AttributeTrait) { + if (attrVal) { cData.attribute = attrVal; - if (this.parent.rollPrimaryDoc instanceof BladesPC) { - cData.attributeVal = this.parent.rollPrimaryDoc.attributes[cData.attribute]; - } - else if (this.parent.rollPrimaryDoc?.parent instanceof BladesPC) { - cData.attributeVal = this.parent.rollPrimaryDoc.parent.attributes[cData.attribute]; + } + } + } + updateConsequenceAttributeVal(cData) { + if (this.parent.rollPrimaryDoc instanceof BladesPC) { + cData.attributeVal = this.parent.rollPrimaryDoc.attributes[cData.attribute]; + } + else if (this.parent.rollPrimaryDoc?.parent instanceof BladesPC) { + cData.attributeVal = this.parent.rollPrimaryDoc.parent.attributes[cData.attribute]; + } + else { + eLog.error(`Unable to get attribute from rollPrimaryDoc '${this.parent.rollPrimaryDoc?.name}' of type '${this.parent.rollPrimaryDoc?.rollPrimaryType}' (may need to log via flags if either of the previous show 'undefined'.`); + } + } + getSelectedResistOption(cData) { + return Object.values(cData?.resistOptions ?? {}).find((rCsq) => rCsq.isSelected) ?? false; + } + updateConsequenceResist(csqElem$, cData) { + const resistOptions = cData.resistOptions ?? {}; + // If consequence is already minimal, toggle resistNegates to true and set 'resistTo' to None-type + const minimalCsqTypes = Object.entries(C.ResistedConsequenceTypes) + .filter(([_, rCsqType]) => rCsqType === ConsequenceType.None) + .map(([csqType]) => csqType); + if (minimalCsqTypes.includes(cData.type)) { + cData.resistNegates = true; + const noneCsq = BladesConsequence.None; + cData.resistOptions = { [noneCsq.id]: noneCsq }; + cData.resistTo = noneCsq; + return; + } + else { + // Clear 'resistTo' (will be redetermined below) + delete cData.resistTo; + delete cData.resistNegates; + csqElem$.find(".consequence-resist-option").each((_, elem) => { + const resCsqID = $(elem).data("csq-id"); + resistOptions[resCsqID] ??= { id: resCsqID, name: "", type: undefined, isSelected: false }; + // Update Resistance Option Type + const resType$ = $(elem).find(".roll-consequence-type-select"); + const resTypeVal = resType$.val(); + if (resTypeVal && resTypeVal in ConsequenceType) { + resistOptions[resCsqID].type = resTypeVal; + resistOptions[resCsqID].icon = C.ConsequenceIcons[resistOptions[resCsqID].type]; + resistOptions[resCsqID].typeDisplay = C.ConsequenceDisplay[resistOptions[resCsqID].type]; } - else { - eLog.error(`Unable to get attribute from rollPrimaryDoc '${this.parent.rollPrimaryDoc?.name}' of type '${this.parent.rollPrimaryDoc?.rollPrimaryType}' (may need to log via flags if either of the previous show 'undefined'.`); + // Update Resistance Option Name + const resName$ = $(elem).find(".consequence-name"); + const resNameVal = resName$.val(); + resistOptions[resCsqID].name = resNameVal ?? ""; + // If this is selected, update 'resistTo' data as well + if (resistOptions[resCsqID].isSelected) { + cData.resistTo = resistOptions[resCsqID]; } - } + }); + } + cData.resistOptions = resistOptions; + } + updateConsequenceArmorResist(csqElem$, cData) { + // If consequence is already minimal, toggle armorNegates to true and set 'armorTo' to None-type + const minimalCsqTypes = Object.entries(C.ResistedConsequenceTypes) + .filter(([_, rCsqType]) => rCsqType === ConsequenceType.None) + .map(([csqType]) => csqType); + if (minimalCsqTypes.includes(cData.type)) { + cData.armorNegates = true; + cData.armorTo = BladesConsequence.None; + } + else { + delete cData.armorNegates; + cData.armorTo = this.getSelectedResistOption(cData); + } + } + updateConsequenceSpecialArmorResist(csqElem$, cData) { + // If consequence is already minimal, toggle specialArmorNegates to true and set 'specialArmorTo' to None-type + const minimalCsqTypes = Object.entries(C.ResistedConsequenceTypes) + .filter(([_, rCsqType]) => rCsqType === ConsequenceType.None) + .map(([csqType]) => csqType); + if (minimalCsqTypes.includes(cData.type)) { + cData.specialArmorNegates = true; + cData.specialArmorTo = BladesConsequence.None; } + else { + delete cData.specialArmorNegates; + cData.specialArmorNegates ??= false; + cData.specialArmorTo = this.getSelectedResistOption(cData); + } + } + updateConsequenceData(html, cData) { + const csqElem$ = html.find(`.roll-consequence-row[data-csq-id='${cData.id}']`); + // Update Type + this.updateConsequenceType(csqElem$, cData); // Update Name - const name$ = csqElem$.find(".consequence-name"); - const nameVal = name$.val(); - cData.name = nameVal ?? ""; + if (cData.type === ConsequenceType.None) { + cData.name = ""; + } + else { + const name$ = csqElem$.find(".consequence-name"); + const nameVal = name$.val(); + cData.name = nameVal ?? ""; + } + // Update Resistance Attribute + this.updateConsequenceAttribute(csqElem$, cData); + this.updateConsequenceAttributeVal(cData); // Update Resistance Options - const resistOptions = cData.resistOptions ?? {}; - // Clear 'resistTo' (will be redetermined below) - delete cData.resistTo; - csqElem$.find(".consequence-resist-option").each((_, elem) => { - const resCsqID = $(elem).data("csq-id"); - resistOptions[resCsqID] ??= { id: resCsqID, name: "", type: undefined, isSelected: false }; - // Update Resistance Option Type - const resType$ = $(elem).find(".roll-consequence-type-select"); - const resTypeVal = resType$.val(); - if (resTypeVal && resTypeVal in ConsequenceType) { - resistOptions[resCsqID].type = resTypeVal; - resistOptions[resCsqID].icon = C.ConsequenceIcons[resistOptions[resCsqID].type]; - resistOptions[resCsqID].typeDisplay = C.ConsequenceDisplay[resistOptions[resCsqID].type]; - } - // Update Resistance Option Name - const resName$ = $(elem).find(".consequence-name"); - const resNameVal = resName$.val(); - resistOptions[resCsqID].name = resNameVal ?? ""; - // If this is selected, update 'resistTo' data as well - if (resistOptions[resCsqID].isSelected) { - cData.resistTo = resistOptions[resCsqID]; - } - }); - cData.resistOptions = resistOptions; + this.updateConsequenceResist(csqElem$, cData); + // Update Armor Options + if (this.parent.canResistWithArmor(cData)) { + cData.isDisplayingArmorToggle = true; + this.updateConsequenceArmorResist(csqElem$, cData); + } + else { + cData.isDisplayingArmorToggle = false; + } + // Update Special Armor Options + if (this.parent.canResistWithSpecialArmor(cData)) { + cData.isDisplayingSpecialArmorToggle = true; + this.updateConsequenceSpecialArmorResist(csqElem$, cData); + } + else { + cData.isDisplayingSpecialArmorToggle = false; + } return cData; } updateConsequenceDialog(html, isRendering = true) { @@ -325,6 +457,14 @@ class BladesDialog extends Dialog { } } _consequenceAI; + getCsqDataFromElem(elem, paramCount = 3) { + const dataAction = elem.dataset.action; + if (dataAction) { + const params = dataAction.split(/-/).reverse().slice(0, paramCount); + return params.reverse(); + } + return []; + } async queryAI(event) { if (!this.csqData) { return; @@ -333,19 +473,32 @@ class BladesDialog extends Dialog { if (!this._consequenceAI) { this._consequenceAI = new BladesAI(AGENTS.ConsequenceAdjuster); } - // Get the name of the consequence. - const dataAction = event.currentTarget.dataset.action; - if (dataAction && dataAction.startsWith("ai-query")) { - const [rollPosition, rollResult, csqID] = dataAction.split(/-/).slice(2); - const csqName = this.csqData[rollPosition][rollResult][csqID]?.name; - if (csqName) { - const response = await this._consequenceAI?.query(csqName, csqName); - if (response) { - this.refreshResistanceOptions(rollPosition, rollResult, csqID, response.split("|")); - } + const [rollPosition, rollResult, csqID] = this.getCsqDataFromElem(event.currentTarget); + const csqName = this.csqData[rollPosition][rollResult][csqID]?.name; + if (csqName) { + const response = await this._consequenceAI?.query(csqName, csqName); + if (response) { + this.refreshResistanceOptions(rollPosition, rollResult, csqID, response.split("|")); } } } + async spawnBlankResistOption(event) { + if (!this.csqData) { + return; + } + const [rollPosition, rollResult, csqID] = this.getCsqDataFromElem(event.currentTarget); + const rCsqID = randomID(); + this.csqData[rollPosition][rollResult][csqID] + .resistOptions = { + [rCsqID]: { + id: rCsqID, + name: "", + type: undefined, + isSelected: true + } + }; + this.render(); + } async setFlagVal(target, value) { if (this.parent instanceof BladesRoll) { return this.parent.setFlagVal(target, value, false); @@ -383,49 +536,85 @@ class BladesDialog extends Dialog { if (!this.csqData) { return; } - eLog.checkLog3("dialog", "Clicked Resistance Option", event); - const dataAction = event.currentTarget.dataset.action; - if (dataAction && dataAction.startsWith("gm-select-toggle")) { - const [rollPosition, rollResult, csqIndex, resIndex] = dataAction.split(/-/).slice(3); - eLog.checkLog3("dialog", "... Action Passed", { rollResult, csqIndex, resIndex }); - // Get consequence data - const cData = this.csqData[rollPosition][rollResult][csqIndex]; - cData.resistOptions ??= {}; - // Toggle clicked resistance option - cData.resistOptions[resIndex].isSelected = !cData.resistOptions[resIndex].isSelected; - // If resistance option is now selected... - if (cData.resistOptions[resIndex].isSelected) { - // ... deselect other options - Object.keys(cData.resistOptions) - .filter((key) => key !== resIndex) - .forEach((key) => { - cData.resistOptions[key].isSelected = false; - }); - // ... and set 'resistTo' to this consequence. - cData.resistTo = cData.resistOptions[resIndex]; - } - else { - // Otherwise, set 'resistTo' to false. - cData.resistTo = false; - } - // Assign new cData instance. - this.csqData[rollPosition][rollResult][csqIndex] = cData; - this.render(); + const [rollPosition, rollResult, csqID, resID] = this.getCsqDataFromElem(event.currentTarget, 4); + eLog.checkLog3("dialog", "... Action Passed", { rollResult, csqIndex: csqID, resIndex: resID }); + // Get consequence data + const cData = this.csqData[rollPosition][rollResult][csqID]; + cData.resistOptions ??= {}; + // Toggle clicked resistance option + cData.resistOptions[resID].isSelected = !cData.resistOptions[resID].isSelected; + // If resistance option is now selected... + if (cData.resistOptions[resID].isSelected) { + // ... deselect & hide other options + Object.keys(cData.resistOptions) + .filter((key) => key !== resID) + .forEach((key) => { + Object.assign(cData.resistOptions?.[key] ?? {}, { isSelected: false, isVisible: false }); + }); + // ... and set 'resistTo' to this consequence. + cData.resistTo = cData.resistOptions[resID]; } + else { + // Otherwise, set 'resistTo' to false... + cData.resistTo = false; + // ... and unhide other options. + Object.keys(cData.resistOptions) + .filter((key) => key !== resID) + .forEach((key) => { + Object.assign(cData.resistOptions?.[key] ?? {}, { isVisible: true }); + }); + } + // Assign new cData instance. + this.csqData[rollPosition][rollResult][csqID] = cData; + this.render(); + } + async clearResistOptions(event) { + if (!this.csqData) { + return; + } + const [rollPosition, rollResult, csqID] = this.getCsqDataFromElem(event.currentTarget); + this.csqData[rollPosition][rollResult][csqID].resistOptions = {}; + this.render(); + } + async toggleArmor(event) { + if (!this.csqData) { + return; + } + const [rollPosition, rollResult, csqID] = this.getCsqDataFromElem(event.currentTarget); + const cData = this.csqData[rollPosition][rollResult][csqID]; + cData.canArmor = !cData.canArmor; + this.render(); + } + async toggleSpecialArmor(event) { + if (!this.csqData) { + return; + } + const [rollPosition, rollResult, csqID] = this.getCsqDataFromElem(event.currentTarget); + const cData = this.csqData[rollPosition][rollResult][csqID]; + cData.canSpecialArmor = !cData.canSpecialArmor; + this.render(); } activateListeners(html) { super.activateListeners(html); // ~ Tooltips ApplyTooltipAnimations(html); switch (this.dialogType) { + case BladesDialogType.Input: + this.activateInputListeners(html); + break; case BladesDialogType.Selection: this.activateSelectionListeners(html); break; - case BladesDialogType.Consequence: + case BladesDialogType.Consequence: { this.activateConsequenceListeners(html); + // Select --> updateConsequenceDialog -> updateConsequenceData(each csq) break; + } } } + activateInputListeners(html) { + html.find("textarea").on({ change: (event) => this.updateInputText($(event.currentTarget)) }); + } activateSelectionListeners(html) { const self = this; // ~ Changing Width on Tab Change Depending on Number of Items @@ -458,8 +647,17 @@ class BladesDialog extends Dialog { activateConsequenceListeners(html) { html.find("input").on({ change: () => this.updateConsequenceDialog(html) }); html.find("select").on({ change: () => this.updateConsequenceDialog(html) }); - html.find('[data-action^="ai-query"]').on({ click: (event) => this.queryAI(event) }); + html.find('[data-action^="ai-query"]').on({ + click: (event) => this.queryAI(event), + contextmenu: (event) => this.clearResistOptions(event) + }); + html.find('[data-action^="blank-option"]').on({ + click: (event) => this.spawnBlankResistOption(event), + contextmenu: (event) => this.clearResistOptions(event) + }); html.find('[data-action^="gm-select-toggle"]').on({ click: (event) => this.selectResistOption(event) }); + html.find('[data-action^="toggle-armor"]').on({ click: (event) => this.toggleArmor(event) }); + html.find('[data-action^="toggle-special"]').on({ click: (event) => this.toggleSpecialArmor(event) }); } } export default BladesDialog; diff --git a/module/BladesItem.js b/module/BladesItem.js index e13d5731..df11b533 100644 --- a/module/BladesItem.js +++ b/module/BladesItem.js @@ -171,7 +171,17 @@ class BladesItem extends Item { get rollPrimaryID() { return this.id; } get rollPrimaryDoc() { return this; } get rollPrimaryName() { return this.name; } - get rollPrimaryType() { return this.type; } + get rollPrimaryType() { + if (![ + BladesItemType.cohort_gang, + BladesItemType.cohort_expert, + BladesItemType.gm_tracker, + BladesItemType.score + ].includes(this.type)) { + throw new Error(`BladesItem of type '${this.type}' ("${this.name}") cannot be RollPrimary.`); + } + return this.type; + } get rollPrimaryImg() { return this.img; } get rollModsData() { // Const rollModData = BladesRollMod.ParseDocRollMods(this); @@ -211,7 +221,21 @@ class BladesItem extends Item { get rollOppImg() { return this.img; } get rollOppName() { return this.name; } get rollOppSubName() { return ""; } - get rollOppType() { return this.type; } + get rollOppType() { + if (![ + BladesItemType.cohort_gang, + BladesItemType.cohort_expert, + BladesItemType.gm_tracker, + BladesItemType.score, + BladesItemType.location, + BladesItemType.project, + BladesItemType.design, + BladesItemType.ritual + ].includes(this.type)) { + throw new Error(`BladesItem of type '${this.type}' ("${this.name}") cannot be RollOpposition.`); + } + return this.type; + } get rollOppModsData() { return []; } // #endregion // #region BladesRoll.ParticipantDoc Implementation @@ -219,7 +243,16 @@ class BladesItem extends Item { get rollParticipantDoc() { return this; } get rollParticipantIcon() { return this.img; } get rollParticipantName() { return this.name; } - get rollParticipantType() { return this.type; } + get rollParticipantType() { + if (![ + BladesItemType.cohort_gang, + BladesItemType.cohort_expert, + BladesItemType.gm_tracker + ].includes(this.type)) { + throw new Error(`BladesItem of type '${this.type}' ("${this.name}") cannot be RollParticipant.`); + } + return this.type; + } get rollParticipantModsData() { return []; } // #endregion // #endregion @@ -309,12 +342,12 @@ class BladesItem extends Item { const expClueData = {}; [...Object.values(system.experience_clues).filter((clue) => /[A-Za-z]/.test(clue)), " "].forEach((clue, i) => { expClueData[(i + 1).toString()] = clue; }); system.experience_clues = expClueData; - eLog.checkLog3("experienceClues", { expClueData }); + // eLog.checkLog3("experienceClues", {expClueData}) if (BladesItem.IsType(this, BladesItemType.playbook)) { const gatherInfoData = {}; [...Object.values(system.gather_info_questions).filter((question) => /[A-Za-z]/.test(question)), " "].forEach((question, i) => { gatherInfoData[(i + 1).toString()] = question; }); system.gather_info_questions = gatherInfoData; - eLog.checkLog3("gatherInfoQuestions", { gatherInfoData }); + // eLog.checkLog3("gatherInfoQuestions", {gatherInfoData}); } } } diff --git a/module/BladesRoll.js b/module/BladesRoll.js index 03a8387b..85598b0b 100644 --- a/module/BladesRoll.js +++ b/module/BladesRoll.js @@ -1,6 +1,6 @@ // #region IMPORTS ~ import U from "./core/utilities.js"; -import C, { BladesActorType, BladesItemType, RollPermissions, RollType, RollSubType, RollModStatus, RollModSection, ActionTrait, DowntimeAction, AttributeTrait, Position, Effect, Factor, RollResult, RollPhase, ConsequenceType, Tag } from "./core/constants.js"; +import C, { BladesActorType, BladesItemType, BladesPhase, RollPermissions, RollType, RollSubType, RollModStatus, RollModSection, ActionTrait, DowntimeAction, AttributeTrait, Position, Effect, Factor, RollResult, RollPhase, ConsequenceType, Tag } from "./core/constants.js"; import { BladesActor, BladesPC, BladesCrew } from "./documents/BladesActorProxy.js"; import { BladesItem, BladesGMTracker } from "./documents/BladesItemProxy.js"; import { ApplyTooltipAnimations, ApplyConsequenceAnimations } from "./core/gsap.js"; @@ -522,6 +522,10 @@ class BladesRollMod { return BladesActor.IsType(rollPrimaryDoc, BladesActorType.pc) && rollPrimaryDoc.system.stress.max - rollPrimaryDoc.system.stress.value >= val; } + case "Heat": { + return (BladesPC.IsType(rollPrimaryDoc) && BladesCrew.IsType(rollPrimaryDoc.crew)) + || BladesCrew.IsType(rollPrimaryDoc); + } default: throw new Error(`Unrecognize Payable Key: ${traitStr}`); } }); @@ -758,7 +762,6 @@ class BladesRollPrimary { || BladesItem.IsType(doc, BladesItemType.cohort_expert, BladesItemType.cohort_gang, BladesItemType.gm_tracker); } // #endregion - rollInstance; rollPrimaryID; _rollPrimaryDoc; get rollPrimaryDoc() { @@ -812,18 +815,78 @@ class BladesRollPrimary { return this.rollPrimaryDoc.applyWorsePosition(); } } + get hasArmor() { + if (!this.rollPrimaryDoc) { + return false; + } + if (this.rollPrimaryType === BladesActorType.pc) { + const rollPrimaryDoc = this.rollPrimaryDoc; + // Can PC spend normal armor? + if (!rollPrimaryDoc.system.armor.checked.light + && (rollPrimaryDoc.system.armor.active.light + || rollPrimaryDoc.remainingLoad >= 2)) { + return true; + } + // Otherwise, can PC spend heavy armor? + if (!rollPrimaryDoc.system.armor.checked.heavy + && (rollPrimaryDoc.system.armor.active.heavy + || rollPrimaryDoc.remainingLoad >= 3)) { + return true; + } + } + if (BladesItem.IsType(this.rollPrimaryDoc, BladesItemType.cohort_gang, BladesItemType.cohort_expert)) { + const { value, max } = this.rollPrimaryDoc.system.armor; + return max - value > 1; + } + return false; + } + get hasSpecialArmor() { + if (!this.rollPrimaryDoc) { + return false; + } + if (!BladesPC.IsType(this.rollPrimaryDoc)) { + return false; + } + if (!this.rollPrimaryDoc.system.armor.active.special) { + return false; + } + if (this.rollPrimaryDoc.system.armor.checked.special) { + return false; + } + return true; + } + async spendArmor() { + if (this.hasArmor) { + if (BladesPC.IsType(this.rollPrimaryDoc)) { + if (this.rollPrimaryDoc.system.armor.checked.light) { + await this.rollPrimaryDoc.update({ "system.armor.checked.heavy": true }); + } + else { + await this.rollPrimaryDoc.update({ "system.armor.checked.light": true }); + } + } + else if (BladesItem.IsType(this.rollPrimaryDoc, BladesItemType.cohort_gang, BladesItemType.cohort_expert)) { + await this.rollPrimaryDoc.update({ "system.armor.value": this.rollPrimaryDoc.system.armor.value + 1 }); + } + } + } + async spendSpecialArmor() { + if (this.hasSpecialArmor) { + await this.rollPrimaryDoc.update({ "system.armor.checked.special": true }); + } + } // #region Constructor ~ - constructor(rollInstance, { rollPrimaryID, rollPrimaryName, rollPrimaryType, rollPrimaryImg, rollModsData, rollFactors }) { + constructor(rollInstance, { rollPrimaryID, rollPrimaryName, rollPrimaryType, rollPrimaryImg, rollModsData, rollFactors } = {}) { // Identify ID, Doc, Name, SubName, Type & Image, to best of ability - this.rollInstance = rollInstance; + // this.rollInstance = rollInstance; this.rollPrimaryID = rollPrimaryID - ?? this.rollInstance.rollPrimary.rollPrimaryID - ?? this.rollInstance.rollPrimary.rollPrimaryDoc?.rollPrimaryID; - rollPrimaryName ??= this.rollInstance.rollPrimary.rollPrimaryName; - rollPrimaryType ??= this.rollInstance.rollPrimary.rollPrimaryType; - rollPrimaryImg ??= this.rollInstance.rollPrimary.rollPrimaryImg; - rollModsData ??= this.rollInstance.rollPrimary.rollModsData; - rollFactors ??= this.rollInstance.rollPrimary.rollFactors; + ?? rollInstance?.rollPrimary.rollPrimaryID + ?? rollInstance?.rollPrimary.rollPrimaryDoc?.rollPrimaryID; + rollPrimaryName ??= rollInstance?.rollPrimary.rollPrimaryName; + rollPrimaryType ??= rollInstance?.rollPrimary.rollPrimaryType; + rollPrimaryImg ??= rollInstance?.rollPrimary.rollPrimaryImg; + rollModsData ??= rollInstance?.rollPrimary.rollModsData; + rollFactors ??= rollInstance?.rollPrimary.rollFactors; if (BladesRollPrimary.IsDoc(this.rollPrimaryDoc)) { this.rollPrimaryName = rollPrimaryName ?? this.rollPrimaryDoc.rollPrimaryName; this.rollPrimaryType = this.rollPrimaryDoc.rollPrimaryType; @@ -914,8 +977,21 @@ class BladesRollOpposition { rollOppImg; rollOppModsData; rollFactors; + _clockData; + get clockData() { return this._clockData ?? {}; } + set clockData(val) { + val.id ??= randomID(); + val.display ??= ""; + val.value ??= 0; + val.max ??= 8; + val.color ??= "white"; + val.isActive = true; + val.isNameVisible = false; + val.isVisible = true; + this._clockData = val; + } // #region Constructor ~ - constructor(rollInstance, { rollOppID, rollOppDoc, rollOppName, rollOppSubName, rollOppType, rollOppImg, rollOppModsData, rollFactors } = {}) { + constructor(rollInstance, { rollOppID, rollOppDoc, rollOppName, rollOppSubName, rollOppType, rollOppImg, rollOppModsData, rollFactors, rollOppClock } = {}) { this.rollInstance = rollInstance; // Attempt to fetch an associated BladesActor or BladesItem document const doc = BladesRollOpposition.GetDoc(rollOppDoc ?? rollOppID ?? rollOppName); @@ -940,9 +1016,6 @@ class BladesRollOpposition { if (!rollOppName) { throw new Error("Must include a rollOppName when constructing a BladesRollOpposition object."); } - if (!rollOppSubName) { - throw new Error("Must include a rollOppSubName when constructing a BladesRollOpposition object."); - } if (!rollOppType) { throw new Error("Must include a rollOppType when constructing a BladesRollOpposition object."); } @@ -957,6 +1030,9 @@ class BladesRollOpposition { this.rollOppImg = rollOppImg ?? ""; this.rollOppModsData = rollOppModsData ?? []; this.rollFactors = rollFactors; + if (rollOppClock) { + this.clockData = rollOppClock; + } } // #endregion get flagParams() { @@ -970,7 +1046,8 @@ class BladesRollOpposition { rollOppType: this.rollOppType, rollOppImg: this.rollOppImg, rollOppModsData: this.rollOppModsData, - rollFactors: this.rollFactors + rollFactors: this.rollFactors, + rollOppClock: this.clockData }; } async updateRollFlags() { @@ -1463,7 +1540,7 @@ class BladesRoll extends DocumentSheet { } static async PrepareActionRoll(rollID, config) { // Validate the rollTrait - if (!(U.isInt(config.rollTrait) || U.lCase(config.rollTrait) in { ...ActionTrait, ...Factor })) { + if (!(config.rollTrait === "" || U.isInt(config.rollTrait) || U.lCase(config.rollTrait) in { ...ActionTrait, ...Factor })) { throw new Error(`[PrepareActionRoll()] Bad RollTrait for Action Roll: ${config.rollTrait}`); } // Retrieve the roll users @@ -1699,6 +1776,7 @@ class BladesRoll extends DocumentSheet { _rollPrimary; _rollOpposition; _rollParticipants; + projectSelectOptions; constructor(userID, rollID, rollPermission) { const rollUser = game.users.get(userID); if (!rollUser) { @@ -1712,6 +1790,11 @@ class BladesRoll extends DocumentSheet { if (rollFlagData.rollOppData) { this._rollOpposition = new BladesRollOpposition(this, rollFlagData.rollOppData); } + else if (rollFlagData.rollDowntimeAction === DowntimeAction.LongTermProject) { + this.projectSelectOptions = Array.from(game.items) + .filter((item) => BladesItem.IsType(item, BladesItemType.project)) + .map((project) => ({ value: project.id ?? "", display: project.name })); + } if (rollFlagData.rollParticipantData) { this._rollParticipants = {}; for (const [rollSection, rollParticipantList] of Object.entries(rollFlagData.rollParticipantData)) { @@ -1952,18 +2035,18 @@ class BladesRoll extends DocumentSheet { } getFlagVal(flagKey) { if (flagKey) { - return this.document.getFlag(C.SYSTEM_ID, `rollCollab.${flagKey}`); + return this.document.getFlag(C.SYSTEM_ID, `rollCollab.${flagKey}`.replace(/(rollCollab\.)+/g, "rollCollab.")); } return this.document.getFlag(C.SYSTEM_ID, "rollCollab"); } async setFlagVal(flagKey, flagVal, isRerendering = true) { - await this.document.setFlag(C.SYSTEM_ID, `rollCollab.${flagKey}`, flagVal); + await this.document.setFlag(C.SYSTEM_ID, `rollCollab.${flagKey}`.replace(/(rollCollab\.)+/g, "rollCollab."), flagVal); if (isRerendering) { socketlib.system.executeForEveryone("renderRollCollab", this.rollID); } } async clearFlagVal(flagKey, isRerendering = true) { - await this.document.unsetFlag(C.SYSTEM_ID, `rollCollab.${flagKey}`); + await this.document.unsetFlag(C.SYSTEM_ID, `rollCollab.${flagKey}`.replace(/(rollCollab\.)+/g, "rollCollab.")); if (isRerendering) { socketlib.system.executeForEveryone("renderRollCollab", this.rollID); } @@ -2370,6 +2453,18 @@ class BladesRoll extends DocumentSheet { return [...this._rollMods].sort((modA, modB) => this.compareMods(modA, modB)); } set rollMods(val) { this._rollMods = val; } + canResistWithArmor(csqData) { + if (!this.rollPrimary.hasArmor) { + return false; + } + return csqData.attribute === AttributeTrait.prowess; + } + canResistWithSpecialArmor(_csqData) { + if (!BladesPC.IsType(this.rollPrimary.rollPrimaryDoc)) { + return false; + } + return this.rollPrimary.rollPrimaryDoc.armorStatus.special; + } // #endregion // #region CONSEQUENCES: Getting, Accepting, Resisting get _csqData() { @@ -2407,6 +2502,147 @@ class BladesRoll extends DocumentSheet { const sheetData = this.getSheetData(this.getIsGM(), this.getRollCosts()); return { ...context, ...sheetData }; } + getFortuneRollModsData() { + const modsData = []; + if (this.rollSubType === RollSubType.Engagement) { + modsData.push({ + id: "BoldPlan-positive-roll", + name: "Bold Plan", + section: RollModSection.roll, + base_status: RollModStatus.ToggledOff, + posNeg: "positive", + modType: "general", + value: 1, + effectKeys: [], + tooltip: "

" + }); + modsData.push({ + id: "ComplexPlan-negative-roll", + name: "Complex Plan", + section: RollModSection.roll, + base_status: RollModStatus.ToggledOff, + posNeg: "negative", + modType: "general", + value: 1, + effectKeys: [], + tooltip: "

" + }); + modsData.push({ + id: "ExploitWeakness-positive-roll", + name: "Exploiting a Weakness", + section: RollModSection.roll, + base_status: RollModStatus.ToggledOff, + posNeg: "positive", + modType: "general", + value: 1, + effectKeys: [], + tooltip: "

" + }); + modsData.push({ + id: "WellDefended-negative-roll", + name: "Well-Defended", + section: RollModSection.roll, + base_status: RollModStatus.ToggledOff, + posNeg: "negative", + modType: "general", + value: 1, + effectKeys: [], + tooltip: "

" + }); + modsData.push({ + id: "HelpFromFriend-positive-roll", + name: "Help From a Friend", + section: RollModSection.position, + base_status: RollModStatus.ToggledOff, + posNeg: "positive", + modType: "general", + value: 1, + effectKeys: [], + tooltip: "

Help From a Friend

Add +1d if you enlist the help of a friend or contact.

" + }); + modsData.push({ + id: "EnemyInterference-negative-roll", + name: "Enemy Interference", + section: RollModSection.roll, + base_status: RollModStatus.ToggledOff, + posNeg: "negative", + modType: "general", + value: 1, + effectKeys: [], + tooltip: "

" + }); + } + return modsData; + } + getDowntimeActionRollModsData() { + const modsData = []; + modsData.push({ + id: "HelpFromFriend-positive-roll", + name: "Help From a Friend", + section: RollModSection.position, + base_status: RollModStatus.ToggledOff, + posNeg: "positive", + modType: "general", + value: 1, + effectKeys: [], + tooltip: "

Help From a Friend

Add +1d if you enlist the help of a friend or contact.

" + }); + if (this.rollDowntimeAction !== DowntimeAction.IndulgeVice) { + modsData.push({ + id: "CanBuyResultLevel-positive-after", + name: "Buying Result Level", + section: RollModSection.after, + base_status: RollModStatus.ForcedOn, + posNeg: "positive", + modType: "general", + value: 0, + effectKeys: [], + tooltip: "

Buying Result Level

After your roll, you can increase the result level by one for each Coin you spend.

" + }); + } + switch (this.rollDowntimeAction) { + case DowntimeAction.AcquireAsset: { + modsData.push({ + id: "RepeatPurchase-positive-roll", + name: "Repeat Purchase", + section: RollModSection.roll, + base_status: RollModStatus.ToggledOff, + posNeg: "positive", + modType: "general", + value: 1, + effectKeys: [], + tooltip: "

Repeat Purchase Bonus

Add +1d if you have previously acquired this asset or service with a Acquire Asset Downtime activity.

" + }); + modsData.push({ + id: "RestrictedItem-negative-after", + name: "Restricted", + section: RollModSection.after, + base_status: RollModStatus.Hidden, + posNeg: "negative", + modType: "general", + value: 0, + effectKeys: ["Cost-Heat2"], + tooltip: "

Restricted

Whether contraband goods or dangerous materials, this Acquire Asset Downtime activity will add +2 Heat to your crew.

" + }); + break; + } + default: break; + } + /* + modsData.push({ + id: "--", + name: "", + section: RollModSection, + base_status: RollModStatus, + posNeg: "", + modType: "general", + value: 1, + effectKeys: [], + tooltip: "

" + }) + */ + return modsData; + } /** * Gets the roll modifications data. * @returns {BladesRoll.RollModData[]} The roll modifications data. @@ -2416,18 +2652,30 @@ class BladesRoll extends DocumentSheet { ...BladesRoll.DefaultRollMods, ...this.rollPrimary.rollModsData ]; - if (this.rollType === RollType.Action && this.rollPrimary.isWorsePosition) { - defaultMods.push({ - id: "WorsePosition-negative-position", - name: "Worse Position", - section: RollModSection.position, - base_status: RollModStatus.ForcedOn, - posNeg: "negative", - modType: "general", - value: 1, - effectKeys: [], - tooltip: "

Worse Position

A Consequence on a previous roll has worsened your Position.

" - }); + if (this.rollDowntimeAction) { + defaultMods.push(...this.getDowntimeActionRollModsData()); + } + if (this.rollType === RollType.Action) { + if (this.rollPrimary.isWorsePosition) { + defaultMods.push({ + id: "WorsePosition-negative-position", + name: "Worse Position", + section: RollModSection.position, + base_status: RollModStatus.ForcedOn, + posNeg: "negative", + modType: "general", + value: 1, + effectKeys: [], + tooltip: "

Worse Position

A Consequence on a previous roll has worsened your Position.

" + }); + } + switch (this.rollDowntimeAction) { + case DowntimeAction.AcquireAsset: { + defaultMods.push(); + break; + } + default: break; + } } if (this.rollType === RollType.Action && this.acceptedConsequences.some((csq) => csq.type === ConsequenceType.ReducedEffect)) { @@ -2535,6 +2783,7 @@ class BladesRoll extends DocumentSheet { const GMBoostsData = this.calculateGMBoostsData(rData); const positionEffectTradeData = this.calculatePositionEffectTradeData(); const userPermission = U.objFindKey(baseData.userPermissions, (v) => v.includes(game.user.id ?? "")); + // const downtimeData = this.processDowntimeActions(); return { ...baseData, ...(this.rollPrimary.rollPrimaryDoc ? { rollPrimary: this.rollPrimary.rollPrimaryDoc } : {}), @@ -2543,9 +2792,36 @@ class BladesRoll extends DocumentSheet { ...rollResultData, ...GMBoostsData, ...positionEffectTradeData, - userPermission + // ...downtimeData, + userPermission, + gamePhase: game.eunoblades.Tracker?.phase || BladesPhase.Freeplay }; } + // type BladesSelectOption = { + // value: valueType, + // display: displayType + // }; + // private processDowntimeActions() { + // const downtimeData: Record; + // if (BladesActor.IsType(this.rollPrimary.rollPrimaryDoc, BladesActorType.pc)) { + // downtimeData.canDoDowntimeActions = true; + // downtimeData.downtimeActionsRemaining = this.rollPrimary.rollPrimaryDoc.remainingDowntimeActions; + // const availableDowntimeActions: DowntimeAction[] = []; + // if (this.rollType === RollType.Action) { + // availableDowntimeActions.push(...[ + // DowntimeAction.AcquireAsset, + // DowntimeAction.LongTermProject, + // DowntimeAction.Recover, + // DowntimeAction.ReduceHeat + // ]); + // } else if (this.rollType === RollType.Fortune) { + // availableDowntimeActions.push(...[ + // DowntimeAction. + // ]) + // } + // downtimeData.downtimeActionOptions = + // downtimeActionOptions?: Array + // } calculatePositionData(finalPosition) { return { rollPositions: Object.values(Position), @@ -2798,7 +3074,24 @@ class BladesRoll extends DocumentSheet { return this.isRollingZero ? this.dieVals.slice(1) : this.dieVals; } getDieClass(val, i) { - eLog.checkLog3("rollCollab", `getDieClass(${val}, ${i})`, { inst: this }); + switch (this.rollType) { + case RollType.Resistance: { + if (val === 6 && i <= 1 && this.rollResult === -1) { + return "blades-die-critical"; + } + if (i === 0) { + return "blades-die-resistance"; + } + return "blades-die-fail"; + } + case RollType.IndulgeVice: { + if (i === 0) { + return "blades-die-indulge-vice"; + } + return "blades-die-fail"; + } + default: break; + } if (val === 6 && i <= 1 && this.rollResult === RollResult.critical) { val++; } @@ -2813,28 +3106,32 @@ class BladesRoll extends DocumentSheet { "blades-die-critical" ][val]; } + getDieImage(val, i, isGhost = false) { + let imgPath = "systems/eunos-blades/assets/dice/image/"; + if (isGhost) { + imgPath += "ghost-"; + } + else if ([RollType.Resistance, RollType.IndulgeVice].includes(this.rollType) + || this.rollDowntimeAction) { + imgPath += "grad-"; + } + imgPath += val; + if (!isGhost && val === 6 && i <= 1 && this.isCritical) { + imgPath += "-crit"; + } + imgPath += ".webp"; + return imgPath; + } get dieValsHTML() { eLog.checkLog3("rollCollab", "[get dieValsHTML()]", { roll: this, dieVals: this.dieVals }); const dieVals = [...this.dieVals]; const ghostNum = this.isRollingZero ? dieVals.shift() : null; - if (this.rollType === RollType.Resistance) { - const numHighlightedDice = this.rollResult === RollResult.critical ? 2 : 1; - const highlightClass = this.rollResult === RollResult.critical ? "blades-die-critical" : "blades-die-resistance"; - return [ - ...dieVals.map((val, i) => ``), - ghostNum ? `` : null - ] - .filter((val) => typeof val === "string") - .join(""); - } - else { - return [ - ...dieVals.map((val, i) => ``), - ghostNum ? `` : null - ] - .filter((val) => typeof val === "string") - .join(""); - } + return [ + ...dieVals.map((val, i) => ``), + ghostNum ? `` : null + ] + .filter((val) => typeof val === "string") + .join(""); } // #endregion // #region RESULT GETTERS ~ @@ -2897,6 +3194,7 @@ class BladesRoll extends DocumentSheet { await this.setRollPhase(RollPhase.Complete); } // Apply Stress & Special Armor Costs + eLog.checkLog2("bladesRoll", "Costs", this.getRollCosts()); if (BladesPC.IsType(this.rollPrimaryDoc)) { const rollCostData = this.getRollCosts(); const stressCost = this.getTotalStressCost(this.getStressCosts(rollCostData)); @@ -2921,7 +3219,7 @@ class BladesRoll extends DocumentSheet { if (csqID && chatID) { const resistedCsq = await BladesConsequence.GetFromID(chatID, csqID); if (resistedCsq) { - await resistedCsq.applyResistedConsequence(); + await resistedCsq.applyResistedConsequence("resist"); } } if (BladesPC.IsType(this.rollPrimaryDoc)) { @@ -3328,7 +3626,8 @@ class BladesRoll extends DocumentSheet { .on({ change: this._onSelectChange.bind(this) }); html .find("[data-action=\"gm-edit-consequences\"]") - .on({ click: () => BladesDialog.DisplayRollConsequenceDialog(this) }); + // .on({click: () => BladesDialog.DisplayRollConsequenceDialog(this)}); + .on({ click: () => BladesDialog.DisplaySimpleInputDialog(this, "What consequence would you add?", undefined, "rollCollab.inputDialogTest") }); html .find("[data-action='gm-text-input']") .on({ blur: this._onTextInputBlur.bind(this) }); diff --git a/module/core/ai.js b/module/core/ai.js index b2f0aac4..12f27c21 100644 --- a/module/core/ai.js +++ b/module/core/ai.js @@ -413,7 +413,7 @@ export const AGENTS = { { human: "Soul Destroyed", ai: "Fully Corrupted|Lost In Darkness|Spirit Broken" }, { human: "Humiliated", ai: "Embarrassed|Momentarily Off-Balance|Enraged" }, { human: "She Escapes!", ai: "She Spots a Means of Escape|She Puts More Distance Between You|She Stops to Gloat" }, - { human: "The fire spreads to the hostages.", ai: "The fire approaches the hostages|The hostages must be evacuated|The fire billows choking black smoke." } + { human: "The fire spreads to the hostages.", ai: "The fire approaches the hostages.|The hostages must be evacuated.|The fire billows choking black smoke." } ] } }; diff --git a/module/core/constants.js b/module/core/constants.js index 6a4256e2..2c318c84 100644 --- a/module/core/constants.js +++ b/module/core/constants.js @@ -399,6 +399,14 @@ const C = { AI_FILE_IDS: { BladesPDF: "file-n72HTTNwt051piPbswQ8isUa" }, + DowntimeActionDisplay: { + [DowntimeAction.AcquireAsset]: "Acquire an Asset", + [DowntimeAction.IndulgeVice]: "Indulge Your Vice", + [DowntimeAction.LongTermProject]: "Work on a Project", + [DowntimeAction.Recover]: "Heal", + [DowntimeAction.ReduceHeat]: "Reduce the Crew's Heat", + [DowntimeAction.Train]: "Train" + }, Consequences: { [Position.controlled]: { [RollResult.partial]: [ diff --git a/module/core/gsapBROKEN.js b/module/core/gsapBROKEN.js new file mode 100644 index 00000000..b07afc37 --- /dev/null +++ b/module/core/gsapBROKEN.js @@ -0,0 +1,582 @@ +import U from "./utilities.js"; +import C from "./constants.js"; +// eslint-disable-next-line import/no-unresolved +import { TextPlugin } from "/scripts/greensock/esm/all.js"; +const gsapPlugins = [ + TextPlugin +]; +const gsapEffects = { + /* Basic Element Effects */ + fadeOut: { + effect: (targets, config) => { + const tl = U.gsap.timeline({ + paused: config.paused, + runBackwards: config.reversed + }) + .to(targets, { + autoAlpha: 0, + duration: config.duration, + ease: config.ease + }); + // if (config.reversed) { + // tl.seek(config.duration); + // } + return tl; + }, + defaults: { + paused: false, + reversed: false, + duration: 0.5, + ease: "power4.out" + } + }, + blurOut: { + effect: (targets, config) => { + const tl = U.gsap.timeline({ + paused: config.paused, + runBackwards: config.reversed + }) + .to(targets, { + skewX: config.skewX, + duration: 0.5 * config.duration, + ease: "power4.out" + }) + .to(targets, { + x: `+=${config.rangeX}`, + marginBottom(i, target) { + return U.get(target, "height") * -1; + }, + marginRight(i, target) { + return U.get(target, "width") * -1; + }, + scale: config.scale, + filter: `blur(${config.blurStrength}px)`, + duration: 0.75 * config.duration + }, 0.25 * config.duration) + .to(targets, { + autoAlpha: 0, + duration: 0.5 * config.duration, + ease: "power3.in" + }, 0.5 * config.duration); + // if (config.reversed) { + // tl.seek(config.duration); + // } + return tl; + }, + defaults: { + paused: false, + reversed: false, + duration: 0.5, + skewX: -20, + rangeX: 300, + scale: 1.5, + blurStrength: 10 + } + }, + slideOut: { + effect: (targets, config) => { + const scaleKey = ["up", "down"].includes(config.dir) ? "scaleY" : "scaleX"; + const tl = U.gsap.timeline({ + paused: config.paused, + runBackwards: config.reversed + }) + .to(targets, { + [scaleKey]: 0, + duration: config.duration, + ease: config.ease + }); + // if (config.reversed) { + // tl.seek(config.duration); + // } + return tl; + }, + defaults: { + paused: false, + reversed: false, + duration: 0.5, + ease: "back.out(3)" + } + }, + brighten: { + effect: (targets, config) => { + const tl = U.gsap.timeline({ + paused: config.paused, + runBackwards: config.reversed + }) + .fromTo(targets, { + filter: `brightness(${config.startStrength})` + }, { + filter: `brightness(${config.strength})`, + duration: config.duration, + ease: config.ease + }); + return tl; + }, + defaults: { + paused: false, + reversed: false, + initialStrength: 1, + strength: 1.5, + duration: 0.5, + ease: "none" + } + }, + enlarge: { + effect: (targets, config) => { + const tl = U.gsap.timeline({ + paused: config.paused, + runBackwards: config.reversed + }) + .fromTo(targets, { + scale: config.startScale + }, { + scale: config.scale, + duration: config.duration, + ease: config.ease + }); + return tl; + }, + defaults: { + paused: false, + reversed: false, + startScale: 1, + scale: 1.5, + duration: 0.5, + ease: "sine.out" + } + }, + changeColor: { + effect: (targets, config) => { + const tl = U.gsap.timeline({ + paused: config.paused, + runBackwards: config.reversed + }) + .to(targets, { + color: config.color, + duration: config.duration, + ease: config.ease + }); + return tl; + }, + defaults: { + paused: false, + reversed: false, + color: C.Colors.bWHITE, + duration: 0.5, + ease: "sine" + } + }, + skewX: { + effect: (targets, config) => { + const tl = U.gsap.timeline({ + paused: config.paused, + runBackwards: config.reversed + }) + .to(targets, { + skewX: config.angle, + duration: config.duration, + ease: config.ease + }); + return tl; + }, + defaults: { + paused: false, + reversed: false, + angle: -45, + duration: 0.5, + ease: "sine" + } + }, + blurRemove: { + effect: (targets, config) => U.gsap.timeline() + .to(targets, { + skewX: config.skewX, + duration: config.duration / 2, + ease: "power4.out" + }) + .to(targets, { + x: config.x, + marginBottom(i, target) { + return U.get(target, "height") * -1; + }, + marginRight(i, target) { + return U.get(target, "width") * -1; + }, + scale: config.scale, + filter: config.filter, + duration: (3 / 4) * config.duration + }, config.duration / 4) + .to(targets, { + opacity: 0, + duration: config.duration / 2, + ease: "power3.in" + }, config.duration / 2), + defaults: { + skewX: -20, + duration: 0.5, + x: "+=300", + scale: 1.5, + filter: "blur(10px)" + } + }, + slideUp: { + effect: (targets) => U.gsap.to(targets, { + height: 0, + // PaddingTop: 0, + // paddingBottom: 0, + duration: 0.5, + ease: "power3" + }), + defaults: {} + }, + pulse: { + effect: (targets, config) => U.gsap.to(targets, { + repeat: config.repCount, + yoyo: true, + duration: config.duration / config.repCount, + ease: config.ease, + opacity: 0.25 + }), + defaults: { + repCount: 3, + duration: 5, + ease: "sine.inOut" + } + }, + throb: { + effect: (targets, config) => U.gsap.to(targets, { + repeat: config.stagger ? undefined : 1, + yoyo: config.stagger ? undefined : true, + duration: config.duration / 2, + scale: config.scale, + filter: config.filter, + ease: config.ease, + stagger: config.stagger + ? { + ...config.stagger, + repeat: 1, + yoyo: true + } + : {} + }), + defaults: { + duration: 1, + scale: 1, + filter: "saturate(1) brightness(2)", + ease: "power2.in" + }, + extendTimeline: true + }, + pulseClockWedges: { + effect: () => U.gsap.timeline({ duration: 0 }), + defaults: {} + }, + reversePulseClockWedges: { + effect: () => U.gsap.timeline({ duration: 0 }), + defaults: {} + }, + fillCoins: { + effect: (targets, config) => { + // Targets will be all coins from zero to where fill currently is + // Some will already be full, others not. + // Stagger in timeline + // Pulse in size and color + // Shimmer as they shrink back ? + return U.gsap.effects.throb(targets, { stagger: { + amount: 0.25, + from: "start", + repeat: 1, + yoyo: true + }, ...config ?? {} }); + }, + defaults: {} + }, + hoverTooltip: { + effect: (tooltip, config) => { + const tl = U.gsap.timeline({ paused: true, defaults: {} }); + if (!tooltip) { + return tl; + } + // Tooltip = $(tooltip); + if (config.scalingElems.length > 0) { + tl.to(config.scalingElems, { + scale: "+=0.2", + filter: "none", + color: C.Colors.WHITE, + opacity: 1, + duration: 0.125, + ease: "back" + }, 0.5); + } + if (tooltip) { + tl.fromTo(tooltip, { + filter: "blur(50px)", + opacity: 0, + scale: 2 * config.tooltipScale + }, { + filter: "none", + opacity: 1, + scale: config.tooltipScale, + x: config.xMotion, + duration: 0.25, + ease: "power2" + }, 1); + } + return tl; + }, + defaults: { + xMotion: "+=200", + tooltipScale: 1.25 + } + } +}; +/** + * Registers relevant GSAP plugins and effects. + */ +export function Initialize() { + if (gsapPlugins.length) { + U.gsap.registerPlugin(...gsapPlugins); + } + Object.entries(gsapEffects).forEach(([name, effect]) => { + U.gsap.registerEffect(Object.assign(effect, { name, extendTimeline: true })); + }); +} +/** + * Applies listeners to '.tooltip-trigger' elements in the document. + * @param {JQuery} html The document to be searched. + */ +export function ApplyTooltipAnimations(html) { + html.find(".tooltip-trigger").each((_, el) => { + const tooltipElem = $(el).find(".tooltip")[0] ?? $(el).next(".tooltip")[0]; + if (!tooltipElem) { + return; + } + $(el).data("hoverTimeline", U.gsap.effects.hoverTooltip(tooltipElem, { + scalingElems: [...$(el).find(".tooltip-scaling-elem")].filter((elem) => Boolean(elem)), + xMotion: $(tooltipElem).hasClass("tooltip-left") ? "-=250" : "+=200", + tooltipScale: $(tooltipElem).hasClass("tooltip-small") ? 1 : 1.2 + })); + $(el).on({ + mouseenter: function () { + $(el).css("z-index", 10); + $(el).data("hoverTimeline").play(); + }, + mouseleave: function () { + $(el).data("hoverTimeline").reverse().then(() => { + $(el).css("z-index", ""); + }); + } + }); + }); +} +/** + * Applies listeners to .consequence-display-container and children found in document. + * @param {JQuery} html The document to be searched. + */ +export function ApplyConsequenceAnimations(html) { + /** + * TIMELINES + * .comp.consequence-display-container:mouseenter + * = fade in grey interaction buttons + * ...:mouseleave = reverse + * + * .consequence-accept-button-container:mouseenter + * = turn type line white, text shadow + * slide out .consequence-accept-button-bg from left + * turn .consequence-accept-button i black, and scale + * turn .consequence-accept-button-label black, add letter spacing, bold + * ...:mouseleave = reverse + * + * .consequence-resist-button-container:mouseenter + * = slide in .consequence-type-bg.base-consequence to left + * fade out all .base-consequence:not(.consequence-type-bg) + * slide out .consequence-type.resist-consequence from left + * slide out .consequence-resist-button-bg from right + * slide out .consequence-footer-bg.resist-consequence from left + * slide out .consequence-resist-attribute from left + * slide out .consequence-name.resist-consequence from left + * fade in .consequence-icon-circle.resist-consequence + * ...:mouseleave = reverse + * --> IF resistTo.type === "None", blurRemove the base_consequence name and type instead of sliding them in, + * and don't slide the resistance ones out at all. + * */ + html + .find(".comp.consequence-display-container") + .each((_i, csqContainer) => { + if (!$(csqContainer).hasClass("consequence-accepted")) { + const csqRoot = U.gsap.utils.selector(csqContainer); + const csqBgImg = csqRoot(".consequence-bg-image"); + const [iconContainer] = csqRoot(".consequence-icon-container"); + const iconRoot = U.gsap.utils.selector(iconContainer); + const typeRoot = U.gsap.utils.selector(csqRoot(".consequence-type-container")[0]); + const nameRoot = U.gsap.utils.selector(csqRoot(".consequence-name-container")[0]); + const footerRoot = U.gsap.utils.selector(csqRoot(".consequence-footer-container")[0]); + const csqOptions = ["base", "accept"]; + ["resist", "armor", "special"].forEach((csqOpt) => { + if (iconRoot(`.${csqOpt}-consequence`).length) { + csqOptions.push(csqOpt); + } + }); + const interactionPads = {}; + const iconCircles = {}; + const buttonContainers = {}; + const buttonBGs = {}; + const buttonIcons = {}; + const buttonLabels = {}; + const typeLabels = {}; + const typeBGs = {}; + const nameLabels = {}; + const nameBGs = {}; + const footerLabels = {}; + const footerBGs = {}; + ["right", "left", "left-resist", "left-armor", "left-special"].forEach((iPadOpt) => { + [interactionPads[iPadOpt]] = csqRoot(`.consequence-interaction-pad.interaction-pad-${iPadOpt}`); + }); + ["base", "accept", "resist", "armor", "special"].forEach((csqOpt) => { + [iconCircles[csqOpt]] = iconRoot(`.consequence-icon-circle.${csqOpt}-consequence`); + [buttonContainers[csqOpt]] = iconRoot(`.consequence-button-container.${csqOpt}-consequence`); + [buttonBGs[csqOpt]] = iconRoot(`.consequence-button-container.${csqOpt}-consequence .consequence-button-bg`); + [buttonIcons[csqOpt]] = iconRoot(`.consequence-button-container.${csqOpt}-consequence .button-icon i`); + [buttonLabels[csqOpt]] = iconRoot(`.consequence-button-container.${csqOpt}-consequence .consequence-button-label`); + [typeLabels[csqOpt]] = typeRoot(`.consequence-type.${csqOpt}-consequence`); + if (csqOpt === "accept") { + [typeBGs[csqOpt]] = typeRoot(`.consequence-type-bg.${csqOpt}-consequence`); + } + [nameLabels[csqOpt]] = nameRoot(`.consequence-name.${csqOpt}-consequence`); + [nameBGs[csqOpt]] = nameRoot(`.consequence-name-bg.${csqOpt}-consequence`); + [footerLabels[csqOpt]] = footerRoot(`.consequence-footer-message.${csqOpt}-consequence`); + [footerBGs[csqOpt]] = footerRoot(`.consequence-footer-bg.${csqOpt}-consequence`); + }); + [ + interactionPads, + iconCircles, + buttonContainers, buttonBGs, buttonIcons, buttonLabels, + typeLabels, typeBGs, + nameLabels, nameBGs, + footerLabels, footerBGs + ] + .forEach((elemRecord) => U.objCompact(elemRecord, [undefined, null, false], true)); + // Apply master on-enter hover timeline to consequence container. + $(csqContainer).data("hoverTimelines", [ + U.gsap.effects.fadeOut([typeLabels.base, nameLabels.base], { paused: true, duration: 0.5 }), + U.gsap.effects.fadeOut([typeLabels.accept, nameLabels.accept], { paused: true, reversed: true, duration: 0.25 }), + U.gsap.effects.brighten([csqContainer], { paused: true, duration: 0.5 }), + U.gsap.effects.enlarge([iconCircles.base], { paused: true, duration: 0.75, startScale: 0.75, scale: 0.85 }) + ]); + $(csqContainer).on({ + mouseenter: function () { + $(csqContainer).css("z-index", 10); + $(csqContainer).data("hoverTimelines").forEach((tl) => tl.play()); + }, + mouseleave: function () { + if (!($(iconContainer).data("isToggled"))) { + $(csqContainer).css("z-index", ""); + $(csqContainer).data("hoverTimelines").forEach((tl) => tl.reverse()); + } + } + }); + // Apply click timeline to icon circle + $(iconContainer).data("clickTimelines", [ + U.gsap.timeline({ paused: true }) + .fromTo([csqBgImg], { + xPercent: 110, + yPercent: -50 + }, { + xPercent: -60, + yPercent: -50, + duration: 0.5, + ease: "back" + }), + U.gsap.effects.fadeOut([iconCircles.base], { paused: true }), + U.gsap.effects.fadeOut([iconCircles.accept], { paused: true, reversed: true }), + U.gsap.effects.blurOut([buttonContainers], { paused: true, reversed: true }) + ]); + $(iconContainer).on({ + click: function () { + if ($(iconContainer).data("isToggled")) { + $(iconContainer).data("isToggled", false); + $(iconContainer).data("clickTimelines").forEach((tl) => tl.reverse()); + } + else { + $(iconContainer).data("isToggled", true); + $(iconContainer).data("clickTimelines").forEach((tl) => tl.play()); + // Find any siblings with toggled-on iconContainers, and toggle them off + Array.from($(csqContainer).siblings(".consequence-display-container")) + .forEach((containerElem) => { + const iContainer$ = $(containerElem).find(".consequence-icon-container"); + if (iContainer$?.data("isToggled")) { + iContainer$.data("isToggled", false); + $(containerElem).css("z-index", ""); + [ + ...iContainer$.data("clickTimelines"), + ...$(containerElem).data("hoverTimelines") + ].forEach((tl) => tl.reverse()); + } + }); + } + } + }); + // Apply hover timelines to right (accept) interaction pad + $(interactionPads.right).data("hoverTimelines", [ + U.gsap.effects.changeColor([typeLabels.accept], { paused: true, color: C.Colors.WHITE }), + U.gsap.effects.slideOut([typeBGs.accept, buttonBGs.accept], { paused: true, reversed: true, dir: "left" }), + U.gsap.effects.skewX([typeBGs.accept, buttonBGs.accept], { paused: true, angle: -45 }), + U.gsap.effects.changeColor([buttonIcons.accept, buttonLabels.accept], { paused: true, color: C.Colors.dBLACK }), + U.gsap.effects.enlarge([buttonIcons.accept], { paused: true, scale: 1.25 }) + ]); + $(interactionPads.right).on({ + mouseenter: function () { + if ($(iconContainer).data("isToggled")) { + $(interactionPads.right).data("hoverTimelines").forEach((tl) => tl.play()); + } + }, + mouseleave: function () { + if ($(iconContainer).data("isToggled")) { + $(interactionPads.right).data("hoverTimelines").forEach((tl) => tl.reverse()); + } + } + }); + // Apply hover timeline to left (resist/armor/special) interaction pad + $(interactionPads.left).data("hoverTimelines", [ + U.gsap.effects.fadeOut([typeLabels.accept, nameLabels.accept, iconCircles.accept, buttonContainers.accept], { paused: true, duration: 0.25 }) + ]); + $(interactionPads.left).on({ + mouseenter: function () { + if ($(iconContainer).data("isToggled")) { + $(interactionPads.left).data("hoverTimelines").forEach((tl) => tl.play()); + } + }, + mouseleave: function () { + if ($(iconContainer).data("isToggled")) { + $(interactionPads.left).data("hoverTimelines").forEach((tl) => tl.reverse()); + } + } + }); + // Apply hover timelines to specific left interaction pads where they exist + ["resist", "armor", "special"].forEach((csqOpt) => { + if (interactionPads[`left-${csqOpt}`]) { + $(interactionPads[`left-${csqOpt}`]).data("hoverTimelines", [ + U.gsap.effects.fadeOut([iconCircles[csqOpt], typeLabels[csqOpt]], { paused: true, reversed: true }), + U.gsap.effects.slideOut([buttonBGs[csqOpt], nameLabels[csqOpt], footerBGs[csqOpt], footerLabels[csqOpt]], { paused: true, reversed: true, dir: "left" }), + U.gsap.effects.skewX([buttonBGs[csqOpt], nameLabels[csqOpt], footerBGs[csqOpt], footerLabels[csqOpt]], { paused: true, angle: -45 }), + U.gsap.effects.changeColor([buttonIcons[csqOpt], buttonLabels[csqOpt]], { paused: true, color: C.Colors.dBLACK }), + U.gsap.effects.enlarge([buttonIcons[csqOpt]], { paused: true, scale: 1.25 }) + ]); + $(interactionPads[`left-${csqOpt}`]).on({ + mouseenter: function () { + if ($(iconContainer).data("isToggled")) { + $(interactionPads[`left-${csqOpt}`]).data("hoverTimelines").forEach((tl) => tl.play()); + } + }, + mouseleave: function () { + if ($(iconContainer).data("isToggled")) { + $(interactionPads[`left-${csqOpt}`]).data("hoverTimelines").forEach((tl) => tl.reverse()); + } + } + }); + } + }); + } + }); +} +export default U.gsap; diff --git a/module/core/utilities.js b/module/core/utilities.js index c90ac9ee..e462458b 100644 --- a/module/core/utilities.js +++ b/module/core/utilities.js @@ -1021,7 +1021,7 @@ function objFindKey(obj, keyFunc, valFunc) { * @param {testFunc} [valFunc] The testing function for values. * @returns {Type} The filtered object. */ -const objFilter = (obj, keyFunc, valFunc) => { +const objFilter = (obj, keyFunc, valFunc, isMutating = false) => { // if (!valFunc) { valFunc = keyFunc; @@ -1031,10 +1031,23 @@ const objFilter = (obj, keyFunc, valFunc) => { keyFunc = ((k) => k); } if (isArray(obj)) { - return obj.filter(valFunc); + const keptValues = obj.filter(valFunc); + if (isMutating) { + obj.splice(0, obj.length, ...keptValues); + return obj; + } + return keptValues; } const kFunc = keyFunc || (() => true); const vFunc = valFunc || (() => true); + if (isMutating) { + const entriesToRemove = Object.entries(obj) + .filter(([key, val]) => !(kFunc(key, val) && vFunc(val, key))); + for (const [key] of entriesToRemove) { + delete obj[key]; + } + return obj; + } return Object.fromEntries(Object.entries(obj) .filter(([key, val]) => kFunc(key, val) && vFunc(val, key))); }; @@ -1048,7 +1061,7 @@ const objForEach = (obj, func) => { } }; // Prunes an object of given set of values, [undefined, null] default -const objCompact = (obj, removeWhiteList = [undefined, null]) => objFilter(obj, (val) => !removeWhiteList.includes(val)); +const objCompact = (obj, removeWhiteList = [undefined, null], isMutating = false) => objFilter(obj, (val) => !removeWhiteList.includes(val), undefined, isMutating); const objClone = (obj, isStrictlySafe = false) => { const cloneArray = (arr) => [...arr]; const cloneObject = (o) => ({ ...o }); diff --git a/module/documents/actors/BladesPC.js b/module/documents/actors/BladesPC.js index 60219e6a..adc906cf 100644 --- a/module/documents/actors/BladesPC.js +++ b/module/documents/actors/BladesPC.js @@ -8,6 +8,23 @@ class BladesPC extends BladesActor { static IsType(doc) { return super.IsType(doc, BladesActorType.pc); } + static GetFromUser(userRef) { + let user; + if (typeof userRef === "string") { + user = game.users.get(userRef) ?? game.users.getName(userRef); + } + else if (userRef instanceof User) { + user = userRef; + } + if (!user) { + throw new Error(`Unable to find user '${userRef}'`); + } + const actor = game.actors.get(user.character?.id ?? ""); + if (BladesPC.IsType(actor)) { + return actor; + } + return undefined; + } static async create(data, options = {}) { data.token = data.token || {}; data.system = data.system ?? {}; @@ -209,6 +226,12 @@ class BladesPC extends BladesActor { } await this.update({ "system.stash.value": Math.min(this.system.stash.value + amount, this.system.stash.max) }); } + get remainingDowntimeActions() { + if (!BladesActor.IsType(this, BladesActorType.pc)) { + return 0; + } + return this.system.downtime_actions.max + this.system.downtime_action_bonus - this.system.downtime_actions.value; + } // #endregion // #region BladesRoll.PrimaryDoc Implementation get rollModsData() { diff --git a/module/documents/items/BladesClock.js b/module/documents/items/BladesClock.js new file mode 100644 index 00000000..adb3762c --- /dev/null +++ b/module/documents/items/BladesClock.js @@ -0,0 +1,45 @@ +import BladesItem from "../../BladesItem.js"; +import { BladesActorType, Factor } from "../../core/constants.js"; +import U from "../../core/utilities.js"; +import BladesActor from "../../BladesActor.js"; +class BladesLocation extends BladesItem { + get rollFactors() { + const factorData = {}; + [ + Factor.tier, + Factor.quality, + Factor.scale + ].forEach((factor, i) => { + const factorTotal = this.getFactorTotal(factor); + factorData[factor] = { + name: factor, + value: factorTotal, + max: factorTotal, + baseVal: factorTotal, + display: factor === Factor.tier ? U.romanizeNum(factorTotal) : `${factorTotal}`, + isActive: i === 0, + isPrimary: i === 0, + isDominant: false, + highFavorsPC: true, + cssClasses: `factor-gold${i === 0 ? " factor-main" : ""}` + }; + }); + return factorData; + } + getFactorTotal(factor) { + switch (factor) { + case Factor.tier: return this.system.tier.value; + case Factor.quality: return this.getFactorTotal(Factor.tier); + case Factor.scale: return this.system.scale; + // no default + } + return 0; + } + get rollOppImg() { return this.img ?? ""; } + // #region OVERRIDES: _onUpdate + async _onUpdate(changed, options, userId) { + await super._onUpdate(changed, options, userId); + BladesActor.GetTypeWithTags(BladesActorType.pc).forEach((actor) => actor.render()); + } +} +export default BladesLocation; diff --git a/module/sheets/actor/BladesActorSheet.js b/module/sheets/actor/BladesActorSheet.js index fe0b4478..f92b8c87 100644 --- a/module/sheets/actor/BladesActorSheet.js +++ b/module/sheets/actor/BladesActorSheet.js @@ -1,9 +1,9 @@ // #region IMPORTS~ import U from "../../core/utilities.js"; import G, { ApplyTooltipAnimations } from "../../core/gsap.js"; -import C, { BladesActorType, BladesItemType, AttributeTrait, ActionTrait, Factor, RollType } from "../../core/constants.js"; +import C, { BladesActorType, BladesItemType, DowntimeAction, AttributeTrait, ActionTrait, Factor, RollType } from "../../core/constants.js"; import Tags from "../../core/tags.js"; -import BladesActor from "../../BladesActor.js"; +import { BladesActor, BladesPC } from "../../documents/BladesActorProxy.js"; import BladesItem from "../../BladesItem.js"; import BladesDialog from "../../BladesDialog.js"; import BladesActiveEffect from "../../BladesActiveEffect.js"; @@ -352,7 +352,7 @@ class BladesActorSheet extends ActorSheet { if (!doc) { return; } - await G.effects.blurRemove(elem$).then(async () => { + await G.effects.blurOut(elem$).then(async () => { if (doc instanceof BladesItem) { await this.actor.remSubItem(doc); } @@ -367,7 +367,7 @@ class BladesActorSheet extends ActorSheet { if (!doc) { return; } - await G.effects.blurRemove(elem$).then(async () => await doc.delete()); + await G.effects.blurOut(elem$).then(async () => await doc.delete()); } async _onItemToggleClick(event) { event.preventDefault(); @@ -419,6 +419,77 @@ class BladesActorSheet extends ActorSheet { } await BladesRoll.NewRoll(rollData); } + async _onDowntimeActionClick(event) { + const elem$ = $(event.currentTarget); + // Check whether character has downtime actions remaining. + // If not, prompt for whether spending Coin or Rep for extra + // If so, increase character's downtime count by one + const downtimeAction = elem$.data("downtimeAction"); + const rollConfig = { + rollType: RollType.Action, + rollDowntimeAction: downtimeAction + }; + // Determine Trait from action type + switch (downtimeAction) { + case DowntimeAction.AcquireAsset: { + rollConfig.rollTrait = Factor.tier; + break; + } + case DowntimeAction.IndulgeVice: { + if (!BladesPC.IsType(this.actor)) { + return; + } + rollConfig.rollType = RollType.IndulgeVice; + rollConfig.rollTrait = Object.values(AttributeTrait) + .reduce((minAttr, curAttr) => this.actor.attributes[curAttr] + < this.actor.attributes[minAttr] + ? curAttr + : minAttr, AttributeTrait.insight); + // GM needs to be able to set the desired asset as the rollOpposition, so can set minimum quality + break; + } + case DowntimeAction.LongTermProject: { + rollConfig.rollTrait = ""; + // BladesRoll can search actor subitems for project/rituals and set up their clocks as the 'opposition' + break; + } + case DowntimeAction.Recover: { + // If clicked on by player from an NPC sheet -> rollPrimary is the NPC, trait is quality + // Otherwise -> Search 'ActivePC' characters for 'Physicker' Ability; if more than one will have to prompt user + // ... OR ... + // ActiveEffect added to any BladesActor that can heal, along with reference to the trait they roll. + rollConfig.rollTrait = ActionTrait.tinker || Factor.quality; + break; + } + case DowntimeAction.ReduceHeat: { + rollConfig.rollTrait = ""; + break; + } + case DowntimeAction.Train: { + // Element will have target: Attribute or Playbook. + // Will have to check for crew upgrades that increase XP gained. + // If too much XP gained, will have to store excess so it can roll over after the player advances. + // Then, because this doesn't take a roll, we just return. + return; + } + } + // ... Pretty much everything else should be done over in BladesRoll. + BladesRoll.NewRoll(rollConfig); + } + async _onGatherInfoClick(event) { + const elem$ = $(event.currentTarget); + if (elem$.data("isFortuneRoll")) { + BladesRoll.NewRoll({ + rollType: RollType.Fortune + }); + } + else { + BladesRoll.NewRoll({ + rollType: RollType.Action, + rollTrait: "" + }); + } + } // #endregion // #region Active Effect Handlers _onActiveEffectControlClick(event) { diff --git a/module/sheets/roll/BladesConsequence.js b/module/sheets/roll/BladesConsequence.js index 6e300cc4..29e1f062 100644 --- a/module/sheets/roll/BladesConsequence.js +++ b/module/sheets/roll/BladesConsequence.js @@ -3,6 +3,15 @@ import C, { BladesActorType, AttributeTrait, ConsequenceType, RollResult, RollTy import U from "../../core/utilities.js"; import BladesRoll, { BladesRollPrimary } from "../../BladesRoll.js"; class BladesConsequence { + static get None() { + return { + id: randomID(), + name: "", + type: ConsequenceType.None, + isSelected: true, + isVisible: true + }; + } static GetActiveRollChatID() { return Array.from(game.messages).filter((msg) => $(msg.content ?? "").data("chat-id")).pop()?.id ?? undefined; } @@ -25,6 +34,14 @@ class BladesConsequence { else if (roll$.hasClass("roll-type-indulgevice")) { roll$.closest(".chat-message").addClass("indulgevice-roll"); } + // If this message is an action roll result AND there are unresolved consequences, add 'unresolved-action-roll' class. + if (roll$.hasClass("roll-type-action") + && Array.from(roll$.find(".comp.consequence-display-container:not(.consequence-accepted)")).length >= 1) { + roll$.closest(".chat-message").addClass("unresolved-action-roll"); + } + else { + roll$.closest(".chat-message").removeClass("unresolved-action-roll"); + } // If this message is the last one, add 'active-chat-roll' class and remove it from all others if (BladesConsequence.GetActiveRollChatID() === roll$.data("chatId")) { $(document).find(".chat-message").removeClass("active-chat-roll"); @@ -34,7 +51,7 @@ class BladesConsequence { roll$.closest(".chat-message").removeClass("active-chat-roll"); } const rollPhase = roll$.data("rollPhase"); - eLog.checkLog3("rollCollab", "ApplyChatListeners", { html, roll$, rollPhase }); + // eLog.checkLog3("rollCollab", "ApplyChatListeners", {html, roll$, rollPhase}); if (rollPhase !== RollPhase.AwaitingConsequences) { return; } @@ -151,7 +168,7 @@ class BladesConsequence { static async GetFromChatMessage(message, csqID) { const html$ = $(await message.getHTML()); const bCsqs = []; - html$.find(".blades-roll .consequence-container .comp.consequence-display-container").each((_, elem) => { + html$.find(".blades-roll .consequence-container .comp.consequence-display-container:not(.consequence-accepted)").each((_, elem) => { bCsqs.push(BladesConsequence.GetFromCsqElem(elem)); }); if (csqID) { @@ -269,7 +286,7 @@ class BladesConsequence { this._name = name; this._primaryID = primaryID; this._primaryType = primaryType; - this._primaryDoc = primaryDoc; + this._primaryDoc = new BladesRollPrimary(undefined, primaryDoc); this._type = type; this._position = position; this._effect = effect; @@ -436,11 +453,7 @@ class BladesConsequence { this._isAccepted = true; await this._chatMessage.update({ content: message$[0].outerHTML }); } - async resistConsequence() { - eLog.checkLog3("rollCollab", `Resisting Consequence id ${this._id}`); - if (!this._resistTo || !this.resistToData) { - throw new Error(`Cannot find resistTo for resistance roll for csq id '${this._id}' in message '${this._chatMessage.id}'`); - } + get rollFlagData() { // Get rollPrimaryData from archived roll flags on user document. let rollFlagData = this._user.getFlag(C.SYSTEM_ID, "rollCollab"); if (rollFlagData.rollID !== this._rollID) { @@ -449,6 +462,15 @@ class BladesConsequence { if (!rollFlagData) { throw new Error(`Unable to locate flag data for roll id '${this._rollID}'`); } + return rollFlagData; + } + async resistConsequence() { + eLog.checkLog3("rollCollab", `Resisting Consequence id ${this._id}`); + if (!this._resistTo || !this.resistToData) { + throw new Error(`Cannot find resistTo for resistance roll for csq id '${this._id}' in message '${this._chatMessage.id}'`); + } + // Get rollPrimaryData from archived roll flags on user document. + const rollFlagData = this.rollFlagData; const resistConfig = { rollType: RollType.Resistance, rollUserID: this._user.id, @@ -468,17 +490,24 @@ class BladesConsequence { }; BladesRoll.NewRoll(resistConfig); } - async applyResistedConsequence() { - if (this._resistTo) { - await this._resistTo.applyConsequenceToPrimary(); - await this.transformToConsequence("resist"); - } + async applyResistedConsequence(resistType) { + const rCsq = { + resist: this._resistTo, + armor: this._armorTo, + special: this._specialTo + }[resistType]; + if (rCsq) { + await rCsq.applyConsequenceToPrimary(); + } + await this.transformToConsequence(resistType); } async resistArmorConsequence() { - /* ... */ + this._primaryDoc.spendArmor(); + this.applyResistedConsequence("armor"); } async resistSpecialArmorConsequence() { - /* ... */ + await this._primaryDoc.spendSpecialArmor(); + this.applyResistedConsequence("special"); } } export default BladesConsequence; diff --git a/scss/chat/_chat.scss b/scss/chat/_chat.scss index 9f5dc9bb..f2be44d5 100644 --- a/scss/chat/_chat.scss +++ b/scss/chat/_chat.scss @@ -17,7 +17,7 @@ .flexrow.jump-to-bottom { - bottom: 154px; + bottom: 25px; z-index: 5; } @@ -29,7 +29,7 @@ z-index: 1; } } - +.chat-message:not(.display-ok) { opacity: 0 !important; } .chat-message[class*=-roll] { --font-primary: Beaufort !important; @@ -58,7 +58,12 @@ background: transparent; border: 2px ouset var(--blades-white); - &:not(.active-chat-roll) { + + + &:not(.unresolved-action-roll) { + .blades-roll > *:not(.chat-message-speaker-portrait-wrapper) { + filter: sepia(1) grayscale(0.5) brightness(0.6); + } .trait-label.trait-verb { display: none; } .consequence-icon-container { .consequence-icon-circle.base-consequence { @@ -66,10 +71,33 @@ img { animation: none !important; } } } + .chat-message-speaker-portrait-wrapper { + $border-color-bright: #9b9b9b; // #aa5a29; + $border-color-med: #565656; // #5a2f17; + $border-color-dark: #383838; // #531c06; + $border-color-darkest: #232323; // #3b1201; // 46381f 6b5630 9e7f46 + + --border-gradient: linear-gradient(-72deg, + #{$border-color-med}, + #{$border-color-bright} 16%, + #{$border-color-med} 21%, + #{$border-color-bright} 24%, + #{$border-color-dark} 27%, + #{$border-color-med} 36%, + #{$border-color-bright} 45%, + #{$border-color-bright} 60%, + #{$border-color-med} 72%, + #{$border-color-bright} 80%, + #{$border-color-med} 84%, + #{$border-color-darkest}); + + transform-origin: 50% 0%; + scale: 0.6 0.75; + } } } -.chat-message[class*=-roll].active-chat-roll { +.chat-message[class*=-roll].unresolved-action-roll { --bg-controlled: url("../assets/animations/chat/roll-position-controlled.webp"); --bg-risky: url("../assets/animations/chat/roll-position-risky.webp"); --bg-desperate: url("../assets/animations/chat/roll-position-desperate.webp"); @@ -150,7 +178,7 @@ $border-color-dark: #46381f; // #531c06; $border-color-darkest: #2c2315; // #3b1201; // 46381f 6b5630 9e7f46 - $border-gradient: linear-gradient(-72deg, + --border-gradient: linear-gradient(-72deg, #{$border-color-med}, #{$border-color-bright} 16%, #{$border-color-med} 21%, @@ -175,7 +203,7 @@ scale: 0.8 1; transform-origin: 50% 50%; - background: $border-gradient; + background: var(--border-gradient); background-repeat: no-repeat; outline: 3px solid black; box-shadow: 0 0 5px 5px black; @@ -223,7 +251,7 @@ &.action-roll + .chat-message.resistance-roll { margin-top: calc(-1 * var(--chat-vertical-gap)); } - &.action-roll.active-chat-roll + .chat-message.resistance-roll { + &.action-roll.unresolved-action-roll + .chat-message.resistance-roll { margin-top: 0; } @@ -578,6 +606,28 @@ padding: 4px; gap: 0; + h4.roll-state-label { + font-family: var(--font-emphasis-narrow); + font-size: 12px; + line-height: 12px; + display: block; + transform: translate(0%, -50%); + top: 50%; + text-align: center; + white-space: nowrap; + color: var(--side-color-secondary); + + strong { color: var(--side-color-secondary) !important; font-weight: 900 !important; } + } + + h3.roll-state { + white-space: nowrap; + font-size: 18px; + line-height: 18px; + text-shadow: var(--text-shadow-dark-strong); + color: var(--side-color-main); + } + &.roll-state-container-left { h4.roll-state-label { position: absolute; @@ -585,6 +635,7 @@ } h3.roll-state { position: absolute; + transform-origin: 100% 0%; top: 5px; right: 5px; scale: var(--side-left-x-scale) 1; @@ -601,6 +652,7 @@ h3.roll-state { width: 100%; position: absolute; + transform-origin: 0% 0%; bottom: 5px; left: 5px; text-align: left; @@ -608,29 +660,6 @@ scale: var(--side-right-x-scale) 1; } } - - h4.roll-state-label { - font-family: var(--font-emphasis-narrow); - font-size: 12px; - line-height: 12px; - display: block; - transform: translate(0%, -50%); - top: 50%; - text-align: center; - white-space: nowrap; - color: var(--side-color-secondary); - - strong { color: var(--side-color-secondary) !important; font-weight: 900 !important; } - } - - h3.roll-state { - white-space: nowrap; - font-size: 18px; - line-height: 18px; - transform-origin: 0% 0%; - text-shadow: var(--text-shadow-dark-strong); - color: var(--side-color-main); - } } diff --git a/scss/components/_comps.scss b/scss/components/_comps.scss index b8d3a9bc..bda4b08e 100644 --- a/scss/components/_comps.scss +++ b/scss/components/_comps.scss @@ -1082,20 +1082,29 @@ position: absolute; z-index: -1; height: 100%; - width: calc(100% + 24px); transform-origin: 0% 50%; top: 0px; background: var(--csq-icon-bright); display: block; + &.consequence-accept-button-bg { + width: calc(100% + 30px); + right: -7px; + transform: skewX(-45deg); + } + &.consequence-resist-button-bg, + &.consequence-armor-button-bg, &.consequence-special-button-bg { + width: calc(100% + 30px); transform-origin: 100% 50%; + right: calc(-0.5 * var(--container-height)); + transform: skewX(45deg); } + &.consequence-armor-button-bg, &.consequence-special-button-bg { - width: calc(100% + 40px); - margin-left: -10px; + width: calc(100% + 35px); } } @@ -1136,23 +1145,20 @@ &.consequence-resist-button-container { right: 100%; - - .consequence-button-bg { - left: -7px; - transform: skewX(45deg); - } } &.consequence-accept-button-container { left: 105%; - .consequence-button-bg { - right: -7px; - transform: skewX(-45deg); - } + } + &.consequence-armor-button-container { + right: 100%; + transform: translate(0%, 0%) !important; + top: 0%; } &.consequence-special-button-container { right: 100%; - bottom: 12px; + transform: translate(0%, -50%) !important; + top: 50%; } } } diff --git a/scss/dialog/_dialogs.scss b/scss/dialog/_dialogs.scss index a6e12065..e6be6f58 100644 --- a/scss/dialog/_dialogs.scss +++ b/scss/dialog/_dialogs.scss @@ -244,6 +244,12 @@ font-family: var(--font-emphasis-narrow); margin-right: 5px; flex-grow: 2; + + &.consequence-name-none { + box-shadow: none; + background: none; + cursor: default; + } } .roll-consequence-type-select { diff --git a/scss/sheets/_roll-collab-sheet.scss b/scss/sheets/_roll-collab-sheet.scss index 530f58ef..ef604460 100644 --- a/scss/sheets/_roll-collab-sheet.scss +++ b/scss/sheets/_roll-collab-sheet.scss @@ -872,6 +872,20 @@ .sheet-main { right: 6px; flex-basis: auto; + + &.roll-opp-block { + + } + + &.roll-consequences { + min-height: 330px; + h3 { margin-bottom: 10px; } + } + + &.factor-controls { + min-height: 112px; + place-self: stretch flex-end; + } } } } @@ -1444,8 +1458,8 @@ z-index: 5; &.split-root-left { - flex-basis: 85%; - max-width: 85%; + flex-basis: 80%; + max-width: 80%; // max-width: 370px; } diff --git a/scss/style.scss b/scss/style.scss index b15601b9..750be5e4 100644 --- a/scss/style.scss +++ b/scss/style.scss @@ -103,6 +103,7 @@ @import "./core/reset"; @import './core/globals'; + #chat-controls, #chat-form { display: none } &, * { --font-heading: var(--font-emphasis); diff --git a/template.json b/template.json index ed11ec70..cf6eddb2 100644 --- a/template.json +++ b/template.json @@ -45,7 +45,12 @@ "Ability": 0, "Cohort": 0, "CohortType": 0 - } + }, + "downtime_actions": { + "value": 0, + "max": 2 + }, + "downtime_action_bonus": 0 }, "hold": { "hold": "strong" @@ -420,6 +425,10 @@ "value": 0, "max": 4 }, + "armor": { + "value": 0, + "max": 0 + }, "scale_bonus": 0, "quality_bonus": 0 }, diff --git a/templates/actor-sheet.hbs b/templates/actor-sheet.hbs index a609450a..4f3a59b0 100644 --- a/templates/actor-sheet.hbs +++ b/templates/actor-sheet.hbs @@ -246,8 +246,8 @@ dataFlagTarget=false dataDType="String" dataDocType=false - selected=loadData.selLoadLevel - options=loadData.selectOptions }} + selected=loadData.selected + options=loadData.options }} {{#if loadData.selLoadCount}}(Max {{loadData.selLoadCount}} Load){{/if}} diff --git a/templates/components/consequence.hbs b/templates/components/consequence.hbs index de39b79d..277b28b3 100644 --- a/templates/components/consequence.hbs +++ b/templates/components/consequence.hbs @@ -23,12 +23,12 @@
- {{#if armorTo}} -
- {{/if}} {{#if specialArmorTo}}
{{/if}} + {{#if armorTo}} +
+ {{/if}}
{{!-- Icon --}} @@ -175,4 +175,6 @@ + + diff --git a/templates/dialog-input.hbs b/templates/dialog-input.hbs new file mode 100644 index 00000000..b3d1eda6 --- /dev/null +++ b/templates/dialog-input.hbs @@ -0,0 +1,14 @@ + +
+

{{prompt}}

+ +
+ +
+ {{#each buttons as |bData bName|}} + + {{/each}} +
\ No newline at end of file diff --git a/templates/parts/dialog-consequence-block.hbs b/templates/parts/dialog-consequence-block.hbs index 3c11b474..dba37ab4 100644 --- a/templates/parts/dialog-consequence-block.hbs +++ b/templates/parts/dialog-consequence-block.hbs @@ -38,38 +38,48 @@ selected=cData.attribute options=../consequenceAttributeOptions }} + {{!-- Blank Options Trigger --}} + {{> "systems/eunos-blades/templates/components/button-icon.hbs" + blockClass="blank-option-button" + buttonClass="fa-duotone fa-credit-card-blank" + action=(concat "blank-option-" ../rollPosition "-" ../rollResult "-" cID) + }} {{!-- AI Trigger --}} + {{#unless cData.resistNegates}} {{> "systems/eunos-blades/templates/components/button-icon.hbs" blockClass="ai-query-button" buttonClass="fa-solid fa-brain-circuit" tooltip="Query AI
Query OpenAI for suggestions on resisted versions of this consequence." action=(concat "ai-query-" ../rollPosition "-" ../rollResult "-" cID) }} - {{!-- Armor Toggles --}} - {{#if (test cData.attribute "==" "prowess")}} + {{/unless}} + {{!-- Armor Toggle --}} + {{#if cData.isDisplayingArmorToggle}} {{> "systems/eunos-blades/templates/components/toggle-icon.hbs" - isToggled=cData.canArmorA - blockClass="armor-toggle armor-toggle-a" - targetFlagKey=(concat "rollCollab.consequenceData." ../rollPosition "." ../rollResult "." cID ".canArmorA") + isToggled=cData.canArmor + blockClass="armor-toggle" + dataAction=(concat "toggle-armor-" ../rollPosition "-" ../rollResult "-" cID) activeClass="fa-sharp fa-solid fa-shield" inactiveClass="fa-sharp fa-regular fa-shield" }} - {{#if cData.canArmorA}} - {{> "systems/eunos-blades/templates/components/toggle-icon.hbs" - isToggled=cData.canArmorB - blockClass="armor-toggle armor-toggle-b" - targetFlagKey=(concat "rollCollab.consequenceData." ../rollPosition "." ../rollResult "." cID ".canArmorB") - activeClass="fa-sharp fa-solid fa-shield" - inactiveClass="fa-sharp fa-regular fa-shield" - }} - {{/if}} {{/if}} + {{!-- Special Armor Toggle --}} + {{#if cData.isDisplayingSpecialArmorToggle}} + {{> "systems/eunos-blades/templates/components/toggle-icon.hbs" + isToggled=cData.canSpecialArmor + blockClass="special-armor-toggle" + dataAction=(concat "toggle-special-" ../rollPosition "-" ../rollResult "-" cID) + activeClass="fa-sharp fa-duotone fa-shield-quartered" + inactiveClass="fa-sharp fa-regular fa-shield-quartered" + }} + {{/if}} {{!-- Name --}} {{!-- AI Options --}}
{{#each cData.resistOptions as |rData rID|}} + {{#unless (test rData.isVisible "==" false)}}
{{!-- Select Resist Option --}} {{#if rData.isSelected}} @@ -97,8 +107,13 @@ selected=rData.type options=../../consequenceTypeOptionsAll }} {{!-- Name --}} + {{#if (test rData.type "==" "None")}} + + {{else}} + {{/if}}
+ {{/unless}} {{/each}}
diff --git a/templates/roll/partials/roll-collab-action-gm.hbs b/templates/roll/partials/roll-collab-action-gm.hbs index d4d2416a..fd2a66a0 100644 --- a/templates/roll/partials/roll-collab-action-gm.hbs +++ b/templates/roll/partials/roll-collab-action-gm.hbs @@ -242,7 +242,7 @@
{{#each csqData.partial as |cData cIndex|}} {{#if cData.resistTo}} - {{> "systems/eunos-blades/templates/components/consequence.hbs" cData + {{> "systems/eunos-blades/templates/components/consequence-accepted.hbs" cData isResistanceVisible=true }} {{/if}} {{/each}} @@ -251,7 +251,7 @@
{{#each csqData.fail as |cData cIndex|}} {{#if cData.resistTo}} - {{> "systems/eunos-blades/templates/components/consequence.hbs" cData + {{> "systems/eunos-blades/templates/components/consequence-accepted.hbs" cData isResistanceVisible=true }} {{/if}} {{/each}} diff --git a/templates/roll/partials/roll-collab-action.hbs b/templates/roll/partials/roll-collab-action.hbs index b9021e59..8b79464d 100644 --- a/templates/roll/partials/roll-collab-action.hbs +++ b/templates/roll/partials/roll-collab-action.hbs @@ -42,6 +42,12 @@
+{{#if (test gamePhase "==" "Downtime")}}{{#if (test rollPrimary.rollPrimaryType "==" "pc")}} +
+ {{gamePhase}} +
+{{/if}}{{/if}} +
@@ -242,9 +248,17 @@
- {{#if rollOpposition}}{{/if}} + {{#if rollOpposition}} + {{#if (test rollOpposition.rollOppType "==" "clock")}} + {{> "systems/eunos-blades/templates/components/clock.hbs" rollOpposition.clockData}} + {{else}} + + {{/if}} + {{/if}}
+ {{#unless (test rollOpposition.rollOppType "==" "clock")}}
+ {{/unless}}