diff --git a/rpg-docs/.meteor/packages b/rpg-docs/.meteor/packages index 9ace0240..a927b8e0 100644 --- a/rpg-docs/.meteor/packages +++ b/rpg-docs/.meteor/packages @@ -17,3 +17,4 @@ aldeed:collection2 differential:vulcanize aldeed:autoform conielo:autoform-polymer-paper +msavin:mongol diff --git a/rpg-docs/.meteor/versions b/rpg-docs/.meteor/versions index 0434d325..c3915dd4 100644 --- a/rpg-docs/.meteor/versions +++ b/rpg-docs/.meteor/versions @@ -52,6 +52,7 @@ minimongo@1.0.6 mobile-status-bar@1.0.2 momentjs:moment@2.8.4 mongo@1.0.11 +msavin:mongol@0.1.1 npm-bcrypt@0.7.7 observe-sequence@1.0.4 ordered-dict@1.0.2 diff --git a/rpg-docs/Model/Character/Characters.js b/rpg-docs/Model/Character/Characters.js index d5496430..f5f0cdf4 100644 --- a/rpg-docs/Model/Character/Characters.js +++ b/rpg-docs/Model/Character/Characters.js @@ -188,8 +188,9 @@ Schemas.Character = new SimpleSchema({ owner: { type: String, regEx: SimpleSchema.RegEx.Id }, readers: { type: [String], regEx: SimpleSchema.RegEx.Id }, writers: { type: [String], regEx: SimpleSchema.RegEx.Id }, - color: {type: String, allowedValues: _.pluck(colorOptions, "key"), defaultValue: "q"} + color: {type: String, allowedValues: _.pluck(colorOptions, "key"), defaultValue: "q"}, //TODO add per-character settings + "settings.experiencesInc": {type: Number, defaultValue: 20}, }); Characters.attachSchema(Schemas.Character); @@ -431,7 +432,7 @@ Characters.helpers({ }, level: function(){ - var xp = this.attributeValue("experience"); + var xp = this.experience(); var xpTable = [0, 300, 900, 2700, 6500, 14000, 23000, 34000, 48000, 64000, 85000, 100000, 120000, 140000, 165000, 195000, 225000, 265000, 305000, 355000]; @@ -442,5 +443,13 @@ Characters.helpers({ }; if(xp > 355000) return 20; return 0; + }, + + experience: function(){ + var xp = 0; + Experiences.find({charId: this._id}, {fields: {value: 1}}).forEach(function(e){ + xp += e.value; + }) + return xp; } }); diff --git a/rpg-docs/Model/Character/Experience.js b/rpg-docs/Model/Character/Experience.js new file mode 100644 index 00000000..f67b6399 --- /dev/null +++ b/rpg-docs/Model/Character/Experience.js @@ -0,0 +1,22 @@ +Experiences = new Meteor.Collection("experience"); + +Schemas.Experience = new SimpleSchema({ + charId: {type: String, regEx: SimpleSchema.RegEx.Id}, + name: {type: String, defaultValue: "New Experience"}, + description: {type: String, optional: true}, + value: {type: Number, defaultValue: 0}, + dateAdded: { + type: Date, + autoValue: function() { + if (this.isInsert) { + return new Date; + } else if (this.isUpsert) { + return {$setOnInsert: new Date}; + } else { + this.unset(); + } + } + }, +}); + +Experiences.attachSchema(Schemas.Experience); diff --git a/rpg-docs/client/globalHelpers/mongol.js b/rpg-docs/client/globalHelpers/mongol.js new file mode 100644 index 00000000..7aa522c7 --- /dev/null +++ b/rpg-docs/client/globalHelpers/mongol.js @@ -0,0 +1,17 @@ +Session.set("Mongol", { + 'collections': [ + "Characters", + "Containers", + "Items", + "Features", + "Effects", + "Spells", + "SpellLists", + "Notes", + "Experiences" + ], + 'display': true, + 'opacity_normal': ".7", + 'opacity_expand': ".9", + 'disable_warning': 'false', +}); \ No newline at end of file diff --git a/rpg-docs/client/views/character/inventory/inventory.css b/rpg-docs/client/views/character/inventory/inventory.css index f70293d3..3b48002d 100644 --- a/rpg-docs/client/views/character/inventory/inventory.css +++ b/rpg-docs/client/views/character/inventory/inventory.css @@ -5,6 +5,8 @@ -webkit-column-gap: 8px; -moz-column-gap: 8px; column-gap: 8px; + -moz-column-fill: balance; + column-fill: balance; padding: 8px; } diff --git a/rpg-docs/client/views/character/inventory/inventory.html b/rpg-docs/client/views/character/inventory/inventory.html index 62c9e256..0d248873 100644 --- a/rpg-docs/client/views/character/inventory/inventory.html +++ b/rpg-docs/client/views/character/inventory/inventory.html @@ -36,11 +36,11 @@