Merge pull request #10407 from Darth-John/BESM4eExtras_Dev

[BESM4eExtras] v1.7.2 - Open Lock Bug Fix
This commit is contained in:
Nic Bradley
2022-03-31 09:08:56 -07:00
committed by GitHub
+55 -50
View File
@@ -30,7 +30,7 @@
<div class="row padt padb"><h3 class="col-1 center border"><span>Sheet Options</span></h3></div>
<div class="row center padb">
<div class="col-1-5 padr"><h4 class="center border"><span>Sheet Version
<input type="text" class="center" name="attr_version" value="1.7.1" readonly />
<input type="text" class="center" name="attr_version" value="1.7.3" readonly />
<input type="hidden" name="attr_global_version" value="0.0.0" readonly />
</span></h4></div>
<div class="col-1-5 padr"><h4 class="center border"><span>Sheet Type
@@ -2953,7 +2953,7 @@
<div class="flex-container-evenlyspace padb">
<div class="flex-1">
<div>
<input type="checkbox" class="block-switch" name="attr_options" value="1" />
<input type="checkbox" class="block-switch" name="attr_options" value="1" checked />
<div class="block-a"></div>
<div class="block-b">
<div class="row">
@@ -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);