diff --git a/css/deltagreen.css b/css/deltagreen.css index a82be46..c51007b 100644 --- a/css/deltagreen.css +++ b/css/deltagreen.css @@ -281,6 +281,8 @@ a.btn-tiny{ border-radius: 4px; line-height: 25px; border: 1px solid #333333; + min-width: 20px; + text-align: center; } span.breaking-point-label{ @@ -362,4 +364,10 @@ div span.bio-grid-label{ display: grid; grid-template-columns: 100px auto 20px 100px auto; align-items: center; +} + +.bonds-grid-3col{ + display: grid; + grid-template-columns: auto 50px max-content; + align-items: center; } \ No newline at end of file diff --git a/module/actor/actor-sheet.js b/module/actor/actor-sheet.js index f0bf9fa..2ab6df8 100644 --- a/module/actor/actor-sheet.js +++ b/module/actor/actor-sheet.js @@ -142,7 +142,6 @@ export class DeltaGreenActorSheet extends ActorSheet { event.preventDefault(); let targetskill = event.target.getAttribute("data-typeskill"); - //let updatedData = duplicate(this.actor.data.data); this._showNewTypeSkillDialog(targetskill); }); @@ -165,6 +164,19 @@ export class DeltaGreenActorSheet extends ActorSheet { this.actor.update({"data": updatedData}); }); + + html.find('.btn-add-bond').click(event => { + event.preventDefault(); + this._addNewBond(); + }); + + html.find('.btn-remove-bond').click(event => { + event.preventDefault(); + let skillindex = event.target.getAttribute("data-index"); + + this._removeBond(skillindex); + }); + } _showNewTypeSkillDialog(targetskill){ @@ -204,6 +216,40 @@ export class DeltaGreenActorSheet extends ActorSheet { this.actor.update({"data": updatedData}); } + _addNewBond(){ + let updatedData = duplicate(this.actor.data.data); + let updatedBonds = []; + let x; + + for(x in updatedData.bonds){ + if(Number.isNumeric(x)){ + updatedBonds.push(updatedData.bonds[x]); + } + } + + updatedBonds.push({"description": "New", "score": updatedData.statistics.cha.value}); + + updatedData.bonds = updatedBonds; + + this.actor.update({"data": updatedData}); + } + + _removeBond(pos){ + let updatedData = duplicate(this.actor.data.data); + let updatedBonds = []; + let x; + + for(x in updatedData.bonds){ + if(Number.isNumeric(x) && x != pos){ + updatedBonds.push(updatedData.bonds[x]); + } + } + + updatedData.bonds = updatedBonds; + + this.actor.update({"data": updatedData}); + } + /** * Handle creating a new Owned Item for the actor using initial data defined in the HTML dataset * @param {Event} event The originating click event diff --git a/template.json b/template.json index c7736be..141e8a7 100644 --- a/template.json +++ b/template.json @@ -341,6 +341,12 @@ "disorder":"", "crossedOut": false } + ], + "bonds":[ + { + "description":"", + "score": 10 + } ] } }, diff --git a/templates/actor/actor-sheet.html b/templates/actor/actor-sheet.html index f397a85..280fb0d 100644 --- a/templates/actor/actor-sheet.html +++ b/templates/actor/actor-sheet.html @@ -86,7 +86,8 @@ Skills Gear Biography - Bonds + Bonds + Motivations {{!-- Sheet Body --}} @@ -120,7 +121,7 @@ {{!-- Subtyped Skills take the form: data.type_skills.art.types[0].proficiency where 'types' is an array of object. --}} - {{this.specialization}} - + @@ -182,9 +183,25 @@ {{editor content=data.physicalDescription target="data.physicalDescription" button=true owner=owner editable=editable}} - {{!-- bonds Tab --}} + {{!-- Bonds Tab --}}
-

test

+ + + + + {{#each data.bonds as |bond index|}} +
+ + + + - +
+ {{/each}} +
+ + {{!-- Motivations Tab --}} +
+ +

Under Construction