Calling function code snippet:
Code: Select all
<!-- Where criticalHit1 can be 0, 1 or 20 -->
<!-- Where DamageDice1 is the first damage die in the first attack(with dmg modifier) -->
<!-- Where CriticalType1 is the critical multiplier of the attack -->
[h, if(criticalHit1 == 1 || criticalHit1 == 20), CODE:
{
[h: critPass = listGet(DamageDice1, 0)]
[h: critPass = listAppend(critPass, listGet(CriticalType1, 1)]
[h: critPassJ = json.fromList(critPass)]
[h, MACRO("criticalMulti@Lib:Lib") : critPassJ]
[h: critDamage1 = macro.return + damage1a]
[h: toHitRoll1con = 1d20]
[h: toHit1con = toHitRoll1con + DefaultAttackModifier1 + TempAttackModifier]
};{}]
Called function code snippet:
Code: Select all
[h: attackPile1 = macro.args]
[h: attackPile = json.toList(attackPile1)]
[h: totalDamage = 0]
[h: critMulti = listGet(attackPile, 1)]
[h: damageDie = listGet(attackPile, 0)]
[h, switch(critMulti), code:
case "2": {
[h: totalDamage = eval(damageDie)]
};
case "3": {
[h: totalDamage = eval(damageDie) + eval(damageDie)]
};
case "4": {
[h: totalDamage = eval(damageDie) + eval(damageDie) + eval(damageDie)]
};
case "5": {
[h: totalDamage = eval(damageDie) + eval(damageDie) + eval(damageDie) + eval(damageDie)]
};
default: {
}]
[macro.return=totalDamage]