Merge pull request #5 from ThaumRystra/bugfix-unprepared-spell-attacks
Spell child attacks now set their enabled state to match the parent spell prepared state
This commit is contained in:
@@ -69,5 +69,17 @@ Attacks.attachSchema(Schemas.Attack);
|
|||||||
Attacks.attachBehaviour("softRemovable");
|
Attacks.attachBehaviour("softRemovable");
|
||||||
makeChild(Attacks, ["name", "enabled"]); //children of lots of things
|
makeChild(Attacks, ["name", "enabled"]); //children of lots of things
|
||||||
|
|
||||||
|
Attacks.after.insert(function (userId, attack) {
|
||||||
|
//Check to see if this attack's parent is a spell, if so, mirror prepared state to enabled
|
||||||
|
if (attack.parent.collection === "Spells") {
|
||||||
|
var parentSpell = Spells.findOne(attack.parent.id);
|
||||||
|
if (parentSpell.prepared === "unprepared") {
|
||||||
|
Attacks.update(attack._id, {$set: {enabled: false}});
|
||||||
|
} else if (parentSpell.prepared === "prepared" || "always") {
|
||||||
|
Attacks.update(attack._id, {$set: {enabled: true}});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Attacks.allow(CHARACTER_SUBSCHEMA_ALLOW);
|
Attacks.allow(CHARACTER_SUBSCHEMA_ALLOW);
|
||||||
Attacks.deny(CHARACTER_SUBSCHEMA_DENY);
|
Attacks.deny(CHARACTER_SUBSCHEMA_DENY);
|
||||||
|
|||||||
@@ -64,5 +64,21 @@ Spells.attachBehaviour("softRemovable");
|
|||||||
makeChild(Spells); //children of spell lists
|
makeChild(Spells); //children of spell lists
|
||||||
makeParent(Spells, ["name", "enabled"]); //parents of attacks
|
makeParent(Spells, ["name", "enabled"]); //parents of attacks
|
||||||
|
|
||||||
|
Spells.after.update(function (userId, spell, fieldNames) {
|
||||||
|
//Update prepared state of spell and child attacks to be enabled or not
|
||||||
|
if (_.contains(fieldNames, "prepared")) {
|
||||||
|
var childAttacks = Attacks.find({"parent.id": spell._id}).fetch();
|
||||||
|
if (spell.prepared === "unprepared") {
|
||||||
|
_.each(childAttacks, function(attack){
|
||||||
|
Attacks.update(attack._id, {$set: {enabled: false}});
|
||||||
|
});
|
||||||
|
} else if (spell.prepared === "prepared" || "always") {
|
||||||
|
_.each(childAttacks, function(attack){
|
||||||
|
Attacks.update(attack._id, {$set: {enabled: true}});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
Spells.allow(CHARACTER_SUBSCHEMA_ALLOW);
|
Spells.allow(CHARACTER_SUBSCHEMA_ALLOW);
|
||||||
Spells.deny(CHARACTER_SUBSCHEMA_DENY);
|
Spells.deny(CHARACTER_SUBSCHEMA_DENY);
|
||||||
|
|||||||
Reference in New Issue
Block a user