32 lines
939 B
JavaScript
32 lines
939 B
JavaScript
//set up the collection for containers
|
|
Containers = new Meteor.Collection("containers");
|
|
|
|
|
|
Schemas.Container = new SimpleSchema({
|
|
name: { type: String },
|
|
charId: { type: String, regEx: SimpleSchema.RegEx.Id},
|
|
isCarried: { type: Boolean },
|
|
weight: {type: Number, min: 0, defaultValue: 0, decimal: true},
|
|
value: {type: Number, min: 0, defaultValue: 0, decimal: true},
|
|
description:{type: String, optional: true}
|
|
});
|
|
|
|
Containers.attachSchema(Schemas.Container);
|
|
|
|
Containers.helpers({
|
|
totalValue: function(){
|
|
var value = this.value;
|
|
Items.find({container: this._id, equipped: false}, {fields: {quantity: 1, value: 1}}).forEach(function(item){
|
|
value += item.totalValue();
|
|
});
|
|
return value;
|
|
},
|
|
totalWeight: function(){
|
|
var weight = this.weight;
|
|
Items.find({container: this._id, equipped: false}, {fields: {weight: 1, value: 1}}).forEach(function(item){
|
|
weight += item.totalWeight();
|
|
});
|
|
return weight;
|
|
}
|
|
});
|