42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
TemporaryHitPoints = new Mongo.Collection("temporaryHitPoints");
|
|
|
|
Schemas.TemporaryHitPoints = new SimpleSchema({
|
|
charId: {type: String, regEx: SimpleSchema.RegEx.Id, index: 1},
|
|
name: {type: String, optional: true},
|
|
maximum: {type: Number, defaultValue: 0, min: 0, max: 500},
|
|
used: {type: Number, defaultValue: 0, min: 0, max: 500},
|
|
deleteOnZero:{type: Boolean, defaultValue: false},
|
|
dateAdded: {
|
|
type: Date,
|
|
autoValue: function() {
|
|
if (this.isInsert) {
|
|
return new Date();
|
|
} else if (this.isUpsert) {
|
|
return {$setOnInsert: new Date()};
|
|
} else {
|
|
this.unset();
|
|
}
|
|
},
|
|
},
|
|
});
|
|
|
|
TemporaryHitPoints.attachSchema(Schemas.TemporaryHitPoints);
|
|
|
|
TemporaryHitPoints.helpers({
|
|
left: function(){
|
|
return this.maximum - this.used;
|
|
}
|
|
});
|
|
|
|
//remove the temporary hit points when they hit zero
|
|
TemporaryHitPoints.after.update(
|
|
function(userId, thp, fieldNames, modifier, options){
|
|
if (thp.used >= thp.maximum && thp.deleteOnZero){
|
|
TemporaryHitPoints.remove(thp._id);
|
|
}
|
|
}, {fetchPrevious: false}
|
|
);
|
|
|
|
TemporaryHitPoints.allow(CHARACTER_SUBSCHEMA_ALLOW);
|
|
TemporaryHitPoints.deny(CHARACTER_SUBSCHEMA_DENY);
|