Handling for compendium data differences

This commit is contained in:
Kurohyou
2018-12-11 00:11:26 -06:00
parent f25fb066be
commit 53a898a359
+76 -30
View File
@@ -4631,7 +4631,7 @@ This pattern can be found at https://regexr.com/3mi9v
<span class='label modified-attr' title='@{damage_total}' name='attr_damage_total' value='0'>0</span>
</div>
<input type='text' class='label' title='@{type}' name='attr_type' placeholder='Fire'>
<button class='summary' type='roll' title='%{npc_roll}' name='roll_npc_roll' value='@{whisper_state}&{template:sf_attack}{{name=@{character_name}}} {{characterid=@{character_id}}} {{title=@{name}}} {{leftbanner=^{level} [[[[@{level}]]d1cs>2cf>2]]}} {{fullattack=[[@{full_attack_query}*(@{full_attack_number})]]}} {{r1name=@{name}}} {{r1=[[1d20+@{base_attack_bonus}[BAB]+@{ability}[ABILITY]+@{proficiency_value}[PROF]+[[@{full_attack_query}*(@{full_attack_penalty})]][FULL ATTACK]@{misc}@{bonus}]]}} {{damage1type=@{type}}} {{damage1=[[@{damage_dice}+[[0(@{damage_ability}-@{damage_ability_base})]][ABILITY]+@{damage_proficiency_value}[SPEC]@{damage_misc}]]}} {{crit1damage=[[@{damage_dice}+[[0(@{damage_ability}-@{damage_ability_base})]][ABILITY]+@{damage_proficiency_value}[SPEC]@{damage_misc}]]}} {{crit1effect=@{crit}}} {{r2name=@{name}}} {{r2=[[1d20+@{base_attack_bonus}[BAB]+@{ability}[ABILITY]+@{proficiency_value}[PROF]+[[@{full_attack_penalty}]][FULL ATTACK]@{misc}@{bonus}]]}} {{damage2type=@{type}}} {{damage2=[[@{damage_dice}+[[0(@{damage_ability}-@{damage_ability_base})]][ABILITY]+@{damage_proficiency_value}[SPEC]@{damage_misc}]]}} {{crit2damage=[[@{damage_dice}+[[0(@{damage_ability}-@{damage_ability_base})]][ABILITY]+@{damage_proficiency_value}[SPEC]@{damage_misc}]]}} {{crit2effect=@{crit}}} {{r3name=@{name}}} {{r3=[[1d20+@{base_attack_bonus}[BAB]+@{ability}[ABILITY]+@{proficiency_value}[PROF]+@{full_attack_penalty}[FULL ATTACK]@{misc}@{bonus}]]}} {{damage3type=@{type}}} {{damage3=[[@{damage_dice}+[[0(@{damage_ability}-@{damage_ability_base})]][ABILITY]+@{damage_proficiency_value}[SPEC]@{damage_misc}]]}} {{crit3damage=[[@{damage_dice}+[[0(@{damage_ability}-@{damage_ability_base})]][ABILITY]+@{damage_proficiency_value}[SPEC]@{damage_misc}]]}} {{crit3effect=@{crit}}} {{r4name=@{name}}} {{r4=[[1d20+@{base_attack_bonus}[BAB]+@{ability}[ABILITY]+@{proficiency_value}[PROF]+@{full_attack_penalty}[FULL ATTACK]@{misc}@{bonus}]]}} {{damage4type=@{type}}} {{damage4=[[@{damage_dice}+[[0(@{damage_ability}-@{damage_ability_base})]][ABILITY]+@{damage_proficiency_value}[SPEC]@{damage_misc}]]}} {{crit4damage=[[@{damage_dice}+[[0(@{damage_ability}-@{damage_ability_base})]][ABILITY]+@{damage_proficiency_value}[SPEC]@{damage_misc}]]}} {{crit4effect=@{crit}}} {{r5name=@{name}}} {{r5=[[1d20+@{base_attack_bonus}[BAB]+@{ability}[ABILITY]+@{proficiency_value}[PROF]+@{full_attack_penalty}[FULL ATTACK]@{misc}@{bonus}]]}} {{damage5type=@{type}}} {{damage5=[[@{damage_dice}+[[0(@{damage_ability}-@{damage_ability_base})]][ABILITY]+@{damage_proficiency_value}[SPEC]@{damage_misc}]]}} {{crit5damage=[[@{damage_dice}+[[0(@{damage_ability}-@{damage_ability_base})]][ABILITY]+@{damage_proficiency_value}[SPEC]@{damage_misc}]]}} {{crit5effect=@{crit}}} {{range=@{range}}} {{ammo_type=@{ammo_type}}} {{curr_ammo=@{ammo}}} {{rightbanner=@{special}}} {{notes=@{description}}} @{attacher}'></button>
<button class='summary' type='roll' title='%{npc_multiattack}' name='roll_npc_multiattack' value='@{whisper_state}&{template:sf_attack}{{name=@{character_name}}} {{characterid=@{character_id}}} {{title=^{multiattack}}} @{multiattack_macro}'></button>
<label class='expand-button'><input hidden='true' class='expand-description' type='checkbox' name='attr_expand_description' value='1'><span class='collapsed pictos'>`</span><span class='expanded pictos'>J</span></label>
</div>
<input class='expand-description' type='hidden' name='attr_expand_description'>
@@ -4792,7 +4792,7 @@ This pattern can be found at https://regexr.com/3mi9v
<div class='filter-container ability'>
<!--Hidden Ability Attributes -->
<input type='text' hidden='true' title='@{attack_misc}' name='attr_attack_misc' value=''>
<input type='text' hidden='true' title='@{attack_damage_misc}' name='attr_attack_damage_misc' value=''>
<input type='text' hidden='true' title='@{damage_misc}' name='attr_damage_misc' value=''>
<input type='text' hidden='true' title='@{effect_misc}' name='attr_effect_misc' value=''>
<input type='hidden' name='attr_dc' value='10'>
<!--Shown Ability Attributes -->
@@ -4854,7 +4854,7 @@ This pattern can be found at https://regexr.com/3mi9v
<span class='label' data-i18n='atk-u'>ATTACK ROLL</span>
<input class='bab-input input-field' type='number' title='@{base_attack_bonus_base}' name='attr_base_attack_bonus_base' value='0'>
<input type='hidden' title='@{base_attack_bonus_base}' name='attr_base_attack_bonus' value='0'>
<input class='atk-misc misc tiny-input input-field' type='text' title='@{bonus}' name='attr_bonus' placeholder='+@{attr}/2 + ?{Query}' value=''>
<input class='atk-misc misc tiny-input input-field' type='text' title='@{bonus}' name='attr_attack_bonus' placeholder='+@{attr}/2 + ?{Query}' value=''>
<input hidden='true' type='text' title='@{ability}' name='attr_ability' value='0'>
<span class='label' data-i18n='attack-affected-by-buffs-to'>ATTACK ROLL AFFECTED BY BUFFS TO</span>
<select class='label atk-ability abi input-field' title='@{attack_ability}' name='attr_attack_ability'>
@@ -5739,7 +5739,7 @@ This pattern can be found at https://regexr.com/3mi9v
<div class='filter-container ability'>
<!--Hidden Ability Attributes -->
<input type='text' hidden='true' title='@{attack_misc}' name='attr_attack_misc' value=''>
<input type='text' hidden='true' title='@{attack_damage_misc}' name='attr_attack_damage_misc' value=''>
<input type='text' hidden='true' title='@{damage_misc}' name='attr_damage_misc' value=''>
<input type='text' hidden='true' title='@{effect_misc}' name='attr_effect_misc' value=''>
<input type='hidden' name='attr_dc' value='10'>
<!--Shown Ability Attributes -->
@@ -5797,36 +5797,43 @@ This pattern can be found at https://regexr.com/3mi9v
<label class='expandable'><input class='field-tab atk-tab' type='checkbox' title='@{attack_checkbox}' name='attr_attack_checkbox' value='1' hidden='true'><span class='field label' data-i18n='atk'>ATTACK ROLL</span></label>
<input class='field-tab' type='checkbox' title='@{attack_checkbox}' name='attr_attack_checkbox' value='1' hidden='true'>
<div class='field-container group expandable'>
<select class='label atk-ability abi' title='@{attack_ability}' name='attr_attack_ability'>
<option value='0' selected data-i18n='n/a'>N/A</option>
<option value='@{strength_mod}' data-i18n='str'>STR</option>
<option value='@{dexterity_mod}' data-i18n='dex'>DEX</option>
<option value='@{constitution_mod}' data-i18n='con'>CON</option>
<option value='@{intelligence_mod}' data-i18n='int'>INT</option>
<option value='@{wisdom_mod}' data-i18n='wis'>WIS</option>
<option value='@{charisma_mod}' data-i18n='cha'>CHA</option>
</select>
<input hidden='true' title='@{attack_ability}' name='attr_attack_ability' value='0'>
<span class='arith'>+</span>
<input class='bab-input' title='@{base_attack_bonus}' name='attr_base_attack_bonus' readonly='true' value='0'>
<input class='tiny-input input-field' type='text' title='@{attack_bonus}' name='attr_attack_bonus' placeholder='+@{attr}/2 + ?{Query}'>
<div class='group'>
<span class='label' data-i18n='atk-u'>ATTACK ROLL</span>
<input class='bab-input input-field' type='number' title='@{base_attack_bonus_base}' name='attr_base_attack_bonus_base' value='0'>
<input type='hidden' title='@{base_attack_bonus_base}' name='attr_base_attack_bonus' value='0'>
<input class='atk-misc misc tiny-input input-field' type='text' title='@{bonus}' name='attr_attack_bonus' placeholder='+@{attr}/2 + ?{Query}' value=''>
<input hidden='true' type='text' title='@{ability}' name='attr_ability' value='0'>
<span class='label' data-i18n='attack-affected-by-buffs-to'>ATTACK ROLL AFFECTED BY BUFFS TO</span>
<select class='label atk-ability abi input-field' title='@{attack_ability}' name='attr_attack_ability'>
<option value='0' selected data-i18n='n/a'>N/A</option>
<option value='@{strength_mod}' data-i18n='str'>STR</option>
<option value='@{dexterity_mod}' data-i18n='dex'>DEX</option>
<option value='@{constitution_mod}' data-i18n='con'>CON</option>
<option value='@{intelligence_mod}' data-i18n='int'>INT</option>
<option value='@{wisdom_mod}' data-i18n='wis'>WIS</option>
<option value='@{charisma_mod}' data-i18n='cha'>CHA</option>
</select>
</div>
</div>
<input class='field-tab' type='checkbox' title='@{damage_checkbox}' name='attr_damage_checkbox' value='1' hidden='true'>
<label class='expandable'><input class='field-tab dmg-tab' type='checkbox' title='@{damage_checkbox}' name='attr_damage_checkbox' value='1' hidden='true'><span class='field label' data-i18n='dmg'>DAMAGE ROLL</span></label>
<input class='field-tab' type='checkbox' title='@{damage_checkbox}' name='attr_damage_checkbox' value='1' hidden='true'>
<div class='field-container group expandable'>
<input hidden='true' title='@{damage_misc}' name='attr_damage_misc' value=''>
<input class='tiny-input input-field' type='text' name=attr_damage_dice placeholder='1d8'><span>+</span>
<select class='label atk-ability abi' title='@{damage_ability}' name='attr_damage_ability'>
<option value='0' selected data-i18n='n/a'>N/A</option>
<option value='@{strength_mod}' data-i18n='str'>STR</option>
<option value='@{dexterity_mod}' data-i18n='dex'>DEX</option>
<option value='@{constitution_mod}' data-i18n='con'>CON</option>
<option value='@{intelligence_mod}' data-i18n='int'>INT</option>
<option value='@{wisdom_mod}' data-i18n='wis'>WIS</option>
<option value='@{charisma_mod}' data-i18n='cha'>CHA</option>
</select>
<input type='text' hidden='true' title='@{damage_ability}' name='attr_damage_ability' value='0'>
<div class='group'>
<span class='label' data-i18n='dmg'>DAMAGE ROLL</span>
<input class='dmg-dice small-input input-field' type='text' name=attr_damage_dice placeholder='1d8' value=''>
<input hidden='true' type='text' title='@{damage_ability}' name='attr_damage_ability' value='0'>
<span class='label' data-i18n='damage-affected-by-buffs-to'>DAMAGE AFFECTED BY BUFFS TO</span>
<select class='label atk-ability abi input-field' title='@{damage_ability}' name='attr_damage_ability'>
<option value='0' selected data-i18n='n/a'>N/A</option>
<option value='[[@{strength_mod}-@{strength_base}]]' data-i18n='str'>STR</option>
<option value='[[@{dexterity_mod}-@{dexterity_base]]' data-i18n='dex'>DEX</option>
<option value='[[@{constitution_mod}-@{constitution_base]]' data-i18n='con'>CON</option>
<option value='[[@{intelligence_mod}-@{intelligence_base}]]' data-i18n='int'>INT</option>
<option value='[[@{wisdom_mod}-@{wisdom_base}]]' data-i18n='wis'>WIS</option>
<option value='[[@{charisma_mod}-@{charisma_base}]]' data-i18n='cha'>CHA</option>
</select>
</div>
<span class='label' data-i18n='damage-type'>DAMAGE TYPE</span>
<input class='tiny-input input-field' type='text' title='@{attack_type}' name='attr_attack_type' placeholder='Fire'>
<span class='label' data-i18n='crit-effect'>CRITICAL EFFECT</span>
@@ -16562,8 +16569,27 @@ Charmancer overall slide template
setObj[`repeating_ability_${rowID}_type`]=(obj.type||'').toUpperCase();
setObj[`repeating_ability_${rowID}_save_type`]=(obj['save type']||'save').toLowerCase().replace(/(will|fort|ref)(?:lex|itude)/g,'$1-save');
setObj[`repeating_ability_${rowID}_duration`]=obj.duration||'';
if(!obj.frequency){
obj.frequency='at-will';
}else{
obj.frequency = obj.frequency.toLowerCase().replace(/\s+/g,"-");
if(/day|hour|\//i.test(obj.frequency)){
if(/day/i.test(obj.frequency)){
obj.frequency = 'daily-limit';
}else if(/hour/i.test(obj.frequency)){
obj.frequency = 'hourly-limit';
}else{
obj.frequency = 'other-limit';
}
}else if(/constant|at\-will/.test(obj.frequency)){
obj.frequency='at-will';
}
}
setObj[`repeating_ability_${rowID}_frequency`]=(obj.frequency||'').toLowerCase();
setObj[`repeating_ability_${rowID}_description`]=obj['description']||'';
setObj[`repeating_ability_${rowID}_usage`]=obj['usage']||'';
setObj[`repeating_ability_${rowID}_uses`]=(obj['uses']||'').replace(/[^\d]/g,"")*1||1;
setObj[`repeating_ability_${rowID}_uses_max`]=setObj[`repeating_ability_${rowID}_uses`];
setObj[`repeating_ability_${rowID}_id`]=rowID;
if(obj.damage_total){
setObj[`repeating_ability_${rowID}_damage_checkbox`]=1;
@@ -16593,8 +16619,27 @@ Charmancer overall slide template
setObj[`repeating_ability_${rowID}_type`]='SP';
setObj[`repeating_ability_${rowID}_save_type`]=(obj['save type']||'save').toLowerCase().replace(/(will|fort|ref)(?:lex|itude)/g,'$1-save');
setObj[`repeating_ability_${rowID}_duration`]=obj.duration||'';
if(!obj.frequency){
obj.frequency='at-will';
}else{
obj.frequency = obj.frequency.toLowerCase().replace(/\s+/g,"-");
if(/day|hour|\//i.test(obj.frequency)){
if(/day/i.test(obj.frequency)){
obj.frequency = 'daily-limit';
}else if(/hour/i.test(obj.frequency)){
obj.frequency = 'hourly-limit';
}else{
obj.frequency = 'other-limit';
}
}else if(/constant|at\-will/.test(obj.frequency)){
obj.frequency='at-will';
}
}
setObj[`repeating_ability_${rowID}_frequency`]=(obj.frequency||'').toLowerCase();
setObj[`repeating_ability_${rowID}_description`]=obj['description']||'';
setObj[`repeating_ability_${rowID}_usage`]=obj['usage']||'';
setObj[`repeating_ability_${rowID}_uses`]=(obj['uses']||'').replace(/[^\d]/g,"")*1||1;
setObj[`repeating_ability_${rowID}_uses_max`]=setObj[`repeating_ability_${rowID}_uses`];
setObj[`repeating_ability_${rowID}_id`]=rowID;
if(obj.damage_total){
setObj[`repeating_ability_${rowID}_damage_checkbox`]=1;
@@ -16608,7 +16653,8 @@ Charmancer overall slide template
}
});
}
TAS.log(JSON.stringify(setObj));
TAS.log(`setObj`);
TAS.log(setObj);
Object.assign(attributes,setObj);
buildMenus(attributes,setObj);
setAttrs(setObj,{silent:true});