Compare commits
No commits in common. "master" and "old-system" have entirely different histories.
master
...
old-system
2
.gitlab-ci-local/.gitignore
vendored
Normal file
2
.gitlab-ci-local/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
@ -5,10 +5,6 @@
|
||||
font-family: "Roboto", sans-serif;
|
||||
}
|
||||
|
||||
.window-app .window-content > * {
|
||||
flex:0;
|
||||
}
|
||||
|
||||
.rollable:hover, .rollable:focus {
|
||||
color: #000;
|
||||
text-shadow: 0 0 10px rgb(146, 0, 225);
|
||||
@ -320,11 +316,10 @@
|
||||
}
|
||||
|
||||
/* Styles limited to kidsonbrooms sheets */
|
||||
.fvtt-never-stop-blowing-up .item-form {
|
||||
.kids-on-brooms .item-form {
|
||||
font-family: "Roboto", sans-serif;
|
||||
}
|
||||
|
||||
.fvtt-never-stop-blowing-up .sheet-header {
|
||||
.kids-on-brooms .sheet-header {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
@ -347,51 +342,50 @@
|
||||
margin-bottom: 10px;
|
||||
height: 110px;
|
||||
}
|
||||
|
||||
.fvtt-never-stop-blowing-up .sheet-header .profile-img {
|
||||
.kids-on-brooms .sheet-header .profile-img {
|
||||
-webkit-box-flex: 0;
|
||||
-ms-flex: 0 0 100px;
|
||||
flex: 0 0 100px;
|
||||
height: 100px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .sheet-header .header-fields {
|
||||
.kids-on-brooms .sheet-header .header-fields {
|
||||
-webkit-box-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .sheet-header h1.charname {
|
||||
.kids-on-brooms .sheet-header h1.charname {
|
||||
height: 50px;
|
||||
padding: 0;
|
||||
margin: 5px 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .sheet-header h1.charname input {
|
||||
.kids-on-brooms .sheet-header h1.charname input {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up div.editor-border {
|
||||
.kids-on-brooms div.editor-border {
|
||||
border: 2px solid rgb(81, 81, 81);
|
||||
border-radius: 10px;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .sheet-tabs {
|
||||
.kids-on-brooms .sheet-tabs {
|
||||
-webkit-box-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .sheet-body,
|
||||
.fvtt-never-stop-blowing-up .sheet-body .tab,
|
||||
.fvtt-never-stop-blowing-up .sheet-body .tab .editor {
|
||||
.kids-on-brooms .sheet-body,
|
||||
.kids-on-brooms .sheet-body .tab,
|
||||
.kids-on-brooms .sheet-body .tab .editor {
|
||||
height: 100%;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .tox .tox-editor-container {
|
||||
.kids-on-brooms .tox .tox-editor-container {
|
||||
background: #fff;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .tox .tox-edit-area {
|
||||
.kids-on-brooms .tox .tox-edit-area {
|
||||
padding: 0 8px;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .selection-row {
|
||||
.kids-on-brooms .selection-row {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
@ -403,10 +397,10 @@
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .resource-label {
|
||||
.kids-on-brooms .resource-label {
|
||||
font-weight: bold;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-header {
|
||||
.kids-on-brooms .items-header {
|
||||
height: 28px;
|
||||
margin: 2px 0;
|
||||
padding: 0;
|
||||
@ -417,11 +411,11 @@
|
||||
border: 2px groove #eeede0;
|
||||
font-weight: bold;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-header > * {
|
||||
.kids-on-brooms .items-header > * {
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-header .item-name {
|
||||
.kids-on-brooms .items-header .item-name {
|
||||
font-weight: bold;
|
||||
padding-left: 5px;
|
||||
text-align: left;
|
||||
@ -429,7 +423,7 @@
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list {
|
||||
.kids-on-brooms .items-list {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@ -437,12 +431,12 @@
|
||||
scrollbar-width: thin;
|
||||
color: #444;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .item-list {
|
||||
.kids-on-brooms .items-list .item-list {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .item {
|
||||
.kids-on-brooms .items-list .item {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
@ -452,10 +446,10 @@
|
||||
padding: 0 2px;
|
||||
border-bottom: 1px solid #c9c7b8;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .item:last-child {
|
||||
.kids-on-brooms .items-list .item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .item .item-name {
|
||||
.kids-on-brooms .items-list .item .item-name {
|
||||
-webkit-box-flex: 2;
|
||||
-ms-flex: 2;
|
||||
flex: 2;
|
||||
@ -468,12 +462,12 @@
|
||||
display: flex;
|
||||
color: #191813;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .item .item-name h3, .fvtt-never-stop-blowing-up .items-list .item .item-name h4 {
|
||||
.kids-on-brooms .items-list .item .item-name h3, .kids-on-brooms .items-list .item .item-name h4 {
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .item .item-name .item-image {
|
||||
.kids-on-brooms .items-list .item .item-name .item-image {
|
||||
-webkit-box-flex: 0;
|
||||
-ms-flex: 0 0 30px;
|
||||
flex: 0 0 30px;
|
||||
@ -482,7 +476,7 @@
|
||||
border: none;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .item-controls {
|
||||
.kids-on-brooms .items-list .item-controls {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
@ -493,18 +487,18 @@
|
||||
-ms-flex-pack: end;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .item-controls a {
|
||||
.kids-on-brooms .items-list .item-controls a {
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
margin: 0 6px;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .item-prop {
|
||||
.kids-on-brooms .items-list .item-prop {
|
||||
text-align: center;
|
||||
border-left: 1px solid #c9c7b8;
|
||||
border-right: 1px solid #c9c7b8;
|
||||
font-size: 12px;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .items-header {
|
||||
.kids-on-brooms .items-list .items-header {
|
||||
height: 28px;
|
||||
margin: 2px 0;
|
||||
padding: 0;
|
||||
@ -515,34 +509,34 @@
|
||||
border: 2px groove #eeede0;
|
||||
font-weight: bold;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .items-header > * {
|
||||
.kids-on-brooms .items-list .items-header > * {
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .items-list .items-header .item-name {
|
||||
.kids-on-brooms .items-list .items-header .item-name {
|
||||
padding-left: 5px;
|
||||
text-align: left;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .item-formula {
|
||||
.kids-on-brooms .item-formula {
|
||||
-webkit-box-flex: 0;
|
||||
-ms-flex: 0 0 200px;
|
||||
flex: 0 0 200px;
|
||||
padding: 0 8px;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .effects .item .effect-source,
|
||||
.fvtt-never-stop-blowing-up .effects .item .effect-duration,
|
||||
.fvtt-never-stop-blowing-up .effects .item .effect-controls {
|
||||
.kids-on-brooms .effects .item .effect-source,
|
||||
.kids-on-brooms .effects .item .effect-duration,
|
||||
.kids-on-brooms .effects .item .effect-controls {
|
||||
text-align: center;
|
||||
border-left: 1px solid #c9c7b8;
|
||||
border-right: 1px solid #c9c7b8;
|
||||
font-size: 12px;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .effects .item .effect-controls {
|
||||
.kids-on-brooms .effects .item .effect-controls {
|
||||
border: none;
|
||||
}
|
||||
.fvtt-never-stop-blowing-up .fvtt-never-stop-blowing-up input:focus,
|
||||
.fvtt-never-stop-blowing-up .fvtt-never-stop-blowing-up textarea:focus,
|
||||
.fvtt-never-stop-blowing-up .fvtt-never-stop-blowing-up select:focus {
|
||||
.kids-on-brooms .kids-on-brooms input:focus,
|
||||
.kids-on-brooms .kids-on-brooms textarea:focus,
|
||||
.kids-on-brooms .kids-on-brooms select:focus {
|
||||
outline: none;
|
||||
border-color: #8102dd;
|
||||
}
|
||||
}
|
1
css/kidsonbrooms.css.map
Normal file
1
css/kidsonbrooms.css.map
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"sourceRoot":"","sources":["../scss/kidsonbrooms.scss","../scss/global/_base.scss","../scss/global/_window.scss","../scss/utils/_typography.scss","../scss/global/_grid.scss","../scss/global/_flex.scss","../scss/utils/_mixins.scss","../scss/utils/_variables.scss","../scss/components/_forms.scss","../scss/utils/_colors.scss","../scss/components/_resource.scss","../scss/components/_items.scss","../scss/components/_effects.scss"],"names":[],"mappings":"AACQ;AASR;ACTQ;ACDR;EACE,aCDa;;;ADKb;EAEE;EACA;EACA;;;AERJ;EACE;EACA;EACA;EACA;;;AAKA;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;ACrBJ;ECkBE;EACA,gBDlBiB;ECmBjB,WDnByB;ECoBzB,iBAJkD;EAKlD,aALsE;EDftE;;;AAGF;ECaE;EACA,gBDbiB;ECcjB,WDd6B;ECe7B,iBAJkD;EAKlD,aALsE;EDVtE;;;AAGF;ECQE;EACA,gBDRiB;ECSjB,WDT2B;ECU3B,iBAJkD;EAKlD,aALsE;EDLtE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAIF;ECVE;EACA,gBDUiB;ECTjB,WDS6B;ECR7B,iBAJkD;EAKlD,aALsE;EDatE;;;AAGF;ECfE;EACA,gBDeiB;ECdjB,WDc2B;ECb3B,iBAJkD;EAKlD,aALsE;EDkBtE;;;AAGF;ECpBE;EACA,gBDoBiB;ECnBjB,WDmByB;EClBzB,iBAJkD;EAKlD,aALsE;EDuBtE;;;AAIF;EACE;EACA;EACA;;;AJ7CF;EACE,aMEW;;;ANEX;EAEE;EACA;EACA;;;ADIJ;AQhBA;EACE,aLDa;;AKIf;EFeE;EACA,gBEfiB;EFgBjB,WEhBsB;EFiBtB,iBEjB4B;EFkB5B,aALsE;EEZtE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAKN;EACE;EACA;;AAGF;EACE;;AAGF;AAAA;AAAA;EAGE;;AAIA;EACE,YCnDM;;ADsDR;EACE;;AAKJ;EACE;EACA;EACA;EACA;;AEhEF;EACE;;ACAF;EACE;EACA;EACA;EACA;EACA;EACA,QJHc;EIId;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA,OFxBM;;AE2BN;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,OFvDG;;AEyDH;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAMN;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA,QJrGc;EIsGd;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;;ACzHA;AAAA;AAAA;EAGE;EACA;EACA;EACA;;AAGF;EACE;;AAKJ;AAAA;AAAA;EAGE;EACA,cHVmB","file":"kidsonbrooms.css"}
|
1
css/test.css.map
Normal file
1
css/test.css.map
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"sourceRoot":"","sources":["../scss/kidsonbrooms.scss","../scss/global/_base.scss","../scss/global/_window.scss","../scss/utils/_typography.scss","../scss/global/_grid.scss","../scss/global/_flex.scss","../scss/utils/_mixins.scss","../scss/utils/_variables.scss","../scss/components/_forms.scss","../scss/utils/_colors.scss","../scss/components/_resource.scss","../scss/components/_items.scss","../scss/components/_effects.scss"],"names":[],"mappings":"AACQ;AASR;ACTQ;ACDR;EACE,aCDa;;;ADKb;EAEE;EACA;EACA;;;AERJ;EACE;EACA;EACA;EACA;;;AAKA;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;AAZF;EACE;;;AAIF;EACE;;;AAIF;EACE;EACA;;;ACrBJ;ECkBE;EACA,gBDlBiB;ECmBjB,WDnByB;ECoBzB,iBAJkD;EAKlD,aALsE;EDftE;;;AAGF;ECaE;EACA,gBDbiB;ECcjB,WDd6B;ECe7B,iBAJkD;EAKlD,aALsE;EDVtE;;;AAGF;ECQE;EACA,gBDRiB;ECSjB,WDT2B;ECU3B,iBAJkD;EAKlD,aALsE;EDLtE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAIF;ECVE;EACA,gBDUiB;ECTjB,WDS6B;ECR7B,iBAJkD;EAKlD,aALsE;EDatE;;;AAGF;ECfE;EACA,gBDeiB;ECdjB,WDc2B;ECb3B,iBAJkD;EAKlD,aALsE;EDkBtE;;;AAGF;ECpBE;EACA,gBDoBiB;ECnBjB,WDmByB;EClBzB,iBAJkD;EAKlD,aALsE;EDuBtE;;;AJtCF;EACE,aMEW;;;ANEX;EAEE;EACA;EACA;;;ADIJ;AQhBA;EACE,aLDa;;AKIf;EFeE;EACA,gBEfiB;EFgBjB,WEhBsB;EFiBtB,iBEjB4B;EFkB5B,aALsE;EEZtE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAKN;EACE;EACA;;AAGF;EACE;;AAGF;AAAA;AAAA;EAGE;;AAIA;EACE,YCnDM;;ADsDR;EACE;;AEvDJ;EACE;;ACAF;EACE;EACA;EACA;EACA;EACA;EACA,QJHc;EIId;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA,OFxBM;;AE2BN;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,OFvDG;;AEyDH;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAMN;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA,QJrGc;EIsGd;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAKJ;EACE;EACA;;ACzHA;AAAA;AAAA;EAGE;EACA;EACA;EACA;;AAGF;EACE;;AAKJ;AAAA;AAAA;EAGE;EACA,cHVmB","file":"test.css"}
|
BIN
kidsonbrooms.zip
Normal file
BIN
kidsonbrooms.zip
Normal file
Binary file not shown.
10
lang/en.json
10
lang/en.json
@ -1,9 +1,9 @@
|
||||
{
|
||||
|
||||
"NEVERSTOPBLOWINGUP.EffectCreate": "Create Effect",
|
||||
"NEVERSTOPBLOWINGUP.EffectToggle": "Toggle Effect",
|
||||
"NEVERSTOPBLOWINGUP.EffectEdit": "Edit Effect",
|
||||
"NEVERSTOPBLOWINGUP.EffectDelete": "Delete Effect",
|
||||
"KIDSONBROOMS.EffectCreate": "Create Effect",
|
||||
"KIDSONBROOMS.EffectToggle": "Toggle Effect",
|
||||
"KIDSONBROOMS.EffectEdit": "Edit Effect",
|
||||
"KIDSONBROOMS.EffectDelete": "Delete Effect",
|
||||
|
||||
"NEVERSTOPBLOWINGUP.Add": "Add"
|
||||
"KIDSONBROOMS.Add": "Add"
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
* Extend the base Actor document by defining a custom roll data structure which is ideal for the Simple system.
|
||||
* @extends {Actor}
|
||||
*/
|
||||
export class NeverStopBlowingUpActor extends Actor {
|
||||
export class KidsOnBroomsActor extends Actor {
|
||||
|
||||
/**
|
||||
* Override getRollData() that's supplied to rolls.
|
||||
|
@ -1,7 +1,7 @@
|
||||
export const NEVERSTOPBLOWINGUP = {};
|
||||
export const KIDSONBROOMS = {};
|
||||
|
||||
// Define constants here, such as:
|
||||
NEVERSTOPBLOWINGUP.foobar = {
|
||||
'bas': 'NEVERSTOPBLOWINGUP.bas',
|
||||
'bar': 'NEVERSTOPBLOWINGUP.bar'
|
||||
KIDSONBROOMS.foobar = {
|
||||
'bas': 'KIDSONBROOMS.bas',
|
||||
'bar': 'KIDSONBROOMS.bar'
|
||||
};
|
@ -7,9 +7,9 @@
|
||||
return loadTemplates([
|
||||
|
||||
// Actor partials.
|
||||
"systems/fvtt-never-stop-blowing-up/templates/actor/parts/actor-features.html",
|
||||
"systems/fvtt-never-stop-blowing-up/templates/actor/parts/actor-adversity.html",
|
||||
"systems/fvtt-never-stop-blowing-up/templates/actor/parts/actor-stats.html",
|
||||
"systems/fvtt-never-stop-blowing-up/templates/actor/parts/actor-npc-stats.html",
|
||||
"systems/kidsonbrooms/templates/actor/parts/actor-features.html",
|
||||
"systems/kidsonbrooms/templates/actor/parts/actor-adversity.html",
|
||||
"systems/kidsonbrooms/templates/actor/parts/actor-stats.html",
|
||||
"systems/kidsonbrooms/templates/actor/parts/actor-npc-stats.html",
|
||||
]);
|
||||
};
|
||||
|
@ -1,12 +1,12 @@
|
||||
// Import document classes.
|
||||
import { NeverStopBlowingUpActor } from "./documents/actor.mjs";
|
||||
import { KidsOnBroomsActor } from "./documents/actor.mjs";
|
||||
|
||||
// Import sheet classes.
|
||||
import { NeverStopBlowingUpActorSheet } from "./sheets/actor-sheet.mjs";
|
||||
import { KidsOnBroomsActorSheet } from "./sheets/actor-sheet.mjs";
|
||||
|
||||
// Import helper/utility classes and constants.
|
||||
import { preloadHandlebarsTemplates } from "./helpers/templates.mjs";
|
||||
import { NEVERSTOPBLOWINGUP } from "./helpers/config.mjs";
|
||||
import { KIDSONBROOMS } from "./helpers/config.mjs";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
/* Init Hook */
|
||||
@ -25,13 +25,13 @@ Hooks.once('init', async function() {
|
||||
// Add utility classes and functions to the global game object so that they're more easily
|
||||
// accessible in global contexts.
|
||||
game.kidsonbrooms = {
|
||||
NeverStopBlowingUpActor,
|
||||
KidsOnBroomsActor,
|
||||
_onTakeAdversityToken: _onTakeAdversityToken, // Add the function to the global object
|
||||
_onSpendAdversityTokens: _onSpendAdversityTokens // Add the function to the global object
|
||||
};
|
||||
|
||||
// Add custom constants for configuration.
|
||||
CONFIG.NEVERSTOPBLOWINGUP = NEVERSTOPBLOWINGUP;
|
||||
CONFIG.KIDSONBROOMS = KIDSONBROOMS;
|
||||
|
||||
/**
|
||||
* Set an initiative formula for the system
|
||||
@ -44,11 +44,11 @@ Hooks.once('init', async function() {
|
||||
|
||||
|
||||
// Define custom Document classes
|
||||
CONFIG.Actor.documentClass = NeverStopBlowingUpActor;
|
||||
CONFIG.Actor.documentClass = KidsOnBroomsActor;
|
||||
|
||||
// Register sheet application classes
|
||||
Actors.unregisterSheet("core", ActorSheet);
|
||||
Actors.registerSheet("fvtt-never-stop-blowing-up", NeverStopBlowingUpActorSheet, { makeDefault: true });
|
||||
Actors.registerSheet("kidsonbrooms", KidsOnBroomsActorSheet, { makeDefault: true });
|
||||
|
||||
//If there is a new chat message that is a roll we add the adversity token controls
|
||||
Hooks.on("renderChatMessage", (message, html, messageData) => {
|
||||
@ -86,10 +86,10 @@ Hooks.once('init', async function() {
|
||||
// Update the message content
|
||||
tokenControls.update({ content: updatedContent });
|
||||
// Set the flag on the chat message to indicate that the token has been claimed
|
||||
tokenControls.setFlag("fvtt-never-stop-blowing-up", "tokenClaimed", true);
|
||||
tokenControls.setFlag("kidsonbrooms", "tokenClaimed", true);
|
||||
} else {
|
||||
// Emit a socket request to update the message to show that the token has been claimed
|
||||
game.socket.emit('system.fvtt-never-stop-blowing-up', {
|
||||
game.socket.emit('system.kidsonbrooms', {
|
||||
action: "takeToken",
|
||||
messageID: message.id,
|
||||
actorID: actor.id,
|
||||
@ -117,7 +117,7 @@ Hooks.once('init', async function() {
|
||||
* if a player wants to claim a token we will update the message since they do not have the permissions
|
||||
*/
|
||||
Hooks.once('ready', function() {
|
||||
game.socket.on('system.fvtt-never-stop-blowing-up', async (data) => {
|
||||
game.socket.on('system.kidsonbrooms', async (data) => {
|
||||
console.log("Socket data received:", data);
|
||||
|
||||
if (data.action === "spendTokens") {
|
||||
@ -189,7 +189,7 @@ Hooks.once('ready', function() {
|
||||
// Update the message content
|
||||
tokenControls.update({ content: updatedContent });
|
||||
// Set the flag on the chat message to indicate that the token has been claimed
|
||||
tokenControls.setFlag("fvtt-never-stop-blowing-up", "tokenClaimed", true);
|
||||
tokenControls.setFlag("kidsonbrooms", "tokenClaimed", true);
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -276,7 +276,7 @@ async function _onSpendAdversityTokens(e, rollMessageId) {
|
||||
console.log(`Requesting to spend ${tokensToSpend} tokens for ${rollActor.name} by ${spendingPlayerActor.name} (cost: ${tokenCost})`);
|
||||
|
||||
// Emit a socket request to spend tokens
|
||||
game.socket.emit('system.fvtt-never-stop-blowing-up', {
|
||||
game.socket.emit('system.kidsonbrooms', {
|
||||
action: "spendTokens",
|
||||
rollActorId: rollActorId,
|
||||
spendingActorId: spendingPlayerActor.id, // Send the player's actor who is spending the tokens
|
||||
@ -299,8 +299,8 @@ async function _updateRollMessage(rollMessageId, tokensToSpend, isPlayerOfActor)
|
||||
}
|
||||
|
||||
// Retrieve current tokens spent from flags, or initialize to 0 if not found
|
||||
let cumulativeTokensSpent = message.getFlag("fvtt-never-stop-blowing-up", "tokensSpent") || 0;
|
||||
let newTotal = message.getFlag("fvtt-never-stop-blowing-up", "newRollTotal") || message.rolls[0].total;
|
||||
let cumulativeTokensSpent = message.getFlag("kidsonbrooms", "tokensSpent") || 0;
|
||||
let newTotal = message.getFlag("kidsonbrooms", "newRollTotal") || message.rolls[0].total;
|
||||
|
||||
/*if(isPlayerOfActor)
|
||||
{
|
||||
@ -311,10 +311,10 @@ async function _updateRollMessage(rollMessageId, tokensToSpend, isPlayerOfActor)
|
||||
}*/
|
||||
cumulativeTokensSpent += tokensToSpend;
|
||||
newTotal += tokensToSpend;
|
||||
await message.setFlag("fvtt-never-stop-blowing-up", "newRollTotal", newTotal);
|
||||
await message.setFlag("kidsonbrooms", "newRollTotal", newTotal);
|
||||
|
||||
// Update the message's flags to store the cumulative tokens spent
|
||||
await message.setFlag("fvtt-never-stop-blowing-up", "tokensSpent", cumulativeTokensSpent);
|
||||
await message.setFlag("kidsonbrooms", "tokensSpent", cumulativeTokensSpent);
|
||||
let newContent = "";
|
||||
if(cumulativeTokensSpent === 1)
|
||||
{
|
@ -2,13 +2,13 @@
|
||||
* Extend the basic ActorSheet with some very simple modifications
|
||||
* @extends {ActorSheet}
|
||||
*/
|
||||
export class NeverStopBlowingUpActorSheet extends ActorSheet {
|
||||
export class KidsOnBroomsActorSheet extends ActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions()
|
||||
{
|
||||
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||
classes: ["fvtt-never-stop-blowing-up", "sheet", "actor"],
|
||||
classes: ["kidsonbrooms", "sheet", "actor"],
|
||||
width: 800,
|
||||
height: 800,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }]
|
||||
@ -19,7 +19,7 @@ export class NeverStopBlowingUpActorSheet extends ActorSheet {
|
||||
get template()
|
||||
{
|
||||
console.log("template", this.actor)
|
||||
return `systems/fvtt-never-stop-blowing-up/templates/actor/actor-${this.actor.type}-sheet.html`;
|
||||
return `systems/kidsonbrooms/templates/actor/actor-${this.actor.type}-sheet.html`;
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,2 +1,5 @@
|
||||
The Never Stop Blowing Up System Implemented in FoundryVTT
|
||||
The Kids On Brooms System Implemented in FoundryVTT
|
||||
|
||||
To get support create a issue on this Repository or join my discord:
|
||||
|
||||
https://discord.gg/4sTXjxs5Yv
|
22
system.json
22
system.json
@ -1,26 +1,24 @@
|
||||
{
|
||||
"id": "fvtt-never-stop-blowing-up",
|
||||
"title": "Never Stop Blowing Up",
|
||||
"description": "The Never Stop Blowing Up system for FoundryVTT!",
|
||||
"version": "12.0.0",
|
||||
"id": "kidsonbrooms",
|
||||
"title": "Kids on Brooms System",
|
||||
"description": "The Kids on Brooms system for FoundryVTT!",
|
||||
"version": "1.1.6",
|
||||
"compatibility": {
|
||||
"minimum": 12,
|
||||
"verified": 12
|
||||
"verified": 12.331
|
||||
},
|
||||
"authors": [{
|
||||
"name": "Joscha Maier"
|
||||
},{
|
||||
"name": "LeRatierBretonnien"
|
||||
}],
|
||||
"esmodules": ["module/never-stop-blowing-up.mjs"],
|
||||
"styles": ["css/never-stop-blowing-up.css"],
|
||||
"esmodules": ["module/kidsonbrooms.mjs"],
|
||||
"styles": ["css/kidsonbrooms.css"],
|
||||
"socket": true,
|
||||
"grid": {
|
||||
"distance": 5,
|
||||
"units": "ft"
|
||||
},
|
||||
"primaryTokenAttribute": "system.adversityTokens",
|
||||
"url": "https://www.uberwald.me/gitea/uberwald/fvtt-never-stop-blowing-up",
|
||||
"manifest": "https://www.uberwald.me/gitea/uberwald/fvtt-never-stop-blowing-up/raw/branch/master/system.json",
|
||||
"download": "https://www.uberwald.me/gitea/uberwald/fvtt-never-stop-blowing-up/archive/12.0.0.zip"
|
||||
"url": "https://gitlab.com/wintermyst/kidsonbrooms",
|
||||
"manifest": "https://gitlab.com/wintermyst/kidsonbrooms/-/raw/master/system.json",
|
||||
"download": "https://gitlab.com/wintermyst/kidsonbrooms/-/raw/master/kidsonbrooms.zip?inline=false"
|
||||
}
|
||||
|
@ -4,62 +4,32 @@
|
||||
"templates": {
|
||||
"base": {
|
||||
"stats": {
|
||||
"stat1": {
|
||||
"name": "fight",
|
||||
"fight": {
|
||||
"value": "d4",
|
||||
"stat": 0,
|
||||
"magic": 0
|
||||
},
|
||||
"stat2": {
|
||||
"name": "flight",
|
||||
"flight": {
|
||||
"value": "d4",
|
||||
"stat": 0,
|
||||
"magic": 0
|
||||
},
|
||||
"stat3": {
|
||||
"name": "brains",
|
||||
"brains": {
|
||||
"value": "d4",
|
||||
"stat": 0,
|
||||
"magic": 0
|
||||
},
|
||||
"stat4": {
|
||||
"name": "brawn",
|
||||
"brawn": {
|
||||
"value": "d4",
|
||||
"stat": 0,
|
||||
"magic": 0
|
||||
},
|
||||
"stat5": {
|
||||
"name": "charm",
|
||||
"charm": {
|
||||
"value": "d4",
|
||||
"stat": 0,
|
||||
"magic": 0
|
||||
},
|
||||
"stat6": {
|
||||
"name": "grit",
|
||||
"value": "d4",
|
||||
"stat": 0,
|
||||
"magic": 0
|
||||
},
|
||||
"stat7": {
|
||||
"name": "N/A",
|
||||
"value": "d4",
|
||||
"stat": 0,
|
||||
"magic": 0
|
||||
},
|
||||
"stat8": {
|
||||
"name": "N/A",
|
||||
"value": "d4",
|
||||
"stat": 0,
|
||||
"magic": 0
|
||||
},
|
||||
"stat9": {
|
||||
"name": "N/A",
|
||||
"value": "d4",
|
||||
"stat": 0,
|
||||
"magic": 0
|
||||
},
|
||||
"stat10": {
|
||||
"name": "N/A",
|
||||
"grit": {
|
||||
"value": "d4",
|
||||
"stat": 0,
|
||||
"magic": 0
|
||||
@ -70,11 +40,6 @@
|
||||
},
|
||||
"character": {
|
||||
"templates": ["base"],
|
||||
"wounds": {
|
||||
"minor": {"m1": false, "m2": false, "m3": false},
|
||||
"moderate": {"m1": false, "m2": false},
|
||||
"mortal": {"m1": false}
|
||||
},
|
||||
"trope": "",
|
||||
"age": "",
|
||||
"pronouns": "",
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
<div class="resources grid">
|
||||
<div class="resource flex-group-center">
|
||||
<label for="system.trope" class="resource-label">Class</label>
|
||||
<label for="system.trope" class="resource-label">Trope</label>
|
||||
<div class="resource-content flexrow flex-center flex-between">
|
||||
<input type="text" name="system.trope" value="{{system.trope}}" data-dtype="String"/>
|
||||
</div>
|
||||
@ -20,9 +20,9 @@
|
||||
<nav class="sheet-tabs tabs" data-group="primary">
|
||||
{{!-- Default tab is specified in actor-sheet.mjs --}}
|
||||
<a class="item" data-tab="features">Features</a>
|
||||
<a class="item" data-tab="schoolbag">Inventory</a>
|
||||
<a class="item" data-tab="strengths">Abilities</a>
|
||||
<!-- <a class="item" data-tab="trope">Trope Questions</a> -->
|
||||
<a class="item" data-tab="schoolbag">School Bag</a>
|
||||
<a class="item" data-tab="strengths">Strengths</a>
|
||||
<a class="item" data-tab="trope">Trope Questions</a>
|
||||
</nav>
|
||||
|
||||
{{!-- Sheet Body --}}
|
||||
@ -32,12 +32,12 @@
|
||||
<div class="tab features" data-group="primary" data-tab="features">
|
||||
<section class="grid grid-3col">
|
||||
<section class="main grid-span-2">
|
||||
{{> "systems/fvtt-never-stop-blowing-up/templates/actor/parts/actor-features.html"}}
|
||||
{{> "systems/fvtt-never-stop-blowing-up/templates/actor/parts/actor-adversity.html"}}
|
||||
{{> "systems/kidsonbrooms/templates/actor/parts/actor-features.html"}}
|
||||
{{> "systems/kidsonbrooms/templates/actor/parts/actor-adversity.html"}}
|
||||
</section>
|
||||
|
||||
<aside class="sidebar">
|
||||
{{> "systems/fvtt-never-stop-blowing-up/templates/actor/parts/actor-stats.html"}}
|
||||
{{> "systems/kidsonbrooms/templates/actor/parts/actor-stats.html"}}
|
||||
|
||||
</aside>
|
||||
|
||||
@ -50,7 +50,10 @@
|
||||
{{editor schoolbag target="system.schoolbag" engine="prosemirror" button=false collaborate=false editable=true}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{{!-- Strengths Tab --}}
|
||||
<div class="tab features editor-border" data-group="primary" data-tab="strengths">
|
||||
{{editor strengths target="system.strengths" engine="prosemirror" button=false collaborate=false editable=true}}
|
||||
|
@ -28,7 +28,7 @@
|
||||
|
||||
{{!-- Owned Features Tab --}}
|
||||
<div class="tab features" data-group="primary" data-tab="features">
|
||||
{{> "systems/fvtt-never-stop-blowing-up/templates/actor/parts/actor-npc-stats.html"}}
|
||||
{{> "systems/kidsonbrooms/templates/actor/parts/actor-npc-stats.html"}}
|
||||
</div>
|
||||
</section>
|
||||
</form>
|
||||
|
@ -1,56 +1,49 @@
|
||||
<section class="grid grid-3col">
|
||||
|
||||
<fieldset class="resource grid-span-3 flexcol">
|
||||
<div class="resource grid-span-3 flexrow">
|
||||
<label for="system.grade" class="resource-label">Species</label>
|
||||
<input type="text" name="system.grade" value="{{system.grade}}" data-dtype="String" />
|
||||
</div>
|
||||
<div class="resource flexrow">
|
||||
<label for="system.age" class="resource-label">Age</label>
|
||||
<input type="text" name="system.age" value="{{system.age}}" data-dtype="String" />
|
||||
</div>
|
||||
<div class="resource grid-span-2 flexrow">
|
||||
<label for="system.pronouns" class="resource-label">Pronouns</label>
|
||||
<input type="text" name="system.pronouns" value="{{system.pronouns}}" data-dtype="String" />
|
||||
</div>
|
||||
<div class="resource grid-span-3 flexrow">
|
||||
<label for="system.fear" class="resource-label">Fear</label>
|
||||
<input type="text" name="system.fear" value="{{system.fear}}" data-dtype="String" />
|
||||
</div>
|
||||
<div class="resource grid-span-3 flexrow">
|
||||
<label for="system.motivation" class="resource-label">Motivation</label>
|
||||
<input type="text" name="system.motivation" value="{{system.motivation}}" data-dtype="String" />
|
||||
</div>
|
||||
<div class="resource grid-span-3 flexrow">
|
||||
<label for="system.description" class="resource-label">Description</label>
|
||||
<input type="text" name="system.description" value="{{system.description}}" data-dtype="String" />
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<!-- <fieldset class="resource grid-span-3 flexcol">
|
||||
<legend>Your Broom</legend> -->
|
||||
|
||||
<fieldset class="resource grid-span-3 flexcol">
|
||||
<div class="resource flexrow">
|
||||
<label for="system.age" class="resource-label">Age</label>
|
||||
<input type="text" name="system.age" value="{{system.age}}" data-dtype="String"/>
|
||||
</div>
|
||||
<div class="resource grid-span-2 flexrow">
|
||||
<label for="system.pronouns" class="resource-label">Pronouns</label>
|
||||
<input type="text" name="system.pronouns" value="{{system.pronouns}}" data-dtype="String"/>
|
||||
</div>
|
||||
<div class="resource grid-span-3 flexrow">
|
||||
<label for="system.fear" class="resource-label">Fear</label>
|
||||
<input type="text" name="system.fear" value="{{system.fear}}" data-dtype="String"/>
|
||||
</div>
|
||||
<div class="resource grid-span-3 flexrow" >
|
||||
<label for="system.motivation" class="resource-label">Motivation</label>
|
||||
<input type="text" name="system.motivation" value="{{system.motivation}}" data-dtype="String"/>
|
||||
</div>
|
||||
<div class="resource grid-span-3 flexrow" >
|
||||
<label for="system.description" class="resource-label">Description</label>
|
||||
<input type="text" name="system.description" value="{{system.description}}" data-dtype="String"/>
|
||||
</div>
|
||||
<div class="resource grid-span-3 flexrow">
|
||||
<label for="system.grade" class="resource-label">Grade</label>
|
||||
<input type="text" name="system.grade" value="{{system.grade}}" data-dtype="String"/>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset class="resource grid-span-3 flexcol">
|
||||
<legend>Your Broom</legend>
|
||||
|
||||
<!-- Broom Name Input with Dropdown -->
|
||||
<!--
|
||||
<div class="resource flexrow">
|
||||
<label for="broom-name" class="resource-label">Name</label>
|
||||
<input list="broomOptions" id="broom-name" name="system.broom.name" value="{{system.broom.name}}"
|
||||
data-dtype="String" placeholder="Select or Enter Broom Name" oninput="updateBroomDetails()"
|
||||
onblur="updateBroomDetails()">
|
||||
<input list="broomOptions" id="broom-name" name="system.broom.name"
|
||||
value="{{system.broom.name}}" data-dtype="String" placeholder="Select or Enter Broom Name"
|
||||
oninput="updateBroomDetails()" onblur="updateBroomDetails()">
|
||||
<datalist id="broomOptions">
|
||||
<option value="The Blocker's Broom" data-look="Defensive" data-mechanical="Gain the Guardian Strength"></option>
|
||||
<option value="Bolting 4000" data-look="Fast" data-mechanical="+1 to Flight checks"></option>
|
||||
<option value="The Bruiser" data-look="Intense" data-mechanical="+1 to Fight checks"></option>
|
||||
<option value="Cunning Captain’s Cruiser" data-look="Natural Leader"
|
||||
data-mechanical="Treat Snap Decisions as Planned Actions unless facing fear"></option>
|
||||
<option value="Daredevil’s Duster" data-look="Flashy"
|
||||
data-mechanical="+3 to Charm checks when performing a stunt"></option>
|
||||
<option value="The Daring Dodger 3000" data-look="Ambitious"
|
||||
data-mechanical="Each Adversity Token adds +2 to your roll instead of +1"></option>
|
||||
<option value="Heartwood’s Helper" data-look="Outgoing"
|
||||
data-mechanical="Each successful check grants an ally one Adversity Token"></option>
|
||||
<option value="Mapmaker’s Friend" data-look="Level-Headed"
|
||||
data-mechanical="Cannot get lost if you know the area"></option>
|
||||
<option value="Cunning Captain’s Cruiser" data-look="Natural Leader" data-mechanical="Treat Snap Decisions as Planned Actions unless facing fear"></option>
|
||||
<option value="Daredevil’s Duster" data-look="Flashy" data-mechanical="+3 to Charm checks when performing a stunt"></option>
|
||||
<option value="The Daring Dodger 3000" data-look="Ambitious" data-mechanical="Each Adversity Token adds +2 to your roll instead of +1"></option>
|
||||
<option value="Heartwood’s Helper" data-look="Outgoing" data-mechanical="Each successful check grants an ally one Adversity Token"></option>
|
||||
<option value="Mapmaker’s Friend" data-look="Level-Headed" data-mechanical="Cannot get lost if you know the area"></option>
|
||||
<option value="The Mastermind’s Sweeper" data-look="Confident" data-mechanical="+1 to Brains checks"></option>
|
||||
<option value="The Strong Sweep 2500" data-look="Strong" data-mechanical="+1 to Brawn checks"></option>
|
||||
<option value="The Suave Sweeper" data-look="Trustworthy" data-mechanical="+1 to Charm checks"></option>
|
||||
@ -59,125 +52,105 @@
|
||||
<option value="Weasel’s Whisk" data-look="Sneaky" data-mechanical="Gain the Unassuming Strength"></option>
|
||||
</datalist>
|
||||
</div>
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
||||
<!-- Broom Look -->
|
||||
<div class="resource flexrow">
|
||||
<label for="broom-look" class="resource-label">Look</label>
|
||||
<input type="text" id="broom-look" name="system.broom.look" value="{{system.broom.look}}" data-dtype="String" />
|
||||
<input type="text" id="broom-look" name="system.broom.look"
|
||||
value="{{system.broom.look}}" data-dtype="String"/>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Mechanical Benefit as Textarea -->
|
||||
<div class="resource flexrow">
|
||||
<label for="broom-mechanical" class="resource-label">Mechanical Benefit</label>
|
||||
<textarea id="broom-mechanical" name="system.broom.mechanicalbenefit" data-dtype="String" rows="3"
|
||||
style="resize:none;"></textarea>
|
||||
<textarea id="broom-mechanical" name="system.broom.mechanicalbenefit"
|
||||
data-dtype="String" rows="3" style="resize:none;"></textarea>
|
||||
</div>
|
||||
</fieldset> -->
|
||||
|
||||
|
||||
</fieldset>
|
||||
|
||||
<script>
|
||||
function updateBroomDetails() {
|
||||
// Use a short delay to allow browser to properly handle the datalist input
|
||||
setTimeout(function () {
|
||||
const broomNameInput = document.getElementById("broom-name").value.trim();
|
||||
const broomOptions = document.querySelectorAll("#broomOptions option");
|
||||
function updateBroomDetails() {
|
||||
// Use a short delay to allow browser to properly handle the datalist input
|
||||
setTimeout(function() {
|
||||
const broomNameInput = document.getElementById("broom-name").value.trim();
|
||||
const broomOptions = document.querySelectorAll("#broomOptions option");
|
||||
|
||||
let selectedLook = "";
|
||||
let selectedMechanical = "";
|
||||
let selectedLook = "";
|
||||
let selectedMechanical = "";
|
||||
|
||||
// Loop through the datalist options to find a matching broom name
|
||||
broomOptions.forEach(option => {
|
||||
if (option.value.toLowerCase() === broomNameInput.toLowerCase()) {
|
||||
selectedLook = option.getAttribute("data-look");
|
||||
selectedMechanical = option.getAttribute("data-mechanical");
|
||||
}
|
||||
});
|
||||
// Loop through the datalist options to find a matching broom name
|
||||
broomOptions.forEach(option => {
|
||||
if (option.value.toLowerCase() === broomNameInput.toLowerCase()) {
|
||||
selectedLook = option.getAttribute("data-look");
|
||||
selectedMechanical = option.getAttribute("data-mechanical");
|
||||
}
|
||||
});
|
||||
|
||||
// Update the look and mechanical benefit fields if a predefined broom is selected
|
||||
document.getElementById("broom-look").value = selectedLook || "";
|
||||
document.getElementById("broom-mechanical").value = selectedMechanical || "";
|
||||
}, 100); // Delay of 100 milliseconds
|
||||
}
|
||||
// Update the look and mechanical benefit fields if a predefined broom is selected
|
||||
document.getElementById("broom-look").value = selectedLook || "";
|
||||
document.getElementById("broom-mechanical").value = selectedMechanical || "";
|
||||
}, 100); // Delay of 100 milliseconds
|
||||
}
|
||||
</script>
|
||||
|
||||
<!--
|
||||
<fieldset class="resource grid-span-3 flexcol">
|
||||
<legend>Wand Selection</legend>
|
||||
|
||||
<div class="resource-flexrow">
|
||||
<label for="system.wand.wood" class="resource-label">Wood Type</label>
|
||||
<input list="WoodOptions" id="wandWoodChoice" name="system.wand.wood" value="{{system.wand.wood}}"
|
||||
placeholder="Select Wood type" oninput="updateWandWoodDetails()" onblur="updateWandWoodDetails()">
|
||||
<datalist id="WoodOptions">
|
||||
<option value="">Select Wood</option>
|
||||
<option value="Wisteria">(Brains)</option>
|
||||
<option value="Hawthorn">(Brains)</option>
|
||||
<option value="Pine">(Brawn)</option>
|
||||
<option value="Oak">(Brawn)</option>
|
||||
<option value="Crabapple">(Fight)</option>
|
||||
<option value="Dogwood">(Fight)</option>
|
||||
<option value="Birch">(Flight)</option>
|
||||
<option value="Bamboo">(Flight)</option>
|
||||
<option value="Ironwood">(Grit)</option>
|
||||
<option value="Maple">(Grit)</option>
|
||||
<option value="Lilac">(Charm)</option>
|
||||
<option value="Cherry">(Charm)</option>
|
||||
</datalist>
|
||||
</div>
|
||||
|
||||
<div class="resource-flexrow">
|
||||
<label for="system.wand.core" class="resource-label">Core Type</label>
|
||||
<input list="CoreOptions" id="wandCoreChoice" name="system.wand.core" value="{{system.wand.core}}"
|
||||
placeholder="Select Core type" oninput="updateWandCoreDetails()" onblur="updateWandCoreDetails()">
|
||||
<datalist id="CoreOptions">
|
||||
<option value="">Select Core</option>
|
||||
<option value="Parchment">(Brains)</option>
|
||||
<option value="Phoenix Feather">(Brains)</option>
|
||||
<option value="Owl Feather">(Brains)</option>
|
||||
<option value="Gorilla Fur">(Brawn)</option>
|
||||
<option value="Ogre’s Fingernail">(Brawn)</option>
|
||||
<option value="Hippo’s Tooth">(Brawn)</option>
|
||||
<option value="Dragon’s Heartstring">(Fight)</option>
|
||||
<option value="Wolf’s Tooth">(Fight)</option>
|
||||
<option value="Elk’s Antler">(Fight)</option>
|
||||
<option value="Hawk’s Feather">(Flight)</option>
|
||||
<option value="Bat’s Bone">(Flight)</option>
|
||||
<option value="Changeling’s Hair">(Charm)</option>
|
||||
<option value="Gold">(Charm)</option>
|
||||
<option value="Mirror">(Charm)</option>
|
||||
<option value="Steel">(Grit)</option>
|
||||
<option value="Diamond">(Grit)</option>
|
||||
<option value="Lion’s Mane">(Grit)</option>
|
||||
</datalist>
|
||||
</div>
|
||||
<fieldset class="resource grid-span-3 flexcol">
|
||||
<legend>Wand Selection</legend>
|
||||
|
||||
<!-- Wood Selection -->
|
||||
<div class="resource-flexrow">
|
||||
<label for="system.wand.wood" class="resource-label">Wood Type</label>
|
||||
<input list="WoodOptions" id="wandWoodChoice" name="system.wand.wood" value="{{system.wand.wood}}" placeholder="Select Wood type"
|
||||
oninput="updateWandWoodDetails()" onblur="updateWandWoodDetails()">
|
||||
<datalist id="WoodOptions">
|
||||
<option value="">Select Wood</option>
|
||||
<option value="Wisteria">(Brains)</option>
|
||||
<option value="Hawthorn">(Brains)</option>
|
||||
<option value="Pine">(Brawn)</option>
|
||||
<option value="Oak">(Brawn)</option>
|
||||
<option value="Crabapple">(Fight)</option>
|
||||
<option value="Dogwood">(Fight)</option>
|
||||
<option value="Birch">(Flight)</option>
|
||||
<option value="Bamboo">(Flight)</option>
|
||||
<option value="Ironwood">(Grit)</option>
|
||||
<option value="Maple">(Grit)</option>
|
||||
<option value="Lilac">(Charm)</option>
|
||||
<option value="Cherry">(Charm)</option>
|
||||
</datalist>
|
||||
</div>
|
||||
|
||||
<!-- Core Selection -->
|
||||
<div class="resource-flexrow">
|
||||
<label for="system.wand.core" class="resource-label">Core Type</label>
|
||||
<input list="CoreOptions" id="wandCoreChoice" name="system.wand.core" value="{{system.wand.core}}" placeholder="Select Core type"
|
||||
oninput="updateWandCoreDetails()" onblur="updateWandCoreDetails()">
|
||||
<datalist id="CoreOptions">
|
||||
<option value="">Select Core</option>
|
||||
<option value="Parchment">(Brains)</option>
|
||||
<option value="Phoenix Feather">(Brains)</option>
|
||||
<option value="Owl Feather">(Brains)</option>
|
||||
<option value="Gorilla Fur">(Brawn)</option>
|
||||
<option value="Ogre’s Fingernail">(Brawn)</option>
|
||||
<option value="Hippo’s Tooth">(Brawn)</option>
|
||||
<option value="Dragon’s Heartstring">(Fight)</option>
|
||||
<option value="Wolf’s Tooth">(Fight)</option>
|
||||
<option value="Elk’s Antler">(Fight)</option>
|
||||
<option value="Hawk’s Feather">(Flight)</option>
|
||||
<option value="Bat’s Bone">(Flight)</option>
|
||||
<option value="Changeling’s Hair">(Charm)</option>
|
||||
<option value="Gold">(Charm)</option>
|
||||
<option value="Mirror">(Charm)</option>
|
||||
<option value="Steel">(Grit)</option>
|
||||
<option value="Diamond">(Grit)</option>
|
||||
<option value="Lion’s Mane">(Grit)</option>
|
||||
</datalist>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset class="resource grid-span-3 flexcol">
|
||||
<legend>Animal Familiar</legend>
|
||||
<div class="resource grid-span-3 flexrow">
|
||||
<label for="system.animalfamiliar" class="resource-label">Animal Familiar</label>
|
||||
<input type="text" name="system.animalfamiliar" value="{{system.animalfamiliar}}" data-dtype="String" />
|
||||
<input type="text" name="system.animalfamiliar" value="{{system.animalfamiliar}}" data-dtype="String"/>
|
||||
</div>
|
||||
</fieldset>
|
||||
-->
|
||||
<fieldset class="resource grid-span-3 flexcol">
|
||||
<legend>Wounds</legend>
|
||||
<div class="flexrow">
|
||||
<span>Minor</span>
|
||||
{{#each system.wounds.minor as |minorWound key|}}
|
||||
<input type="checkbox" name="system.wounds.minor.{{key}}" {{checked minorWound}} />
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<span>Moderate</span>
|
||||
{{#each system.wounds.moderate as |minorWound key|}}
|
||||
<input type="checkbox" name="system.wounds.moderate.{{key}}" {{checked minorWound}} />
|
||||
{{/each}}
|
||||
</div>
|
||||
<div class="flexrow">
|
||||
<span>Mortal</span>
|
||||
{{#each system.wounds.mortal as |minorWound key|}}
|
||||
<input type="checkbox" name="system.wounds.mortal.{{key}}" {{checked minorWound}} />
|
||||
{{/each}}
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
</section>
|
@ -1,7 +1,7 @@
|
||||
<section class="flexcol">
|
||||
{{#each system.stats as |stat key|}}
|
||||
<Fieldset class="grid grid-5col">
|
||||
<legend>{{stat.name}}</legend>
|
||||
<legend>{{key}}</legend>
|
||||
<select name="system.stats.{{key}}.value">
|
||||
{{#select stat.value}}
|
||||
<option value="d20">d20</option>
|
||||
@ -18,13 +18,11 @@
|
||||
<span class="ability-mod rollable" data-roll="{{stat.value}}+{{stat.stat}}" data-label="Stat Roll for {{key}}"><i class="fas fa-dice-d20"></i></span>
|
||||
<input type="text" name="system.stats.{{key}}.stat" value="{{stat.stat}}" data-dtype="String"/>
|
||||
</Fieldset>
|
||||
<!--
|
||||
<Fieldset class="flexrow">
|
||||
<legend>Magic</legend>
|
||||
<span class="ability-mod rollable" data-roll="{{stat.value}}+{{stat.magic}}" data-label="Magic Roll for {{key}}"><i class="fas fa-dice-d20"></i></span>
|
||||
<input type="text" name="system.stats.{{key}}.magic" value="{{stat.magic}}" data-dtype="String"/>
|
||||
</Fieldset>
|
||||
-->
|
||||
</div>
|
||||
</Fieldset>
|
||||
{{/each}}
|
||||
|
@ -1,16 +1,16 @@
|
||||
<section class="flexcol">
|
||||
{{#each system.stats as |stat key|}}
|
||||
<Fieldset class="flexrow">
|
||||
<legend><input type="text" value="{{capitalizeFirst stat.name}}" name="system.stats.{{key}}.name"></legend>
|
||||
<legend>{{capitalizeFirst key}}</legend>
|
||||
<div class="flexrow flex-group-center">
|
||||
<!-- Die type dropdown -->
|
||||
<select name="system.stats.{{key}}.value">
|
||||
<option value="d20" {{#if (eq stat.value 'd20')}}selected{{/if}}>d20</option>
|
||||
<option value="d12" {{#if (eq stat.value 'd12')}}selected{{/if}}>d12</option>
|
||||
<option value="d10" {{#if (eq stat.value 'd10')}}selected{{/if}}>d10</option>
|
||||
<option value="d8" {{#if (eq stat.value 'd8')}}selected{{/if}}>d8</option>
|
||||
<option value="d6" {{#if (eq stat.value 'd6')}}selected{{/if}}>d6</option>
|
||||
<option value="d4" {{#if (eq stat.value 'd4')}}selected{{/if}}>d4</option>
|
||||
<option value="d20" {{#if (eq stat.value 'd20')}}selected{{/if}}>Superb</option>
|
||||
<option value="d12" {{#if (eq stat.value 'd12')}}selected{{/if}}>Impressive</option>
|
||||
<option value="d10" {{#if (eq stat.value 'd10')}}selected{{/if}}>Above Average</option>
|
||||
<option value="d8" {{#if (eq stat.value 'd8')}}selected{{/if}}>Below Average</option>
|
||||
<option value="d6" {{#if (eq stat.value 'd6')}}selected{{/if}}>Bad</option>
|
||||
<option value="d4" {{#if (eq stat.value 'd4')}}selected{{/if}}>Terrible</option>
|
||||
</select>
|
||||
|
||||
<!-- Stat rolling and input -->
|
||||
@ -22,13 +22,13 @@
|
||||
<input type="number" name="system.stats.{{key}}.stat" value="{{stat.stat}}" data-dtype="Number"/>
|
||||
</Fieldset>
|
||||
|
||||
<!-- Magic rolling and input
|
||||
<!-- Magic rolling and input -->
|
||||
<Fieldset class="flexrow flex-group-center">
|
||||
<legend>Magic</legend>
|
||||
<span class="ability-mod rollable" data-roll="1{{stat.value}}x+1d4x+{{stat.stat}}" data-label="Magic Roll for {{key}}" data-key="{{key}}">
|
||||
<i class="fas fa-dice-d20"></i>
|
||||
</span>
|
||||
</Fieldset>-->
|
||||
</Fieldset>
|
||||
|
||||
</div>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user