From 02acf58cd998c5a73a83f31cbbd38444ccbfb989 Mon Sep 17 00:00:00 2001 From: macniel Date: Tue, 7 Oct 2025 18:34:26 +0200 Subject: [PATCH] adds liturgy and modification scren --- gulpfile.mjs | 2 +- src/assets/deities/Angrosch.png | Bin 0 -> 5408 bytes src/assets/deities/Aves.png | Bin 0 -> 3870 bytes src/assets/deities/Boron.png | Bin 0 -> 5385 bytes src/assets/deities/Efferd.png | Bin 0 -> 4415 bytes src/assets/deities/Firun.png | Bin 0 -> 3136 bytes src/assets/deities/Hesinde.png | Bin 0 -> 3998 bytes src/assets/deities/Ifirn.png | Bin 0 -> 3791 bytes src/assets/deities/Ingerimm.png | Bin 0 -> 5408 bytes src/assets/deities/Kor.png | Bin 0 -> 2529 bytes src/assets/deities/Marbo.png | Bin 0 -> 3112 bytes src/assets/deities/Namenlos.png | Bin 0 -> 4199 bytes src/assets/deities/Nandus.png | Bin 0 -> 3708 bytes src/assets/deities/Peraine.png | Bin 0 -> 3367 bytes src/assets/deities/Phex.png | Bin 0 -> 4350 bytes src/assets/deities/Praios.png | Bin 0 -> 2234 bytes src/assets/deities/Rahja.png | Bin 0 -> 2978 bytes src/assets/deities/Rondra.png | Bin 0 -> 4833 bytes src/assets/deities/Satuaria.png | Bin 0 -> 4229 bytes src/assets/deities/Simia.png | Bin 0 -> 4415 bytes src/assets/deities/Tairach.png | Bin 0 -> 4710 bytes src/assets/deities/Travia.png | Bin 0 -> 5121 bytes src/assets/deities/Tsa.png | Bin 0 -> 6382 bytes src/assets/deities/Ucuri.png | Bin 0 -> 3492 bytes src/main.mjs | 13 +- src/module/data/blessing.mjs | 13 + src/module/data/character.mjs | 16 -- src/module/data/liturgy.mjs | 49 ++++ src/module/data/miracle/liturgydata.mjs | 115 ++++++++ src/module/dialog/modify-liturgy.mjs | 89 ++++++ src/module/documents/blessing.mjs | 9 + src/module/documents/character.mjs | 18 ++ src/module/documents/liturgy.mjs | 9 + src/module/sheets/actions/action-manager.mjs | 4 +- src/module/sheets/characterSheet.mjs | 267 ++++++++++++++---- src/module/sheets/liturgySheet.mjs | 48 ++++ src/module/xml-import/xml-import.mjs | 52 +++- src/style/_character-sheet.scss | 147 ++++++++-- src/style/_liturgy-banner.scss | 247 ++++++++++++++++ src/style/_modify-liturgy.scss | 45 +++ src/style/_numbers.scss | 4 + src/style/styles.scss | 2 + src/system.json | 8 +- src/templates/actor/actor-character-sheet.hbs | 214 +++++++++++++- src/templates/dialog/modify-liturgy.hbs | 36 +++ src/templates/item/item-liturgy-sheet.hbs | 14 + transformSources.mjs | 6 +- 47 files changed, 1314 insertions(+), 113 deletions(-) create mode 100644 src/assets/deities/Angrosch.png create mode 100644 src/assets/deities/Aves.png create mode 100644 src/assets/deities/Boron.png create mode 100644 src/assets/deities/Efferd.png create mode 100644 src/assets/deities/Firun.png create mode 100644 src/assets/deities/Hesinde.png create mode 100644 src/assets/deities/Ifirn.png create mode 100644 src/assets/deities/Ingerimm.png create mode 100644 src/assets/deities/Kor.png create mode 100644 src/assets/deities/Marbo.png create mode 100644 src/assets/deities/Namenlos.png create mode 100644 src/assets/deities/Nandus.png create mode 100644 src/assets/deities/Peraine.png create mode 100644 src/assets/deities/Phex.png create mode 100644 src/assets/deities/Praios.png create mode 100644 src/assets/deities/Rahja.png create mode 100644 src/assets/deities/Rondra.png create mode 100644 src/assets/deities/Satuaria.png create mode 100644 src/assets/deities/Simia.png create mode 100644 src/assets/deities/Tairach.png create mode 100644 src/assets/deities/Travia.png create mode 100644 src/assets/deities/Tsa.png create mode 100644 src/assets/deities/Ucuri.png create mode 100644 src/module/data/blessing.mjs create mode 100644 src/module/data/liturgy.mjs create mode 100644 src/module/data/miracle/liturgydata.mjs create mode 100644 src/module/dialog/modify-liturgy.mjs create mode 100644 src/module/documents/blessing.mjs create mode 100644 src/module/documents/liturgy.mjs create mode 100644 src/module/sheets/liturgySheet.mjs create mode 100644 src/style/_liturgy-banner.scss create mode 100644 src/style/_modify-liturgy.scss create mode 100644 src/templates/dialog/modify-liturgy.hbs create mode 100644 src/templates/item/item-liturgy-sheet.hbs diff --git a/gulpfile.mjs b/gulpfile.mjs index 3cb5f0c4..12992de4 100644 --- a/gulpfile.mjs +++ b/gulpfile.mjs @@ -55,7 +55,7 @@ function buildDB() { const src = join(PACK_SRC, folder.name); const dest = join(PACK_DEST, folder.name); console.info(`Compiling pack ${folder.name}`); - await compilePack(src, dest, {recursive: true, log: true, nedb: false}); + await compilePack(src, dest, {recursive: true, nedb: false}); } resolve() diff --git a/src/assets/deities/Angrosch.png b/src/assets/deities/Angrosch.png new file mode 100644 index 0000000000000000000000000000000000000000..d878e2b38aaedfbb30d8b0bfa88126eca360a96c GIT binary patch literal 5408 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 z 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 literal 0 HcmV?d00001 diff --git a/src/assets/deities/Efferd.png b/src/assets/deities/Efferd.png new file mode 100644 index 0000000000000000000000000000000000000000..3786c773555b635500a78bebc34c2243a4991a3d GIT binary patch literal 4415 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 raCRou$9=ueRZk+Kjq==)A7K9e5giIUW$ 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 literal 0 HcmV?d00001 diff --git a/src/assets/deities/Nandus.png b/src/assets/deities/Nandus.png new file mode 100644 index 0000000000000000000000000000000000000000..9d12a1e827fd4eb0ccc52be81c7b3e512058e7cc GIT binary patch literal 3708 zcmV-?4ukQDP)*K-FC-zC$V#LLJTC3J7kF+lK@$U zpdA6jc-YBmBwo<+FcBm1GAkYsEGr%u%?r{XMw*d$*pZM}F&0F_Fq<86VFC^iVsgPD z4si%hV&~#coQ~6W*X8U(m*c9A9e2B{tD7XhRPv=S=dZ8+`p$q2 z%YnOqML;7^4Y}#}n;qfnNhp@xzvPf#0T*ZJ$>h=y;-i3-CfdQG}>5 zpgL1Fit20(j7d+u7kDj|YvPI(`HE zXiDdNem2^|i-=HfV4SUiConsfP35CYfaQ_s=98K9JI4aE=y;<2Ne6Q4l>KB%$2`^Q zN?nxLFB{7-_BR*v6|KN;oO3U|k9Hb*1z71v4-t9%J>>Miy3B3?M)%WL{WGWhwV`F5 zX!ZZ?`JdUl1!LE0Kd#vU;N?`Z?Y)w@4#!=*>gy0%&OmE80y5?NJ%|V=F!wHlRJh-*Z>8IMOftL&EAZ4DA8-SOJ@yXW{qq7B-ad{#!gx>fG zMD4UMcM-N8pNzgScXwOfIg95%jL^ozg~CF`jAqgdy>*HA?NL8y6u0WL_P z-|;EPz8rtwObO))hfVRIoe|%2lvs?8)!0`a@>*!a$B4OC^7_2q+>MNXloQTv#O|I^ zYSo`}7)>3tle>5!koap@Vx4RO6(6(e(AR`kPM&TM(@pfbd&tgiId@5BHO9Vw3Mxc@ z!C^IJi~cpi&46Hj-h@5)u-B>++tHR?fAkw#yB87t#B0rc8&KyXL8;#8uqqt1lj;mS z3uhc@0c)X4!+!MJJ0^_ys7dz}G2kp%9ZJ~^!1|nEz)_FU;X?xJ``^pt&DD*|2f;>O=IrC18 zu4c+CTO5XyTJ*D2z#N~^u>yN2r(>+&iCmZ+s)t&-kk#A0)_m?k?Biuuy~bfUF=)rX zJVPajAuzvd1vLgv=-uecK0_ojXmfT0)|fR9H)HI*hYFEra(#8KML$giEeWtX8?i5X z)7@I_cETGzKt#Uufbb#9tpr@tzmXx}ut{7iSf@TA|DG_-QN$NH?ke<#zows5Qd{66F(hY{00yVkv2 z_-CwxbEc->st=J>JH|$)C%0hi^fe3oB(N>lbv)*OoaUWZP%1C0Q@Mv43@NLB-8j}f z2lL?CA{5M-_fWpCCwk1|qn)L*<%sg#K<#l3YxH+x&)pW5S4BI$6#HZ~6)cSo+p8A6 zvCM!iz$BY~%K*bb+BvQOX-qMqGL4>v0`_3j=yz4JY;^nR^<{=UdKfuBZRdRw(3DkG zFWl4SO1fVc6$*MifbMK(XbGZ45gtNYdJa%tcOg_3u22So45-oHjqH1cKp};euEPad zL{gTvbaWC{NXNGG2QJJYPP-+ZXcs!!JtMIoTGVE~jW!eE>V@7wJL9&(_(WV07N2t~WTzc8*uWJp;iAs9^-@$ofAwirB8J={#%T z$0v<_EdwZOP+~d|LlJiR05Ms|7=GYAWYtH3#M3(2&62^yb+(2YhzJ+tQ5eegKRFuC zIh|$5i8R7M?rdvVoxOU8*sgFe->@U7Q?J)4Us_a5@V`;mDi^kx*6jhU&3J$Iw4Zm) zP?-j$hUVJVxkh0foCj9Lh13b1?6%)>%S6zH$HG-kR#yxO5&kMH!ay}>_0v#IYn63j zDdxTvm6V^Z(g|vTa^cY3u0;USPA^4PpSsQ`hY_)lg&zADZPqzY zx%W1&el-TjF}P}2hjdBSgN%rHqJ4nM+d7<2V#+HK8-3Mrv^fWatlj})I48DTfbreG zVs?~e$}6cwqMM)n0fH9S9F`FFsf4hO+znNCAgc_7e%duS8APk;g=i!8>AIlxJ*7pW zoBxgSB>hV_06jSaJGBHk(?*1QJR?C_dluVVj5;3+Ql)Ps*&U)coY=k9Wd8nB>iUP-n*&J8K*vd+l%P1u)y>`igRb`omd7o;l3CD|H8H?E{5nJ+e> zhP{)!a@G#yZI=Rd9f!EVMfJrnzI_DjdY211hQ4HfP%0dfz&^4Qpf|KwU(LrJ%-LpF z`z4~*D0S0UfPK;_S+<9pK+K+dz#g0X5}_{i<=v%jc26qVb~Q`0`(^-b9iD|frq=E0A z-uMQQNB^(XzHwsMc1~7UE6H$tzq>SNZu0eQzgp2-j-bu_GwyA}p5DIhT|%t~%i}+C zCm>Ww?ko?>T+n|aTSl^I(dxUd%?anio>`tjsgUU$$L;$>Q_^8MK4_<0Ql5x(p)Zt%_-l0_Te+tTR8K7`8PV z^WdFLPUSwt~y972E;dei3c%M>(C~8qCg>el_vhWVNOzy_`<{}ft!Nk~yy^o)=xdM1v`%k8UGQbu;T!qXn9ldUc@@~|hgQa+)|~1x zpw0Xr!jJBNu)mfq<_!^UeIF6aEjsuZM#tTLG_loTGkN@;&zmyocZMR-%}2>@EGjA< zQiBmxWH#E2W7(|@j$e_nLum6g?91~ZRs3>WZDk+fRa=pc*vN5eIA0nn5L7Uf)sIA8Cn>nS51!CS1;rlxX zEoeuCzxKA9Sxx4^&rm0(7Yq3-;Kfw3E$=D7f|hn>((fFLL^q#tLcWG#G__AOAZq3z zT8doFWTxYspbY`HlfmsQA2Z4Mhs+eiWYk| z*1*FUpWL6FSt;HpzcSV5Y!ww$IrWoY!jDS4QW0wHLTk9T{AJ;tKpZ=@0rPnCl#8Z} z6J7jQD%tjB5owm*2luLw|@{kE;$G`VIR4 a_WuWdZ4sNmMg2zr0000cI%SMOzdQnL2`O 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 literal 0 HcmV?d00001 diff --git a/src/assets/deities/Phex.png b/src/assets/deities/Phex.png new file mode 100644 index 0000000000000000000000000000000000000000..337ba553df0bd187c908a334f5056baf55ac80df GIT binary patch literal 4350 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 literal 0 HcmV?d00001 diff --git a/src/assets/deities/Praios.png b/src/assets/deities/Praios.png new file mode 100644 index 0000000000000000000000000000000000000000..7215213034d3c3b8a001cf533f323a8e03df96b1 GIT binary patch literal 2234 zcmV;r2u1gaP)^iWIP%ICIL0Tcwh`L8h8*G3JeDN z%b(u{ZU8O7MW6{d1snq!fWxsws=HXOEmQ<>X9BZ;8NidkAeRo^2J8dsfZee~YERjL zPR66NfqB3ju~;2y0(Ju1V~NzRk_DZNM@Iq+fd#+>pKqiiz*oSgSR!?yBtR$Q(Q053 z@VfZfVp0pR5!et*q#FAqXtCfWz+zws#jRGL7Fg$%g@-(X{3h@&P)*-bBd|7>NPSw= zpp)_F6ksVZpT4avz?xVhb)e`#C*#q@!224b2pv(%>R2LGTNI#^@#t`18SplxsrA6B zSR&Qz8|Y*_IvMx?m`iDE2e2}hNFCA+T9S_Cz%3OkgCyZEpSE!oPl-^;~~gmQp98Th!2e6kat{f^TCGUO2QaNx5t zh%WMpM&57|`h^`Ha9IG^Qgek(;TA0!-zNdnjCw0u1{rctyVz1fX|`ut3_k!-GG zX#m-gMhmOleYBK1=LZZOYrZgZ?mDDszlXk8Pxf1lz)Y*j13Qae5SszwD{%*(r2qj0QUz3GwL*Oz300YpvLU0BWZuW z5UV8t<4|R!&VZ+-BEYs@poa>}kL*A%usl#3&;|4hm|Cg}_~)*lE--@*o7~21>{bw6 z3s`2=^}BvDL73h(7|ydjNHfmMPvxj~+uzKy0zD^Vz|s-$wAB^c-^}R+T9(dcu4$YH zx&x+nsRKya*Fc1Ak44YQdcdRN^aJ%)w*w(BkKWA0apX7?xjxP_pEMp20%!* zGhD~XO8Zg3OF%`ym~IJszX0xJ{L40=Dva7Q;%qy^IpEhIap{Sjf5-|MVLK^;+L+^9 z`+DTxJ#D~lc|8Ek#@#|# zmq1RUHrVB+F%b%x6Wjxw0OF_}fRO?(<`(dcW!)e*T>`!Y#sbf~;8r?;vp~W!)pnxM zp=3OIT>ho}6#^y$j|%X7Ec_3#VlVUxs??jS1sfmQK{2TObt06EN3Y=KZmBT>d<0M_ z|8OV+e8UZ$^mqW9irOw}=L);zYgnxIEO0nudY#i~6A>G9Pp9OC3`)k}G*AYte)4sg z3~<|W8ol$^eu-F~7MRTvy|jyeZx@%9aul-Vs=*Qd-&^gzu1o4}WnDvnt-#+J!?Gjt z;XWg2bAz@s_xGpx*hpr^Yk@S4*f@A)uSJUh$2H&u4on+lE7Bl$Xo%S@t~P9ndiAQ_ z!N}i+suVhjP6mjNcT&RrP5afJisV%yaYGlxC5*~Yix@10tC$p+?ugGdvdxgVpaG^V zG?Jxe(WpJ*05}%b8n&nF=PXuj#M)tjeyq-CS=Iy4^jXrTL!TczT)*m_KFEDrB)vm&D5r7U5o{WQm&M zXQQ#9*<+!nFVioY3jWzGc@V;Tdv%v7Q z_nnm3I8%}6Rf)ILgRallDKOfmOO3!mOf_DY;TR^5wbI_OQF zrVxWHA`QcuFMD{&joN*6i?Fl?ExU*|dUnAxY%Xjs-b=4lZ%p4kYn3N$kQ=fztXaQR zw+cftf|ebhwIyZEdab(Fs&lVh=D$vC!27uQvPRI}TXmzb!x3olFKb=9zySiZ(-cm1 z`&3~uTeT6JUlz+QTx;#xBHPxoq_yuBS5AK!*bICp$w)Ww7kW#i=~mq(8RTZvYN^7@ zr&}_$L(WzzUxQj#1nI!Yc5yZct7?t4&cILx|+ z&czb?8g-js2d(FIfEL)n!xVIY7TCe#L3DsN0S_K{qXV?S4j$p81GEWv@K7=xpapjD zm^~e!O~8W(M-n^=wR9eZnjzT<9`36d`b>hyRcnV{vJYVY4~E~EuvVPl+5i9m07*qo IM6N<$g1X%>!TmF$scA6QwP^C91UQ zLsjLWeW}!!O0CrHw(3f*x>{9RwW_pT)eq4&n@U@$TB%Z>@(@LRX&>5E6-6{5lr(8b zNJ!#9Lb#c5F*e5b?86MfV{8~3k0CIB$wD^vTz>P-`ObH~^PLgcKnnW(0`M5n2KazR zUXZJ!UlkQ7&rnv4Lkuj3bg4tpbIzy z{NxP;{ z2mO8z@FDPLHm8mQpLzpf8cqBqH7DI~1 zK@<^8CQLRP7N-+?RTZMiRP2`hK`v%Q$N};J;9teC$qSJPvqM8fhlhy`4I$0UtoVJC z$AfkIcI+MxW!ttPh+?s9_Pbg;NI@fH5AYwoy^Dotl&S02nd|Q-IX<4(HY`m|IGdVq z?c9kV=pM>B4ZNwv^)qYS;D>rco(cw;xpay6-MeeMSOWt*7#JY3Zy)aVc1p_2^*rpC zfIG-Bowc=SWyJSyy^d5$CKFh&dUVxVT8g!_l#0eiroCQf`ukb9absye;V@HY&LEi0xEdPt0=+|F^-9(b zdxh5gmhxj=6zc0E{L3$@&qS9C*HceXwQnD0n=Qu?fk27NMQK9=3uZG5_wFtIFCHg0 zF@d$N4vWK~*D3A&OK0ckv9o8pGyPM{0=XVJo~(<)BO}aSPY7j4nYWK3PTqUykevN9?T9l}{tQ<$9y z0#$qW;y8Fv?UCHL!DNbA(LpWQJP;v6YiQuyndOe7dNdzSetS5%%z{R=N>HcgRGh}pqGBtZZ{K(N`UX>MNe z6oEtObC8)j!#7xAjxQdKs%)#Nt`4cAL)*wlk_g|vt?tZPTBzK;TbJe~noPJ_TN%4~ z6Db-6ATct+bTEi}&mL`l`P>}gt}Y}%0<3%Xz{;Rq3d8ranhwRjysp=MH8(LqEbZ1U zZEn_e$n2=D#@^PZ`Yd|)E=aj0F$s&WWKzr5Ur)Ey>1X&FI;I3f#>P~G63eb#lyBRn zdr-o;L+zo)1_p>sPUddrFAkNj zAib0v8zVe6ruS}MM9$QbO^1>?yIJxvHj;KIY#-X_BL)-QbR^YuJe~KT!0pDF=BH+} z(c$ywA;k}M96X3gV~{64J4>XeXKA2RTZ_Zz(|nxs!^6a`UtjuteLaqq2Ojc%XJ&}} z`s-RiKMi13mNPt&caLth;`aGgoi>sriRjP}iIf=>o5!O$C_ghitO70AY*e+jYCg`< zXp~sWd)v;Pntne$G_+RGPXzsbK}23N;?Vp45d;BCRh7DxrMY{$xt56pv9u{NOKEAb zOosz_OhjIoQxsV%E0^8QlC~l3niL)#RnJ9QEZEX6y3T47kyk$zMRtz|!D?Nyf59Nr zckbv9I&B{%O--6+Zwe@%h`hwCIG`&lv8HuEv;F7=5ua5tAE zNsRaQs$4n%r_YydMm-~Jo6A)QGgB*4VgMACi>+`7T5v-0$jQ?wmTs z!c

