@@ -7802,46 +7802,57 @@
}
}
- function doUpgrade(value, sheetdb, skilltempIDs, setObj){
- const sheet_version = value.version.split('.').map(Number);
- const global_version = value.global_version.split('.').map(Number);
- //clog(2, {}, 'sheet_version =', sheet_version);
+ function doUpgrade(value, attrIDs, setObj){
+ clog(2, {}, `global_version =`, value.global_version, 'doUpgrade()');
+ clog(2, {}, 'sheet_version =', value.version);
+ const sheet_version = value.version;
+ let global_version = value.global_version.split('.').map(Number);
+ const major_global_version = parseInt(global_version.shift());
+ const minor_global_version = parseFloat(global_version.join('.'));
//clog(2, {}, 'global_version =', global_version);
- clog(2, {}, 'sheet_version =', value.version, 'doUpgrade()');
- if (global_version[0] <= 1 && global_version[1] <= 2 && global_version[2] < 2 || value.upgraded_1_2_2 === true) {
+ //clog(2, {}, 'major_global_version =', major_global_version);
+ //clog(2, {}, 'minor_global_version =', minor_global_version);
+ //const isLesserThan122 = global_version[0] <= 1 && global_version[1] <= 2 && global_version[2] < 2 ?
+ const isLesserThan122 = major_global_version <= 1 && minor_global_version < 2.2 ?
+ true : false;
+ //clog(2, {}, 'isLesserThan122 =', isLesserThan122);
+ if (isLesserThan122) {
upgradeTo_1_2_2(value, setObj);
}
- if (global_version[0] <= 1 && global_version[1] <= 3 && global_version[2] < 1 || value.upgraded_1_3_1 === true) {
+ //const isLesserThan131 = global_version[0] <= 1 && global_version[1] <= 3 && global_version[2] < 1 ?
+ const isLesserThan131 = major_global_version <= 1 && minor_global_version < 3.1 ?
+ true : false;
+ //clog(2, {}, 'isLesserThan131 =', isLesserThan131);
+ if (isLesserThan131) {
upgradeTo_1_3_1(value, setObj);
}
- if (global_version[0] <= 1 && global_version[1] < 5 || value.upgraded_1_5_0 === true) {
- upgradeTo_1_5_0(value, setObj);
+ //const isLesserThan150 = global_version[0] <= 1 && global_version[1] < 5 ?
+ const isLesserThan150 = major_global_version <= 1 && minor_global_version < 5.0 ?
+ true : false;
+ //clog(2, {}, 'isLesserThan150 =', isLesserThan150);
+ if (isLesserThan150) {
+ upgradeTo_1_5_0(setObj);
}
- /*if (global_version[0] === 1 && global_version[1] < 6) {
- upgradeTo_1_6_0(value, sheetdb, skilltempIDs, setObj);
- }*/
- setObj.global_version = sheet_version.join('.');
- clog(2, {}, `global_version =`, setObj.global_version);
+ //const isLesserThan172 = global_version[0] <= 1 && global_version[1] <= 7 && global_version[2] < 2 ?
+ const isLesserThan172 = major_global_version <= 1 && minor_global_version < 7.2 ?
+ true : false;
+ //clog(2, {}, 'isLesserThan172 =', isLesserThan172);
+ if (isLesserThan172) {
+ upgradeTo_1_7_2(attrIDs, setObj);
+ }
+ setObj.global_version = sheet_version;
}
function upgradeTo_1_2_2(value, setObj){
- /*if(value.upgraded_1_2_2 == true){
- return;
- }*/
const oldname = value.name || '';
const newname = value.charactername || '';
if(oldname.length > 0 && newname.length == 0){
setObj.charactername = oldname;
}
- //setObj.upgraded_1_2_2 = true;
- //value.global_version = '1.2.2';
clog(2, {}, 'upgraded to 1.2.2');
}
function upgradeTo_1_3_1(value, setObj){
- /*if(value.upgraded_1_3_1 == true){
- return;
- }else{*/
if (value.attrdb !== undefined) {
const attrdb = _.isString(value.attrdb) ?
JSON.parse(value.attrdb) : value.attrdb;
@@ -7852,16 +7863,10 @@
setObj[`repeating_attr_${rowID}_rank`] = rank;
});
}
- //setObj.upgraded_1_3_1 = true;
- //sheetdb.global_version = '1.3.1';
- //}
clog(2, {}, 'upgraded to 1.3.1');
}
- function upgradeTo_1_5_0(value, setObj){
- /*if(value.upgraded_1_5_0 == true){
- return;
- }else{*/
+ function upgradeTo_1_5_0(setObj){
const limiters_array = ['activation','ammo','assisted','backblast','backlash','bothdirections','broadcategory','capped','category','category','categoty','charges','concentration','consumable','delay','dependent','deplete','detectable','emotional','environmental','equipment','exclusive','fieldless','focused','focuseddamage','gap','glide','group','hands','imbue','impacting','inaccurate','ingest','intensity','internal','irreversible','localized','maintain','maximum','nonadjacent','nonpenetrating','nostun','object','permanent','proportionaldamage','recovery','roadbound','semipermanent','skillflux','skim','specialized','specificattribute','spread','stoppable','targeteddamage','toxic','unique','unpredictable','unreliable'];
getSectionIDs('attr', attrIDs => {
const attr_customization_array = _.map(attrIDs, id => {
@@ -7888,30 +7893,28 @@
})
});
});
- //setObj.upgraded_1_5_0 = true;
- //sheetdb.global_version = '1.5.0';
- //}
clog(2, {}, 'upgraded to 1.5.0');
}
function upgradeTo_1_6_0(value, sheetdb, skilltempIDs, setObj){
- /*value.attrdb !== undefined ?
- _.isString(value.attrdb) ?
- sheetdb.attrdb = JSON.parse(value.attrdb) :
- sheetdb.attrdb = value.attrdb :
- createAttrdbJSON(sheetdb);*/
const skillmap = _.chain(skilltempIDs)
.map( id => {
return { [id]: value[`repeating_skilltemplate_${id}_label`] };
})
.compact()
.value();
- //console.log(`on open skillmap = ${skillmap}`);
sheetdb.skillmap = skillmap;
- //sheetdb.global_version = '1.6.0';
clog(2, {}, 'upgraded to 1.6.0');
}
+ function upgradeTo_1_7_2(attrIDs, setObj) {
+ _.each(attrIDs, id => {
+ setObj[`repeating_attr_${id}_lock`] = "1";
+ setObj[`repeating_attr_${id}_options`] = 0;
+ });
+ clog(2, {}, 'upgraded to 1.7.2');
+ }
+
/** Build UI Functions **/
function buildSizeUI(sizes, setObj) {
@@ -9206,8 +9209,10 @@
clog(debug, timer, 'tab =', tab, 'setGroupMembership()');
const currGroup = tab.replace(/attrgroup/g, '');
clog(debug, timer, 'currGroup =', currGroup);
- setObj[`${source}_new`] = 0;
- setObj[`${source}_group`] = currGroup;
+ //setObj[`${source}_new`] = 0;
+ //setObj[`${source}_group`] = currGroup;
+ writeValues(debug, timer, value, `${source}_new`, 0, setObj);
+ writeValues(debug, timer, value, `${source}_group`, currGroup, setObj);
}
function resetOnActive(debug, timer, eventInfo, value, match, rowID, setObj) {
@@ -13664,7 +13669,7 @@
setObj.stat_total_body = '0';
setObj.stat_total_mind = '0';
setObj.stat_total_soul = '0';
- doUpgrade(value, sheetdb, skilltempIDs, setObj);
+ doUpgrade(value, attrIDs, setObj);
}else{
const skillmap = _.chain(skilltempIDs)
.map( id => {
@@ -13673,7 +13678,7 @@
.compact()
.value();
sheetdb.skillmap = skillmap;
- doUpgrade(value, sheetdb, skilltempIDs, setObj);
+ doUpgrade(value, attrIDs, setObj);
}
setObj.sheetdb = JSON.stringify(sheetdb);
clog(3, timer, 'Ready to write setObj to cache:', setObj, 'setAttrs()');
@@ -13796,8 +13801,9 @@
switch (sectionName) {
case `attr`:
- const isNew = parseInt(value[`${source}_new`]) || 1;
- if(isNew === 1) {
+ const isNew = parseInt(value[`${source}_new`]) === 0 ? false : true;
+ clog(debug, timer, `${source}_new =`, value[`${source}_new`], 'Attribute is new?');
+ if(isNew) {
setGroupMembership(debug, timer, value, setObj, source, sectionName);
attrIDs.indexOf(rowID) === -1 ? attrIDs.push(rowID) : false;
setDepleteRules(debug, timer, value, rowID, setObj);
@@ -13853,9 +13859,8 @@
break;
case `lock`:
if (resetOnActive(debug, timer, eventInfo, value, match, rowID, setObj)) return;
- if (eventInfo.newValue == "1") setObj[`${source}_options`] = 0;
- const state = parseInt(value[`${source}_options`]) > 0 ? 0: 1;
- setObj[`${source}_options`] = state;
+ const state = eventInfo.newValue === "1" ? 0 : 1;
+ writeValues(debug, timer, value, `${source}_options`, state, setObj);
break;
case 'defect':
resetRank(value, rowID, setObj);