Changed task triggers to be stored differently so that attribute check and damage triggers don't overlap

This commit is contained in:
Thaum Rystra
2024-05-21 17:41:20 +02:00
parent 8eb702cde3
commit 772e55ece5
9 changed files with 154 additions and 173 deletions

View File

@@ -280,9 +280,69 @@ const ComputedOnlyAttributeSchema = createPropertySchema({
type: Number,
optional: true,
},
// Triggers that fire when this property is damaged
'damageTriggerIds': {
type: Object,
optional: true,
removeBeforeCompute: true,
},
'damageTriggerIds.before': {
type: Array,
optional: true,
},
'damageTriggerIds.before.$': {
type: String,
regEx: SimpleSchema.RegEx.Id,
},
'damageTriggerIds.after': {
type: Array,
optional: true,
},
'damageTriggerIds.after.$': {
type: String,
regEx: SimpleSchema.RegEx.Id,
},
'damageTriggerIds.afterChildren': {
type: Array,
optional: true,
},
'damageTriggerIds.afterChildren.$': {
type: String,
regEx: SimpleSchema.RegEx.Id,
},
// Triggers that fire when this property is used to make a check
'checkTriggerIds': {
type: Object,
optional: true,
removeBeforeCompute: true,
},
'checkTriggerIds.before': {
type: Array,
optional: true,
},
'checkTriggerIds.before.$': {
type: String,
regEx: SimpleSchema.RegEx.Id,
},
'checkTriggerIds.after': {
type: Array,
optional: true,
},
'checkTriggerIds.after.$': {
type: String,
regEx: SimpleSchema.RegEx.Id,
},
'checkTriggerIds.afterChildren': {
type: Array,
optional: true,
},
'checkTriggerIds.afterChildren.$': {
type: String,
regEx: SimpleSchema.RegEx.Id,
},
});
const ComputedAttributeSchema = new SimpleSchema()
const ComputedAttributeSchema = new SimpleSchema({})
.extend(ComputedOnlyAttributeSchema)
.extend(AttributeSchema);

View File

@@ -68,16 +68,46 @@ const ItemSchema = createPropertySchema({
type: Boolean,
optional: true,
},
// Triggers that fire when this property is used as ammo
'ammoTriggerIds': {
type: Object,
optional: true,
removeBeforeCompute: true,
},
'ammoTriggerIds.before': {
type: Array,
optional: true,
},
'ammoTriggerIds.before.$': {
type: String,
regEx: SimpleSchema.RegEx.Id,
},
'ammoTriggerIds.after': {
type: Array,
optional: true,
},
'ammoTriggerIds.after.$': {
type: String,
regEx: SimpleSchema.RegEx.Id,
},
'ammoTriggerIds.afterChildren': {
type: Array,
optional: true,
},
'ammoTriggerIds.afterChildren.$': {
type: String,
regEx: SimpleSchema.RegEx.Id,
},
});
let ComputedOnlyItemSchema = createPropertySchema({
const ComputedOnlyItemSchema = createPropertySchema({
description: {
type: 'computedOnlyInlineCalculationField',
optional: true,
},
});
const ComputedItemSchema = new SimpleSchema()
const ComputedItemSchema = new SimpleSchema({})
.extend(ItemSchema)
.extend(ComputedOnlyItemSchema);