yQ3r1t*Lywbeyc`WL%)jq#f|nQd*w zR$GhR4==f=m0j*k-^8e-w*&E+A2swyg{J(Uv4a*RCh?|lvklNZ$>V~uzsKg z0k_XbNo6GuE?-uqb3G&xiI9jymVcHFvXWL-xo;m9yIu1o*Re&1&B*Ja*L{t))8oNj zUCmTO1L1)I;=y3<8!?%%wYE~))RdEbPqEK>+31iNxv0o)Hh@HviOS|?T#b#)-n&P1 zbd=cr`zz;6TP#?-UP?S39CdX#s;k+68Z{%QoNg$IW;5jt4U{)DASIJTA3R_t7*x4z zqT5YnXD1~t7uLc=;shOCyg@T^d7KR^K@_pO-NfhTNu4GYOG_!!FDInX_WG8HT!UyU zE1QQ=$ku(;j9lo+kQ#QO-Mh;o&;!gFoOJ<=!nQ|LN|tpQjCJ#&yS#ybv>0JIV{q0D z_!(Hr>-foloAGZU^wUGoO7XoxqcIoWe_kwXm>Qh@&S=#I?+hO@O$B|*Xn+ORsb!#* zk_Z7_R_WrKW$ zyeQF7ewtDkvLa|@#pelwSKd02sd8_&{H8CE3!)mzP5lZxG=Wy^%Q1sn&N`N@EOOS2 zJ*BkoNrRncom{CL@@lD(pJT*8v}jOaMP8tl8bO~K99Pw6tJRubHQ86Ges$bnnN`QN z)R@+qRsAV)F+D?SomSXT5YS4c!cUOPL>iKH7P+SMNWnlWurDB2+3htLKP+#oxo~$* z3o?|j-^a+MeYdK9BaedJIj?+C>L!1*MO$_+dDM>13v>$X54M=iK8sv4I7hncOZJeSfLyt&E!?BmEaqA#pvBWqs6qPREj1pWR#j0fK6)1ots zAYW#41fotNmnkk-T)v>IvXt@uE5<{~bZpUSz`q0z1OMRBm=>E-j`gq}kPF_T(_jw+ ze+&Bk|HXK4^(CuGh7Bd{r=l))?RzfZ=U_E=dzwPUNj*jilP_L2j~U#0J;L9Ksz81Xa$Jo?h;T8 zTm!BE=Yi9}ao{lUlR=WIn#y38E84F%p;#Of&1* zri5$2VqlR$l1?^DqRkTg-@ptYfToQCU_S6sLrJ*MKqNm4EHLX~ElnR<;9lTCy&%X& zS>E5IB|1?Q?*bBmhiTqe2N(>Jl-}edI#Cp703QN_X#R)-M(72h%qYwInuJ6rieh_U z4)8p;CO!t^(NrmH5$4;^9=d>_XBhQqV$50 z<0{!+ZmNserb0s7_;_N+jwP@|2Xy}ac(-VQ*s>*ZMFnLh6Q<%~@^W%Gv~3&Nt5&%@ z{*=^Iy2Zrs^|ECcXU@FQd=Plim6(Z_3nce7n{Rh}n%u})v$$*YXxfK{64BSbMx(*M zO&h{{_2Q1nlQ9Jcb2&9tA<5AL2P#Oes;VM0BZJiEo>N;RTB9s)tFuI#J-+|*6v^>l zeo5aUL-1+U%3+^!Nun@6pW^G+DVHQ9lL=9)#k)ldTKW6q8xTNCt>chOS!pSU_wMD3 zi4&Rd#TOQJVNLSUefwB?@4b$Oc+Mb6^W7%e9J^RY;|1p}Xb~RH0q)QiczP@(*73SyT>+kO>$xxkCc(|t6 zNNq%a;fVl|Pi!ntE?-XA?YG-}W-2M+)R7~6_vxoxShmdNu>(hrWW?;*bc>0>*WbU! zzD|;C2}Btr=@FNSHitUrH#W)MVPQPIbt|1CBW*sraOxB(3l{L}hacAYIUUB2XUvN) z(xpcayKhWYRTW3l(^+=keXa~U!yrkYI8C%UXrBs1Ha5}I($eVBr;m+kcF1UC?Su(b z=H}Ym;~y8tJEnZ_)lwlzlol6Ln3sof*)pzf+-UcCPZ*8#?AzC-y{Mpo zH+%N9`@9-(5{R>xJa9zx{{SyHHpwGatYGliu?SXHg=8|ZXUi70O`2rW|GxS2={~kh?z8rs?MFcu;ZpvcWCKSg5%=o5EiB&yKRRK(Pg;uJ?=}3AyDdWd0+6FIJz(X@<(kUXsu5PW-#Paf@eP}47rcdY5 zZA#O3)dLT3_{SfqtgN)OiCQgjFwH9iF*s>*k;^KJx`|lO)$#HRrOJ@%l?;W$awJ5;^g0N>y~CdU`Z0FH21WaZx8J6ypg{2! z^wR5Hwj$M@w3_INjUIg)J(}CX!xe33jvwdH>#yJRb7#+H@VIeK1&>@MyYG-841DiB zOIyy`wfy?aFN%KcLqmzRnvav1XqRYn2(-~-%yHAFqg5|}>((jy+@Fv@D?h&mdA_LC zq8~jPO;C`f?dzl@N{WhZS`30f??3#()uDTvIkl1KF`kHJgmmqyxW01nBFEl+*K*zW zt+(hD5z(M?XxFI|!#?=Ha-F+n3)yGS+DNq<7-NsAUdclASWs}Ta~p*a5<>88 zw>8dM5fVc1*s+%D^i`{n%F1pEg(wpH;DfFX8*1j(BGE%Up*A|l#3&qu(&AzcFIi%_ z?w^>5U+dP5G8a*+WuTQ~l)Gh%!ukO4x6QIIzt^VkxVA#eBE0s1}2K4 zmxk(^5uGQ97QDR`*VgXu4ZYZ?i*w7CifdVxYn-o>&;flkR2SxW1af(~@{6c)fn}wo zjXEFo^VGyvsOIYedTFSxe)0&^szOxd^-QX8W<$eNQleB{s`*q%lDk9q&`@1s<`ER- z4<&& zam#haJMWP1T86`Ilol7W=jMJ5Iwd6Fr?QIja&p`qK2$?>v7|@vYjQHz^YfKIeN4# zDEe$oN}`~FbahE#A>Sn@E86aV>M5Jt<-X0E>*V2U8e;PIFJ8>EpM1iI6)S4DJofD2 zoJy)gyLCfvwRaSFuczmq(Tm1ZwfAIarjrB%$ zxg@cF=T5${vT`&*L5z6%X@xY)6%`!#=9@aZ41!(|W&u9+G5MjNe@@&(4_PKE2m&3$ z!zu67iE}9_4)4p`w~w$G09%FqM{4R#L*H%uEiv`>x$RblzcMj9<2lsQ&%& zRt1nw{QNVY4Xn55@fxp0QG6SC$z63Zc4u4ZTR z!-fskMLTXI_Vw2pGGPKCojconb}loM1tUi~J#Qy4&nr*!GyjU1`id1Q?#sj2iDFhIG}zOs_5moL*gD9COCK$c~$ zUB1l4tSrv_@(VvFC)-^M#K=gZr%vVee*FmP+Lhpt5WATYxuSxT85t}aH_qWa>wtb< z=2TV@E@oM}&z{Z0fBh=~fq@pIeo;aK54`vy1BVZ{`7(|q+nyv_Zvwyj{r8D`^if*Z zk{C6Wlu%MsM0r^m<&uQADAGa{(fRtK)#+-?Jr)%d@Z_|vx5a$!{6^ycsUJ&lb z#kh2CS{he?h&%5jH#^&6U7T3E7T_3@eK$-=j%%gQFKUhMR_@=jvQgt ztFMyr&wn;lDCK*DBrO#H^nwrp40d&d+_W?DaPD8R2>yJ`aM=vQZ9DkkM=WTPyndVysF&93@>!szwu88B>^jn4ipJDaxc+uJ8OF0R&bef4_c{`_Y` zBO?iH-yZ+gt!rFFtE#FfDk$LEl`CXtWs$mYA=hf~RO=Z-43d;;d8ZOZ@f;11ZHfQ# zOS?K-O@s^8PYQUoYDM_esdO7KfPmm&i}NCxOvtiK;k9d=Ie3th$;l0|$kiGJHb_z! zSkB0s?$}{Nc6d}2(^FDx$o7ei<(`i}ZcaomR#(s36m;qZ z;Vh7V69t_E-+PadPd>>Vg9np!`Lf0EcXZyx(f#`^9^Z*IYiQNCuU!u^V)$?lrle3= zP=HTtEYnx6B=)}h(Dv?4rmDWB38DaaR$b6(L$pzrbM=DYPxV=yHIh7H>Qr>TzUch? zxP8C?vMyg{^oJihecr{1wQC)c9X@m@CypH9$H+O%z}XuqD9hhIQ|U3H;$tDW&6ujl3A-=>W+LQ`1Cg6E$n$BCq`2jH;i z-tL(>Mp-V>3xW*%(QYv2$`wii1L@MMmm;&GPA93=g(EmpBkEYUWHRyp8#i+3t+$%0 zH2=dONp?dS4i6_X%JP1_AoQa8KvWxK@7zgYK!6R|?s|NV)QC07sb77?w@*CLR7qZE zkR*qhh#F6UGB1oHa8QJwy>lleZQIi2jyn)l(X_(+eAd498pTJCIz7{KCr=U+A8%8< zDVa>{UcbI6lYAbSX_V!QZV_#i<%@bjD08Gj04{y|ErtI6cGXDapg{_2q$b?3E<#jJ zOEZvUfWI3gsm2gSt>>BMX9P5o>FtCbDmktgeu4CM17skfb+i>*Va- zyEmymOwS>Hnlp!OOO{ZqDjC!H`O&F&%_Ziy-Fq*7D(j*ds0+-Tyy;9wr%viK%5t$@ z5HhJQEDCj2jg%G_^UaDC{5X4d&Hie7x+N{9HOG>hfg~G&mkg4WS#Ly}$QiT_X@Tt6ts6U%lS!L3%c=2m)6)3O%Ztv@(WIrMG0&@(K^nOF9zDAVf*IXsp zEuyW+J`F_R!Ky9~=;S#DN!sep&2ArCYn0_vdO^rAOLg~Koa9aBh3^M<2dLBez~%*V z7u6xvyKYgEKL!$=wJz#yF|1*coI&-j)LTWBoCoIBc3g3zNVFXfau3kPQ6Q=rVI45j zokg#~C0Zrj&jK^?z#+1A#7W?NM@o*_Ms-~X<<(Mi8$|A779ZY(ge+8wSi00000NkvXX Hu0mjfd)s^u literal 0 HcmV?d00001 diff --git a/src/assets/deities/Satuaria.png b/src/assets/deities/Satuaria.png new file mode 100644 index 0000000000000000000000000000000000000000..ed5fd7c7c238276a2e69cfeea0dba64b771a3a12 GIT binary patch literal 4229 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 b0`~s{XM+sPdefXX00000NkvXXu0mjfv8gLx literal 0 HcmV?d00001 diff --git a/src/assets/deities/Simia.png b/src/assets/deities/Simia.png new file mode 100644 index 0000000000000000000000000000000000000000..d777fc1f45b4b266efaa92dcb7bbc8b7bcd81ac9 GIT binary patch literal 4415 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 FV1gjMx=R26 literal 0 HcmV?d00001 diff --git a/src/assets/deities/Tairach.png b/src/assets/deities/Tairach.png new file mode 100644 index 0000000000000000000000000000000000000000..fe6d724fdfa9a1a29a100e3a028d7ed7bf256726 GIT binary patch literal 4710 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 literal 0 HcmV?d00001 diff --git a/src/assets/deities/Travia.png b/src/assets/deities/Travia.png new file mode 100644 index 0000000000000000000000000000000000000000..3c7ae5d4c600b4715ed84b719d4d6a7f86f5d2d3 GIT binary patch literal 5121 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 literal 0 HcmV?d00001 diff --git a/src/assets/deities/Tsa.png b/src/assets/deities/Tsa.png new file mode 100644 index 0000000000000000000000000000000000000000..a1e83e492421c6aedabafd7be2fdd764cea8a9cf GIT binary patch literal 6382 zcmV+)d0gquEHP}ML+^NBBEdfFR0nb zVkBh42}+XHC;?@Y5KYz-#Wh(I)UbefOUNopjEf23;4zwPAPFKt0X2vOL5#yi1{`2u zrmDJUruL7np04`p`>J~e5t6NQ=0Mj}*Hl0C)_Zy0=lxo63T?abL~k?R%KzuLBz}dut0kp>;=hbU`=hp7!d>^s{ktqrf$CsvMX7*{Jy}s z-fT>=42z{475n}nfcB^!1m;a(dO#bgSrhqhHQH#M6 z(mcU?V*B4E&>rvh0&^CaGr;HwCV7zK04wGeG8!;-mhTA2dWF|b1&|@-|7&stlf{@U zPCB=h-=c;u7@ z+T$;yz?=i-DpRn5tN_PTTe7PFQ?+09R5S)HIS8`p{{$^O&2lW}u|#Y* z<$(71%M38@1hcZuAS(b1T5N*^s?LWyah9A404swWcr8q-J(K%+NGv`jfcAK;2bgz( zIkRx3InxM&tjY-NK-!im!CmN5I9=M;;*(7YWEp59@PGMtDHdUJAKwxCPa4o3ubmI( z_rRPegWQDC0zwc-M`L}V-}&w%Tf~PuF_x@!7eOG?k|kRTunRY4B^LMcHL#-MPc9`}$V%y%>xF%|t9eg;UsDQ%37#2au|{BDFfdv^$d=NLyn)4B zt`RFvIM5!iO#*W+n8Q^*xfC9vRG%Dt--uao(UoAegJz(<9#;JtR{m6B$(G*t-f=Zt zG78GebLXjRfSeS_$$5g!w}}Gh)ekpKNQ=v0^#24&={0 z38TkBk6w^Ug|8=*fxUa-rI%plEd`K;30|QXp+kH4$sI7}Lg>*0l4arZI4)Gzz%Ty{ zcka~q@o<*%25IhKNa>u3Xob5tAIt?{T`Wh7Qi~B+K*lSr;w!6yZ$1TshCrf7Bx!1b zH{XOWPJ`_S!j^p5V0h$yIBOt?BA+(X2~~{m!aRl*15HJw!wv;fuo7sC0=j_JpUL}_G!ga z>%r@PgHano1&r*g^RHK8ax?9Ur+y`79oAh1kgYJtLR};{6e>Jd!ClxfdGhVcS`RY7 zkioF>X9Ylh`lHr?3^}W>>I=UdrU{5fX#Yek?keTH$>P@h){JN|QphgyU}js9UF0pk zQE}{fcfgS0ZO`p57zsCD34_jr!Gof|KXe4Pz7Km3<$Qj>o^W<0SVrNPvIJb(4=$;N zKP9DXM9#&9I}`8lJBUt;+w3}g?qYeatPbYMsYu{+6a|Ma^N>@x;JNPJ0OwwCeAVio zUWLw`VAv3;RrVo#^GSHFE*#+Q9|E^r0v)aJ@h|R%&m4@Y9z{Nf%2tCt8PRt`8(oJv z2dv7lPfmr33#BD{(E`Fo?W<+(;`GYn=N0-@LhsYV`x+eh(epmY;m4ml_rd?}jGkve zg`#wif(+P|;LK^0kM^m~$@vhQPvPtsqTSJC9yWSEp10_%0Ao0`uQ-07J9dPM_Thci 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 Si=NK_0000 { Spell: SpellDataModel, Advantage: VornachteileDataModel, Equipment: EquipmentDataModel, + Liturgy: LiturgyDataModel, + Blessing: BlessingDataModel } CONFIG.Combat.initiative = { @@ -97,6 +103,11 @@ Hooks.once("init", () => { makeDefault: true, label: 'DSA41.AusruestungLabels.Item' }) + Items.registerSheet('dsa41.liturgy', LiturgySheet, { + types: ["Liturgy"], + makeDefault: true, + label: 'DSA41.LiturgyLabels.Item' + }) return preloadHandlebarsTemplates(); }) diff --git a/src/module/data/blessing.mjs b/src/module/data/blessing.mjs new file mode 100644 index 00000000..aeff57d3 --- /dev/null +++ b/src/module/data/blessing.mjs @@ -0,0 +1,13 @@ +const { + SchemaField, NumberField, StringField, EmbeddedDocumentField, DocumentIdField, ArrayField, ForeignDocumentField +} = foundry.data.fields; + +export class BlessingDataModel extends foundry.abstract.TypeDataModel { + + static defineSchema() { + return { + gottheit: new StringField(), + wert: new NumberField({min: 0, integer: true}), + } + } +} diff --git a/src/module/data/character.mjs b/src/module/data/character.mjs index 00238a65..dfa814e1 100644 --- a/src/module/data/character.mjs +++ b/src/module/data/character.mjs @@ -107,23 +107,7 @@ export class PlayerCharacterDataModel extends foundry.abstract.TypeDataModel { }), gilde: new StringField(), }), - vornachteile: new ArrayField(new SchemaField({ - vornachteil: new DocumentIdField(Item), - wert: new NumberField({required: false, integer: true}), - })), - sonderfertigkeiten: new ArrayField(new SchemaField({ - name: new StringField(), - auswahlen: new ArrayField(new StringField()), - })), - talente: new ArrayField(new DocumentIdField(Item)), - zauber: new ArrayField(new SchemaField({ - talent: new DocumentIdField(), - zfw: new NumberField({integer: true, required: true}), - })), - liturgien: new ArrayField(new SchemaField({ - name: new StringField(), - })), kampfwerte: new ArrayField(new SchemaField({ name: new StringField(), at: new NumberField({required: true, integer: true}), diff --git a/src/module/data/liturgy.mjs b/src/module/data/liturgy.mjs new file mode 100644 index 00000000..87095a4c --- /dev/null +++ b/src/module/data/liturgy.mjs @@ -0,0 +1,49 @@ +import BaseItem from "./base-item.mjs"; + +const {BooleanField, NumberField, SchemaField, ArrayField, StringField, HTMLField} = foundry.data.fields; + +export class LiturgyDataModel extends BaseItem { + + static defineSchema() { + return { + herkunft: new ArrayField(new SchemaField({ + name: new StringField(), + grad: new NumberField(), + })), + grad: new NumberField({min: 1, max: 5}), + reichweite: new StringField(), + ziel: new StringField(), + wirkungsdauer: new StringField(), + auswirkung: new SchemaField({ + I: new StringField(), + II: new StringField(), + III: new StringField(), + IV: new StringField(), + V: new StringField(), + VI: new StringField(), + VII: new StringField(), + VIII: new StringField(), + }) + + } + } + + prepareData() { + } + + /** + * Prepare a data object which is passed to any Roll formulas which are created related to this Item + * @private + */ + getRollData() { + } + + /** + * Handle clickable rolls. + * @param {Event} event The originating click event + * @private + */ + async roll() { + } + +} diff --git a/src/module/data/miracle/liturgydata.mjs b/src/module/data/miracle/liturgydata.mjs new file mode 100644 index 00000000..31732332 --- /dev/null +++ b/src/module/data/miracle/liturgydata.mjs @@ -0,0 +1,115 @@ +export class LiturgyData { + + static ranks = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII"] + + static #ranks = [ + {index: 0, name: "O", lkp: 3, mod: 2, costKaP: 2, costKaPPermant: 0, duration: "{*} KR", strength: "{*}/2"}, + {index: 1, name: "I", lkp: 3, mod: 0, costKaP: 5, costKaPPermant: 0, duration: "{*} KR", strength: "{*}/2"}, + { + index: 2, + name: "II", + lkp: 6, + mod: -2, + costKaP: 10, + costKaPPermant: 0, + duration: "{*}*10 KR", + strength: "{*}/2+5" + }, + {index: 3, name: "III", lkp: 9, mod: -4, costKaP: 15, costKaPPermant: 0, duration: "{*} SR", strength: "{*}+5"}, + { + index: 4, + name: "IV", + lkp: 12, + mod: -6, + costKaP: 20, + costKaPPermant: 0, + duration: "{*} Stunden", + strength: "{*}+10" + }, + { + index: 5, + name: "V", + lkp: 15, + mod: -8, + costKaP: 25, + costKaPPermant: 1, + duration: "{*} Tage", + strength: "{*}+15" + }, + { + index: 6, + name: "VI", + lkp: 18, + mod: -10, + costKaP: 30, + costKaPPermant: 3, + duration: "{*} Wochen", + strength: "{*}+20" + }, + { + index: 7, + name: "VII", + lkp: 21, + mod: -12, + costKaP: 35, + costKaPPermant: 5, + duration: "{*} Monate", + strength: "{*}+25" + }, + { + index: 8, + name: "VIII", + lkp: 24, + mod: -14, + costKaP: 40, + costKaPPermant: 7, + duration: "{*} Jahre oder permanent", + casttime: "", + strength: "{*}+30" + }, + ]; + + static alverans = [ + "Praios", + "Rondra", + "Efferd", + "Travia", + "Boron", + "Hesinde", + "Firun", + "Tsa", + "Phex", + "Peraine", + "Ingerimm", + "Rahja" + ] + + static #aliases = [ + { + "originalName": "Handwerkssegen", + "aliases": ["Cereborns Handreichung", "Hauch der Leidenschaft"] + }, + { + "originalName": "Heiliger Befehl", + "aliases": ["Wort der Wahrheit"], + }, + { + "originalName": "Eidsegen", + "aliases": ["Lehnseid"], + } + ] + + static getRankOfLiturgy(liturgy, deity) { + const lookupData = liturgy.herkunft.find(p => p.name === deity) + const rank = lookupData?.grad; + return LiturgyData.#ranks[rank]; + } + + static lookupAlias(alias) { + return LiturgyData.#aliases.find((entry) => { + console.log(alias, entry.aliases.indexOf(alias) !== -1) + return entry.aliases.indexOf(alias) !== -1 + })?.originalName ?? alias; // cant determine thus simply return the original query name + } + +} diff --git a/src/module/dialog/modify-liturgy.mjs b/src/module/dialog/modify-liturgy.mjs new file mode 100644 index 00000000..7228e3a8 --- /dev/null +++ b/src/module/dialog/modify-liturgy.mjs @@ -0,0 +1,89 @@ +import {LiturgyData} from "../data/miracle/liturgydata.mjs"; + +export class ModifyLiturgy { + + static data = {} + static naming = { + "range": "Reichweite", + "strength": "Wirkung", + "target": "Ziele", + "castduration": "Wirkzeit", + "duration": "Wirkdauer" + } + + constructor(data) { + ModifyLiturgy.data = data; + ModifyLiturgy.data.maxmods = Math.round(data.lkp / 3); + ModifyLiturgy.data.variation = null; + console.log("ModifyLiturgy constructed", data) + } + + static renderMods(html) { + + let result = ''; + + ModifyLiturgy.data.mods.forEach(((mod, index) => { + + result += `${LiturgyData.ranks[mod.rank]}${ModifyLiturgy.naming[mod.mod]}` + })) + + return result; + + } + + handleRender(html) { + + + html.off('click', 'input[name="data.variation"]') + html.on('click', 'input[name="data.variation"]', (evt) => { + if (evt.currentTarget.checked) { + ModifyLiturgy.data.variation = evt.currentTarget.dataset['rank']; + ModifyLiturgy.data.mods = []; + } + this.render(html) + }) + html.off('click', 'button[class="remove-mod"]') + html.on('click', 'button[class="remove-mod"]', (evt) => { + const {index} = evt.currentTarget.dataset; + ModifyLiturgy.data.mods.splice(index, 1); + this.render(html) + }) + html.off('change', 'select[name="mod"]') + html.on('change', 'select[name="mod"]', (evt) => { + const value = evt.currentTarget.value; + if (value === '') return; + const currentRank = ModifyLiturgy.data.mods.length + Number(ModifyLiturgy.data.rank); + ModifyLiturgy.data.mods.push({ + rank: currentRank, + mod: value, + }); + evt.currentTarget.value = ""; + this.render(html) + }) + + // render state + $('#mods', html).html(ModifyLiturgy.renderMods(html)) + + + // state handling + + if (ModifyLiturgy.data.mods.length === ModifyLiturgy.data.maxmods) { + $(".editor, .editor *", html).attr('disabled', 'disabled'); + $(".editor select", html).hide(); + $('span#info', html).text('LkW lässt keine weitere Modifikationen zu') + $("#mod_rank", html).text(LiturgyData.ranks[ModifyLiturgy.data.mods.length + Number(ModifyLiturgy.data.rank)]); + } else if (ModifyLiturgy.data.variation == null) { + $(".editor select *", html).attr('disabled', 'disabled'); + $(".editor select", html).hide(); + $('span#info', html).text('Keine Variante ausgewählt') + $("#mod_rank", html).text(''); + } else { + $(".editor, .editor *", html).removeAttr('disabled'); + $(".editor select", html).show(); + $('span#info', html).text('') + $("#mod_rank", html).text(''); + } + + } + +} diff --git a/src/module/documents/blessing.mjs b/src/module/documents/blessing.mjs new file mode 100644 index 00000000..e4e5a298 --- /dev/null +++ b/src/module/documents/blessing.mjs @@ -0,0 +1,9 @@ +export class Blessing extends Item { + /** + * Augment the basic Item data model with additional dynamic data. + */ + prepareData() { + super.prepareData(); + } + +} diff --git a/src/module/documents/character.mjs b/src/module/documents/character.mjs index 0a29ef58..67d20d9d 100644 --- a/src/module/documents/character.mjs +++ b/src/module/documents/character.mjs @@ -1,4 +1,5 @@ import {importCharacter} from "../xml-import/xml-import.mjs"; +import {LiturgyData} from "../data/miracle/liturgydata.mjs"; export class Character extends Actor { @@ -42,12 +43,29 @@ export class Character extends Actor { systemData.aup.max = Math.round((mu + ko + ge) / 2) + systemData.aup.mod; systemData.asp.max = Math.round((mu + _in + ch) / 2) + systemData.asp.mod; + systemData.at = Math.round((mu + ge + kk) / 5); systemData.pa = Math.round((_in + ge + kk) / 5); systemData.fk = Math.round((_in + ff + kk) / 5); systemData.ini.aktuell = Math.round((mu + mu + _in + ge) / 5) + systemData.ini.mod; systemData.mr.aktuell = Math.round((mu + kl + ko) / 5) + systemData.mr.mod; + // evaluate deities for KaP + + systemData.rs = 0; + + + systemData.kap.max = 0; + const deities = systemData.parent.items.filter(p => p.type === "Blessing") + + deities?.forEach((deity) => { + if (LiturgyData.alverans.includes(deity.system.gottheit)) { + systemData.kap.max = 24; + } else if (systemData.kap.max === 0) { + systemData.kap.max += 12; + } + }, 0) + } diff --git a/src/module/documents/liturgy.mjs b/src/module/documents/liturgy.mjs new file mode 100644 index 00000000..ff491d35 --- /dev/null +++ b/src/module/documents/liturgy.mjs @@ -0,0 +1,9 @@ +export class Liturgy extends Item { + /** + * Augment the basic Item data model with additional dynamic data. + */ + prepareData() { + super.prepareData(); + } + +} diff --git a/src/module/sheets/actions/action-manager.mjs b/src/module/sheets/actions/action-manager.mjs index 7c91c6b5..2aa31643 100644 --- a/src/module/sheets/actions/action-manager.mjs +++ b/src/module/sheets/actions/action-manager.mjs @@ -202,11 +202,11 @@ export class ActionManager { ] #hatSonderfertigkeitBeginnendMit(name) { - return this.actor.system.sonderfertigkeiten.find(p => p.name.startsWith(name)) != null + return this.actor.system.sonderfertigkeiten?.find(p => p.name.startsWith(name)) != null } #hatSonderfertigkeit(name) { - return this.actor.system.sonderfertigkeiten.find(p => p.name === name) != null + return this.actor.system.sonderfertigkeiten?.find(p => p.name === name) != null } evaluate() { diff --git a/src/module/sheets/characterSheet.mjs b/src/module/sheets/characterSheet.mjs index f8335ae8..4dd53336 100644 --- a/src/module/sheets/characterSheet.mjs +++ b/src/module/sheets/characterSheet.mjs @@ -1,5 +1,7 @@ import {PlayerCharacterDataModel} from "../data/character.mjs"; import {ActionManager} from "./actions/action-manager.mjs"; +import {LiturgyData} from "../data/miracle/liturgydata.mjs"; +import {ModifyLiturgy} from "../dialog/modify-liturgy.mjs"; export class CharacterSheet extends ActorSheet { /**@override */ @@ -23,26 +25,28 @@ export class CharacterSheet extends ActorSheet { return `systems/DSA_4-1/templates/actor/actor-character-sheet.hbs`; } - /** @override */ - async getData() { - const context = super.getData(); + static onDroppedData(actor, characterSheet, data) { + const uuid = foundry.utils.parseUuid(data.uuid); + const collection = uuid.collection.index ?? uuid.collection; + const document = CharacterSheet.getElementByName(collection, uuid.id); + const { + name, + type + } = document + console.log(name, type) + switch (type) { + case "Skill": + return characterSheet.#handleDroppedSkill(actor, document); // on false cancel this whole operation + case "Advantage": + return characterSheet.#handleDroppedAdvantage(actor, document); + case "Equipment": + return characterSheet.#handleDroppedEquipment(actor, document); + case "Liturgy": + return characterSheet.#handleDroppedLiturgy(actor, document); + default: + return false; + } - - // Use a safe clone of the actor data for further operations. - const actorData = context.data; - - // Add the actor's data to context.data for easier access, as well as flags. - context.system = actorData.system; - context.flags = actorData.flags; - - this.#addSkillsToContext(context) - this.#addAdvantagesToContext(context) - this.#addAttributesToContext(context) - this.#addEquipmentsToContext(context) - await this.#addCombatStatistics(context) - this.#addActionsToContext(context) - this.#addSpellsToContext(context) - return context; } static getElementByName(collection, id) { @@ -101,6 +105,30 @@ export class CharacterSheet extends ActorSheet { return merkmale.split(",").map((merkmal) => merkmal.trim()) } + /** @override */ + async getData() { + const context = super.getData(); + + + // Use a safe clone of the actor data for further operations. + const actorData = context.data; + + // Add the actor's data to context.data for easier access, as well as flags. + context.system = actorData.system; + context.flags = actorData.flags; + context.derived = context.document.system; + + this.#addSkillsToContext(context) + this.#addAdvantagesToContext(context) + this.#addAttributesToContext(context) + this.#addEquipmentsToContext(context) + await this.#addCombatStatistics(context) + this.#addActionsToContext(context) + this.#addSpellsToContext(context) + this.#addLiturgiesToContext(context) + return context; + } + #addSpellsToContext(context) { const actorData = context.data; context.spells = []; @@ -127,6 +155,7 @@ export class CharacterSheet extends ActorSheet { }) } }) + context.hasSpells = context.spells.length > 0; } #addAttributesToContext(context) { @@ -566,6 +595,116 @@ export class CharacterSheet extends ActorSheet { } + #addLiturgiesToContext(context) { + const actorData = context.data; + context.liturgies = []; + context.blessings = []; + + Object.values(actorData.items).forEach((item, index) => { + if (item.type === "Blessing") { + context.blessings.push({ + deity: item.system.gottheit, + value: item.system.wert + }) + } + }) + Object.values(actorData.items).forEach((item, index) => { + if (item.type === "Liturgy") { + + context.blessings.forEach(({deity, value}) => { + let insertObject = context.liturgies.find(p => p.deity === deity); + if (!insertObject) { + insertObject = { + deity: deity, + lkp: value, + O: [], + I: [], + II: [], + III: [], + IV: [], + V: [], + VI: [], + VII: [], + VIII: [], + "NA": [], + countO: 1, + countI: 1, + countII: 1, + countIII: 1, + countIV: 1, + countV: 1, + countVI: 1, + countVII: 1, + countVIII: 1, + countNA: 0, + total: 3, + + } + context.liturgies.push(insertObject); + } + + // sort by rank + const rankData = LiturgyData.getRankOfLiturgy(item.system, deity) + if (rankData) { + let {index, name, lkp, mod, costKaP} = rankData; + + insertObject["count" + name] = insertObject["count" + name] + 1; + + insertObject[name].push({ + id: item._id, + name: item.name, + lkpReq: lkp, + lkpMod: mod, + costKaP, + rank: index, // get effective liturgy rank based on deity + liturgiekenntnis: deity, + }) + insertObject.total = insertObject.total + 1; + + } + }) + } + }) + + + // clean up counter + Object.values(context.liturgies).forEach((litObject) => { + + if (litObject.O.length === 0) litObject.countO = false; + if (litObject.I.length === 0) litObject.countI = false; + if (litObject.II.length === 0) litObject.countII = false; + if (litObject.III.length === 0) litObject.countIII = false; + if (litObject.IV.length === 0) litObject.countIV = false; + if (litObject.V.length === 0) litObject.countV = false; + if (litObject.VI.length === 0) litObject.countVI = false; + if (litObject.VII.length === 0) litObject.countVII = false; + if (litObject.VIII.length === 0) litObject.countVIII = false; + if (litObject.NA.length === 0) litObject.countNA = false; + + + }) + + context.hasLiturgies = context.blessings.length > 0; + } + + #handleDroppedSkill(actor, skill) { + const array = Array.from(actor.items); + for (let i = 0; i < array.length; i++) { + if (array[i].name === skill.name) { + return false; + } + } + } + + #handleDroppedAdvantage(actor, advantage) { + const array = Array.from(actor.items); + for (let i = 0; i < array.length; i++) { + if (array[i].name === advantage.name) { // TODO: adjust for uniqueness + return false; + } + } + } + activateListeners(html) { super.activateListeners(html); @@ -698,57 +837,77 @@ export class CharacterSheet extends ActorSheet { } ]); - } + html.on('click', '.liturgy.rollable', async (evt) => { - #handleDroppedSkill(actor, skill) { - const array = Array.from(actor.items); - for (let i = 0; i < array.length; i++) { - if (array[i].name === skill.name) { - return false; - } - } - } + evt.stopPropagation(); - #handleDroppedAdvantage(actor, advantage) { - const array = Array.from(actor.items); - for (let i = 0; i < array.length; i++) { - if (array[i].name === advantage.name) { // TODO: adjust for uniqueness - return false; + const {id, rank, lkp, deity} = evt.currentTarget.dataset; + const document = await this.object.items.get(id) + + const data = {}; + + data.rank = rank; + data.lkp = lkp; + data.deity = deity; + data.variations = []; + const ranks = LiturgyData.ranks + ranks.forEach(rank => { + if (document.system.auswirkung[rank]) { + data.variations.push({ + rank, + effect: document.system.auswirkung[rank] + }) + } + }) + data.mods = []; + + const htmlContent = await renderTemplate('systems/DSA_4-1/templates/dialog/modify-liturgy.hbs', data); + + const dialogData = { + title: document.name, + content: htmlContent, + data: {}, + buttons: { + submit: { + label: "Wirken", + icon: '', + callback: (html) => { + }, + }, + }, } - } + dialogData.render = new ModifyLiturgy(data).handleRender + + const dialog = new Dialog(dialogData, { + classes: ['dsa41', 'dialog', 'liturgy'], + height: 480 + }) + + dialog.render(true); + + return false; + }) + + + } #handleDroppedEquipment(actor, equipment) { const array = Array.from(actor.items); for (let i = 0; i < array.length; i++) { if (array[i].name === equipment.name) { // TODO: adjust item quantity if item is the same - console.log(equipment); return false; } } } - static onDroppedData(actor, characterSheet, data) { - const uuid = foundry.utils.parseUuid(data.uuid); - const collection = uuid.collection.index ?? uuid.collection; - const document = CharacterSheet.getElementByName(collection, uuid.id); - const { - name, - type - } = document - console.log(name, type) - switch (type) { - case "Skill": - return characterSheet.#handleDroppedSkill(actor, document); // on false cancel this whole operation - case "Advantage": - return characterSheet.#handleDroppedAdvantage(actor, document); - case "Equipment": - return characterSheet.#handleDroppedEquipment(actor, document); - - default: + #handleDroppedLiturgy(actor, liturgy) { + const array = Array.from(actor.items); + for (let i = 0; i < array.length; i++) { + if (array[i].name === liturgy.name) { // TODO: allow multiple miracles with the same name return false; + } } - } } diff --git a/src/module/sheets/liturgySheet.mjs b/src/module/sheets/liturgySheet.mjs new file mode 100644 index 00000000..ec850750 --- /dev/null +++ b/src/module/sheets/liturgySheet.mjs @@ -0,0 +1,48 @@ +export class LiturgySheet extends ItemSheet { + /**@override */ + static get defaultOptions() { + return foundry.utils.mergeObject(super.defaultOptions, { + classes: ['dsa41', 'sheet', 'item', 'liturgy'], + width: 520, + height: 480, + tabs: [ + { + navSelector: '.sheet-tabs', + contentSelector: '.sheet-body', + initial: 'description', + }, + ], + }); + } + + /** @override */ + get template() { + return `systems/DSA_4-1/templates/item/item-liturgy-sheet.hbs`; + } + + /** @override */ + getData() { + // Retrieve the data structure from the base sheet. You can inspect or log + // the context variable to see the structure, but some key properties for + // sheets are the actor object, the data object, whether or not it's + // editable, the items array, and the effects array. + const context = super.getData(); + + // Use a safe clone of the actor data for further operations. + const liturgyData = context.data; + + // Add the actor's data to context.data for easier access, as well as flags. + context.system = liturgyData.system; + context.flags = liturgyData.flags; + context.json = JSON.stringify(liturgyData); + return context; + } + + activateListeners(html) { + super.activateListeners(html); + + // Everything below here is only needed if the sheet is editable + if (!this.isEditable) + } + +} diff --git a/src/module/xml-import/xml-import.mjs b/src/module/xml-import/xml-import.mjs index 0f2b15a6..66eb09d2 100644 --- a/src/module/xml-import/xml-import.mjs +++ b/src/module/xml-import/xml-import.mjs @@ -1,3 +1,7 @@ +import {LiturgyData} from "../data/miracle/liturgydata.mjs"; +import {BlessingDataModel} from "../data/blessing.mjs"; +import {Blessing} from "../documents/blessing.mjs"; + let months = [ "Praios", "Rondra", @@ -71,7 +75,7 @@ function getJsonFromXML(dom) { } async function addSkillFromCompendiumByNameToActor(talentName, taw, actor) { - const compendiumOfSkills = game.packs.get('DSA_4-1.talente-brw'); + const compendiumOfSkills = game.packs.get('DSA_4-1.talente'); const talentId = compendiumOfSkills.index.find(skill => skill.name === talentName) if (talentId) { @@ -119,6 +123,23 @@ async function addSpellsFromCompendiumByNameToActor(spellName, zfw, representati } } +async function addLiturgiesFromCompendiumByNameToActor(liturgyName, actor) { + const compendiumOfLiturgies = game.packs.get('DSA_4-1.liturgien'); + const liturgyId = compendiumOfLiturgies.index.find(liturgy => { + return liturgy.name === LiturgyData.lookupAlias(liturgyName.split(" (")[0]) + }) + if (liturgyId) { + + const liturgy = await compendiumOfLiturgies.getDocument(liturgyId._id); + + try { + await actor.createEmbeddedDocuments('Item', [liturgy]) + } catch (error) { + console.error(`${liturgy} not found in items`, error) + } + } +} + /** * gets the text content of a file * @param file the file with the desired content @@ -153,7 +174,25 @@ function calculateBirthdate(json) { function mapSkills(actor, held) { for (let talent in held.talentliste.talent) { talent = held.talentliste.talent[talent] - addSkillFromCompendiumByNameToActor(talent.name, talent.value, actor) + + // hook liturgy + if (talent.name.startsWith("Liturgiekenntnis")) { + + actor.createEmbeddedDocuments('Item', [ + new Blessing({ + name: talent.name, + type: "Blessing", + system: { + gottheit: new RegExp("\\((.+)\\)").exec(talent.name)[1], + wert: talent.value + } + }) + ]) + + } else { + // proceed + addSkillFromCompendiumByNameToActor(talent.name, talent.value, actor) + } } } @@ -171,6 +210,13 @@ function mapSpells(actor, held) { } } +function mapMiracles(actor, liturgies) { + for (let liturgy in liturgies) { + liturgy = liturgies[liturgy] + addLiturgiesFromCompendiumByNameToActor(liturgy.name, actor) + } +} + /** * parses a json into a fitting character-json * @param rawJson the json parsed from the Helden-Software XML @@ -291,6 +337,8 @@ function mapRawJson(actor, rawJson) { mapSkills(actor, held) mapSpells(actor, held) + mapMiracles(actor, liturgies) + let combatValues = [] for (let combatValue in held.kampf.kampfwerte) { combatValue = held.kampf.kampfwerte[combatValue] diff --git a/src/style/_character-sheet.scss b/src/style/_character-sheet.scss index 3417b8bd..44a35047 100644 --- a/src/style/_character-sheet.scss +++ b/src/style/_character-sheet.scss @@ -104,46 +104,37 @@ .tab.combat { - .initiaitve { - width: 100%; - height: 48px; - position: relative; - label { - width: 80px; - line-height: 48px; - vertical-align: middle; - } - - input { - display: inline-block; - width: 40px; - height: 48px; - } - - span.inline { - line-height: 48px; - vertical-align: middle; - width: 40px; - text-align: center; - } - - } } .tab.spells { + tr { + height: 24px; + margin: 0; + padding: 0; + } + + td { + margin: 0; + padding: 0; + height: 24px; + } + + $color: #05f; + .spell.rollable svg { width: 24px; height: 24px; + top: 1px; + z-index: 1; + position: relative; .border { fill: #0000; } - $color: #05f; - .center { fill: $color; stroke: colour.$rollable-die-border-color; @@ -170,6 +161,46 @@ } } + .die-column { + width: 24px; + } + + .clickable { + span { + position: relative; + z-index: 1; + } + } + + tbody { + + tr { + + position: relative; + + &::after { + content: ''; + background-image: linear-gradient(to right, rgba(color.scale($color, $lightness: numbers.$zebra_light), numbers.$start_gradient), rgba(color.scale($color, $lightness: numbers.$zebra_light), numbers.$end_2_gradient)); + border-top-right-radius: 8px; + border-bottom-right-radius: 8px; + position: absolute; + top: 2px; + left: 12px; + bottom: 2px; + right: 33%; + z-index: 0; + pointer-events: none; + } + + &:nth-child(odd) { + &::after { + background-image: linear-gradient(to right, rgba(color.scale($color, $lightness: numbers.$zebra_dark), numbers.$start_gradient), rgba(color.scale($color, $lightness: numbers.$zebra_dark), numbers.$end_2_gradient)); + } + } + } + + } + .merkmal-list { list-style: none; margin: 0; @@ -184,6 +215,70 @@ } + .tab.liturgies { + + table { + border-top: unset; + border-bottom: unset; + position: relative; + } + + .liturgy-header { + background: unset; + border: unset; + + tr { + height: 90px; + + th { + vertical-align: middle; + color: black; + text-shadow: 2px 2px 1px rgba(0, 0, 0, 0.2); + } + } + } + + td, th { + padding-left: 8px; + } + } + + .tab-resources { + display: flex; + justify-content: center; + gap: 0 16px; + padding-bottom: 8px; + + & > div { + + + height: 48px; + position: relative; + + label { + width: 80px; + line-height: 48px; + vertical-align: middle; + } + + input { + display: inline-block; + width: 40px; + height: 48px; + } + + span.inline { + line-height: 48px; + vertical-align: middle; + width: 40px; + text-align: center; + } + + + } + + } + } } diff --git a/src/style/_liturgy-banner.scss b/src/style/_liturgy-banner.scss new file mode 100644 index 00000000..a6d30efb --- /dev/null +++ b/src/style/_liturgy-banner.scss @@ -0,0 +1,247 @@ +@use "sass:map"; +@use "sass:color"; +@use "colours" as colour; +@use "numbers"; + +$deity_colours_border: ( + "Praios": orange, + "Rondra": red, + "Efferd": #74d0ec, + "Travia": #c6491a, + "Boron": #515151, + "Hesinde": #089e08, + "Firun": #8fdeff, + "Tsa": #6a24d8, + "Phex": #1569da, + "Peraine": #56a116, + "Ingerimm": #a53d19, + "Rahja": #ed70c2, +); +$deity_colours_tint: ( + "Praios": rgba(orange, 0.5), + "Rondra": rgba(red, 0.5), + "Efferd": rgba(#74d0ec, 0.5), + "Travia": rgba(#c6491a, 0.5), + "Boron": rgba(#515151, 0.5), + "Hesinde": rgba(#089e08, 0.5), + "Firun": rgba(#8fdeff, 0.5), + "Tsa": linear-gradient( + -45deg, + rgba(255, 0, 0, 0.5) 0%, + rgba(255, 154, 0, 0.5) 10%, + rgba(208, 222, 33, 0.5) 20%, + rgba(79, 220, 74, 0.5) 30%, + rgba(63, 218, 216, 0.5) 40%, + rgba(47, 201, 226, 0.5) 50%, + rgba(28, 127, 238, 0.5) 60%, + rgba(95, 21, 242, 0.5) 70%, + rgba(186, 12, 248, 0.5) 80%, + rgba(251, 7, 217, 0.5) 90%, + rgba(255, 0, 0, 0.5) 100% + ), + "Phex": rgba(#1569da, 0.5), + "Peraine": rgba(#56a116, 0.5), + "Ingerimm": rgba(#a53d19, 0.5), + "Rahja": rgba(#ed70c2, 0.5), +); + +@mixin coloring($name) { + $color: map.get($deity_colours_border, $name); + $color-tint: map.get($deity_colours_tint, $name); + &.#{$name} { + + th.background { + &::after { + background: $color-tint; + } + } + + .banner-bot { + border-color: $color; + } + + .banner-mid { + border-color: $color; + } + + .banner-top { + &::before, &::after { + border-color: $color; + } + } + } +} + +.tab.liturgies { + table { + + @include coloring('Praios'); + @include coloring('Rondra'); + @include coloring('Efferd'); + @include coloring('Travia'); + @include coloring('Boron'); + @include coloring('Hesinde'); + @include coloring('Firun'); + @include coloring('Tsa'); + @include coloring('Phex'); + @include coloring('Peraine'); + @include coloring('Ingerimm'); + @include coloring('Rahja'); + + tr { + th.background { + + &::before { + position: absolute; + content: ''; + background-image: url("../assets/velvet_strip.png"); + background-repeat: repeat-y; + background-size: cover; + width: 86px; + height: 100%; + + top: 45px; + left: 12px; + } + + &::after { /* for tinting the texture */ + content: ""; + position: absolute; + width: 86px; + height: 100%; + + top: 45px; + left: 12px; + } + } + } + + .banner-top { + position: relative; + + width: 90px; + + img { + position: absolute; + top: 2px; + left: 1px; + width: 90px; + height: 90px; + border: 0; + z-index: 1; + } + + &::after { + z-index: 0; + border-width: 0 4px 0 4px; + //background-color: #64b; + border-style: solid; + position: absolute; + content: ""; + left: -2px; + top: 45px; + bottom: 0; + width: 94px; + } + + &::before { + position: absolute; + border-radius: 45px; + height: 94px; + width: 94px; + content: ''; + left: -2px; + right: -2px; + top: 0; + border-width: 4px; + border-style: solid; + z-index: 2; + } + } + + .banner-mid { + position: relative; + border-width: 0 4px 0 4px; + //background-color: #64b; + border-style: solid; + width: 90px; + + div { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + display: flex; + justify-content: center; + align-items: center; + + div.rank-label { + position: absolute; + left: 2px; + right: 2px; + top: 0; + bottom: 0; + border-bottom: 2px solid black; + color: gold; + text-shadow: 2px 2px 1px black; + } + } + } + + .banner-bot { + position: relative; + border-width: 4px; + border-style: solid; + width: 90px; + height: 12px; + } + } + + .liturgy.rollable { + width: 24px; + + svg { + $color: #e4de61; + width: 24px; + height: 24px; + top: 1px; + z-index: 1; + position: relative; + + .border { + fill: #0000; + } + + .center { + fill: $color; + stroke: colour.$rollable-die-border-color; + } + + .topleft { + fill: color.adjust($color, $lightness: numbers.$lighter_factor); + stroke: colour.$rollable-die-border-color; + } + + .bottomleft { + fill: color.adjust($color, $lightness: numbers.$lightest_factor); + stroke: colour.$rollable-die-border-color; + } + + .topright { + fill: color.adjust($color, $lightness: numbers.$darken_factor); + stroke: colour.$rollable-die-border-color; + } + + .bottomright, .bottom { + fill: color.adjust($color, $lightness: numbers.$darkest_factor); + stroke: colour.$rollable-die-border-color; + } + } + } + + .clickable:hover { + text-shadow: 0 0 10px rgb(255 0 0); + } + +} diff --git a/src/style/_modify-liturgy.scss b/src/style/_modify-liturgy.scss new file mode 100644 index 00000000..86414daa --- /dev/null +++ b/src/style/_modify-liturgy.scss @@ -0,0 +1,45 @@ +.dsa41.dialog.liturgy { + + table { + tr { + th:first-child { + width: 48px; + } + } + } + + table#mods { + + tr { + th:first-child { + width: 48px; + } + } + + .remove-mod { + width: 32px; + height: 32px; + } + + } + + .editor { + + display: grid; + grid-template-columns: 48px 1fr; + + #mod_rank { + display: inline-block; + width: 48px; + } + + select { + + } + + } + + .dialog-buttons { + flex: 0; + } +} diff --git a/src/style/_numbers.scss b/src/style/_numbers.scss index 6781ec4b..e79d87d1 100644 --- a/src/style/_numbers.scss +++ b/src/style/_numbers.scss @@ -4,6 +4,7 @@ $darken_factor: -15%; $darkest_factor: -40%; $start_gradient: 0.8; $end_gradient: 0.2; +$end_2_gradient: 0; $direction_gradient: 90deg; $tab-border-width: 1px; @@ -17,3 +18,6 @@ $dice-box-border-width: 1px; $pill-box-inset: 2px; $pill-box-blur-radius: 4px; + +$zebra-dark: 0%; +$zebra-light: 20%; diff --git a/src/style/styles.scss b/src/style/styles.scss index 7f4dbfbe..e11377af 100644 --- a/src/style/styles.scss +++ b/src/style/styles.scss @@ -9,3 +9,5 @@ @use "_paperdoll"; @use "_creature-sheet"; @use "_player-action"; +@use "_modify-liturgy"; +@use "_liturgy-banner"; diff --git a/src/system.json b/src/system.json index 5129e5ca..ffd4083f 100644 --- a/src/system.json +++ b/src/system.json @@ -26,11 +26,11 @@ ], "packs": [ { - "name": "talente-brw", - "label": "Talente (BRW)", + "name": "talente", + "label": "Talente", "system": "DSA_4-1", "type": "Item", - "path": "packs/talente-brw", + "path": "packs/talente", "private": false }, { @@ -183,6 +183,8 @@ "voraussetzung" ] }, + "Blessing": {}, + "Liturgy": {}, "Spell": { "stringFields": [ "name", diff --git a/src/templates/actor/actor-character-sheet.hbs b/src/templates/actor/actor-character-sheet.hbs index 87404223..ac7bc9db 100644 --- a/src/templates/actor/actor-character-sheet.hbs +++ b/src/templates/actor/actor-character-sheet.hbs @@ -56,8 +56,8 @@ Kampf Talente Inventar - Zauber - Liturgien + {{#if this.hasSpells}}Zauber{{/if}} + {{#if this.hasLiturgies}}Liturgien{{/if}} Begleiter @@ -88,7 +88,9 @@

