Added attribute damage and self damage results to actions and log.
This commit is contained in:
@@ -33,15 +33,15 @@ function combineAttribute(stat, aggregator, memo){
|
||||
stat.value = getAggregatorResult(stat, aggregator);
|
||||
stat.baseValue = aggregator.statBaseValue;
|
||||
stat.baseValueErrors = aggregator.baseValueErrors;
|
||||
if (stat.attributeType === 'ability') {
|
||||
stat.modifier = Math.floor((stat.value - 10) / 2);
|
||||
}
|
||||
if (stat.attributeType === 'spellSlot'){
|
||||
let {result, context} = evaluateCalculation(stat.spellSlotLevelCalculation, memo);
|
||||
stat.spellSlotLevelValue = result.value;
|
||||
stat.spellSlotLevelErrors = context.errors;
|
||||
}
|
||||
stat.currentValue = stat.value - (stat.damage || 0);
|
||||
if (stat.attributeType === 'ability') {
|
||||
stat.modifier = Math.floor((stat.currentValue - 10) / 2);
|
||||
}
|
||||
stat.hide = aggregator.hasNoEffects &&
|
||||
stat.baseValue === undefined ||
|
||||
undefined
|
||||
|
||||
@@ -67,43 +67,28 @@ function computeAction(prop, memo){
|
||||
});
|
||||
}
|
||||
|
||||
function computeAttack(prop, memo){
|
||||
// Roll bonus
|
||||
let {result, context} = evaluateCalculation(prop.rollBonus, memo);
|
||||
prop.rollBonusResult = result.value;
|
||||
function computePropertyField(prop, memo, fieldName, fn){
|
||||
let {result, context} = evaluateCalculation(prop[fieldName], memo, fn);
|
||||
prop[`${fieldName}Result`] = result.value;
|
||||
if (context.errors.length){
|
||||
prop.rollBonusErrors = context.errors;
|
||||
prop[`${fieldName}Errors`] = context.errors;
|
||||
} else {
|
||||
delete prop.rollBonusErrors;
|
||||
delete prop[`${fieldName}Errors`];
|
||||
}
|
||||
}
|
||||
|
||||
function computeAttack(prop, memo){
|
||||
computePropertyField(prop, memo, 'rollBonus');
|
||||
}
|
||||
|
||||
function computeSavingThrow(prop, memo){
|
||||
let {result, context} = evaluateCalculation(prop.dc, memo);
|
||||
prop.dcResult = result.value;
|
||||
if (context.errors.length){
|
||||
prop.dcErrors = context.errors;
|
||||
} else {
|
||||
delete prop.dcErrors;
|
||||
}
|
||||
computePropertyField(prop, memo, 'dc');
|
||||
}
|
||||
|
||||
function computeSpellList(prop, memo){
|
||||
let {result, context} = evaluateCalculation(prop.maxPrepared, memo);
|
||||
prop.maxPreparedResult = result.value;
|
||||
if (context.errors.length){
|
||||
prop.maxPreparedErrors = context.errors;
|
||||
} else {
|
||||
delete prop.maxPreparedErrors;
|
||||
}
|
||||
computePropertyField(prop, memo, 'maxPrepared');
|
||||
}
|
||||
|
||||
function computeSlot(prop, memo){
|
||||
let {result, context} = evaluateCalculation(prop.slotCondition, memo);
|
||||
prop.slotConditionResult = result.value;
|
||||
if (context.errors.length){
|
||||
prop.slotConditionErrors = context.errors;
|
||||
} else {
|
||||
delete prop.slotConditionErrors;
|
||||
}
|
||||
computePropertyField(prop, memo, 'slotCondition');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user