Implemented basic inventory

This commit is contained in:
Thaum
2014-11-12 11:11:45 +00:00
parent acf05ecd78
commit d80fb19dfe
10 changed files with 99 additions and 5 deletions

View File

@@ -4,4 +4,4 @@ Container = function(name, owner){
this.name = name;
this.owner = owner;
this.isCarried = true;
}
};

View File

@@ -5,7 +5,51 @@ Item = function(name, container){
this.container = container;
this.quantity = 1;
this.weight = 0.0;
this.value = 0;//value in gold pieces
//value in gold pieces
this.value = 0;
this.description = "";
//is this item a coin, letter of credit, ect.
this.tradeGood = false;
this.stakcable = false;
this.effects = [];
}
Items.helpers({
totalValue: function(){
return this.value * this.quantity;
},
pluralName: function(){
if(this.stackable && this.plural && this.quantity > 1){
return this.plural;
} else{
return this.name;
}
}
});
if(Meteor.isClient){
Template.registerHelper("valueString", function(value){
var resultArray = [];
//sp
var gp = Math.floor(value);
if(gp > 0) resultArray.push(gp + "gp");
//sp
var sp = Math.floor(10 * (value % 1));
if(sp > 0) resultArray.push(sp + "sp");
//cp
var cp = 10 * ((value * 10) % 1);
cp = Math.round(cp * 1000) / 1000;
if(cp > 0) resultArray.push(cp + "cp");
//build string with correct spacing
var result = "";
for(var i = 0; i < resultArray.length; i++){
//add a space between values
if(i !== 0){
result += " ";
}
result += resultArray[i];
}
return result;
});
}

View File

@@ -4,13 +4,14 @@
</div>
<div class="flexContainer">
<div class="flexItem">
<div>
Proficiency Bonus {{proficiencyBonus}}
</div>
<div id="savesAndSkills" class="floatBox">
{{> skills}}
</div>
</div>
<div class="flexItem floatBox">
<h2>Inventory</h2>
{{> inventoryTables}}
</div>
<div class="flexItem floatBox">
<h2>Description</h2>
{{> textField character=this field="description"}}

View File

@@ -0,0 +1,10 @@
<template name="containerTable">
<div>
<h3>{{name}}</h3>
<table>
{{#each items}}
{{> itemRow}}
{{/each}}
</table>
</div>
</template>

View File

@@ -0,0 +1,5 @@
Template.containerTable.helpers({
items: function(){
return Items.find({container: this._id});
}
});

View File

@@ -0,0 +1,5 @@
<template name="inventoryTables">
{{#each containers}}
{{> containerTable}}
{{/each}}
</template>

View File

@@ -0,0 +1,5 @@
Template.inventoryTables.helpers({
containers: function(){
return Containers.find({owner: this._id});
}
});

View File

@@ -0,0 +1,3 @@
tr.selected{
background-color: #4182BC;
}

View File

@@ -0,0 +1,6 @@
<template name="itemRow">
<tr class={{#if isSelected}}selected{{/if}}>
<td>{{#if stackable}}{{quantity}}{{/if}}</td>
<td>{{pluralName}}</td>
</tr>
</template>

View File

@@ -0,0 +1,15 @@
Template.itemRow.helpers({
isSelected: function(){
return Session.get('selectedItemRow')=== this._id;
}
});
Template.itemRow.events({
"click": function(e){
if(Session.get('selectedItemRow')=== this._id){
Session.set('selectedItemRow', null);
} else{
Session.set('selectedItemRow', this._id);
}
}
});