Implemented basic inventory
This commit is contained in:
@@ -4,4 +4,4 @@ Container = function(name, owner){
|
||||
this.name = name;
|
||||
this.owner = owner;
|
||||
this.isCarried = true;
|
||||
}
|
||||
};
|
||||
@@ -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;
|
||||
});
|
||||
}
|
||||
@@ -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"}}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<template name="containerTable">
|
||||
<div>
|
||||
<h3>{{name}}</h3>
|
||||
<table>
|
||||
{{#each items}}
|
||||
{{> itemRow}}
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</template>
|
||||
@@ -0,0 +1,5 @@
|
||||
Template.containerTable.helpers({
|
||||
items: function(){
|
||||
return Items.find({container: this._id});
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,5 @@
|
||||
<template name="inventoryTables">
|
||||
{{#each containers}}
|
||||
{{> containerTable}}
|
||||
{{/each}}
|
||||
</template>
|
||||
@@ -0,0 +1,5 @@
|
||||
Template.inventoryTables.helpers({
|
||||
containers: function(){
|
||||
return Containers.find({owner: this._id});
|
||||
}
|
||||
});
|
||||
3
rpg-docs/client/views/inventory/itemRow/itemRow.css
Normal file
3
rpg-docs/client/views/inventory/itemRow/itemRow.css
Normal file
@@ -0,0 +1,3 @@
|
||||
tr.selected{
|
||||
background-color: #4182BC;
|
||||
}
|
||||
6
rpg-docs/client/views/inventory/itemRow/itemRow.html
Normal file
6
rpg-docs/client/views/inventory/itemRow/itemRow.html
Normal 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>
|
||||
15
rpg-docs/client/views/inventory/itemRow/itemRow.js
Normal file
15
rpg-docs/client/views/inventory/itemRow/itemRow.js
Normal 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);
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user