-
+
+ +
w6 @@ -106,6 +108,11 @@ von
+
+ + {{derived.rs}} +
+
{{#each this.actions}} @@ -253,12 +260,27 @@
+ {{#if this.hasSpells}}
+
+ +
+ + + von + {{derived.asp.max}} +
+
+ + {{derived.mr.aktuell}} +
+
+ - + @@ -271,7 +293,8 @@ - + @@ -286,9 +309,188 @@
Zaubername Probe ZfW {{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }} {{this.name}} + {{this.name}} {{this.eigenschaft1}} {{this.eigenschaft2}} {{this.eigenschaft3}}
-
+ {{/if}} + {{#if this.hasLiturgies}} +
+ +
+ +
+ + + von + {{derived.kap.max}} +
+
+ + {{#each this.liturgies}} + + + + + + + + + + {{#if this.countI}} + + + + + {{#each this.I}} + + + + + + {{/each}} + {{/if}} + {{#if this.countII}} + + + + {{#each this.II}} + + + + + {{/each}} + {{/if}} + {{#if this.countIII}} + + + + {{#each this.III}} + + + + + {{/each}} + {{/if}} + {{#if this.countIV}} + + + + {{#each this.IV}} + + + + + {{/each}}{{/if}} + {{#if this.countV}} + + + + {{#each this.V}} + + + + + {{/each}} + {{/if}} + {{#if this.countVI}} + + + + {{#each this.VI}} + + + + + {{/each}} + {{/if}}{{#if this.countVII}} + + + + {{#each this.VII}} + + + + + {{/each}} + {{/if}}{{#if this.countVIII}} + + + + {{#each this.VIII}} + + + + + {{/each}} + {{/if}} + +
Liturgiekenntnis: {{this.lkp}}
+ {{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }} + + {{this.name}}
+ {{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }} + {{this.name}}
+ {{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }} + {{this.name}}
+ {{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }} + {{this.name}}
+ {{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }} + {{this.name}}
+ {{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }} + {{this.name}}
+ {{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }} + {{this.name}}
+ {{> 'systems/DSA_4-1/templates/ui/partial-die.hbs' }} + {{this.name}}
+ {{/each}}
+ {{/if}}
diff --git a/src/templates/dialog/modify-liturgy.hbs b/src/templates/dialog/modify-liturgy.hbs new file mode 100644 index 00000000..ebf2fbdd --- /dev/null +++ b/src/templates/dialog/modify-liturgy.hbs @@ -0,0 +1,36 @@ + + + + + + + {{#each variations}} + + + + + {{/each}} + + +
GradWirkung
{{this.effect}}
+ +

Modifizieren

+ +
+ +
+
+
+ + +
+
+ +
diff --git a/src/templates/item/item-liturgy-sheet.hbs b/src/templates/item/item-liturgy-sheet.hbs new file mode 100644 index 00000000..d50d00ce --- /dev/null +++ b/src/templates/item/item-liturgy-sheet.hbs @@ -0,0 +1,14 @@ +
+ + {{!-- Sheet Tab Navigation --}} + + + {{!-- Sheet Body --}} +
+
+
{{json}}
+
+
+
diff --git a/transformSources.mjs b/transformSources.mjs index 2c3319e7..28944b31 100644 --- a/transformSources.mjs +++ b/transformSources.mjs @@ -1,6 +1,6 @@ let crypto; -import {readdirSync, readFileSync, writeFileSync} from "fs"; +import {readdirSync, readFileSync, writeFileSync, rmdirSync, rmSync, mkdirSync} from "fs"; import {join} from "path"; try { @@ -46,18 +46,20 @@ try { } delete targetSource.system.image; let target = JSON.stringify(targetSource, null, 2); - let newFileName = "./" + join(DEST, targetSource.name.toLowerCase().replace(/[ /]/g, "-").replace(/\--{2,}/g, "-").replace(/[.,!]/g, "").trim() + ".json"); + let newFileName = "./" + join(DEST, id + ".json"); console.log(newFileName); writeFileSync(newFileName, target, {encoding: "utf8"}); }); } + convert("./src/packs/_source/talente", "./src/packs/__source/talente", "Skill"); convert("./src/packs/_source/zauber", "./src/packs/__source/zauber", "Spell"); convert("./src/packs/_source/vorteile", "./src/packs/__source/vorteile", "Advantage"); convert("./src/packs/_source/waffen", "./src/packs/__source/waffen", "Equipment"); convert("./src/packs/_source/munition", "./src/packs/__source/munition", "Equipment"); convert("./src/packs/_source/ruestzeug", "./src/packs/__source/ruestzeug", "Equipment"); + convert("./src/packs/_source/liturgien-und-segnungen", "./src/packs/__source/liturgien", "Liturgy"); } catch (err) { console.error(err);