diff --git a/app/imports/ui/StoryBook.vue b/app/imports/ui/StoryBook.vue index 52763670..f7093e1f 100644 --- a/app/imports/ui/StoryBook.vue +++ b/app/imports/ui/StoryBook.vue @@ -42,6 +42,7 @@ import AttributeCard from '/imports/ui/components/AttributeCard.Story.vue'; import ColumnLayout from "/imports/ui/components/ColumnLayout.Story.vue"; import DialogStack from '/imports/ui/dialogStack/DialogStack.Story.vue'; + import EffectEdit from '/imports/ui/components/EffectEdit.Story.vue'; import HealthBar from '/imports/ui/components/HealthBar.Story.vue'; import HitDiceListTile from '/imports/ui/components/HitDiceListTile.Story.vue'; import IconSearch from '/imports/ui/components/IconSearch.Story.vue'; @@ -54,6 +55,7 @@ AttributeCard, ColumnLayout, DialogStack, + EffectEdit, HealthBar, HitDiceListTile, IconSearch, diff --git a/app/imports/ui/components/AttributeEffectList.vue b/app/imports/ui/components/AttributeEffectList.vue index 4c49c5d3..55ee1717 100644 --- a/app/imports/ui/components/AttributeEffectList.vue +++ b/app/imports/ui/components/AttributeEffectList.vue @@ -9,7 +9,7 @@ > - {{getIcon(effect.operation, effect.value)}} + {{getEffectIcon(effect.operation, effect.value)}}
{{getValue(effect.operation, effect.value)}} @@ -32,6 +32,7 @@ + + diff --git a/app/imports/ui/components/EffectEdit.vue b/app/imports/ui/components/EffectEdit.vue new file mode 100644 index 00000000..fb932d19 --- /dev/null +++ b/app/imports/ui/components/EffectEdit.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/app/imports/ui/dialogStack/DialogStack.vue b/app/imports/ui/dialogStack/DialogStack.vue index 002a175f..56b46834 100644 --- a/app/imports/ui/dialogStack/DialogStack.vue +++ b/app/imports/ui/dialogStack/DialogStack.vue @@ -68,6 +68,10 @@ return `left:${left}px; top:${top}px;`; }, enter(target, done){ + if (!target.attributes['data-element-id']){ + done(); + return; + } let elementId = target.attributes['data-element-id'].value; let source = document.getElementById(elementId); // Get the original styles so we can repair them later @@ -104,6 +108,10 @@ if (target.attributes['data-return-element-id']) { elementId = target.attributes['data-return-element-id'].value; } else { + if (!target.attributes['data-element-id']){ + done(); + return; + } elementId = target.attributes['data-element-id'].value; } let source = document.getElementById(elementId); diff --git a/app/imports/ui/utility/getEffectIcon.js b/app/imports/ui/utility/getEffectIcon.js new file mode 100644 index 00000000..a58e5a96 --- /dev/null +++ b/app/imports/ui/utility/getEffectIcon.js @@ -0,0 +1,14 @@ +export default function getEffectIcon(op, value){ + switch(op) { + case 'base': return 'forward'; + case 'add': return value < 0 ? 'remove' : 'add'; + case 'mul': return 'clear'; + case 'min': return 'unfold_more'; + case 'max': return 'unfold_less'; + case 'advantage': return 'arrow_upward'; + case 'disadvantage': return 'arrow_downward'; + case 'passiveAdd': return value < 0 ? 'remove_circle_outline' : 'add_circle_outline'; + case 'fail': return 'block'; + case 'conditional': return '*' ; + } +};