diff --git a/BESM4eExtras/BESM4eExtras.html b/BESM4eExtras/BESM4eExtras.html index e90fa07311..eeae6d15da 100644 --- a/BESM4eExtras/BESM4eExtras.html +++ b/BESM4eExtras/BESM4eExtras.html @@ -30,7 +30,7 @@

Sheet Options

Sheet Version - +

Sheet Type @@ -2953,7 +2953,7 @@
- +
@@ -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);