Implemented basic inventory
This commit is contained in:
@@ -4,4 +4,4 @@ Container = function(name, owner){
|
|||||||
this.name = name;
|
this.name = name;
|
||||||
this.owner = owner;
|
this.owner = owner;
|
||||||
this.isCarried = true;
|
this.isCarried = true;
|
||||||
}
|
};
|
||||||
@@ -5,7 +5,51 @@ Item = function(name, container){
|
|||||||
this.container = container;
|
this.container = container;
|
||||||
this.quantity = 1;
|
this.quantity = 1;
|
||||||
this.weight = 0.0;
|
this.weight = 0.0;
|
||||||
this.value = 0;//value in gold pieces
|
//value in gold pieces
|
||||||
|
this.value = 0;
|
||||||
this.description = "";
|
this.description = "";
|
||||||
|
//is this item a coin, letter of credit, ect.
|
||||||
|
this.tradeGood = false;
|
||||||
|
this.stakcable = false;
|
||||||
this.effects = [];
|
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>
|
||||||
<div class="flexContainer">
|
<div class="flexContainer">
|
||||||
<div class="flexItem">
|
<div class="flexItem">
|
||||||
<div>
|
|
||||||
Proficiency Bonus {{proficiencyBonus}}
|
|
||||||
</div>
|
|
||||||
<div id="savesAndSkills" class="floatBox">
|
<div id="savesAndSkills" class="floatBox">
|
||||||
{{> skills}}
|
{{> skills}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flexItem floatBox">
|
||||||
|
<h2>Inventory</h2>
|
||||||
|
{{> inventoryTables}}
|
||||||
|
</div>
|
||||||
<div class="flexItem floatBox">
|
<div class="flexItem floatBox">
|
||||||
<h2>Description</h2>
|
<h2>Description</h2>
|
||||||
{{> textField character=this field="description"}}
|
{{> 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