diff --git a/Delta Green 2/deltagreen.css b/Delta Green 2/deltagreen.css
index c4e25b43a7..d970943f5b 100644
--- a/Delta Green 2/deltagreen.css
+++ b/Delta Green 2/deltagreen.css
@@ -763,6 +763,73 @@ div.sheet-npc div.sheet-section-body div.sheet-notes div.sheet-section {
/* PC SHEET
============================= */
+/* SUMMARY UPDATE */
+div.sheet-datahide {
+ display: none;
+}
+
+div[data-groupname=repeating_summary].repcontrol {
+ display: none;
+}
+
+div.sheet-summary {
+ position: absolute;
+ bottom: 40px;
+ right: 10px;
+ display: none;
+ z-index: 1000;
+ background: white;
+ border: 0.01em solid black;
+ width: 30%;
+ min-height: 20%;
+ overflow-y: scroll;
+}
+
+.sheet-section-summary {
+ grid-column-gap: 0.2em;
+ grid-row-gap: 0.2em;
+ grid-template-columns: 4fr 1fr 1fr 1fr;
+ display: grid;
+ justify-items: start;
+}
+
+div.sheet-updateinfo {
+ position: relative;
+}
+div.sheet-updateinfo input[type=checkbox] {
+ opacity: 0;
+ width: 16px;
+ height: 16px;
+ position: relative;
+ top: 5px;
+ left: 6px;
+ margin: -10px;
+ cursor: pointer;
+ z-index: 1;
+}
+div.sheet-updateinfo input[type=checkbox] + span::before {
+ margin-right: 4px;
+ line-height: 14px;
+ text-align: center;
+ display: inline-block;
+ vertical-align: middle;
+ content: "?";
+ font-weight: bold;
+ color: black;
+ width: 14px;
+ height: 14px;
+ font-size: 12px;
+}
+div.sheet-updateinfo input[type=checkbox]:checked ~ div.sheet-summary {
+ display: grid;
+}
+div.sheet-updateinfo input[type=checkbox]:checked + span::before {
+ content: "?";
+ font-weight: bold;
+ color: gray;
+}
+
+/* MAIN SHEET */
div.sheet-pc {
grid-column-gap: 0.2em;
grid-row-gap: 0.2em;
diff --git a/Delta Green 2/deltagreen.css.map b/Delta Green 2/deltagreen.css.map
index f6786b066b..0c2d4fb46d 100644
--- a/Delta Green 2/deltagreen.css.map
+++ b/Delta Green 2/deltagreen.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["src/scss/_globals.scss","src/scss/_variables.scss","src/scss/_mixins.scss","src/scss/_repcontrol.scss","src/scss/_rolltemplate.scss","deltagreen.scss","src/scss/_switch.scss","src/scss/_pc.scss","src/scss/_section_personal_data.scss"],"names":[],"mappings":"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","file":"deltagreen.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["src/scss/_globals.scss","src/scss/_variables.scss","src/scss/_mixins.scss","src/scss/_repcontrol.scss","src/scss/_rolltemplate.scss","deltagreen.scss","src/scss/_switch.scss","src/scss/_pc.scss","src/scss/_section_personal_data.scss"],"names":[],"mappings":"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","file":"deltagreen.css"}
\ No newline at end of file
diff --git a/Delta Green 2/deltagreen.html b/Delta Green 2/deltagreen.html
index 9581d124a2..f9e1032412 100644
--- a/Delta Green 2/deltagreen.html
+++ b/Delta Green 2/deltagreen.html
@@ -11,6 +11,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
GM Whisper
@@ -1057,10 +1100,16 @@
- Check a box when you attempt to use a skill and fail. After the session, add 1d4 to each checked skill and erase all checks.
+
@@ -1151,7 +1200,7 @@
-
+
@@ -3643,6 +3692,7 @@ on('sheet:opened change:repeating_skills remove:repeating_skills', () => {
});
});
+
// levelup character
on("clicked:levelup", () =>{
let update={};
@@ -3650,32 +3700,61 @@ on("clicked:levelup", () =>{
let len=copyarray.length; // length of the original copyarray
let getarray=[]; // used only to update the values
let summary={}; // information in the log for the users
- let var_rnd=0; // random variable of 1d4-1
- //console.dir(copyarray);
+ let var_rnd=0; // random variable of 1d4
+ let block_to_insert ;
+ let container_block ;
+ let newrowid;
+ let newrowattrs = {};
+ let oldval=0;
+ let newval=0;
+ let name;
+
+ //console.dir(copyarray);
//getSectionIDs('repeating_skills', (idarray) => {
// for (i=0;i{
+ console.dir(copyarray);
+ getSectionIDs("repeating_summary", function(idarray) {
+ for(var i=0; i < idarray.length; i++) {
+ removeRepeatingRow("repeating_summary_" + idarray[i]);
+ }
+ });
+
+
+ copyarray.forEach((sk,idx)=>{
//console.log(idx);
if (idx{
+ getAttrs([`${sk}`,`${sk}_name`,`${sk}_fail`],(val)=>{
getarray.push(`${sk}`);
//console.log(val[`${sk}_fail`]);
// console.log(`${sk}`);
if (val[`${sk}_fail`]=='on'){ //if the checkbox is checked
- var_rnd=Math.ceil(Math.random() * 4); // generate a random number for each checked value (less number generated)
+ var_rnd=Math.ceil(Math.random() * 4); // generate a random number for each checked value (less number generated)
//console.log(`${idx}`);
+ oldval=(parseInt(val[`${sk}`])||0);
+ newval=oldval+var_rnd;
+ name=val[`${sk}_name`];
summary[`${sk}`]=var_rnd; // how much the skill has changed 0-3
- update[`${sk}`]=(parseInt(val[`${sk}`])||0)+var_rnd; // new value of the skill
+ update[`${sk}`]=newval; // new value of the skill
update[`${sk}_fail`]='off'; // uncheck checkbox
+
+ //block_to_insert = document.createElement( 'div' );
+ //block_to_insert.innerHTML = 'This demo DIV block was inserted into the page using JavaScript.' ;
+
+ //container_block = document.getElementById( 'summary' );
+ //container_block.appendChild( block_to_insert );
+ newrowid = generateRowID();
+ newrowattrs['repeating_summary_' + newrowid + '_skillname'] = name;
+ newrowattrs['repeating_summary_' + newrowid + '_oldval'] = oldval;
+ newrowattrs['repeating_summary_' + newrowid + '_newval'] = newval;
+
}
});
} else { // if the idx>=len it means I an in the repeating skill array part
- getAttrs([`${sk}_rank`,`${sk}_fail`],(val)=>{
+ getAttrs([`${sk}_name`,`${sk}_rank`,`${sk}_fail`],(val)=>{
getarray.push(`${sk}_rank`);
//console.log(val[`${sk}_fail`]);
// console.log(`${sk}`);
@@ -3683,17 +3762,29 @@ on("clicked:levelup", () =>{
var_rnd=Math.ceil(Math.random() * 4); // generate a random number for each checked value (less number generated)
//console.log(`${idx}`);
summary[`${idx-len}_rank`]=var_rnd; // since the repeating skill don't have a name, they are identified by number 0-N
- update[`${sk}_rank`]=(parseInt(val[`${sk}_rank`])||0)+var_rnd;
+ //
+ oldval=(parseInt(val[`${sk}_rank`])||0);
+ newval=oldval+var_rnd;
+ name=val[`${sk}_name`];
+ //
+ update[`${sk}_rank`]=(parseInt(val[`${sk}_rank`])||0)+var_rnd;
update[`${sk}_fail`]='off';
+ newrowid = generateRowID();
+ newrowattrs['repeating_summary_' + newrowid + '_skillname'] = name;
+ newrowattrs['repeating_summary_' + newrowid + '_oldval'] = oldval;
+ newrowattrs['repeating_summary_' + newrowid + '_newval'] = newval;
}
});
}
});
//console.log(getarray);
+ console.log(newrowattrs); // summary in console for the user
+ //setAttrs(newrowattrs);
console.log(summary); // summary in console for the user
getAttrs(getarray,()=>{ // update fields
setAttributes(update,false);
+ setAttributes(newrowattrs,false);
});
//console.dir(update);
});
-
+
\ No newline at end of file
diff --git a/Delta Green 2/deltagreen.pug b/Delta Green 2/deltagreen.pug
index 801043b0cb..97f861815c 100644
--- a/Delta Green 2/deltagreen.pug
+++ b/Delta Green 2/deltagreen.pug
@@ -15,6 +15,51 @@ input.display_string(name='attr_toggles' type='hidden' value='')
//TABS & LOGO
// =============================
+.datahide
+ input(data-i18n-value='accounting' name='attr_accounting_name' value='accounting')
+ input(data-i18n-value='alertness' name='attr_alertness_name' value='alertness')
+ input(data-i18n-value='anthropology' name='attr_anthropology_name' value='anthropology')
+ input(data-i18n-value='archeology' name='attr_archeology_name' value='archeology')
+ input(data-i18n-value='art' name='attr_art_name' value='art')
+ input(data-i18n-value='artillery' name='attr_artillery_name' value='artillery')
+ input(data-i18n-value='athletics' name='attr_athletics_name' value='athletics')
+ input(data-i18n-value='bureaucracy' name='attr_bureaucracy_name' value='bureaucracy')
+ input(data-i18n-value='computer science' name='attr_computer_science_name' value='computer science')
+ input(data-i18n-value='craft' name='attr_craft_name' value='craft')
+ input(data-i18n-value='criminology' name='attr_criminology_name' value='criminology')
+ input(data-i18n-value='demolitions' name='attr_demolitions_name' value='demolitions')
+ input(data-i18n-value='disguise' name='attr_disguise_name' value='disguise')
+ input(data-i18n-value='dodge' name='attr_dodge_name' value='dodge')
+ input(data-i18n-value='drive' name='attr_drive_name' value='drive')
+ input(data-i18n-value='firearms' name='attr_firearms_name' value='firearms')
+ input(data-i18n-value='first aid' name='attr_first_aid_name' value='first aid')
+ input(data-i18n-value='forensics' name='attr_forensics_name' value='forensics')
+ input(data-i18n-value='heavy machinery' name='attr_heavy_machinery_name' value='heavy machinery')
+ input(data-i18n-value='heavy weapons' name='attr_heavy_weapons_name' value='heavy weapons')
+ input(data-i18n-value='history' name='attr_history_name' value='history')
+ input(data-i18n-value='humint' name='attr_humint_name' value='humint')
+ input(data-i18n-value='law' name='attr_law_name' value='law')
+ input(data-i18n-value='medicine' name='attr_medicine_name' value='medicine')
+ input(data-i18n-value='melee weapons' name='attr_melee_weapons_name' value='melee weapons')
+ input(data-i18n-value='military science' name='attr_military_science_name' value='military science')
+ input(data-i18n-value='navigate' name='attr_navigate_name' value='navigate')
+ input(data-i18n-value='occult' name='attr_occult_name' value='occult')
+ input(data-i18n-value='persuade' name='attr_persuade_name' value='persuade')
+ input(data-i18n-value='pharmacy' name='attr_pharmacy_name' value='pharmacy')
+ input(data-i18n-value='pilot' name='attr_pilot_name' value='pilot')
+ input(data-i18n-value='psychotherapy' name='attr_psychotherapy_name' value='psychotherapy')
+ input(data-i18n-value='ride' name='attr_ride_name' value='ride')
+ input(data-i18n-value='science' name='attr_science_name' value='science')
+ input(data-i18n-value='search' name='attr_search_name' value='search')
+ input(data-i18n-value='sigint' name='attr_sigint_name' value='sigint')
+ input(data-i18n-value='stealth' name='attr_stealth_name' value='stealth')
+ input(data-i18n-value='surgery' name='attr_surgery_name' value='surgery')
+ input(data-i18n-value='survival' name='attr_survival_name' value='survival')
+ input(data-i18n-value='swim' name='attr_swim_name' value='swim')
+ input(data-i18n-value='unarmed combat' name='attr_unarmed_combat_name' value='unarmed combat')
+
+
+
.tabs.grid
// Buttons to toggle on GM whisper
span(data-i18n-title='GM Whisper') GM Whisper
@@ -165,7 +210,7 @@ include src/pug/_objects.pug
button.dicefontd10(name='weapon' type='roll' title='weapon roll' value=attackRollValue) k
button.none(name='roll_damage' type='roll' value='@{gm_toggle} &{template:damage} {{header=@{weapons}}} {{subheader=@{damage}}} {{damage=[[@{damage}]]}} {{AP=[[@{armor_piercing}+0]]}}')
button.none(name='roll_lethality' type='roll' value='@{gm_toggle} &{template:lethality} {{header=@{weapons}}} {{subheader=@{lethality_percent}}}{{lethality_rating=[[@{lethality_percent}]]}} {{lethality=[[1d100]]}} {{AP=[[@{armor_piercing}+0]]}}')
- button.none(name='roll_damage_critical' type='roll' value='@{gm_toggle} &{template:damage} {{header=@{weapons}}} {{subheader=@{damage}}} {{damage=[[@{damage}*2]]}} {{AP=[[@{armor_piercing}+0]]}}')
+ button.none(name='roll_damage_critical' type='roll' value='@{gm_toggle} &{template:damage} {{header=@{weapons}}} {{subheader=@{damage}}} {{damage=[[(@{damage})*2]]}} {{AP=[[@{armor_piercing}+0]]}}')
button.none(name='roll_lethality_critical' type='roll' value='@{gm_toggle} &{template:lethality_critical} {{header=@{weapons}}} {{subheader=@{lethality_percent}}} {{lethality_rating=[[@{lethality_percent}*2]]}} {{lethality=[[1d100]]}} {{AP=[[@{armor_piercing}+0]]}}')
h1(data-i18n='other notes') other notes
diff --git a/Delta Green 2/src/pug/_pc.pug b/Delta Green 2/src/pug/_pc.pug
index 2c88a1e65b..f8860c096d 100644
--- a/Delta Green 2/src/pug/_pc.pug
+++ b/Delta Green 2/src/pug/_pc.pug
@@ -161,11 +161,19 @@
.vert-line
label(data-i18n-title='skill rank' title='skill rank')
input(data-i18n-placeholder='0' name='attr_rank' title='@{repeating_skills_${x}_rank}' placeholder='0' type='number' value='')
- .section-directions.center
+ .section-directions.center.updateinfo
span(data-i18n='Check a box when you attempt to use a skill and fail. After the session, add 1d4 to each checked skill and erase all checks.') Check a box when you attempt to use a skill and fail. After the session, add 1d4 to each checked skill and erase all checks.
button(name='act_levelup' type='action')
h3.aligned-center(data-i18n='Update' data-i18n-title='Update')= Update
-
+ input(type='checkbox')
+ span
+ .summary
+ fieldset.repeating_summary
+ .section-summary
+ span( name='attr_skillname')
+ span(style='color:red;' name='attr_oldval')
+ span.slash →
+ span(style='color:green;' name='attr_newval')
//INJURIES
.grid.header-body.injuries.border
.section-header
@@ -221,7 +229,7 @@
button.dicefontd10(name='weapon' type='roll' title='weapon roll' value=weaponRollValue) k
button.none(name='roll_damage' type='roll' value='@{gm_toggle} &{template:damage} {{header=@{weapons}}} {{subheader=@{damage}}} {{damage=[[@{damage}]]}} {{AP=[[@{armor_piercing}+0]]}}')
button.none(name='roll_lethality' type='roll' value='@{gm_toggle} &{template:lethality} {{header=@{weapons}}} {{subheader=@{lethality_percent}}}{{lethality_rating=[[@{lethality_percent}]]}} {{lethality=[[1d100]]}} {{AP=[[@{armor_piercing}+0]]}}')
- button.none(name='roll_damage_critical' type='roll' value='@{gm_toggle} &{template:damage} {{header=@{weapons}}} {{subheader=@{damage}}} {{damage=[[@{damage}*2]]}} {{AP=[[@{armor_piercing}+0]]}}')
+ button.none(name='roll_damage_critical' type='roll' value='@{gm_toggle} &{template:damage} {{header=@{weapons}}} {{subheader=@{damage}}} {{damage=[[(@{damage})*2]]}} {{AP=[[@{armor_piercing}+0]]}}')
button.none(name='roll_lethality_critical' type='roll' value='@{gm_toggle} &{template:lethality_critical} {{header=@{weapons}}} {{subheader=@{lethality_percent}}} {{lethality_rating=[[@{lethality_percent}*2]]}} {{lethality=[[1d100]]}} {{AP=[[@{armor_piercing}+0]]}}')
//REMARKS
diff --git a/Delta Green 2/src/pug/sheetworkers.js b/Delta Green 2/src/pug/sheetworkers.js
index fa4a4547e6..8a0ebe32cf 100644
--- a/Delta Green 2/src/pug/sheetworkers.js
+++ b/Delta Green 2/src/pug/sheetworkers.js
@@ -304,6 +304,7 @@ on('sheet:opened change:repeating_skills remove:repeating_skills', () => {
});
});
+
// levelup character
on("clicked:levelup", () =>{
let update={};
@@ -311,51 +312,90 @@ on("clicked:levelup", () =>{
let len=copyarray.length; // length of the original copyarray
let getarray=[]; // used only to update the values
let summary={}; // information in the log for the users
- let var_rnd=0; // random variable of 1d4-1
- //console.dir(copyarray);
+ let var_rnd=0; // random variable of 1d4
+ let block_to_insert ;
+ let container_block ;
+ let newrowid;
+ let newrowattrs = {};
+ let oldval=0;
+ let newval=0;
+ let name;
+
+ //console.dir(copyarray);
//getSectionIDs('repeating_skills', (idarray) => {
// for (i=0;i{
+ console.dir(copyarray);
+ getSectionIDs("repeating_summary", function(idarray) {
+ for(var i=0; i < idarray.length; i++) {
+ removeRepeatingRow("repeating_summary_" + idarray[i]);
+ }
+ });
+
+
+ copyarray.forEach((sk,idx)=>{
//console.log(idx);
if (idx{
+ getAttrs([`${sk}`,`${sk}_name`,`${sk}_fail`],(val)=>{
getarray.push(`${sk}`);
//console.log(val[`${sk}_fail`]);
// console.log(`${sk}`);
if (val[`${sk}_fail`]=='on'){ //if the checkbox is checked
- //var_rnd=Math.floor(Math.random() * 4); // generate a random number for each checked value (less number generated)
- var_rnd=Math.ceil(Math.random() * 4); // generate a random number for each checked value (less number generated)
+ var_rnd=Math.ceil(Math.random() * 4); // generate a random number for each checked value (less number generated)
//console.log(`${idx}`);
+ oldval=(parseInt(val[`${sk}`])||0);
+ newval=oldval+var_rnd;
+ name=val[`${sk}_name`];
summary[`${sk}`]=var_rnd; // how much the skill has changed 0-3
- update[`${sk}`]=(parseInt(val[`${sk}`])||0)+var_rnd; // new value of the skill
+ update[`${sk}`]=newval; // new value of the skill
update[`${sk}_fail`]='off'; // uncheck checkbox
+
+ //block_to_insert = document.createElement( 'div' );
+ //block_to_insert.innerHTML = 'This demo DIV block was inserted into the page using JavaScript.' ;
+
+ //container_block = document.getElementById( 'summary' );
+ //container_block.appendChild( block_to_insert );
+ newrowid = generateRowID();
+ newrowattrs['repeating_summary_' + newrowid + '_skillname'] = name;
+ newrowattrs['repeating_summary_' + newrowid + '_oldval'] = oldval;
+ newrowattrs['repeating_summary_' + newrowid + '_newval'] = newval;
+
}
});
} else { // if the idx>=len it means I an in the repeating skill array part
- getAttrs([`${sk}_rank`,`${sk}_fail`],(val)=>{
+ getAttrs([`${sk}_name`,`${sk}_rank`,`${sk}_fail`],(val)=>{
getarray.push(`${sk}_rank`);
//console.log(val[`${sk}_fail`]);
// console.log(`${sk}`);
if (val[`${sk}_fail`]=='on'){
- //var_rnd=Math.floor(Math.random() * 4); // generate a random number for each checked value (less number generated)
var_rnd=Math.ceil(Math.random() * 4); // generate a random number for each checked value (less number generated)
//console.log(`${idx}`);
summary[`${idx-len}_rank`]=var_rnd; // since the repeating skill don't have a name, they are identified by number 0-N
- update[`${sk}_rank`]=(parseInt(val[`${sk}_rank`])||0)+var_rnd;
+ //
+ oldval=(parseInt(val[`${sk}_rank`])||0);
+ newval=oldval+var_rnd;
+ name=val[`${sk}_name`];
+ //
+ update[`${sk}_rank`]=(parseInt(val[`${sk}_rank`])||0)+var_rnd;
update[`${sk}_fail`]='off';
+ newrowid = generateRowID();
+ newrowattrs['repeating_summary_' + newrowid + '_skillname'] = name;
+ newrowattrs['repeating_summary_' + newrowid + '_oldval'] = oldval;
+ newrowattrs['repeating_summary_' + newrowid + '_newval'] = newval;
}
});
}
});
//console.log(getarray);
+ console.log(newrowattrs); // summary in console for the user
+ //setAttrs(newrowattrs);
console.log(summary); // summary in console for the user
getAttrs(getarray,()=>{ // update fields
setAttributes(update,false);
+ setAttributes(newrowattrs,false);
});
//console.dir(update);
-});
+});
\ No newline at end of file
diff --git a/Delta Green 2/src/scss/_pc.scss b/Delta Green 2/src/scss/_pc.scss
index 4415ae2faa..71a6ca0497 100644
--- a/Delta Green 2/src/scss/_pc.scss
+++ b/Delta Green 2/src/scss/_pc.scss
@@ -1,3 +1,68 @@
+ /* SUMMARY UPDATE */
+
+ div.sheet-datahide{display:none;}
+ div[data-groupname='repeating_summary'].repcontrol{
+ display: none;
+ }
+ div.sheet-summary{
+ position:absolute;
+ bottom:40px;
+ right: 10px;
+ display:none;
+ z-index: 1000;
+ background: white;
+ border: 0.01em solid black;
+ width:30%;
+ min-height:20%;
+ overflow-y:scroll;
+
+ }
+ .sheet-section-summary{
+ grid-column-gap: 0.2em;
+ grid-row-gap: 0.2em;
+ grid-template-columns: 4fr 1fr 1fr 1fr;
+ display:grid;
+ justify-items: start;
+ }
+ div.sheet-updateinfo{
+ position: relative;
+ input[type='checkbox']{
+ opacity: 0;
+ width: 16px;
+ height: 16px;
+ position: relative;
+ top: 5px;
+ left: 6px;
+ margin: -10px;
+ cursor: pointer;
+ z-index: 1;
+ &+ span::before{
+ margin-right: 4px;
+ line-height: 14px;
+ text-align: center;
+ display: inline-block;
+ vertical-align: middle;
+ content: "?";
+ font-weight: bold;
+ color:black;
+ width: 14px;
+ height: 14px;
+ font-size: 12px;
+ }
+ &:checked ~ div.sheet-summary{
+ display:grid;
+ }
+ &:checked + span::before{
+ content: "?";
+ font-weight: bold;
+ color: gray;
+ }
+ }
+ }
+
+
+ /* MAIN SHEET */
+
div.sheet-pc {
grid-column-gap: 0.2em;
grid-row-gap: 0.2em;