diff --git a/css/pirateborg.css b/css/pirateborg.css index fb71d14a..4dc21c6d 100644 --- a/css/pirateborg.css +++ b/css/pirateborg.css @@ -4,20 +4,20 @@ /* try to deprecated */ --background-color: #000; --foreground-color: #000; - --foreground-alt-color: #FFF; + --foreground-alt-color: #fff; --highlight-background-color: #d20608; - --highlight-foreground-color: #FFFFFF; + --highlight-foreground-color: #ffffff; --window-background: url(/systems/pirateborg/ui/parchment-2.jpg) repeat; - --window-header-color: #FFFFFF; + --window-header-color: #ffffff; --window-header-background-color: #000000; --sidebar-tab-background: #000000; - --sidebar-tab-color: #FFFFFF; + --sidebar-tab-color: #ffffff; --light-border-color: #f6dec2; --dark-border-color: #a29280; --sidebar-background: var(--window-background); --sidebar-color: #000000; --button-background: #000000; - --button-color: #FFFFFF; + --button-color: #ffffff; --icon-backgroud-color: #000000; --h1-font: "Roman Antique Regular"; --h2-font: "IM Fell English SC"; @@ -25,7 +25,7 @@ --chat-font: "Alegreya"; --chat-info-font: "Alegreya"; --item-font: "Alegreya"; - --button-font: "Alegreya" + --button-font: "Alegreya"; /* foundry core */ --color-text-light-6: var(--foreground-color); --color-text-light-5: var(--foreground-color); @@ -221,8 +221,8 @@ .pirateborg.sheet .sheet-tabs .item { font-family: var(--h2-font); font-size: 22px; - height: 34px; - line-height: 34px; + height: 36px; + line-height: 38px; width: 100%; white-space: nowrap; padding-left: 16px; diff --git a/css/pirateborg.css.map b/css/pirateborg.css.map index 028cc535..193c720c 100644 --- a/css/pirateborg.css.map +++ b/css/pirateborg.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../scss/pirateborg/_root.scss","../scss/pirateborg/_flex.scss","../scss/pirateborg/_pirateborg.scss","../scss/pirateborg/_sheet.scss","../scss/pirateborg/_actor-sheet.scss","../scss/pirateborg/_character-sheet.scss","../scss/pirateborg/_item-list.scss","../scss/pirateborg/_creature-sheet.scss","../scss/pirateborg/_item-sheet.scss","../scss/pirateborg/_container-sheet.scss","../scss/pirateborg/_foundry-overrides.scss","../scss/pirateborg/_rollcards.scss","../scss/pirateborg/_dialog.scss","../scss/pirateborg/_module-fixes.scss"],"names":[],"mappings":"AAAQ;AACA;AAER;AACE;EACA;EAGA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EAEA;EACA;EAEA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;AACA;AACA;EACE;EACA;;AC1DF;AACA;AACA;AAEA;EACE;EACA;EACA;EACA;;AAEA;AAAA;EAEE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;;AAEA;AAAA;EAEE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;;AC9CF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;AAAA;EAEE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;;;ACjEA;EAiBE;;AAhBA;EACE;EACA;AAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAMJ;EACE;EACA;;AAIA;EAIE;EACA;;AAGF;EAUE;;AAIJ;EACE;;AAIA;EAEE;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAMR;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAKF;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAGF;AAAA;EAEE;EACA;;AAGF;EACE;;;ACnKJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIJ;EACE;;AAEA;EACE;;AAEA;EAEE;;AAKF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAKE;EACE;EACA;;AACA;EACE;EACA;;AACA;EACE;EACA;;AAMR;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAMA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;EACA;EACA;;AAIA;EACE;EACA;;AAGF;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AASN;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;;ACpRJ;EACE;EACA;;AAEA;EACE;;AACA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;AAEA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AACC;EACC;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAYJ;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAMN;EACE;;AAGF;EACE;EACA;;;ACvNR;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAOF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;;AAQJ;EACE;;AAGF;EACE;;AAGF;EACE;;;ACzGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;;AC/CJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;ACrCN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;;ACzCV;EACE;EACA;EACA;;;AAIA;EACE;EACA;;;AAKF;EACE;;AAEA;EAEE;;AAIJ;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;;AAEA;EAEE;;;AAKF;EACE;;AAGF;EACE;;AAEA;EAEE;;AAKF;EACE;;AAEA;EAEE;;AAIJ;EACE;;AAEA;EAEE;;;AAMR;EACE;EACA;;;AAGF;AAGE;AAAA;AAAA;EAGE;;;AAIJ;AAkBI;EACE;EACA;;AAEA;EAEE;;AAGF;EACE;;AAGF;EAEE;EACA;;;AAMR;AAEA;AAEA;AAII;EACE;;AAGF;EACE;;AAMA;EAEE;;AAKF;EAEE;;;AAMR;AAGE;EACE;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;;AAKN;AACA;AACA;AAEA;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AAKF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAMF;AAAA;AAAA;EAGE;;AAIJ;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AAKF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAKA;EACE;EACA;;;AAKN;AACA;AAEA;EACE;AAEA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAIJ;EACE;AAEA;;AAGF;EACE;EACA;;AAIA;EAEE;EACA;EACA;EACA;;AAKF;EAEE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACE;EACA;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;;AAIJ;AAAA;EAEG;;;AAID;AAAA;EAEE;EACA;;AAGF;EACE;EACA;EACA;EACA;;;AAKF;EACE;EACA;;AAGF;EACE;;AAEA;EAEE;EACA;EACA;EACA;;;AAMJ;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACE;EACA;;AAEA;EACE;EACA;;;AAIJ;EACE;EACA;EAEA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAMF;EACE;;AAGF;EACE;;AAIA;EACE;EACA;;AACA;EACA;;AAGF;EACE;;AACA;EACE;EACA;;AAMJ;EACE;;AAGF;EACE;EACA;;AACA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAEF;EACE;EACA;;;AAQR;EAEE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAIA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;AAKN;AAOE;EACE;EACA;EACA;;AAGF;EACE;;;AAKF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMA;EAEE;;;AAMJ;EACE;EACA;;;AAIJ;EACE;EACA;;;AAKE;EACE;;AAEF;EACE;;;AAKN;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AClvBF;AACA;AACA;AAGE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAIA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGJ;EACE;;;AAIJ;EACE;EACA;;;ACpHF;AACA;AACA;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;;AAKF;EAEE;EACA;;;AAKF;EAGE;EACA;;;AAIJ;AACA;AACA;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AAGE;EAEE;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAGE;EACA;;;AAMR;AAAA;EAEE;EACA;;;ACvGI;EACE;;AAEF;EACE;EACA;;;AAMR;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAIF;EACE;;AACA;EACE;EACA","file":"pirateborg.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../scss/pirateborg/_root.scss","../scss/pirateborg/_flex.scss","../scss/pirateborg/_pirateborg.scss","../scss/pirateborg/_sheet.scss","../scss/pirateborg/_actor-sheet.scss","../scss/pirateborg/_character-sheet.scss","../scss/pirateborg/_item-list.scss","../scss/pirateborg/_creature-sheet.scss","../scss/pirateborg/_item-sheet.scss","../scss/pirateborg/_container-sheet.scss","../scss/pirateborg/_foundry-overrides.scss","../scss/pirateborg/_rollcards.scss","../scss/pirateborg/_dialog.scss","../scss/pirateborg/_module-fixes.scss"],"names":[],"mappings":"AAAQ;AACA;AAER;AACE;EACA;EAEA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EAEA;EACA;EAEA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;AACA;AACA;EACE;EACA;;ACzDF;AACA;AACA;AAEA;EACE;EACA;EACA;EACA;;AAEA;AAAA;EAEE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;;AAEA;AAAA;EAEE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;;AC9CF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;AAAA;EAEE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;;;ACjEA;EAiBE;;AAhBA;EACE;EACA;AAEA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAMJ;EACE;EACA;;AAIA;EAIE;EACA;;AAGF;EAUE;;AAIJ;EACE;;AAIA;EAEE;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAMR;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAKF;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAGF;AAAA;EAEE;EACA;;AAGF;EACE;;;ACnKJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIJ;EACE;;AAEA;EACE;;AAEA;EAEE;;AAKF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAKE;EACE;EACA;;AACA;EACE;EACA;;AACA;EACE;EACA;;AAMR;EACE;;AAGF;EACE;EACA;;AAKF;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAKA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAEA;EACE;EACA;EACA;;AAIA;EACE;EACA;;AAGF;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAQN;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;EACA;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;;AClRJ;EACE;EACA;;AAEA;EACE;;AACA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;AAEA;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AACA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAUJ;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAKN;EACE;;AAGF;EACE;EACA;;;ACnNR;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;;AAOJ;EACE;;AAGF;EACE;;AAGF;EACE;;;ACvGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;;AC/CJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;ACrCN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;;ACzCV;EACE;EACA;EACA;;;AAIA;EACE;EACA;;;AAKF;EACE;;AAEA;EAEE;;AAIJ;EACE;;AAEA;EACE;;AAGF;EACE;EACA;;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;;;AAGF;EACE;EACA;;AAEA;EAEE;;;AAKF;EACE;;AAGF;EACE;;AAEA;EAEE;;AAKF;EACE;;AAEA;EAEE;;AAIJ;EACE;;AAEA;EAEE;;;AAMR;EACE;EACA;;;AAGF;AAGE;AAAA;AAAA;EAGE;;;AAIJ;AAeI;EACE;EACA;;AAEA;EAEE;;AAGF;EACE;;AAGF;EAEE;EACA;;;AAMR;AAEA;AAEA;AAII;EACE;;AAGF;EACE;;AAMA;EAEE;;AAKF;EAEE;;;AAMR;AAGE;EACE;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;;AAKN;AACA;AACA;AAEA;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AAKF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAKF;AAAA;AAAA;EAGE;;AAIJ;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAKN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;;AAKF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;;;AAKN;AACA;AAEA;EACE;AAEA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAIJ;EACE;AAEA;;AAGF;EACE;EACA;;AAIA;EAEE;EACA;EACA;EACA;;AAKF;EAEE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;;AAMJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACE;EACA;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;;AAIJ;AAAA;EAEE;;;AAIA;AAAA;EAEE;EACA;;AAGF;EACE;EACA;EACA;EACA;;;AAKF;EACE;EACA;;AAGF;EACE;;AAEA;EAEE;EACA;EACA;EACA;;;AAMJ;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACE;EACA;;AAEA;EACE;EACA;;;AAIJ;EACE;EACA;EAEA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE;;AAGF;EACE;;AAIA;EACE;EACA;;AACA;EACE;;AAGJ;EACE;;AACA;EACE;EACA;;AAMJ;EACE;;AAGF;EACE;EACA;;AACA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAEF;EACE;EACA;;;AAQR;EAEE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAIA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;AAKN;AAME;EACE;EACA;EACA;;AAGF;EACE;;;AAKF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMA;EAEE;;;AAMJ;EACE;EACA;;;AAIJ;EACE;EACA;;;AAKE;EACE;;AAEF;EACE;;;AAKN;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AC1uBF;AACA;AACA;AAGE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAIA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGJ;EACE;;;AAIJ;EACE;EACA;;;ACpHF;AACA;AACA;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;;;AAKF;EAEE;EACA;;;AAKF;EAGE;EACA;;;AAIJ;AACA;AACA;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AAGE;EAEE;;AAGF;EACE;EACA;;AAIJ;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAGE;EACA;;;AAMR;AAAA;EAEE;EACA;;;ACvGI;EACE;;AAEF;EACE;EACA;;;AAMR;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;AACA;EACE;EACA","file":"pirateborg.css"} \ No newline at end of file diff --git a/lang/en.json b/lang/en.json index 58f4d8b2..26b1b975 100644 --- a/lang/en.json +++ b/lang/en.json @@ -2,7 +2,7 @@ "PB.Abilities": "Abilities", "PB.AbilityAgility": "Agility", "PB.AbilityAgilityAbbrev": "AGI", - "PB.AbilityScoreFormula": "Ability Score Formula", + "PB.AbilityScoreFormula": "Ability Score Formula", "PB.AbilityPresence": "Presence", "PB.AbilityPresenceAbbrev": "PRE", "PB.AbilityStrength": "Strength", @@ -10,9 +10,9 @@ "PB.AbilityToughness": "Toughness", "PB.AbilityToughnessAbbrev": "TOU", "PB.AbilitySpirit": "Spirit", - "PB.AbilitySpiritAbbrev": "SPI", - "PB.actionMacro": "Action Macro", - "PB.actionMacroLabel": "Action Label", + "PB.AbilitySpiritAbbrev": "SPI", + "PB.actionMacro": "Action Macro", + "PB.actionMacroLabel": "Action Label", "PB.ActorNotInEncounter": "This actor isn't part of the current combat encounter", "PB.AllowedScvmClassesEdit": "Edit allowed classes", "PB.AllowedScvmClassesSelect": "Select allowed classes", @@ -76,17 +76,17 @@ "PB.ExtraResourceFormula": "Extra Resource Formula", "PB.ExtraResourceFormulaLabel": "Extra Resource Formula Label", "PB.ExtraResourceTestFormula": "Extra Resource Test Formula", - "PB.ExtraResourceTestFormulaLabel": "Extra Resource Test Formula Label", - "PB.FeatureType": "Feature Type", - "PB.FlavorText": "Flavor Text", + "PB.ExtraResourceTestFormulaLabel": "Extra Resource Test Formula Label", + "PB.FeatureType": "Feature Type", + "PB.FlavorText": "Flavor Text", "PB.GetBetter": "Get Better", - "PB.GettingBetterClassFeatures": "You gain the following", - "PB.GettingBetterMacro": "Getting Better Macro", - "PB.GettingBetterRolls": "Getting Better Rolls", + "PB.GettingBetterClassFeatures": "You gain the following", + "PB.GettingBetterMacro": "Getting Better Macro", + "PB.GettingBetterRolls": "Getting Better Rolls", "PB.HandedOne": "One-handed", "PB.HandedTwo": "Two-handed", "PB.Hat": "Hat", - "PB.HatTable": "Hat Table", + "PB.HatTable": "Hat Table", "PB.Heal": "Heal", "PB.Hit": "HIT", "PB.HitPoints": "Hit Points", @@ -102,23 +102,23 @@ "PB.Is": "is", "PB.Inflict": "Inflict", "PB.InvokableRitualCriticalSuccess": "Critical Success", - "PB.InvokableRitualFailure": "Failure - Roll a Mystical Mishaps and you can't use that ritual again until dawn.", + "PB.InvokableRitualFailure": "Failure - Roll a Mystical Mishaps and you can't use that ritual again until dawn.", "PB.InvokableRitualFumble": "Fumble - Roll a Mystical Mishaps twice and you can't use that ritual again until dawn.", "PB.InvokableRitualFailureButton": "Roll a Mystical Mishap", "PB.InvokableRitualSuccess": "Success", "PB.InvokableRelicCriticalSuccess": "Critical Success", - "PB.InvokableRelicFailure": "Failure - you are stunned for the next round and that RELIC cannot be used until the next dawn.", + "PB.InvokableRelicFailure": "Failure - you are stunned for the next round and that RELIC cannot be used until the next dawn.", "PB.InvokableRelicFumble": "Fumble - the relic is permanently destroyed or depleted", "PB.InvokableRelicSuccess": "Success", "PB.InvokableCriticalSuccess": "Critical Success", - "PB.InvokableFailure": "Failure", + "PB.InvokableFailure": "Failure", "PB.InvokableFumble": "Fumble", "PB.InvokableSuccess": "Success", - "PB.InvokableTitle": "Invoke {type}", - "PB.Invoke": "Invoke", + "PB.InvokableTitle": "Invoke {type}", + "PB.Invoke": "Invoke", "PB.Items": "Items", "PB.ItemAgilityDRModifier": "Agility DR Modifier", "PB.ItemCapacity": "Capacity", @@ -136,19 +136,19 @@ "PB.ItemEquipped": "Equipped", "PB.ItemFumbleOn": "Fumble On", "PB.ItemHanded": "Handed", - "PB.ItemInvokableType": "Invokable Type", - "PB.ItemIsEquipment": "Is Equipment?", + "PB.ItemInvokableType": "Invokable Type", + "PB.ItemIsEquipment": "Is Equipment?", "PB.ItemName": "Item Name", "PB.ItemPrice": "Price", - "PB.ItemReduceDamage": "Reduce Damage", - "PB.ItemStartingGold": "Starting Gold", + "PB.ItemReduceDamage": "Reduce Damage", + "PB.ItemStartingGold": "Starting Gold", "PB.ItemTypeAmmo": "Ammo", "PB.ItemTypeArmor": "Armor", "PB.ItemTypeArmorPlural": "Armor", "PB.ItemTypeClass": "Class", "PB.ItemTypeContainer": "Container", "PB.ItemTypeFeat": "Feat", - "PB.ItemTypeHat": "Hat", + "PB.ItemTypeHat": "Hat", "PB.ItemTypeMisc": "Misc", "PB.ItemTypeInvokable": "Invokable", "PB.ItemTypeInvokablePlural": "Invokables", @@ -156,16 +156,16 @@ "PB.ItemTypeWeaponPlural": "Weapons", "PB.ItemUnequipped": "Unequipped", "PB.ItemUsesAmmo": "Uses Ammo", - "PB.ItemUseAmmoDamage": "Use Ammo Damage", + "PB.ItemUseAmmoDamage": "Use Ammo Damage", "PB.ItemWeaponType": "Weapon Type", - "PB.MaxQuantity": "Maximum Quantity", + "PB.MaxQuantity": "Maximum Quantity", "PB.Miss": "MISS", "PB.Modified": "Modified", "PB.Morale": "Morale", "PB.MoraleFlees": "Flees", "PB.MoraleSurrenders": "Surrenders", "PB.MysticalMishaps": "Mystical Mishaps", - + "PB.Name": "Name", "PB.NoActiveEncounter": "No Active Encounter", "PB.NoEffect": "No effect", @@ -190,7 +190,7 @@ "PB.ReactionHelpful": "Helpful", "PB.ReactionIndifferent": "Indifferent", "PB.ReactionKill": "Kill!", - "PB.RegenerateCharacter": "Regenerate Character", + "PB.RegenerateCharacter": "Regenerate Character", "PB.Rest": "Rest", "PB.RestDialogDontEat": "Don't eat - Restore no stats.", @@ -211,7 +211,7 @@ "PB.RollPartyInitiative": "Roll Party Initiative", "PB.Round": "round", "PB.Rounds": "rounds", - "PB.RuleText": "Rule Text", + "PB.RuleText": "Rule Text", "PB.ScvmfactoryChooseFromClasses": "Choose from Classes", "PB.ScvmfactoryMakeScvm": "Make Scvm", "PB.ScvmfactoryToggleAll": "Toggle All", @@ -239,12 +239,12 @@ "PB.SheetClassCreature": "Default Pirate Borg Creature Sheet", "PB.SheetItem": "Default Pirate Borg Item Sheet", "PB.Silver": "Silver", - "PB.StandsFirm": "Stands firm", - "PB.Starting": "Starting", - "PB.StartingBonusItems": "Starting Bonus Items", - "PB.StartingMacro": "Starting Macro", - "PB.StartingItems": "Starting Items", - "PB.StartingRolls": "Starting Rolls", + "PB.StandsFirm": "Stands firm", + "PB.Starting": "Starting", + "PB.StartingBonusItems": "Starting Bonus Items", + "PB.StartingMacro": "Starting Macro", + "PB.StartingItems": "Starting Items", + "PB.StartingRolls": "Starting Rolls", "PB.Starvation": "Starvation", "PB.TabContents": "Contents", @@ -269,5 +269,5 @@ "PB.YouAreHit": "You are Hit", "PB.YouHaveNoFeatures": "You have no Features", "PB.YouHaveNoUsableItems": "You have no usable items", - "PB.YouOwn": "You own {item}" + "PB.YouOwn": "You own {item}" } diff --git a/module/actor/actor.js b/module/actor/actor.js index 9946bb46..45329556 100644 --- a/module/actor/actor.js +++ b/module/actor/actor.js @@ -1,8 +1,15 @@ import { addShowDicePromise, diceSound, showDice } from "../dice.js"; import ScvmDialog from "../scvm/scvm-dialog.js"; -import { rollAncientRelics, rollArcaneRituals, handleClassGettingBetterRollTable } from "../scvm/scvmfactory.js"; +import { + rollAncientRelics, + rollArcaneRituals, + handleClassGettingBetterRollTable, +} from "../scvm/scvmfactory.js"; import { trackAmmo, trackCarryingCapacity } from "../settings.js"; -import { findCompendiumItem, invokeGettingBetterMacro } from "../scvm/scvmfactory.js"; +import { + findCompendiumItem, + invokeGettingBetterMacro, +} from "../scvm/scvmfactory.js"; import { executeMacro } from "../macro-helpers.js"; const ATTACK_DIALOG_TEMPLATE = @@ -34,7 +41,6 @@ const WIELD_INVOKABLE_CARD_TEMPLATE = const MYSTICAL_MISHAP_CARD_TEMPLATE = "systems/pirateborg/templates/chat/mystical-mishap-card.html"; - /** * @extends {Actor} */ @@ -186,9 +192,7 @@ export class PBActor extends Actor { async equipItem(item) { if ( - [CONFIG.PB.itemTypes.armor, CONFIG.PB.itemTypes.hat].includes( - item.type - ) + [CONFIG.PB.itemTypes.armor, CONFIG.PB.itemTypes.hat].includes(item.type) ) { for (const otherItem of this.items) { if (otherItem.type === item.type) { @@ -214,8 +218,8 @@ export class PBActor extends Actor { carryingWeight() { return this.data.items .filter((item) => item.isEquipment && item.carried && !item.hasContainer) - .filter(item => !(item.isHat && item.equipped)) - .filter(item => !(item.isArmor && item.equipped)) + .filter((item) => !(item.isHat && item.equipped)) + .filter((item) => !(item.isArmor && item.equipped)) .reduce((weight, item) => weight + item.totalCarryWeight, 0); } @@ -433,7 +437,7 @@ export class PBActor extends Actor { ); // roll 2: damage. // Use parentheses for critical 2x in case damage die something like 1d6+1 - + const damageFormula = isCrit ? "(@damageDie) * 2" : "@damageDie"; damageRoll = new Roll(damageFormula, itemRollData); damageRoll.evaluate({ async: false }); @@ -778,8 +782,11 @@ export class PBActor extends Actor { * Check reaction! */ async checkReaction() { - const table = await findCompendiumItem('pirateborg.rolls-gamemaster', 'Reaction'); - const result = await table.draw({ displayChat: false }) + const table = await findCompendiumItem( + "pirateborg.rolls-gamemaster", + "Reaction" + ); + const result = await table.draw({ displayChat: false }); await this._renderReactionRollCard(result); } @@ -806,11 +813,11 @@ export class PBActor extends Actor { return; } - switch(item.data.data.invokableType) { - case 'Arcane Ritual': + switch (item.data.data.invokableType) { + case "Arcane Ritual": await this.invokeArcaneRitual(item); break; - case 'Ancient Relic': + case "Ancient Relic": await this.invokeAncientRelic(item); break; default: @@ -823,14 +830,19 @@ export class PBActor extends Actor { if (this.data.data.extraResourceUses.value < 1) { ui.notifications.warn( `${game.i18n.format("PB.NoResourceUsesRemaining", { - type: item.data.data.invokableType + type: item.data.data.invokableType, })}!` ); return; } - const clazz = this.items.find((item) => item.type === CONFIG.PB.itemTypes.class) + const clazz = this.items.find( + (item) => item.type === CONFIG.PB.itemTypes.class + ); - const wieldRoll = new Roll(clazz.data.data.extraResourceTestFormula, this.getRollData()); + const wieldRoll = new Roll( + clazz.data.data.extraResourceTestFormula, + this.getRollData() + ); wieldRoll.evaluate({ async: false }); await showDice(wieldRoll); @@ -844,9 +856,13 @@ export class PBActor extends Actor { let wieldOutcome = null; if (isSuccess) { - wieldOutcome = game.i18n.localize(isCrit ? "PB.InvokableCriticalSuccess" : "PB.InvokableSuccess"); + wieldOutcome = game.i18n.localize( + isCrit ? "PB.InvokableCriticalSuccess" : "PB.InvokableSuccess" + ); } else { - wieldOutcome = game.i18n.localize(isFumble ? "PB.InvokableFumble" : "PB.InvokableFailure"); + wieldOutcome = game.i18n.localize( + isFumble ? "PB.InvokableFumble" : "PB.InvokableFailure" + ); } const rollResult = { @@ -858,10 +874,13 @@ export class PBActor extends Actor { wieldDR, wieldFormula: clazz.data.data.extraResourceTestFormulaLabel, wieldOutcome, - wieldRoll + wieldRoll, }; - const html = await renderTemplate(WIELD_INVOKABLE_CARD_TEMPLATE, rollResult); + const html = await renderTemplate( + WIELD_INVOKABLE_CARD_TEMPLATE, + rollResult + ); await ChatMessage.create({ content: html, @@ -869,7 +888,10 @@ export class PBActor extends Actor { speaker: ChatMessage.getSpeaker({ actor: this }), }); - const extraResourceUses = Math.max(0, this.data.data.extraResourceUses.value - 1); + const extraResourceUses = Math.max( + 0, + this.data.data.extraResourceUses.value - 1 + ); await this.update({ ["data.extraResourceUses.value"]: extraResourceUses }); if (isSuccess) { @@ -877,9 +899,11 @@ export class PBActor extends Actor { } } - - async invokeAncientRelic(item) { - const wieldRoll = new Roll("d20+@abilities.spirit.value", this.getRollData()); + async invokeAncientRelic(item) { + const wieldRoll = new Roll( + "d20+@abilities.spirit.value", + this.getRollData() + ); wieldRoll.evaluate({ async: false }); await showDice(wieldRoll); @@ -893,9 +917,13 @@ export class PBActor extends Actor { let wieldOutcome = null; if (isSuccess) { - wieldOutcome = game.i18n.localize(isCrit ? "PB.InvokableRelicCriticalSuccess" : "PB.InvokableRelicSuccess"); + wieldOutcome = game.i18n.localize( + isCrit ? "PB.InvokableRelicCriticalSuccess" : "PB.InvokableRelicSuccess" + ); } else { - wieldOutcome = game.i18n.localize(isFumble ? "PB.InvokableRelicFumble" : "PB.InvokableRelicFailure"); + wieldOutcome = game.i18n.localize( + isFumble ? "PB.InvokableRelicFumble" : "PB.InvokableRelicFailure" + ); } const rollResult = { @@ -907,10 +935,13 @@ export class PBActor extends Actor { wieldDR, wieldFormula: `1d20 + ${game.i18n.localize("PB.AbilitySpiritAbbrev")}`, wieldOutcome, - wieldRoll + wieldRoll, }; - const html = await renderTemplate(WIELD_INVOKABLE_CARD_TEMPLATE, rollResult); + const html = await renderTemplate( + WIELD_INVOKABLE_CARD_TEMPLATE, + rollResult + ); await ChatMessage.create({ content: html, @@ -931,7 +962,10 @@ export class PBActor extends Actor { return; } - const wieldRoll = new Roll("d20+@abilities.spirit.value", this.getRollData()); + const wieldRoll = new Roll( + "d20+@abilities.spirit.value", + this.getRollData() + ); wieldRoll.evaluate({ async: false }); await showDice(wieldRoll); @@ -946,9 +980,15 @@ export class PBActor extends Actor { let wieldOutcome = null; if (isSuccess) { - wieldOutcome = game.i18n.localize(isCrit ? "PB.InvokableRitualCriticalSuccess" : "PB.InvokableRitualSuccess"); + wieldOutcome = game.i18n.localize( + isCrit + ? "PB.InvokableRitualCriticalSuccess" + : "PB.InvokableRitualSuccess" + ); } else { - wieldOutcome = game.i18n.localize(isFumble ? "PB.InvokableRitualFumble" : "PB.InvokableRitualFailure"); + wieldOutcome = game.i18n.localize( + isFumble ? "PB.InvokableRitualFumble" : "PB.InvokableRitualFailure" + ); } const rollResult = { @@ -965,15 +1005,18 @@ export class PBActor extends Actor { isFumble, }; - const html = await renderTemplate(WIELD_INVOKABLE_CARD_TEMPLATE, rollResult); + const html = await renderTemplate( + WIELD_INVOKABLE_CARD_TEMPLATE, + rollResult + ); await ChatMessage.create({ content: html, sound: diceSound(), speaker: ChatMessage.getSpeaker({ actor: this }), flags: { - hasButton: isFailure || isFumble - } + hasButton: isFailure || isFumble, + }, }); const newPowerUses = Math.max(0, this.data.data.powerUses.value - 1); @@ -988,38 +1031,39 @@ export class PBActor extends Actor { const pack = game.packs.get("pirateborg.rolls-gamemaster"); const content = await pack.getDocuments(); const table = content.find((i) => i.name === "Mystical Mishaps"); - const draw = await table.draw({displayChat: false}); + const draw = await table.draw({ displayChat: false }); console.log(draw); const result = { title: game.i18n.format("PB.MysticalMishaps"), - formula: '1d20', + formula: "1d20", roll: draw.roll, - items: draw.results - } + items: draw.results, + }; const html = await renderTemplate(MYSTICAL_MISHAP_CARD_TEMPLATE, result); await ChatMessage.create({ content: html, sound: diceSound(), - speaker: ChatMessage.getSpeaker({ actor: this }) + speaker: ChatMessage.getSpeaker({ actor: this }), }); } - async useActionMacro(itemId) { + async useActionMacro(itemId) { const item = this.items.get(itemId); if (!item || !item.data.data.actionMacro) { return; } - const [ compendium, macroName = null ] = item.data.data.actionMacro.split(';'); + const [compendium, macroName = null] = + item.data.data.actionMacro.split(";"); if (compendium && macroName) { const macro = await findCompendiumItem(compendium, macroName); await executeMacro(macro, { actor: this, item }); } else { const macro = game.macros.find((m) => m.name === macroName); - await executeMacro(macro, { actor: this, item }); + await executeMacro(macro, { actor: this, item }); } } @@ -1067,7 +1111,9 @@ export class PBActor extends Actor { const roll = await this._rollOutcome( "d4+@abilities.spirit.value", this.getRollData(), - `${game.i18n.localize("PB.RitualRemaining")} ${game.i18n.localize("PB.PerDay")}`, + `${game.i18n.localize("PB.RitualRemaining")} ${game.i18n.localize( + "PB.PerDay" + )}`, (roll) => ` ${game.i18n.localize("PB.PowerUsesRemaining")}: ${Math.max( 0, @@ -1082,18 +1128,22 @@ export class PBActor extends Actor { } async rollExtraResourcePerDay() { - const clazz = this.items.find((item) => item.type === CONFIG.PB.itemTypes.class) + const clazz = this.items.find( + (item) => item.type === CONFIG.PB.itemTypes.class + ); if (clazz.data.data.useExtraResource) { const roll = await this._rollOutcome( clazz.data.data.extraResourceFormula, this.getRollData(), - `${clazz.data.data.extraResourceNamePlural} ${game.i18n.localize("PB.PerDay")}`, + `${clazz.data.data.extraResourceNamePlural} ${game.i18n.localize( + "PB.PerDay" + )}`, (roll) => ` ${game.i18n.localize("PB.PowerUsesRemaining")}: ${Math.max( 0, roll.total )}`, - clazz.data.data.extraResourceFormulaLabel + clazz.data.data.extraResourceFormulaLabel ); const newUses = Math.max(0, roll.total); await this.update({ @@ -1101,7 +1151,7 @@ export class PBActor extends Actor { }); } } - + /** * * @param {*} restLength "short" or "long" @@ -1197,7 +1247,6 @@ export class PBActor extends Actor { } async getBetter() { - const oldHp = this.data.data.hp.max; const newHp = this._betterHp(oldHp); const oldStr = this.data.data.abilities.strength.value; @@ -1209,7 +1258,7 @@ export class PBActor extends Actor { const oldTou = this.data.data.abilities.toughness.value; const newTou = this._betterAbility(oldTou); const oldSpi = this.data.data.abilities.spirit.value; - const newSpi = this._betterAbility(oldSpi); + const newSpi = this._betterAbility(oldSpi); let newSilver = this.data.data.silver; const hpOutcome = this._abilityOutcome( @@ -1259,27 +1308,27 @@ export class PBActor extends Actor { newSilver += silverRoll.total; } else if (debrisRoll.total === 5) { debrisOutcome = "an ancient relic"; - relicOrRitual = (await rollAncientRelics())[0]; + relicOrRitual = (await rollAncientRelics())[0]; } else { - debrisOutcome = "an arcane ritual" - relicOrRitual = (await rollArcaneRituals())[0]; + debrisOutcome = "an arcane ritual"; + relicOrRitual = (await rollArcaneRituals())[0]; } const gettingBetterItems = await handleClassGettingBetterRollTable(this); const gettingBetterItemsData = gettingBetterItems.map((item) => item.data); const data = { - hpOutcome, + hpOutcome, agiOutcome, preOutcome, strOutcome, touOutcome, spiOutcome, - debrisOutcome, + debrisOutcome, relicOrRitual: relicOrRitual ? relicOrRitual.data : null, classFeatures: gettingBetterItemsData, }; - + const html = await renderTemplate(GET_BETTER_ROLL_CARD_TEMPLATE, data); ChatMessage.create({ content: html, @@ -1299,7 +1348,7 @@ export class PBActor extends Actor { }); if (relicOrRitual) { - await this.createEmbeddedDocuments('Item', [relicOrRitual.data]); + await this.createEmbeddedDocuments("Item", [relicOrRitual.data]); } await invokeGettingBetterMacro(this); @@ -1347,8 +1396,11 @@ export class PBActor extends Actor { } async rollBroken() { - const table = await findCompendiumItem('pirateborg.rolls-gamemaster', 'Broken'); - const result = await table.draw({ displayChat: false }) + const table = await findCompendiumItem( + "pirateborg.rolls-gamemaster", + "Broken" + ); + const result = await table.draw({ displayChat: false }); const data = { brokenRoll: result.roll, diff --git a/module/actor/sheet/character-sheet.js b/module/actor/sheet/character-sheet.js index c6ce2b7d..20165930 100644 --- a/module/actor/sheet/character-sheet.js +++ b/module/actor/sheet/character-sheet.js @@ -31,8 +31,8 @@ export class PBActorSheetCharacter extends PBActorSheet { label: game.i18n.localize("PB.RegenerateCharacter"), icon: "fas fa-skull", onclick: this._onScvmify.bind(this), - }, - ...super._getHeaderButtons() + }, + ...super._getHeaderButtons(), ]; } @@ -67,7 +67,12 @@ export class PBActorSheetCharacter extends PBActorSheet { */ _prepareCharacterItems(sheetData) { const byName = (a, b) => (a.name > b.name ? 1 : b.name > a.name ? -1 : 0); - const byType = (a, b) => (a.type.toLowerCase() > b.type.toLowerCase() ? 1 : b.type.toLowerCase() > a.type.toLowerCase() ? -1 : 0) + const byType = (a, b) => + a.type.toLowerCase() > b.type.toLowerCase() + ? 1 + : b.type.toLowerCase() > a.type.toLowerCase() + ? -1 + : 0; sheetData.data.class = sheetData.items.find( (item) => item.type === CONFIG.PB.itemTypes.class @@ -75,7 +80,13 @@ export class PBActorSheetCharacter extends PBActorSheet { sheetData.data.equipment = sheetData.items .filter((item) => CONFIG.PB.itemEquipmentTypes.includes(item.type)) - .filter((item) => !(item.type === CONFIG.PB.itemTypes.invokable && !item.data.isEquipment)) + .filter( + (item) => + !( + item.type === CONFIG.PB.itemTypes.invokable && + !item.data.isEquipment + ) + ) .filter((item) => !item.data.hasContainer) .sort(byName); @@ -97,36 +108,52 @@ export class PBActorSheetCharacter extends PBActorSheet { .sort(byName); sheetData.data.features = sheetData.items - .filter((item) => item.type === CONFIG.PB.itemTypes.feature || item.type === CONFIG.PB.itemTypes.background || item.type === CONFIG.PB.itemTypes.invokable) - .filter((item) => !(item.data.invokableType === 'Arcane Ritual' || item.data.invokableType === 'Ancient Relic')) + .filter( + (item) => + item.type === CONFIG.PB.itemTypes.feature || + item.type === CONFIG.PB.itemTypes.background || + item.type === CONFIG.PB.itemTypes.invokable + ) + .filter( + (item) => + !( + item.data.invokableType === "Arcane Ritual" || + item.data.invokableType === "Ancient Relic" + ) + ) .reduce((items, item) => { - const key = item.data.featureType || item.data.invokableType || item.type; + const key = + item.data.featureType || item.data.invokableType || item.type; let group = items.find((i) => i.type === key); if (!group) { - group = { type: key, items: []} + group = { type: key, items: [] }; items.push(group); } - group.items.push(item) + group.items.push(item); return items; }, []) .sort(byType); - sheetData.data.invokables = sheetData.items + sheetData.data.invokables = sheetData.items .filter((item) => item.type === CONFIG.PB.itemTypes.invokable) - .filter((item) => item.data.invokableType === 'Arcane Ritual' || item.data.invokableType === 'Ancient Relic') + .filter( + (item) => + item.data.invokableType === "Arcane Ritual" || + item.data.invokableType === "Ancient Relic" + ) .reduce((items, item) => { - const key = item.data.invokableType; + const key = item.data.invokableType; let group = items.find((i) => i.type === key); if (!group) { - group = { type: key, items: []} + group = { type: key, items: [] }; items.push(group); } - group.items.push(item) + group.items.push(item); return items; }, []) .sort(byType); - console.log(sheetData.data); + console.log(sheetData.data); } /** @override */ @@ -149,22 +176,32 @@ export class PBActorSheetCharacter extends PBActorSheet { html .find(".ability-label.rollable.toughness") .on("click", this._onToughnessRoll.bind(this)); - html + html .find(".ability-label.rollable.spirit") - .on("click", this._onSpiritRoll.bind(this)); + .on("click", this._onSpiritRoll.bind(this)); html.find(".broken-button").on("click", this._onBroken.bind(this)); html.find(".rest-button").on("click", this._onRest.bind(this)); - html.find(".luck-row span.rollable").on("click", this._onLuckRoll.bind(this)); + html + .find(".luck-row span.rollable") + .on("click", this._onLuckRoll.bind(this)); html.find(".get-better-button").on("click", this._onGetBetter.bind(this)); // feats tab - html.find(".action-macro-button").on("click", this._onActionMacroRoll.bind(this)); - html.find(".action-invokable").on("click", this._onActionInvokable.bind(this)); + html + .find(".action-macro-button") + .on("click", this._onActionMacroRoll.bind(this)); + html + .find(".action-invokable") + .on("click", this._onActionInvokable.bind(this)); - html.find(".ritual-per-day-text").on("click", this._onRitualPerDay.bind(this)); - html.find(".extra-resources-per-day-text").on("click", this._onExtraResourcePerDay.bind(this)); + html + .find(".ritual-per-day-text") + .on("click", this._onRitualPerDay.bind(this)); + html + .find(".extra-resources-per-day-text") + .on("click", this._onExtraResourcePerDay.bind(this)); html.find("select.ammo-select").on("change", this._onAmmoSelect.bind(this)); } @@ -249,7 +286,7 @@ export class PBActorSheetCharacter extends PBActorSheet { event.preventDefault(); this.actor.rollRitualPerDay(); } - + _onExtraResourcePerDay() { event.preventDefault(); this.actor.rollExtraResourcePerDay(); diff --git a/module/config.js b/module/config.js index f44d6584..c3d8abd5 100644 --- a/module/config.js +++ b/module/config.js @@ -45,7 +45,6 @@ PB.flags = { TARGET_ARMOR: "targetArmor", }; - PB.handed = { 1: "PB.HandedOne", 2: "PB.HandedTwo", @@ -56,11 +55,11 @@ PB.itemTypes = { armor: "armor", background: "background", class: "class", - container: "container", + container: "container", feature: "feature", - hat: "hat", - invokable: "invokable", - misc: "misc", + hat: "hat", + invokable: "invokable", + misc: "misc", weapon: "weapon", }; @@ -72,7 +71,7 @@ PB.itemTypeKeys = { container: "PB.ItemTypeContainer", feature: "PB.ItemTypeFeature", hat: "PB.ItemTypeHat", - invokable: "PB.ItemTypeInvokable", + invokable: "PB.ItemTypeInvokable", misc: "PB.ItemTypeMisc", weapon: "PB.ItemTypeWeapon", }; @@ -105,7 +104,11 @@ PB.equippableItemTypes = [ PB.droppableItemTypes = [PB.itemTypes.container]; -PB.plusMinusItemTypes = [PB.itemTypes.ammo, PB.itemTypes.misc, PB.itemTypes.feature]; +PB.plusMinusItemTypes = [ + PB.itemTypes.ammo, + PB.itemTypes.misc, + PB.itemTypes.feature, +]; PB.weaponTypes = { melee: "PB.WeaponTypeMelee", @@ -118,11 +121,14 @@ PB.scvmFactory = { namesPack: "pirateborg.rolls-character-creation;Names", - armorsRollTable: "pirateborg.rolls-character-creation;d10 Starting clothing & armor", + armorsRollTable: + "pirateborg.rolls-character-creation;d10 Starting clothing & armor", weaponsRollTable: "pirateborg.rolls-character-creation;d10 Starting weapons", hatsRollTable: "pirateborg.rolls-character-creation;d12 Starting hats", - arcaneRitualsRollTable: "pirateborg.rolls-character-creation;d20 Arcane rituals", - ancientRelicsRollTable: "pirateborg.rolls-character-creation;d20 Ancient relics", + arcaneRitualsRollTable: + "pirateborg.rolls-character-creation;d20 Arcane rituals", + ancientRelicsRollTable: + "pirateborg.rolls-character-creation;d20 Ancient relics", // compendium;table;amount baseTables: [ @@ -135,5 +141,5 @@ PB.scvmFactory = { "pirateborg.rolls-character-creation;d20 Idiosyncrasies", "pirateborg.rolls-character-creation;d20 Unfortunate Incidents & Conditions", "pirateborg.rolls-character-creation;d100 Thing of Importance", - ] + ], }; diff --git a/module/macro-helpers.js b/module/macro-helpers.js index 73805626..a1b67c3f 100755 --- a/module/macro-helpers.js +++ b/module/macro-helpers.js @@ -1,45 +1,51 @@ -import { diceSound, showDice as rollDice} from "./dice.js"; +import { diceSound, showDice as rollDice } from "./dice.js"; import { findCompendiumItem } from "./scvm/scvmfactory.js"; -export const GENERIC_CHAT_MESSAGE_TEMPLATE = "systems/pirateborg/templates/chat/generic-chat-message-card.html"; +export const GENERIC_CHAT_MESSAGE_TEMPLATE = + "systems/pirateborg/templates/chat/generic-chat-message-card.html"; export const showDice = rollDice; -export const createChatMessage = async (actor, template, templateData, { - muted = false -} = {}) => { +export const createChatMessage = async ( + actor, + template, + templateData, + { muted = false } = {} +) => { const html = await renderTemplate(template, templateData); ChatMessage.create({ content: html, sound: !muted ? diceSound() : false, speaker: ChatMessage.getSpeaker({ actor }), }); -} +}; -export const createRoll = async(formula, rollData = {}) => { +export const createRoll = async (formula, rollData = {}) => { const roll = new Roll(formula, rollData); roll.evaluate({ async: false }); return roll; -} +}; -export const executeMacro = async (macro, {actor, token, item}={}) => { - const speaker = ChatMessage.implementation.getSpeaker(); - const character = game.user.character; - actor = actor || game.actors.get(speaker.actor); - token = token || (canvas.ready ? canvas.tokens.get(speaker.token) : null); - const body = `(async () => { +export const executeMacro = async (macro, { actor, token, item } = {}) => { + const speaker = ChatMessage.implementation.getSpeaker(); + const character = game.user.character; + actor = actor || game.actors.get(speaker.actor); + token = token || (canvas.ready ? canvas.tokens.get(speaker.token) : null); + const body = `(async () => { ${macro.data.command} })()`; - const fn = Function("speaker", "actor", "token", "character", "item", body); - try { - fn.call(this, speaker, actor, token, character, item); - } catch (err) { - ui.notifications.error(`There was an error in your macro syntax. See the console (F12) for details`); - console.error(err); - } -} + const fn = Function("speaker", "actor", "token", "character", "item", body); + try { + fn.call(this, speaker, actor, token, character, item); + } catch (err) { + ui.notifications.error( + `There was an error in your macro syntax. See the console (F12) for details` + ); + console.error(err); + } +}; export const drawTable = async (compendium, table) => { const rollTable = await findCompendiumItem(compendium, table); return await rollTable.draw(); -} \ No newline at end of file +}; diff --git a/module/pirateborg.js b/module/pirateborg.js index 6ca53f77..10054b56 100644 --- a/module/pirateborg.js +++ b/module/pirateborg.js @@ -10,7 +10,6 @@ import { renderChatMessage } from "./system/render-chat-message.js"; import { renderActorDirectory } from "./system/render-actor-directory.js"; import { registerSystemSettings } from "./settings.js"; - /* -------------------------------------------- */ /* Foundry VTT Initialization */ /* -------------------------------------------- */ diff --git a/module/scvm/scvmfactory.js b/module/scvm/scvmfactory.js index dabdbc7d..8d0f60db 100644 --- a/module/scvm/scvmfactory.js +++ b/module/scvm/scvmfactory.js @@ -54,31 +54,31 @@ export const classItemFromPack = async (compendiumName) => { /// new const compendiumInfoFromString = (value) => { - return value.split(';'); -} + return value.split(";"); +}; export const drawTable = async (compendium, table) => { const rollTable = await findCompendiumItem(compendium, table); return await rollTable.draw({ displayChat: false }); -} +}; const rollAbility = (roll, bonus) => { const abilityRoll = new Roll(roll).evaluate({ async: false, }); - const ability = abilityBonus(abilityRoll.total) - return bonus ? (ability + parseInt(bonus, 10)) : ability; -} + const ability = abilityBonus(abilityRoll.total); + return bonus ? ability + parseInt(bonus, 10) : ability; +}; const findItems = async (items) => { - const compendiumsItems = items.split('\n').filter(item => item); + const compendiumsItems = items.split("\n").filter((item) => item); let results = []; for (const compendiumsItem of compendiumsItems) { const [compendium, table] = compendiumInfoFromString(compendiumsItem); results.push(await findCompendiumItem(compendium, table)); } return results; -} +}; export const findCompendiumItem = async (compendiumName, itemName) => { const compendium = game.packs.get(compendiumName); @@ -86,197 +86,259 @@ export const findCompendiumItem = async (compendiumName, itemName) => { const documents = await compendium.getDocuments(); const item = documents.find((i) => i.name === itemName); if (!item) { - console.warn(`findCompendiumItem: Could not find item (${itemName}) in compendium (${compendiumName})`); + console.warn( + `findCompendiumItem: Could not find item (${itemName}) in compendium (${compendiumName})` + ); } - return item; + return item; } else { - console.warn(`findCompendiumItem: Could not find compendium (${compendiumName})`); + console.warn( + `findCompendiumItem: Could not find compendium (${compendiumName})` + ); } -} +}; export const drawTableItems = async (compendium, table, amount) => { let results = []; - for(let i = 0; i < amount; i++) { + for (let i = 0; i < amount; i++) { results = results.concat(await drawTableItem(compendium, table)); } return results; -} +}; export const drawTableItem = async (compendium, table) => { const draw = await drawTable(compendium, table); return await findTableItems(draw.results); -} +}; export const drawTableSingleTextResult = async (compendium, table) => { return (await drawTable(compendium, table)).results[0].getChatText(); -} +}; export const rollTable = async (compendium, table, roll) => { const rollTable = await findCompendiumItem(compendium, table); const draw = await rollTable.roll(roll); return await findTableItems(draw.results); -} +}; export const rollName = async () => { - const [compendium, table] = compendiumInfoFromString(PB.scvmFactory.namesPack); + const [compendium, table] = compendiumInfoFromString( + PB.scvmFactory.namesPack + ); return await drawTableSingleTextResult(compendium, table); -} +}; export const rollAbilities = (data) => { return { - strength: rollAbility(data.startingAbilityScoreFormula, data.startingStrengthBonus), - agility: rollAbility(data.startingAbilityScoreFormula, data.startingAgilityBonus), - presence: rollAbility(data.startingAbilityScoreFormula, data.startingPresenceBonus), - toughness: rollAbility(data.startingAbilityScoreFormula, data.startingToughnessBonus), - spirit: rollAbility(data.startingAbilityScoreFormula, data.startingSpiritBonus), - } -} + strength: rollAbility( + data.startingAbilityScoreFormula, + data.startingStrengthBonus + ), + agility: rollAbility( + data.startingAbilityScoreFormula, + data.startingAgilityBonus + ), + presence: rollAbility( + data.startingAbilityScoreFormula, + data.startingPresenceBonus + ), + toughness: rollAbility( + data.startingAbilityScoreFormula, + data.startingToughnessBonus + ), + spirit: rollAbility( + data.startingAbilityScoreFormula, + data.startingSpiritBonus + ), + }; +}; export const rollLuck = (luckDie) => { return new Roll(luckDie).evaluate({ async: false, }).total; -} +}; export const rollHitPoints = (startingHitPoints, toughness) => { - return new Roll(startingHitPoints).evaluate({ - async: false, - }).total + toughness; -} + return ( + new Roll(startingHitPoints).evaluate({ + async: false, + }).total + toughness + ); +}; export const rollSilver = (background) => { return new Roll(background.data.data.startingGold).evaluate({ async: false, }).total; -} +}; -export const rollArmor = async (roll) => { - const [compendium, table] = compendiumInfoFromString(PB.scvmFactory.armorsRollTable); +export const rollArmor = async (roll) => { + const [compendium, table] = compendiumInfoFromString( + PB.scvmFactory.armorsRollTable + ); return await rollTable(compendium, table, roll); -} +}; -export const rollHat = async (roll) => { - const [compendium, table] = compendiumInfoFromString(PB.scvmFactory.hatsRollTable); +export const rollHat = async (roll) => { + const [compendium, table] = compendiumInfoFromString( + PB.scvmFactory.hatsRollTable + ); return await rollTable(compendium, table, roll); -} +}; -export const rollWeapon = async (roll) => { - const [compendium, table] = compendiumInfoFromString(PB.scvmFactory.weaponsRollTable); +export const rollWeapon = async (roll) => { + const [compendium, table] = compendiumInfoFromString( + PB.scvmFactory.weaponsRollTable + ); return await rollTable(compendium, table, roll); -} +}; -export const rollAncientRelics = async (roll) => { - const [compendium, table] = compendiumInfoFromString(PB.scvmFactory.ancientRelicsRollTable); +export const rollAncientRelics = async (roll) => { + const [compendium, table] = compendiumInfoFromString( + PB.scvmFactory.ancientRelicsRollTable + ); return await rollTable(compendium, table, roll); -} +}; -export const rollArcaneRituals = async (roll) => { - const [compendium, table] = compendiumInfoFromString(PB.scvmFactory.arcaneRitualsRollTable); +export const rollArcaneRituals = async (roll) => { + const [compendium, table] = compendiumInfoFromString( + PB.scvmFactory.arcaneRitualsRollTable + ); return await rollTable(compendium, table, roll); -} +}; export const rollBaseTables = async () => { let items = []; for (const compendiumTable of PB.scvmFactory.baseTables) { - const [compendium, table, quantity = 1] = compendiumInfoFromString(compendiumTable); + const [compendium, table, quantity = 1] = + compendiumInfoFromString(compendiumTable); items = items.concat(await drawTableItems(compendium, table, quantity)); } return items; -} +}; export const rollRollItems = async (rolls) => { - const compendiumTables = rolls.split('\n').filter(item => item); + const compendiumTables = rolls.split("\n").filter((item) => item); let results = []; for (const compendiumTable of compendiumTables) { - const [compendium, table, quantity = 1] = compendiumInfoFromString(compendiumTable); + const [compendium, table, quantity = 1] = + compendiumInfoFromString(compendiumTable); results = results.concat(await drawTableItems(compendium, table, quantity)); } return results; -} +}; export const findFeatureBonusItems = async (features) => { let results = []; for (const feature of features) { if (feature.data.data.startingBonusItems) { - results = results.concat(await findItems(feature.data.data.startingBonusItems)); + results = results.concat( + await findItems(feature.data.data.startingBonusItems) + ); } } return results; -} +}; -export const handleClassGettingBetterRollTable = async (actor) => { - const clazz = actor.items.find((item) => item.type === CONFIG.PB.itemTypes.class) - const [compendium, table] = compendiumInfoFromString(clazz.data.data.gettingBetterRolls); +export const handleClassGettingBetterRollTable = async (actor) => { + const clazz = actor.items.find( + (item) => item.type === CONFIG.PB.itemTypes.class + ); + const [compendium, table] = compendiumInfoFromString( + clazz.data.data.gettingBetterRolls + ); - let items = []; + let items = []; if (compendium) { const compendiumRollTable = await findCompendiumItem(compendium, table); - const rollTable = compendiumRollTable.clone({ replacement: false }); - - while(true) { - const draw = await rollTable.draw({ displayChat: false }); + const rollTable = compendiumRollTable.clone({ replacement: false }); + + while (true) { + const draw = await rollTable.draw({ displayChat: false }); items = await findTableItems(draw.results); console.log(items); - if (!items.length) { + if (!items.length) { break; - } + } - const item = items[0]; - const actorItem = actor.items.find((i) => i.data.name === item.data.name); + const item = items[0]; + const actorItem = actor.items.find((i) => i.data.name === item.data.name); const noLimits = item.data.data.maxQuantity === 0; - const actorItemQuantity = actorItem ? (actorItem.data.data.quantity || 1) : 0; - const itemMaxQuantity = item.data.data.maxQuantity || 1 - + const actorItemQuantity = actorItem + ? actorItem.data.data.quantity || 1 + : 0; + const itemMaxQuantity = item.data.data.maxQuantity || 1; + if (noLimits || actorItemQuantity < itemMaxQuantity) { if (actorItem) { - await actorItem.update({['data.quantity']: actorItemQuantity + 1}); + await actorItem.update({ ["data.quantity"]: actorItemQuantity + 1 }); } else { - await actor.createEmbeddedDocuments('Item', items.map(item => item.data)); + await actor.createEmbeddedDocuments( + "Item", + items.map((item) => item.data) + ); } break; } - draw.results.forEach((result) => result.data.drawn = true); + draw.results.forEach((result) => (result.data.drawn = true)); } } return items; -} +}; export const generateDescription = (clazz, items) => { - const thingOfImportance = items.find((item) => item.data.data.featureType === 'Thing of Importance'); + const thingOfImportance = items.find( + (item) => item.data.data.featureType === "Thing of Importance" + ); const description = items - .filter((item) => item.type === CONFIG.PB.itemTypes.feature || item.type === CONFIG.PB.itemTypes.background) - .filter((item) => item.data.data.featureType !== 'Thing of Importance') + .filter( + (item) => + item.type === CONFIG.PB.itemTypes.feature || + item.type === CONFIG.PB.itemTypes.background + ) + .filter((item) => item.data.data.featureType !== "Thing of Importance") .map((doc) => doc.data.name) - .concat([game.i18n.format("PB.YouOwn", { - item: thingOfImportance.data.name, - })]) - .join('...'); + .concat([ + game.i18n.format("PB.YouOwn", { + item: thingOfImportance.data.name, + }), + ]) + .join("..."); return `
${clazz.data.data.flavorText}
${description}
`; -} +}; export const invokeStartingMacro = async (actor) => { - const clazz = actor.items.find((i) => i.data.type === CONFIG.PB.itemTypes.class); - const [compendium, macroName] = compendiumInfoFromString(clazz.data.data.startingMacro); + const clazz = actor.items.find( + (i) => i.data.type === CONFIG.PB.itemTypes.class + ); + const [compendium, macroName] = compendiumInfoFromString( + clazz.data.data.startingMacro + ); if (compendium && macroName) { const macro = await findCompendiumItem(compendium, macroName); - executeMacro(macro, { actor, item: clazz}) + executeMacro(macro, { actor, item: clazz }); } -} +}; export const invokeGettingBetterMacro = async (actor) => { - const clazz = actor.items.find((i) => i.data.type === CONFIG.PB.itemTypes.class); - const [compendium, macroName] = compendiumInfoFromString(clazz.data.data.gettingBetterMacro); + const clazz = actor.items.find( + (i) => i.data.type === CONFIG.PB.itemTypes.class + ); + const [compendium, macroName] = compendiumInfoFromString( + clazz.data.data.gettingBetterMacro + ); if (compendium && macroName) { const macro = await findCompendiumItem(compendium, macroName); - executeMacro(macro, { actor, item: clazz}) + executeMacro(macro, { actor, item: clazz }); } -} +}; export const rollScvmForClass = async (clazz) => { console.log(`Creating new ${clazz.data.name}`); - + const data = clazz.data.data; const name = await rollName(); @@ -285,24 +347,43 @@ export const rollScvmForClass = async (clazz) => { const hitPoints = rollHitPoints(data.startingHitPoints, abilities.toughness); const baseTables = await rollBaseTables(); - const background = baseTables.find((item) => item.type === CONFIG.PB.itemTypes.background); - const features = baseTables.filter((item) => item.type === CONFIG.PB.itemTypes.feature); - const hasRelic = baseTables.some((item) => item.data.data.invokableType === 'Ancient Relic'); + const background = baseTables.find( + (item) => item.type === CONFIG.PB.itemTypes.background + ); + const features = baseTables.filter( + (item) => item.type === CONFIG.PB.itemTypes.feature + ); + const hasRelic = baseTables.some( + (item) => item.data.data.invokableType === "Ancient Relic" + ); const silver = rollSilver(background); - const armor = clazz.data.data.startingArmorTableFormula ? (await rollArmor(!hasRelic ? clazz.data.data.startingArmorTableFormula : '1d6')) : []; - const hat = clazz.data.data.startingHatTableFormula ? (await rollHat(clazz.data.data.startingHatTableFormula)) : []; - const weapon = clazz.data.data.startingWeaponTableFormula ? (await rollWeapon(clazz.data.data.startingWeaponTableFormula)) : []; + const armor = clazz.data.data.startingArmorTableFormula + ? await rollArmor( + !hasRelic ? clazz.data.data.startingArmorTableFormula : "1d6" + ) + : []; + const hat = clazz.data.data.startingHatTableFormula + ? await rollHat(clazz.data.data.startingHatTableFormula) + : []; + const weapon = clazz.data.data.startingWeaponTableFormula + ? await rollWeapon(clazz.data.data.startingWeaponTableFormula) + : []; const startingRollItems = await rollRollItems(clazz.data.data.startingRolls); const startingItems = await findItems(clazz.data.data.startingItems); - const backgroundBonusItems = await findItems(background.data.data.startingBonusItems); - const featuresBonusItems = await findFeatureBonusItems([...(features || []), ...(startingRollItems || [])]); + const backgroundBonusItems = await findItems( + background.data.data.startingBonusItems + ); + const featuresBonusItems = await findFeatureBonusItems([ + ...(features || []), + ...(startingRollItems || []), + ]); const description = generateDescription(clazz, baseTables); - + const allDocs = [ ...baseTables, ...(armor || []), @@ -310,14 +391,18 @@ export const rollScvmForClass = async (clazz) => { ...(weapon || []), ...(startingRollItems || []), ...(startingItems || []), - ...(backgroundBonusItems || []), - ...(featuresBonusItems || []), - clazz + ...(backgroundBonusItems || []), + ...(featuresBonusItems || []), + clazz, ]; - + // power uses - const powerUsesRoll = new Roll(`1d4 + ${abilities.spirit}`).evaluate({ async: false }); - const extraResourceRoll = new Roll(`1d4 + ${abilities.spirit}`).evaluate({ async: false }); + const powerUsesRoll = new Roll(`1d4 + ${abilities.spirit}`).evaluate({ + async: false, + }); + const extraResourceRoll = new Roll(`1d4 + ${abilities.spirit}`).evaluate({ + async: false, + }); const items = allDocs.map((i) => ({ data: i.data.data, @@ -335,9 +420,9 @@ export const rollScvmForClass = async (clazz) => { ...abilities, items, description, - silver, + silver, powerUses: powerUsesRoll.total, - extraResourceUses: extraResourceRoll.total + extraResourceUses: extraResourceRoll.total, }; }; @@ -412,18 +497,22 @@ export const findTableItems = async (results) => { items.push(item); } } else if (result.data.type === 0 && item) { - const [property, value] = result.getChatText().split(': '); - const enrichHtml = TextEditor.enrichHTML(value, {options: {command: true}}); - if (property === 'description') { + const [property, value] = result.getChatText().split(": "); + const enrichHtml = TextEditor.enrichHTML(value, { + options: { command: true }, + }); + if (property === "description") { item.data.data.description = enrichHtml; + } else if (property === "quantity") { + item.data.data.quantity = parseInt( + $(`${enrichHtml}`).text().trim(), + 10 + ); } - else if (property === 'quantity') { - item.data.data.quantity = parseInt($(`${enrichHtml}`).text().trim(), 10); - } } } return items; -} +}; const abilityBonus = (rollTotal) => { if (rollTotal <= 4) { diff --git a/module/system/configure-system.js b/module/system/configure-system.js index 33a5bada..d8ee2131 100755 --- a/module/system/configure-system.js +++ b/module/system/configure-system.js @@ -18,7 +18,7 @@ export const configureSystem = () => { PBItem, rollItemMacro, pirateFactory, - macroHelpers + macroHelpers, }; CONFIG.Actor.documentClass = PBActor; @@ -53,7 +53,7 @@ export const configureSystem = () => { Items.unregisterSheet("core", ItemSheet); - Items.registerSheet("pirateborg", PBItemSheet, { + Items.registerSheet("pirateborg", PBItemSheet, { makeDefault: true, label: "PB.SheetItem", }); diff --git a/module/system/render-chat-message.js b/module/system/render-chat-message.js index 0d219432..b3b0a42f 100755 --- a/module/system/render-chat-message.js +++ b/module/system/render-chat-message.js @@ -1,15 +1,15 @@ import { rollPartyInitiative } from "../combat.js"; -export const renderChatMessage = async (message, html, data)=> { +export const renderChatMessage = async (message, html, data) => { if (message.data.flags.hasButton) { - const buttons = html.find('.item-button'); + const buttons = html.find(".item-button"); if (buttons.length) { const button = $(buttons[0]); - const isMysticalMishap = button.data('is-mystical-mishap'); + const isMysticalMishap = button.data("is-mystical-mishap"); if (isMysticalMishap) { - button.on('click', async () => { - const actorId = button.data('actor-id'); - const actor = game.actors.get(actorId); + button.on("click", async () => { + const actorId = button.data("actor-id"); + const actor = game.actors.get(actorId); await actor.rollMysticalMishap(); }); } diff --git a/scss/pirateborg/_actor-sheet.scss b/scss/pirateborg/_actor-sheet.scss index 439ce527..cce1496a 100644 --- a/scss/pirateborg/_actor-sheet.scss +++ b/scss/pirateborg/_actor-sheet.scss @@ -126,7 +126,7 @@ width: 60px; } - &.weapon-type { + &.weapon-type { text-align: right; width: 60px; } @@ -167,7 +167,6 @@ gap: 12px; li { - } label { @@ -215,7 +214,6 @@ } &.tier-dmg { - } } } @@ -234,7 +232,7 @@ } .defend-rule { - text-align: center; + text-align: center; margin-top: 16px; } } diff --git a/scss/pirateborg/_character-sheet.scss b/scss/pirateborg/_character-sheet.scss index 32a0c042..0869cb07 100644 --- a/scss/pirateborg/_character-sheet.scss +++ b/scss/pirateborg/_character-sheet.scss @@ -81,11 +81,11 @@ .hp-entries { display: flex; align-items: center; - gap: 4px; - span { + gap: 4px; + span { font-size: 18px; margin-top: 3px; - } + } } .luck-row { @@ -102,11 +102,9 @@ } .luck-rule { - } .stat-label { - } .ability-row { @@ -143,7 +141,6 @@ } .sheet-body { - .powers-top-row { margin-bottom: 16px; display: flex; @@ -205,7 +202,6 @@ line-height: 32px; } } - } .container-label { diff --git a/scss/pirateborg/_container-sheet.scss b/scss/pirateborg/_container-sheet.scss index 40a2ddb6..0bd98db6 100644 --- a/scss/pirateborg/_container-sheet.scss +++ b/scss/pirateborg/_container-sheet.scss @@ -14,7 +14,7 @@ margin-right: 8px; line-height: 0; } - + .header-col2 { display: flex; flex: 1; @@ -22,7 +22,7 @@ height: 100%; justify-content: flex-start; } - + .profile-img { height: 200px; width: 200px; diff --git a/scss/pirateborg/_foundry-overrides.scss b/scss/pirateborg/_foundry-overrides.scss index 0b7e0c56..dabf85c8 100644 --- a/scss/pirateborg/_foundry-overrides.scss +++ b/scss/pirateborg/_foundry-overrides.scss @@ -122,16 +122,13 @@ form.editable .results { .window-app .window-content { .notes { - } form { .form-header { - } .notes { - } } @@ -217,7 +214,7 @@ form.editable .results { #chat-controls { color: var(--foreground-color); - + i.fas:hover { color: var(--highlight-background-color); text-shadow: 0 0 5px var(--highlight-background-color); @@ -257,7 +254,6 @@ form.editable .results { justify-content: center; } } - .message { h4, @@ -358,7 +354,6 @@ form.editable .results { } select { - &:focus { outline: none; box-shadow: 0 0 5px var(--highlight-background-color); @@ -430,7 +425,6 @@ form.editable .results { } .dialog .dialog-buttons { - button { margin-top: 8px; background: var(--button-background); @@ -442,7 +436,7 @@ form.editable .results { width: auto; padding: 0 16px; font-weight: 500; - + cursor: pointer; &.default { @@ -464,8 +458,8 @@ form .form-group select { form .form-group, form .form-group-stacked { - margin: 8px 0; - } + margin: 8px 0; +} #hotbar { #hotbar-directory-controls, @@ -520,7 +514,7 @@ form .form-group-stacked { } } #sidebar { - background: var(--sidebar-background); + background: var(--sidebar-background); color: var(--sidebar-color); &.collapsed #sidebar-tabs > .item.active { @@ -573,7 +567,6 @@ form .form-group-stacked { } &.directory { - .folder-header { border: none; } @@ -587,23 +580,23 @@ form .form-group-stacked { background: none; border-bottom: 2px groove var(--light-border-color); h3 { - color: var(--foreground-color); + color: var(--foreground-color); } - } + } &.folder { background: none; &.collapsed > .folder-header { background: none; border: none; } - } + } } .directory-list { .directory-item:last-child { border-bottom: 2px groove var(--light-border-color); } - + .subdirectory { padding-left: 16px; border: none; @@ -629,7 +622,7 @@ form .form-group-stacked { padding: 2px; border-radius: 8px; } - } + } } } } @@ -684,7 +677,6 @@ form .form-group-stacked { .journal-sheet form { button[type="submit"] { - } input[name="name"] { @@ -753,4 +745,4 @@ hr { border: none; background: var(--background-color); color: var(--foreground-alt-color); -} \ No newline at end of file +} diff --git a/scss/pirateborg/_item-list.scss b/scss/pirateborg/_item-list.scss index 090792f1..dff1efb7 100644 --- a/scss/pirateborg/_item-list.scss +++ b/scss/pirateborg/_item-list.scss @@ -1,5 +1,5 @@ .pirateborg { - .items-list .items-header { + .items-list .items-header { margin: 0; padding: 0 0 4px 0; align-items: center; @@ -39,7 +39,7 @@ flex: 0 0 24px; background: black; padding: 2px; - border-radius: 4px; + border-radius: 4px; } &.item-container-item { @@ -64,7 +64,6 @@ } .item-field { - } .item-buttons { @@ -93,7 +92,6 @@ } .item-button { - } .equipped { diff --git a/scss/pirateborg/_item-sheet.scss b/scss/pirateborg/_item-sheet.scss index 22816a82..f6b192b8 100644 --- a/scss/pirateborg/_item-sheet.scss +++ b/scss/pirateborg/_item-sheet.scss @@ -40,11 +40,10 @@ width: 100%; margin: 0; } - } + } } .sheet-body { - } } } diff --git a/scss/pirateborg/_module-fixes.scss b/scss/pirateborg/_module-fixes.scss index 00d08fff..94c9250d 100644 --- a/scss/pirateborg/_module-fixes.scss +++ b/scss/pirateborg/_module-fixes.scss @@ -14,7 +14,7 @@ } .dice-tray button { - background: var(--button-background) !important; + background: var(--button-background) !important; color: var(--button-color) !important; font-family: var(--button-font) !important; } @@ -27,11 +27,10 @@ button.dice-calculator--button { color: var(--foreground-color) !important; } - #settings { padding: 0 !important; button { padding: 0 16px !important; margin: 4px 0 !important; } -} \ No newline at end of file +} diff --git a/scss/pirateborg/_root.scss b/scss/pirateborg/_root.scss index 7da1643a..c26db8da 100644 --- a/scss/pirateborg/_root.scss +++ b/scss/pirateborg/_root.scss @@ -5,19 +5,18 @@ /* try to deprecated */ --background-color: #000; - --foreground-color: #000; - --foreground-alt-color: #FFF; + --foreground-alt-color: #fff; --highlight-background-color: #d20608; - --highlight-foreground-color: #FFFFFF; - + --highlight-foreground-color: #ffffff; + --window-background: url(/systems/pirateborg/ui/parchment-2.jpg) repeat; - --window-header-color: #FFFFFF; + --window-header-color: #ffffff; --window-header-background-color: #000000; --sidebar-tab-background: #000000; - --sidebar-tab-color: #FFFFFF; + --sidebar-tab-color: #ffffff; --light-border-color: #f6dec2; --dark-border-color: #a29280; @@ -26,19 +25,19 @@ --sidebar-color: #000000; --button-background: #000000; - --button-color: #FFFFFF; + --button-color: #ffffff; --icon-backgroud-color: #000000; --h1-font: "Roman Antique Regular"; --h2-font: "IM Fell English SC"; --h3-font: "IM Fell English SC"; - - --chat-font: "Alegreya"; + + --chat-font: "Alegreya"; --chat-info-font: "Alegreya"; --item-font: "Alegreya"; - --button-font: "Alegreya" + --button-font: "Alegreya"; /* foundry core */ --color-text-light-6: var(--foreground-color); @@ -57,4 +56,4 @@ @font-face { font-family: "Roman Antique Regular"; src: url("../fonts/Roman Antique Regular.ttf") format("truetype"); -} \ No newline at end of file +} diff --git a/scss/pirateborg/_sheet.scss b/scss/pirateborg/_sheet.scss index 7b3f42d6..924e911a 100644 --- a/scss/pirateborg/_sheet.scss +++ b/scss/pirateborg/_sheet.scss @@ -108,8 +108,8 @@ .item { font-family: var(--h2-font); font-size: 22px; - height: 34px; - line-height: 34px; + height: 36px; + line-height: 38px; width: 100%; white-space: nowrap; padding-left: 16px; @@ -127,7 +127,7 @@ border-bottom: 0; border-top-left-radius: 16px; border-top-right-radius: 16px; - background: rgba(255, 255, 255, 0.20); + background: rgba(255, 255, 255, 0.2); border-bottom: 0; } } @@ -140,7 +140,7 @@ .tab { height: 100%; overflow-y: auto; - padding: 16px 16px 16px 16px; + padding: 16px 16px 16px 16px; background: rgba(255, 255, 255, 0.2); } } diff --git a/system.json b/system.json index fb0b821b..5155dc51 100644 --- a/system.json +++ b/system.json @@ -86,15 +86,15 @@ "system": "pirateborg", "path": "./packs/equipment-hats.db", "entity": "Item" - }, - + }, + { "name": "backgrounds", "label": "Backgrounds", "system": "pirateborg", "path": "./packs/backgrounds.db", "entity": "Item" - }, + }, { "name": "backgrounds-items", @@ -102,7 +102,7 @@ "system": "pirateborg", "path": "./packs/backgrounds-items.db", "entity": "Item" - }, + }, { "name": "macros-pirateborg", @@ -118,43 +118,43 @@ "system": "pirateborg", "path": "./packs/feature-distinctive-flaws.db", "entity": "Item" - }, + }, { "name": "feature-physical-ailments", "label": "Feature - Physical ailments", "system": "pirateborg", "path": "./packs/feature-physical-ailments.db", "entity": "Item" - }, + }, { "name": "feature-idiosyncrasies", "label": "Feature - Idiosyncrasies", "system": "pirateborg", "path": "./packs/feature-idiosyncrasies.db", "entity": "Item" - }, + }, { "name": "feature-unfortunate-incidents-conditions", "label": "Feature - Unfortunate incidents & conditions", "system": "pirateborg", "path": "./packs/feature-unfortunate-incidents-conditions.db", "entity": "Item" - }, + }, { "name": "feature-thing-of-importance", "label": "Feature - Thing of importance", "system": "pirateborg", "path": "./packs/feature-thing-of-importance.db", "entity": "Item" - }, - + }, + { "name": "invokable-ancient-relics", "label": "Invokable - Ancient relics", "system": "pirateborg", "path": "./packs/invokable-ancient-relics.db", "entity": "Item" - }, + }, { "name": "invokable-arcane-rituals", "label": "Invokable - Arcane Rituals", @@ -162,7 +162,7 @@ "path": "./packs/invokable-arcane-rituals.db", "entity": "Item" }, - + { "name": "macros-ancient-relics", "label": "Macros - Ancient relics", @@ -193,7 +193,7 @@ "system": "pirateborg", "path": "./packs/rolls-gamemaster.db", "entity": "RollTable" - }, + }, { "name": "class-landlubber", @@ -201,7 +201,7 @@ "system": "pirateborg", "path": "./packs/class-landlubber.db", "entity": "Item" - }, + }, { "name": "class-brute", @@ -267,8 +267,8 @@ "system": "pirateborg", "path": "./packs/macros-buccaneer.db", "entity": "Macro" - }, - + }, + { "name": "class-swashbuckler", "label": "Class - Swashbuckler", @@ -289,7 +289,7 @@ "system": "pirateborg", "path": "./packs/macros-swashbuckler.db", "entity": "Macro" - }, + }, { "name": "class-zealot", @@ -333,8 +333,7 @@ "system": "pirateborg", "path": "./packs/macros-sorcerer.db", "entity": "Macro" - } - + } ], "languages": [ { diff --git a/template.json b/template.json index f4f568fd..c784bef3 100644 --- a/template.json +++ b/template.json @@ -1,10 +1,6 @@ { "Actor": { - "types": [ - "character", - "container", - "creature" - ], + "types": ["character", "container", "creature"], "templates": { "common": {} }, @@ -63,7 +59,7 @@ "hp": { "max": 1, "value": 1 - }, + }, "armor": "", "attack": "", "morale": 7, @@ -97,10 +93,8 @@ } }, "weapon": { - "templates": [ - "equipment" - ], - "damageDie": "1d1", + "templates": ["equipment"], + "damageDie": "1d1", "critOn": 20, "critExtraDamage": "", "handed": 1, @@ -111,26 +105,18 @@ "isGunpowderWeapon": false }, "misc": { - "templates": [ - "equipment" - ] - }, + "templates": ["equipment"] + }, "ammo": { - "templates": [ - "equipment" - ], + "templates": ["equipment"], "damageDie": "" }, "container": { - "templates": [ - "equipment" - ], + "templates": ["equipment"], "capacity": 1 }, "armor": { - "templates": [ - "equipment" - ], + "templates": ["equipment"], "currentTier": 1, "maxTier": 1, "tier": { @@ -140,26 +126,22 @@ } }, "hat": { - "templates": [ - "equipment" - ], + "templates": ["equipment"], "reduceDamage": false, "ruleText": "" }, "invokable": { - "templates": [ - "equipment" - ], + "templates": ["equipment"], "invokableType": "", "isEquipment": true, "maxQuantity": 1 - }, + }, "background": { "description": "", "startingGold": "2d6 * 10", "quantity": 1, "startingBonusItems": "" - }, + }, "feature": { "description": "", "featureType": "", @@ -168,7 +150,7 @@ "actionMacro": "", "actionMacroLabel": "", "startingBonusItems": "" - }, + }, "class": { "description": "", "flavorText": "", @@ -188,15 +170,15 @@ "startingHitPoints": "1d10", - "startingItems": null, + "startingItems": null, "startingRolls": null, "startingMacro": null, - "gettingBetterRolls": null, + "gettingBetterRolls": null, "gettingBetterMacro": null, - "useExtraResource": false, - "extraResourceNameSingular": null, - "extraResourceNamePlural": null, + "useExtraResource": false, + "extraResourceNameSingular": null, + "extraResourceNamePlural": null, "extraResourceFormula": null, "extraResourceFormulaLabel": null, @@ -204,4 +186,4 @@ "extraResourceTestFormulaLabel": null } } -} \ No newline at end of file +} diff --git a/templates/actor/character-sheet.html b/templates/actor/character-sheet.html index d442b567..7f7cd882 100644 --- a/templates/actor/character-sheet.html +++ b/templates/actor/character-sheet.html @@ -199,7 +199,7 @@ - + {{!-- Weapons --}} @@ -398,17 +398,15 @@