Files
roll20-character-sheets-tester/rapidfire_system/Mixins/_Sheet Mixins.pug
T

95 lines
4.2 KiB
Plaintext

//- File for system specific mixins
- const characterFields = ['character name','player name','nationality','organization affiliations'];
- const stats = ['body','mind','spirit'];
-
const statTriggers = {
body:{affects:['defence','health_max','situational_awareness']},
mind:{affects:['initiative','situational_awareness']},
spirit:{affects:['resist','health_max','situational_awareness']}
};
- const secondaries = ['defence','resist'];
- const secondaryDefaults = {defence:3,resist:0};
-
const secondaryTriggers = {
defence:{calculation:'calcDefence'},
resist:{calculation:'calcResist'}
};
- const combatGear = ['armour bonus','shield bonus','action penalty'];
-
const combatGearTriggers = {
'armour bonus':{affects:['resist']},
'shield bonus':{affects:['defence']},
'action penalty':{triggeredFuncs:['validateActionPenalty']}
};
- const remnantRatings = ['situational awareness','remnant defence'];
-
const remnantRatingTriggers = {
'situational awareness':{affects:['remnant_initiative','remnant_defence'],calculation:'calcSA'},
'remnant defence':{affects:[],calculation:'calcRemnantDefence'}
}
-
const remnantRatingBonusTriggers = {
'situational awareness':{affects:['situational_awareness']},
'remnant defence':{affects:['remnant_defence']}
}
- const remnantStats = ['armour','speed','inspiring','terrifying','structure'];
-
const remnantStatTriggers = {
speed:{affects:['remnant_defence']},
};
- const remnantCombatStats = ['assault damage','strike damage','strike range'];
-
const remnantCombatStatTriggers = {
'strike damage':{affects:['repeating_remnant-weapon_$x_damage']},
'assault damage':{affects:['repeating_remnant-weapon_$x_damage']},
'strike range':{calculation:'calcStrikeRange'}
}
- const droneStats = ['sa','def','arm','spd','struct','assault','assault dam','strike','strike dam','strikerange'];
- const abbreviations = {'situational awareness':'situation awareness abbreviation','remnant defence':'defence','strike dam':'strike damage','assault dam':'assault damage','strikerange':'strike range',sa:'situation awareness abbreviation',def:'defence',arm:'armour',spd:'speed',struct:'structure'};
- const remnantSkills = ['assault','strike','motion'];
-
const remnantSkillTriggers = {
strike:{affects:['strike_range']},
motion:{affects:['remnant_defence']}
};
- const remnantWeaponInputs = ['name','skill','bonus','damage','damage bonus','type'];
-
const remnantWeaponTriggers = {
damage:{calculation:'calcRemnantDamage'},
skill:{affects:['repeating_remnant-weapon_$x_damage']},
'damage bonus':{affects:['repeating_remnant-weapon_$x_damage']}
};
- varObjects.trackerMonitors = [];
mixin track(header,name)
.health-track
+h2({'data-i18n':header,class:'health-track__header'})
+hidden({name:`${name} max`,value:'1',class:'health-track__max-control'})
+fieldset(name)
+checkbox({name:'fill',hidden:'',class:'health-track__fill-control',value:'1'})
+checkbox({name:'damaged',class:'health-track__clear-control health-track__checkbox',value:'1',trigger:{affects:[`${name}`],triggeredFuncs:['checkHealth']}})
- addIfUnique(`repeating_${name}:clear`,'trackerMonitors');
+action({name:'clear',class:'health-track__clearer',trigger:{listenerFunc:'clearTracker'}})
+number({name:'penalty',class:'boxed health-track__number',trigger:{affects:['defence']}})
//- End Mixin
mixin hexagon(attribs={},status)
.hexagon&attributes(attributes)&attributes(attribs)
if status
+rollLess({values:`computed::${status} -2`})
span(hidden='').fumble-toggle
+rollGreater({values:`computed::${status} 4`})
span(hidden='').crit-toggle
.hexagon__hex-wrapper
.hexagon__hex-wrapper__hex-border
.hexagon__hex-wrapper__hex-border__hex-content
block
//-End Mixin
mixin userTemplateFields
+allProps({values:`description damage difficulty roll ${[1,2,3,4,5,6].map((num)=>`roll${num}`).join(' ')} header footer character_id system single-roll custom_description status`})
h4 {{key}}
span {{value}}
//- End Mixin
mixin actionQuery(obj)
- obj.class = obj.class ? `${obj.class} pseudo-select` : 'pseudo-select';
+action(obj)
block
//- End Mixin