diff --git a/app/imports/api/properties/DamageMultipliers.js b/app/imports/api/properties/DamageMultipliers.js index 3e5fdce3..5ea420b7 100644 --- a/app/imports/api/properties/DamageMultipliers.js +++ b/app/imports/api/properties/DamageMultipliers.js @@ -1,5 +1,6 @@ import SimpleSchema from 'simpl-schema'; import DAMAGE_TYPES from '/imports/constants/DAMAGE_TYPES.js'; +// TODO consider damage types as an array that applies to multiple types at once /* * DamageMultipliers are multipliers that affect how much damage is taken from @@ -10,11 +11,14 @@ let DamageMultiplierSchema = new SimpleSchema({ type: String, optional: true, }, + damageTypes: { + type: Array, + defaultValue: [], + }, // The technical, lowercase, single-word name used in formulae - damageType: { + 'damageTypes.$': { type: String, allowedValues: DAMAGE_TYPES, - defaultValue: 'bludgeoning', }, // The value of the damage multiplier value: { @@ -22,6 +26,22 @@ let DamageMultiplierSchema = new SimpleSchema({ defaultValue: 0.5, allowedValues: [0, 0.5, 2], }, + // Tags which bypass this multiplier (OR) + excludeTags: { + type: Array, + defaultValue: [], + }, + 'excludeTags.$': { + type: String, + }, + // Tags which must be present to be affected by this multiplier (AND) + targetTags: { + type: Array, + defaultValue: [], + }, + 'targetTags.$': { + type: String, + }, }); export { DamageMultiplierSchema }; diff --git a/app/imports/constants/DAMAGE_TYPES.js b/app/imports/constants/DAMAGE_TYPES.js index 9cd25043..ba0f6249 100644 --- a/app/imports/constants/DAMAGE_TYPES.js +++ b/app/imports/constants/DAMAGE_TYPES.js @@ -2,9 +2,6 @@ const DAMAGE_TYPES = Object.freeze([ "bludgeoning", "piercing", "slashing", - "magicalBludgeoning", - "magicalPiercing", - "magicalSlashing", "acid", "cold", "fire",