95 lines
4.2 KiB
Plaintext
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 |