diff --git a/lang/en.json b/lang/en.json index caed94b..37e94d9 100644 --- a/lang/en.json +++ b/lang/en.json @@ -1,7 +1,7 @@ { "SHEET.TabStats": "Stats", "SHEET.TabSkills": "Skills", - "SHEET.TabFight": "Fight", + "SHEET.TabConsequences": "Consequences", "SHEET.TabGears": "Gears", "SHEET.TabDescription": "Description", diff --git a/module/actor-sheet.js b/module/actor-sheet.js index ec53547..2c8c3aa 100644 --- a/module/actor-sheet.js +++ b/module/actor-sheet.js @@ -32,7 +32,10 @@ export class SoSActorSheet extends ActorSheet { }); data.data.skill1 = data.data.skills.slice(0, Math.ceil(data.data.skills.length/2) ) data.data.skill2 = data.data.skills.slice(Math.ceil(data.data.skills.length/2), data.data.skills.length ) - + data.data.consequences = this.actor.data.items.filter( item => item.type == 'consequence').sort( (a, b) => { + if ( a.name > b.name ) return 1; + return -1; + }); data.data.subculture = this.actor.data.items.find( item => item.type == 'subculture'); data.data.geneline = this.actor.data.items.find( item => item.type == 'geneline'); data.data.editStatSkill = this.options.editStatSkill; diff --git a/module/actor.js b/module/actor.js index fbfb60b..3dcb2ae 100644 --- a/module/actor.js +++ b/module/actor.js @@ -34,6 +34,18 @@ export class SoSActor extends Actor { return actor; } + data.items = []; + let compendiumName = "foundryvtt-shadows-over-sol.skills"; + if ( compendiumName ) { + let skills = await SoSUtility.loadCompendium(compendiumName); + data.items = data.items.concat( skills ); + } + compendiumName = "foundryvtt-shadows-over-sol.consequences"; + if ( compendiumName ) { + let consequences = await SoSUtility.loadCompendium(compendiumName) + data.items = data.items.concat(consequences); + } + return super.create(data, options); } diff --git a/module/sos-card-deck.js b/module/sos-card-deck.js index 8c301f8..1665797 100644 --- a/module/sos-card-deck.js +++ b/module/sos-card-deck.js @@ -16,12 +16,15 @@ export class SoSCardDeck { this.data.cardState = []; this.data.cardEdge = []; - if ( savedDeck.deck && savedDeck.deck.length > 0 ) {} + if ( savedDeck.deck && savedDeck.deck.length > 0 ) { this.data.deck = duplicate(savedDeck.deck); - if ( savedDeck.discard && savedDeck.discard.length > 0 ) {} + } + if ( savedDeck.discard && savedDeck.discard.length > 0 ) { this.data.discard = duplicate(savedDeck.discard); - if ( savedDeck.cardEdge && savedDeck.cardEdge.length > 0 ) {} + } + if ( savedDeck.cardEdge && savedDeck.cardEdge.length > 0 ) { this.data.cardEdge = duplicate(savedDeck.cardEdge); + } this.data.actor = actor; if ( this.data.deck.length == 0 && this.data.discard.length == 0) { diff --git a/module/sos-utility.js b/module/sos-utility.js index d7fe0aa..1378a13 100644 --- a/module/sos-utility.js +++ b/module/sos-utility.js @@ -19,7 +19,34 @@ export class SoSUtility { return loadTemplates(templatePaths); } + /* -------------------------------------------- */ static fillRange (start, end) { return Array(end - start + 1).fill().map((item, index) => start + index); } + + /* -------------------------------------------- */ + static async loadCompendiumNames(compendium) { + const pack = game.packs.get(compendium); + let competences; + await pack.getIndex().then(index => competences = index); + return competences; + } + + /* -------------------------------------------- */ + static async loadCompendium(compendium, filter = item => true) { + let compendiumItems = await SoSUtility.loadCompendiumNames(compendium); + + const pack = game.packs.get(compendium); + let list = []; + for (let compendiumItem of compendiumItems) { + await pack.getEntity(compendiumItem._id).then(it => { + const item = it.data; + if (filter(item)) { + list.push(item); + } + }); + }; + return list; + } + } \ No newline at end of file diff --git a/system.json b/system.json index 4ce3657..0d4e1c5 100644 --- a/system.json +++ b/system.json @@ -2,7 +2,7 @@ "name": "foundryvtt-shadows-over-sol", "title": "Shadows over Sol", "description": "Shadows over Sol for FoundryVTT", - "version": "0.0.10", + "version": "0.0.11", "manifestPlusVersion": "1.0.0", "minimumCoreVersion": "0.7.5", "compatibleCoreVersion": "0.7.9", diff --git a/templates/actor-sheet.html b/templates/actor-sheet.html index fd101d6..57cc17c 100644 --- a/templates/actor-sheet.html +++ b/templates/actor-sheet.html @@ -15,7 +15,7 @@ @@ -157,9 +157,19 @@ - {{!-- Fight Tab --}} -
+ {{!-- Consequences Tab --}} +