42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
//Features are features that can be selected but not edited
|
|
//they are the things that come in the player's handbook and
|
|
//facilitate the quick building of characters
|
|
//They are the primary means of collecting cease and desist letters :(
|
|
//
|
|
//Should only be edited by admins
|
|
//
|
|
//TODO add a Meteor Method that lets users add a feature to their character
|
|
//and pushes the effects and actions accordingly
|
|
//
|
|
//TODO add a Method that updates every character with a given feature if that feature should change
|
|
|
|
Features = new Meteor.Collection("features");
|
|
|
|
Schemas.Feature = new SimpleSchema({
|
|
_id: {
|
|
type: String,
|
|
regEx: SimpleSchema.RegEx.Id,
|
|
autoValue: function(){
|
|
if(!this.isSet) return Random.id();
|
|
}
|
|
},
|
|
name: {type: String},
|
|
description:{type: String, optional: true},
|
|
source: {type: String, optional: true},
|
|
effects: {type: [Schemas.Effect], defaultValue: []},
|
|
actions: {type: [Schemas.Action], defaultValue: []},
|
|
attacks: {type: [Schemas.Attack], defaultValue: []},
|
|
spells: {type: [Schemas.Spell] , defaultValue: []},
|
|
});
|
|
|
|
Features.attachSchema(Schemas.Feature);
|
|
|
|
//observe standard features for changes and update characters using them
|
|
Features.find().observe({
|
|
changed: function(newFeature, oldFeature){
|
|
//TODO
|
|
},
|
|
removed: function(oldFeature){
|
|
//TODO
|
|
}
|
|
}); |