From 9e200db7b9cfac6ea1d6e7857c0d2b439fec476a Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Mon, 31 Aug 2015 15:51:52 +0200 Subject: [PATCH 1/7] Made carry capacity an attribute, migrations need testing --- rpg-docs/Model/Character/Characters.js | 1 + rpg-docs/Model/Character/Effects.js | 12 ++++++ .../carryCapacityTable.html | 8 ++-- rpg-docs/server/migrations/migrations.js | 42 +++++++++++++++++++ 4 files changed, 59 insertions(+), 4 deletions(-) diff --git a/rpg-docs/Model/Character/Characters.js b/rpg-docs/Model/Character/Characters.js index 3003dc16..cb09ce3b 100644 --- a/rpg-docs/Model/Character/Characters.js +++ b/rpg-docs/Model/Character/Characters.js @@ -33,6 +33,7 @@ Schemas.Character = new SimpleSchema({ age: {type: Schemas.Attribute}, ageRate: {type: Schemas.Attribute}, armor: {type: Schemas.Attribute}, + carryMultiplier: {type: Schemas.Attribute}, //resources level1SpellSlots: {type: Schemas.Attribute}, diff --git a/rpg-docs/Model/Character/Effects.js b/rpg-docs/Model/Character/Effects.js index 2c8b5367..6a6edeff 100644 --- a/rpg-docs/Model/Character/Effects.js +++ b/rpg-docs/Model/Character/Effects.js @@ -107,6 +107,18 @@ if (Meteor.isServer) Characters.after.insert(function(userId, char) { group: "Inate", }, }); + Effects.insert({ + charId: char._id, + name: "Natural Carrying Capacity", + stat: "carryMultiplier", + operation: "base", + value: "1", + parent: { + id: char._id, + collection: "Characters", + group: "Inate", + }, + }); }); Effects.attachBehaviour("softRemovable"); diff --git a/rpg-docs/client/views/character/stats/carryCapacityTable/carryCapacityTable.html b/rpg-docs/client/views/character/stats/carryCapacityTable/carryCapacityTable.html index 5e6313ca..ff2b1db0 100644 --- a/rpg-docs/client/views/character/stats/carryCapacityTable/carryCapacityTable.html +++ b/rpg-docs/client/views/character/stats/carryCapacityTable/carryCapacityTable.html @@ -2,19 +2,19 @@ - + - + - + @@ -25,4 +25,4 @@
Encumbered>{{evaluate charId "strength * 5"}}lbs>{{evaluate charId "strength * 5 * carryMultiplier"}}lbs Variant rule, encumbered characters move 10 feet slower
Heavily encumbered>{{evaluate charId "strength * 10"}}lbs>{{evaluate charId "strength * 10 * carryMultiplier"}}lbs Variant rule, heavily encumbered characters move 20 feet slower and have disadvantage on ability checks, attack rolls, and saving thows that use Strength, Dexterity, or Constitution
Over Encumbered>{{evaluate charId "strength * 15"}}lbs>{{evaluate charId "strength * 15 * carryMultiplier"}}lbs Characters that can only just lift, push or drag their current load can only move at 5 feet.
- \ No newline at end of file + diff --git a/rpg-docs/server/migrations/migrations.js b/rpg-docs/server/migrations/migrations.js index 9310c8e2..f8794092 100644 --- a/rpg-docs/server/migrations/migrations.js +++ b/rpg-docs/server/migrations/migrations.js @@ -108,3 +108,45 @@ Migrations.add({ ); }, }); + +Migrations.add({ + version: 4, + name: "Adds an effect to give characters a base carry capacity", + up: function() { + //update characters + + Characters.find().forEach(function(char){ + Characters.update(char._id, { + $set: { + carryMultiplier: { + adjustment: 0, + reset: "longRest", + } + } + }); + var effect = Effects.findOne({ + charId: char._id, name: "Natural Carrying Capacity" + }); + if (effect) return; + Effects.insert({ + charId: char._id, + name: "Natural Carrying Capacity", + stat: "carryMultiplier", + operation: "base", + value: "1", + parent: { + id: char._id, + collection: "Characters", + group: "Inate", + }, + }); + effect = Effects.findOne({ + charId: char._id, name: "Natural Carrying Capacity" + }); + if (!effect) throw "Carry capacity effect should be set by now." + }); + }, + down: function(){ + return; + }, +}); From c8af0ff0a9810496cfc09138bd7f9a66ab5ec0a6 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Thu, 3 Sep 2015 13:52:06 +0200 Subject: [PATCH 2/7] Fixed carry capacity table --- .../character/stats/carryCapacityTable/carryCapacityTable.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpg-docs/client/views/character/stats/carryCapacityTable/carryCapacityTable.html b/rpg-docs/client/views/character/stats/carryCapacityTable/carryCapacityTable.html index ff2b1db0..e6f67f02 100644 --- a/rpg-docs/client/views/character/stats/carryCapacityTable/carryCapacityTable.html +++ b/rpg-docs/client/views/character/stats/carryCapacityTable/carryCapacityTable.html @@ -21,7 +21,7 @@ Push, drag or lift maximum - {{evaluate charId "strength * 30"}}lbs + {{evaluate charId "strength * 30 * carryMultiplier"}}lbs From a9eeeac0df07f310a465ad43a51135637caa30b0 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Thu, 3 Sep 2015 13:52:22 +0200 Subject: [PATCH 3/7] Fixed carry capacity bar --- .../character/inventory/carryCapacityBar/carryCapacityBar.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rpg-docs/client/views/character/inventory/carryCapacityBar/carryCapacityBar.js b/rpg-docs/client/views/character/inventory/carryCapacityBar/carryCapacityBar.js index c6a56997..da213f64 100644 --- a/rpg-docs/client/views/character/inventory/carryCapacityBar/carryCapacityBar.js +++ b/rpg-docs/client/views/character/inventory/carryCapacityBar/carryCapacityBar.js @@ -14,7 +14,9 @@ var getFractionCarried = function(char) { }); //get strength var strength = Characters.calculate.attributeValue(char._id, "strength"); - var capacity = strength * 15; + var carryMultiplier = Characters.calculate + .attributeValue(char._id, "carryMultiplier"); + var capacity = strength * 15 * carryMultiplier; return weight / capacity; }; From 75fff43d7de450f8975945b8536488c632284b30 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Thu, 3 Sep 2015 13:52:40 +0200 Subject: [PATCH 4/7] Gave an effect menu option for carry capacity --- rpg-docs/client/views/character/effects/effectEdit/effectEdit.js | 1 + 1 file changed, 1 insertion(+) diff --git a/rpg-docs/client/views/character/effects/effectEdit/effectEdit.js b/rpg-docs/client/views/character/effects/effectEdit/effectEdit.js index ec34b67b..bc20833b 100644 --- a/rpg-docs/client/views/character/effects/effectEdit/effectEdit.js +++ b/rpg-docs/client/views/character/effects/effectEdit/effectEdit.js @@ -42,6 +42,7 @@ var stats = [ {stat: "rageDamage", name: "Rage Damage", group: "Stats"}, {stat: "expertiseDice", name: "Expertise Dice", group: "Stats"}, {stat: "superiorityDice", name: "Superiority Dice", group: "Stats"}, + {stat: "carryMultiplier", name: "Carry Capacity Multiplier", group: "Stats"}, {stat: "level1SpellSlots", name: "level 1", group: "Spell Slots"}, {stat: "level2SpellSlots", name: "level 2", group: "Spell Slots"}, {stat: "level3SpellSlots", name: "level 3", group: "Spell Slots"}, From c62784894b9cb08e59fc7a12f5aac97a1533c50e Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Thu, 3 Sep 2015 13:53:00 +0200 Subject: [PATCH 5/7] Made sure encumbered conditions respect carry capacity --- rpg-docs/lib/methods/conditions.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/rpg-docs/lib/methods/conditions.js b/rpg-docs/lib/methods/conditions.js index f0ecddb0..4e42bdcc 100644 --- a/rpg-docs/lib/methods/conditions.js +++ b/rpg-docs/lib/methods/conditions.js @@ -101,6 +101,8 @@ trackEncumbranceConditions = function(charId, templateInstance) { {fields: {"settings": 1}} ); var strength = Characters.calculate.attributeValue(charId, "strength"); + var carryMultiplier = Characters.calculate + .attributeValue(charId, "carryMultiplier"); var give = function(condition) { Meteor.call("giveCondition", charId, condition); }; @@ -108,11 +110,11 @@ trackEncumbranceConditions = function(charId, templateInstance) { Meteor.call("removeCondition", charId, condition); }; //variant encumbrance rules - if (weight > strength * 10 && + if (weight > strength * 10 * carryMultiplier && character.settings.useVariantEncumbrance) { give("encumbered2"); remove("encumbered"); - } else if (weight > strength * 5 && + } else if (weight > strength * 5 * carryMultiplier && character.settings.useVariantEncumbrance){ give("encumbered"); remove("encumbered2"); @@ -121,11 +123,11 @@ trackEncumbranceConditions = function(charId, templateInstance) { remove("encumbered2"); } //normal encumbrance rules - if (weight > strength * 30 && + if (weight > strength * 30 * carryMultiplier && character.settings.useStandardEncumbrance){ give("encumbered4"); remove("encumbered3"); - } else if (weight > strength * 15 && + } else if (weight > strength * 15 * carryMultiplier && character.settings.useStandardEncumbrance) { give("encumbered3"); remove("encumbered4"); From 337f0bfa8a3257c74400541b666535d25b1f0f0e Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Thu, 3 Sep 2015 14:09:17 +0200 Subject: [PATCH 6/7] Made sure migration touches every character --- rpg-docs/server/migrations/migrations.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpg-docs/server/migrations/migrations.js b/rpg-docs/server/migrations/migrations.js index f8794092..9eee2347 100644 --- a/rpg-docs/server/migrations/migrations.js +++ b/rpg-docs/server/migrations/migrations.js @@ -115,7 +115,7 @@ Migrations.add({ up: function() { //update characters - Characters.find().forEach(function(char){ + Characters.find({}).forEach(function(char){ Characters.update(char._id, { $set: { carryMultiplier: { From 5d6f934d883e63e881de24db52ccb8693229fdc5 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Thu, 3 Sep 2015 14:09:23 +0200 Subject: [PATCH 7/7] Bumped version --- rpg-docs/private/changeLogs/changeLogs.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rpg-docs/private/changeLogs/changeLogs.js b/rpg-docs/private/changeLogs/changeLogs.js index 91b738cd..f6ab9a34 100644 --- a/rpg-docs/private/changeLogs/changeLogs.js +++ b/rpg-docs/private/changeLogs/changeLogs.js @@ -252,3 +252,11 @@ ChangeLogs.insert({ "Fixed proficiencies not being disabled with their features", ], }); + +ChangeLogs.insert({ + version: "0.7.0", + changes: [ + "Added carry capacity multiplier as a stat with a default value of 1", + "Improved loading times by vulcanizing polymer imports", + ], +});