33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
Items = new Meteor.Collection('items');
|
|
|
|
Schemas.Item = new SimpleSchema({
|
|
name: {type: String, defaultValue: "New Item"},
|
|
plural: {type: String, optional: true},
|
|
description:{type: String, defaultValue: ""},
|
|
container: {type: String, regEx: SimpleSchema.RegEx.Id},
|
|
quantity: {type: Number, min: 0, defaultValue: 1},
|
|
weight: {type: Number, min: 0, defaultValue: 0, decimal: true},
|
|
value: {type: Number, min: 0, defaultValue: 0, decimal: true},
|
|
tradeGood: {type: Boolean, defaultValue: false},
|
|
stackable: {type: Boolean, defaultValue: false},
|
|
buffs: {type: [Schemas.Buff], defaultValue: []},
|
|
equipmentSlot: {type: String, defaultValue: "", allowedValues: ["head", "body", "arms", "hands", "held", "feet"]},
|
|
});
|
|
|
|
Items.attachSchema(Schemas.Item);
|
|
|
|
Items.helpers({
|
|
totalValue: function(){
|
|
return this.value * this.quantity;
|
|
},
|
|
totalWeight: function(){
|
|
return this.weight * this.quantity;
|
|
},
|
|
pluralName: function(){
|
|
if(this.stackable && this.plural && this.quantity > 1){
|
|
return this.plural;
|
|
} else{
|
|
return this.name;
|
|
}
|
|
}
|
|
}); |