Made proficiencies their own objects, added migration functionality
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
<template name="proficiencyEdit">
|
||||
<div layout horizontal around-justified>
|
||||
<paper-dropdown-menu class="typeDropDown" label="Stat Group" flex>
|
||||
<paper-dropdown layered class="dropdown">
|
||||
<core-menu class="menu typeMenu" selected={{type}}>
|
||||
{{#each proficiencyTypes}}
|
||||
<paper-item class="statGroupSelect" name={{type}}>{{name}}</paper-item>
|
||||
{{/each}}
|
||||
</core-menu>
|
||||
</paper-dropdown>
|
||||
</paper-dropdown-menu>
|
||||
{{> UI.dynamic template=nameInputTemplate}}
|
||||
<paper-dropdown-menu class="valueDropDown" label="Proficiency" flex>
|
||||
<paper-dropdown layered class="dropdown">
|
||||
<core-menu class="menu valueMenu" selected={{value}}>
|
||||
<paper-item name="1">Proficient</paper-item>
|
||||
<paper-item name="0.5">Half Prof. Bonus</paper-item>
|
||||
<paper-item name="2">Double Prof. Bonus</paper-item>
|
||||
</core-menu>
|
||||
</paper-dropdown>
|
||||
</paper-dropdown-menu>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template name="nameDropdown">
|
||||
<paper-dropdown-menu class="nameDropDown sideMargin" label="Proficiency" flex>
|
||||
<paper-dropdown layered class="dropdown">
|
||||
<core-menu class="menu nameMenu" selected={{name}}>
|
||||
{{#each nameDropdownItems}}
|
||||
<paper-item name={{stat}}>{{name}}</paper-item>
|
||||
{{/each}}
|
||||
</core-menu>
|
||||
</paper-dropdown>
|
||||
</paper-dropdown-menu>
|
||||
</template>
|
||||
|
||||
<template name="nameInput sideMargin">
|
||||
<paper-input class="nameInput"
|
||||
label="Name"
|
||||
floatinglabel
|
||||
value={{name}}
|
||||
flex></paper-input>
|
||||
</template>
|
||||
@@ -0,0 +1,86 @@
|
||||
var profTypes = [
|
||||
{type: "skill", name: "Skill"},
|
||||
{type: "save", name: "Saving Throw"},
|
||||
{type: "weapon", name: "Weapon"},
|
||||
{type: "armor", name: "Armor"},
|
||||
{type: "tool", name: "Tool"},
|
||||
{type: "language", name: "Language"}
|
||||
];
|
||||
|
||||
var saves = [
|
||||
{name: "Strength Save", stat: "strengthSave"},
|
||||
{name: "Dexterity Save", stat: "dexteritySave"},
|
||||
{name: "Constitution Save", stat: "constitutionSave"},
|
||||
{name: "Intelligence Save", stat: "intelligenceSave"},
|
||||
{name: "Wisdom Save", stat: "wisdomSave"},
|
||||
{name: "Charisma Save", stat: "charismaSave"},
|
||||
];
|
||||
|
||||
var skills = [
|
||||
{name: "Acrobatics", stat: "acrobatics"},
|
||||
{name: "Animal Handling", stat: "animalHandling"},
|
||||
{name: "Arcana", stat: "arcana"},
|
||||
{name: "Athletics", stat: "athletics"},
|
||||
{name: "Deception", stat: "deception"},
|
||||
{name: "History", stat: "history"},
|
||||
{name: "Insight", stat: "insight"},
|
||||
{name: "Intimidation", stat: "intimidation"},
|
||||
{name: "Investigation", stat: "investigation"},
|
||||
{name: "Medicine", stat: "medicine"},
|
||||
{name: "Nature", stat: "nature"},
|
||||
{name: "Perception", stat: "perception"},
|
||||
{name: "Performance", stat: "performance"},
|
||||
{name: "Persuasion", stat: "persuasion"},
|
||||
{name: "Religion", stat: "religion"},
|
||||
{name: "Sleight of Hand", stat: "sleightOfHand"},
|
||||
{name: "Stealth", stat: "stealth"},
|
||||
{name: "Survival", stat: "survival"},
|
||||
{name: "Initiative", stat: "initiative"},
|
||||
];
|
||||
|
||||
Template.proficiencyEdit.helpers({
|
||||
proficiencyTypes: function(){
|
||||
return profTypes;
|
||||
},
|
||||
nameInputTemplate: function(){
|
||||
if(!this.type) return null;
|
||||
if(this.type === "skill"||
|
||||
this.type === "save") return "nameDropdown";
|
||||
return "nameInput";
|
||||
}
|
||||
});
|
||||
|
||||
Template.proficiencyEdit.events({
|
||||
"core-select .typeDropDown": function(event){
|
||||
var detail = event.originalEvent.detail;
|
||||
if(!detail.isSelected) return;
|
||||
var type = detail.item.getAttribute("name");
|
||||
if (type == this.type) return;
|
||||
Proficiencies.update(this._id, {$set: {type: type}});
|
||||
},
|
||||
"core-select .valueDropDown": function(event){
|
||||
var detail = event.originalEvent.detail;
|
||||
if(!detail.isSelected) return;
|
||||
var value = +detail.item.getAttribute("name");
|
||||
if (value == this.value) return;
|
||||
Proficiencies.update(this._id, {$set: {value: value}});
|
||||
},
|
||||
"core-select .nameDropDown": function(event){
|
||||
var detail = event.originalEvent.detail;
|
||||
if(!detail.isSelected) return;
|
||||
var name = detail.item.getAttribute("name");
|
||||
if (name == this.name) return;
|
||||
Proficiencies.update(this._id, {$set: {name: name}});
|
||||
},
|
||||
"change .nameInput": function(event){
|
||||
var name = event.currentTarget.value;
|
||||
Proficiencies.update(this._id, {$set: {name: name}});
|
||||
}
|
||||
});
|
||||
|
||||
Template.nameDropdown.helpers({
|
||||
nameDropdownItems: function(){
|
||||
if (this.type === "skill") return skills;
|
||||
if (this.type === "save") return saves;
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user