Implemented Hero-dialog editing of features

This commit is contained in:
Thaum
2015-01-30 10:14:46 +00:00
parent 848902c358
commit 37e8831e0c
14 changed files with 242 additions and 105 deletions

View File

@@ -22,7 +22,7 @@ html /deep/ paper-input {
margin-bottom: 1px;
}
html /deep/ .featureEffect {
html /deep/ .effectEdit {
display: flex;
align-items: flex-end;
}

View File

@@ -1,20 +1,20 @@
<template name="effectEdit">
<div class="effectEdit">
<paper-dropdown-menu id="statGroupDropDown" label="Stat Group">
<paper-dropdown class="dropdown">
<paper-dropdown layered class="dropdown">
<core-menu id="statGroupMenu" class="menu" selected={{selectedStatGroup}}>
{{#each statGroups}}
<paper-item class="statGroupSelect">{{this}}</paper-item>
<paper-item class="statGroupSelect" name={{this}}>{{this}}</paper-item>
{{/each}}
</core-menu>
</paper-dropdown>
</paper-dropdown-menu>
{{#if stats}}
<paper-dropdown-menu id="statDropDown" label="Stat">
<paper-dropdown class="dropdown">
<core-menu id="statMenu" class="menu" selected={{selectedStat}}>
<paper-dropdown layered class="dropdown">
<core-menu id="statMenu" class="menu" selected={{selectedStat}} on-tap="onStatMenuTap">
{{#each stats}}
<paper-item>{{name}}</paper-item>
<paper-item name={{stat}}>{{name}}</paper-item>
{{/each}}
</core-menu>
</paper-dropdown>
@@ -22,10 +22,10 @@
{{/if}}
{{#if operations}}
<paper-dropdown-menu id="operationDropDown" label="Operation">
<paper-dropdown class="dropdown">
<paper-dropdown layered class="dropdown">
<core-menu id="operationMenu" class="menu" selected={{selectedOperation}}>
{{#each operations}}
<paper-item>{{name}}</paper-item>
<paper-item name={{operation}}>{{name}}</paper-item>
{{/each}}
</core-menu>
</paper-dropdown>
@@ -48,11 +48,11 @@
<template name="multiplierEffectValue">
<paper-dropdown-menu id="damageMultiplierDropDown" label="Damage Multiplier">
<paper-dropdown class="dropdown">
<paper-dropdown layered class="dropdown">
<core-menu id="multiplierMenu" class="menu" selected={{selectedDamageMultiplier}}>
<paper-item>Resistance</paper-item>
<paper-item>Vulnerability</paper-item>
<paper-item>Immunity</paper-item>
<paper-item name="resistance">Resistance</paper-item>
<paper-item name="vulnerability">Vulnerability</paper-item>
<paper-item name="immunity">Immunity</paper-item>
</core-menu>
</paper-dropdown>
</paper-dropdown-menu>
@@ -60,11 +60,11 @@
<template name="proficiencyEffectValue">
<paper-dropdown-menu id="proficiencyDropDown" label="Proficiency">
<paper-dropdown class="dropdown">
<paper-dropdown layered class="dropdown">
<core-menu id="proficiencyMenu" class="menu" selected={{selectedProfiencyMultiplier}}>
<paper-item>Proficient</paper-item>
<paper-item>Half Prof. Bonus</paper-item>
<paper-item>Double Prof. Bonus</paper-item>
<paper-item name="proficient">Proficient</paper-item>
<paper-item name="half">Half Prof. Bonus</paper-item>
<paper-item name="double">Double Prof. Bonus</paper-item>
</core-menu>
</paper-dropdown>
</paper-dropdown-menu>

View File

@@ -188,14 +188,14 @@ Template.effectEdit.helpers({
//resistance/vulnerability template
var group = Template.instance().selectedStatGroup.get();
if(group === "Weakness/Resistance") return "multiplierEffectValue";
var op = Template.instance().selectedOperation.get();
if(!op) return null;
//operations that don't need templates
if(op === "advantage" || op === "disadvantage" || op === "fail") return null;
//proficiency template
if(op === "proficiency") return "proficiencyEffectValue";
//default template
return "regularEffectValue";
},
@@ -265,71 +265,58 @@ Template.effectEdit.events({
"tap #deleteEffect": function(event){
Effects.remove(this._id);
},
"core-select #statGroupMenu": function(event){
var groupMenu = Template.instance().find("#statGroupMenu")
if(!groupMenu) return;
var groupIndex = groupMenu.selected;
var groupName = statGroupNames[groupIndex]
"core-select #statGroupDropDown": function(event){
var detail = event.originalEvent.detail;
if(!detail.isSelected) return;
var groupName = detail.item.getAttribute("name");
var oldName = Template.instance().selectedStatGroup.get();
if(oldName != groupName){
Template.instance().selectedStatGroup.set(groupName);
var oldIndex = statGroupIndex(Template.instance().selectedStat.get())
var oldIndex = statGroupIndex(Template.instance().selectedStat.get());
var groupIndex = statGroupIndex(groupName);
if(oldIndex != groupIndex){
Template.instance().selectedStat.set(null);
}
}
},
"core-select #statMenu": function(event){
var statMenu = Template.instance().find("#statMenu");
var groupMenu = Template.instance().find("#statGroupMenu");
if(!statMenu || !groupMenu) return;
var statIndex = statMenu.selected;
var groupIndex = groupMenu.selected;
var groupName = statGroupNames[groupIndex]
var group = statGroups[groupName];
var statObj = group[statIndex];
if(!statObj) return;
var statName = statObj.stat;
"core-select #statDropDown": function(event){
var detail = event.originalEvent.detail;
if(!detail.isSelected) return;
var statName = detail.item.getAttribute("name");
Template.instance().selectedStat.set(statName);
},
"core-select #operationMenu": function(event){
var groupName = Template.instance().selectedStatGroup.get();
var opGroup = (groupName === "Saving Throws" || groupName === "Skills")? skillOperations : attributeOperations;
var opMenu = Template.instance().find("#operationMenu")
if(!opMenu) return;
var opIndex = opMenu.selected;
var op = opGroup[opIndex];
if(!op) return;
var opName = op.operation;
"core-select #operationDropDown": function(event){
var detail = event.originalEvent.detail;
if(!detail.isSelected) return;
var opName = detail.item.getAttribute("name");
Template.instance().selectedOperation.set(opName);
},
"core-select #multiplierMenu": function(event){
"core-select #damageMultiplierDropDown": function(event){
var detail = event.originalEvent.detail;
if(!detail.isSelected) return;
var selected = detail.item.getAttribute("name");
var inst = Template.instance();
var mulMenu = Template.instance().find("#multiplierMenu");
if(!mulMenu) return;
var selected = mulMenu.selected;
if(selected === 0){
if(selected === "resistance"){
inst.value.set(0.5);
inst.selectedOperation.set("mul");
} else if (selected === 1){
} else if (selected === "vulnerability"){
inst.value.set(2);
inst.selectedOperation.set("mul");
} else if (selected === 2){
} else if (selected === "immunity"){
inst.value.set(0);
inst.selectedOperation.set("max");
}
},
"core-select #proficiencyMenu": function(event){
"core-select #proficiencyDropDown": function(event){
var detail = event.originalEvent.detail;
if(!detail.isSelected) return;
var selected = detail.item.getAttribute("name");
var inst = Template.instance();
var profMenu = inst.find("#proficiencyMenu");
if(!profMenu) return;
var selected = profMenu.selected;
var value;
if(selected === 0){
if(selected === "proficient"){
inst.value.set(1);
} else if (selected === 1){
} else if (selected === "half"){
inst.value.set(0.5);
} else if (selected === 2){
} else if (selected === "double"){
inst.value.set(2);
}
},