import { packageId } from '../constants'; import type { TickwerkCombatant } from '../data/documents/combatant'; export const registerDS4SpecificFunctionality = () => { if (CONFIG.tickwerk === undefined) CONFIG.tickwerk = {}; foundry.utils.mergeObject(CONFIG.tickwerk, { getTieBreaker, getInitiativeFormula }); }; const getTieBreaker = async (combatant: TickwerkCombatant, combatants: TickwerkCombatant[]): Promise => { if (combatants.length === 0) return 0; const tieBreakers = combatants.map((combatant) => { return ( (combatant._newTieBreaker !== undefined ? combatant._newTieBreaker : combatant.getFlag(packageId, 'tieBreaker')) ?? 0 ); }); return Math.max(...tieBreakers) + 1; }; const getInitiativeFormula = (combatant: TickwerkCombatant) => { const started = combatant.combat?.started ?? false; if (!started) return '-@combatValues.initiative.total'; const tickValue = combatant.combat?.round ?? 0; return `max(${tickValue} + 10 - @combatValues.initiative.total, ${tickValue})`; };