68 lines
1.7 KiB
JavaScript
68 lines
1.7 KiB
JavaScript
var getFractionCarried = function(char) {
|
|
//find out the weight
|
|
var weight = 0;
|
|
Containers.find(
|
|
{charId: char._id, isCarried: true}
|
|
).forEach(function(container){
|
|
weight += container.totalWeight();
|
|
});
|
|
Items.find(
|
|
{charId: char._id, "parent.id": char._id},
|
|
{fields: {weight : 1, quantity: 1}}
|
|
).forEach(function(item){
|
|
weight += item.totalWeight();
|
|
});
|
|
//get strength
|
|
var strength = Characters.calculate.attributeValue(char._id, "strength");
|
|
var carryMultiplier = Characters.calculate
|
|
.attributeValue(char._id, "carryMultiplier");
|
|
var capacity = strength * 15 * carryMultiplier;
|
|
return weight / capacity;
|
|
};
|
|
|
|
Template.carryCapacityBar.onCreated(function() {
|
|
var self = this;
|
|
self.carriedFraction = new ReactiveVar(0);
|
|
self.autorun(function() {
|
|
self.carriedFraction.set(getFractionCarried(Template.currentData()));
|
|
});
|
|
});
|
|
|
|
Template.carryCapacityBar.helpers({
|
|
carriedPercent: function() {
|
|
var percent = 100 * Template.instance().carriedFraction.get();
|
|
return percent > 100 ? 100 : percent;
|
|
},
|
|
overCarriedPercent: function() {
|
|
var percent = 100 * Template.instance().carriedFraction.get();
|
|
var overPercent = percent - 100;
|
|
if (overPercent < 0) return 0;
|
|
if (overPercent > 100) return 100;
|
|
return overPercent;
|
|
},
|
|
carriedColor: function() {
|
|
var frac = Template.instance().carriedFraction.get();
|
|
if (frac < 1 / 3){
|
|
return "#2196F3";
|
|
} else if (frac < 2 / 3){
|
|
return "#CDDC39";
|
|
} else if (frac < 1) {
|
|
return "#FFC107";
|
|
} else {
|
|
return "#F44336";
|
|
}
|
|
},
|
|
overCarriedColor: function() {
|
|
var frac = Template.instance().carriedFraction.get();
|
|
if (frac < 1 / 3){
|
|
return "#2196F3";
|
|
} else if (frac < 2 / 3){
|
|
return "#CDDC39";
|
|
} else if (frac < 1) {
|
|
return "#FFC107";
|
|
} else {
|
|
return "#F44336";
|
|
}
|
|
},
|
|
});
|