From 63df21934d8803f7642bf338d35cb395ac17a183 Mon Sep 17 00:00:00 2001 From: Thaum Date: Tue, 3 Feb 2015 14:06:51 +0000 Subject: [PATCH] Skillrows overhauled to material design specs --- rpg-docs/Model/Character/Characters.js | 17 ++++--- .../character/Stats/skillRow/skillRow.css | 33 ++++---------- .../character/Stats/skillRow/skillRow.html | 11 +++-- .../character/Stats/skillRow/skillRow.js | 44 ++++++------------- rpg-docs/client/views/layout/imports.html | 3 ++ 5 files changed, 42 insertions(+), 66 deletions(-) diff --git a/rpg-docs/Model/Character/Characters.js b/rpg-docs/Model/Character/Characters.js index ae48c16d..18f30494 100644 --- a/rpg-docs/Model/Character/Characters.js +++ b/rpg-docs/Model/Character/Characters.js @@ -184,7 +184,7 @@ Schemas.Character = new SimpleSchema({ deathSave: { type: Schemas.DeathSave }, time: { type: Number, min: 0, decimal: true, defaultValue: 0}, initiativeRoll: { type: Number, min: 0, max: 1, decimal: true, defaultValue: 0}, - + //permissions owner: { type: String, regEx: SimpleSchema.RegEx.Id }, readers: { type: [String], regEx: SimpleSchema.RegEx.Id }, @@ -405,15 +405,22 @@ Characters.helpers({ var charId = this._id var mod = +this.skillMod(skillName); var value = 10 + mod; - Effects.find({charId: charId, stat: skillName, enabled: true}).forEach(function(effect){ - if(effect.operation === "passiveAdd"){ - value += evaluateEffect(charId, effect); - } + Effects.find({charId: charId, stat: skillName, enabled: true, operation: "passiveAdd"}).forEach(function(effect){ + value += evaluateEffect(charId, effect); }); return value; //TODO decide whether (dis)advantage gives (-)+5 to passive checks }, + advantage: function(skillName){ + var charId = this._id + var advantage = Effects.find({charId: charId, stat: skillName, enabled: true, operation: "advantage"}).count(); + var disadvantage = Effects.find({charId: charId, stat: skillName, enabled: true, operation: "disadvantage"}).count(); + if(advantage && !disadvantage) return 1; + if(disadvantage && !advantage) return -1; + return 0; + }, + abilityMod: function(attribute){ return signedString(getMod(this.attributeValue(attribute))); }, diff --git a/rpg-docs/client/views/character/Stats/skillRow/skillRow.css b/rpg-docs/client/views/character/Stats/skillRow/skillRow.css index 71c4205b..a7988995 100644 --- a/rpg-docs/client/views/character/Stats/skillRow/skillRow.css +++ b/rpg-docs/client/views/character/Stats/skillRow/skillRow.css @@ -1,36 +1,19 @@ .skillRow { height: 32px; - display: flex; - align-items: center; - position: relative; + margin: 0 -8px 0 -8px; } -.skillRow:hover{ - background: #FFEBEE; -} - -.profIcon{ - display: inline-block; - width: 40px; - height: 26px; - background-size: contain; - background-repeat: no-repeat; - - /*TODO fix the actual images and remove inversion*/ - -webkit-filter: invert(100%); - opacity: 0.54; - pointer-events: none; +.skillRow core-icon { + color: rgba(0,0,0,0.54); } .skillMod { - width: 20px; - text-align: right; + width: 42px; + text-align: center; } .skillName, .skillMod{ - display: inline-block; - vertical-align: top; - margin-right: 8px; + } .fail.skillMod { @@ -41,14 +24,16 @@ background-image: url(/png/advantage/greenUp.png); background-size: contain; background-repeat: no-repeat; + background-position: center; } .disadvantage{ background-image: url(/png/advantage/redDown.png); background-size: contain; background-repeat: no-repeat; + background-position: center; } -td.conditionals::after{ +.hasConditionals::after{ content: "*"; } diff --git a/rpg-docs/client/views/character/Stats/skillRow/skillRow.html b/rpg-docs/client/views/character/Stats/skillRow/skillRow.html index 451164e2..61c01fd5 100644 --- a/rpg-docs/client/views/character/Stats/skillRow/skillRow.html +++ b/rpg-docs/client/views/character/Stats/skillRow/skillRow.html @@ -1,17 +1,16 @@ \ No newline at end of file diff --git a/rpg-docs/client/views/character/Stats/skillRow/skillRow.js b/rpg-docs/client/views/character/Stats/skillRow/skillRow.js index d0fb9a1d..efc3faf5 100644 --- a/rpg-docs/client/views/character/Stats/skillRow/skillRow.js +++ b/rpg-docs/client/views/character/Stats/skillRow/skillRow.js @@ -1,40 +1,22 @@ Template.skillRow.helpers({ - profIcon: function(skill){ + profIcon: function(){ var prof = Template.parentData(1).proficiency(this.skill); - if(prof > 0 && prof < 1) return "profHalf.png"; - if(prof === 1) return "profSingle.png"; - if(prof > 1) return "profDouble.png"; - return "profNone.png"; + if(prof > 0 && prof < 1) return "image:brightness-2"; + if(prof === 1) return "image:brightness-1"; + if(prof > 1) return "av:album"; + return "radio-button-off"; }, failSkill: function(){ - var skill = Template.parentData(1).getField(this.skill); - _.each(skill.effets, function(effect){ - if (effect.operation === "fail"){ - return true; - } - }) - return false; + var charId = Template.parentData(1)._id; + return Effects.find({charId: charId, stat: this.skill, enabled: true, operation: "fail"}).count(); }, advantage: function(){ - var adv = 0; - var disadv = 0; - var skill = Template.parentData(1).getField(this.skill); - _.each(skill.effets, function(effect){ - if (effect.operation === "advantage"){ - adv ++; - } else if (effect.operation === "disadvantage") { - disadv ++; - } - }) - if(adv > 0 && disadv === 0) return "advantage"; - if(disadv > 0 && adv === 0) return "disadvantage"; + var advantage = Template.parentData(1).advantage(this.skill); + if(advantage > 0) return "advantage"; + if(advantage < 0) return "disadvantage"; }, - conditionals: function(){ - var skill = Template.parentData(1).getField(this.skill); - _.each(skill.effets, function(effect){ - if (effect.operation === "conditional"){ - return "conditionals"; - } - }) + conditionalCount: function(){ + var charId = Template.parentData(1)._id; + return Effects.find({charId: charId, stat: this.skill, enabled: true, operation: "conditional"}).count(); } }); \ No newline at end of file diff --git a/rpg-docs/client/views/layout/imports.html b/rpg-docs/client/views/layout/imports.html index d4af595e..d9af3669 100644 --- a/rpg-docs/client/views/layout/imports.html +++ b/rpg-docs/client/views/layout/imports.html @@ -3,6 +3,9 @@ + + +