From 9b9a54b1344f050545cdec77687831bbea8112c9 Mon Sep 17 00:00:00 2001 From: Maxime Moraine Date: Mon, 3 May 2021 16:27:59 +0200 Subject: [PATCH] =?UTF-8?q?support=20des=20alli=C3=A9s=20dans=20le=20calcu?= =?UTF-8?q?lateur=20de=20rencontres?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/modules/encounterCalculator.js | 19 ++- .../theme/components/EncounterCalculator.vue | 109 +++++++++++++----- 2 files changed, 96 insertions(+), 32 deletions(-) diff --git a/docs/.vuepress/store/modules/encounterCalculator.js b/docs/.vuepress/store/modules/encounterCalculator.js index cf83219..3032306 100644 --- a/docs/.vuepress/store/modules/encounterCalculator.js +++ b/docs/.vuepress/store/modules/encounterCalculator.js @@ -47,9 +47,12 @@ export default { state.creatures = [] }, addCreature: (state, payload) => { - payload.qty = 1 - state.creatures.push(payload) - state.creatures.sort((a, b) => { return sortByString(a.title, b.title) }) + // payload.qty = 1 + let c = Object.assign({}, payload) + c.ally = false + state.creatures.push(c) + c = null + // state.creatures.sort((a, b) => { return sortByString(a.title, b.title) }) }, updateCreatures: (state, payload) => { let creatureIndex = getResourceIndexInLibrary(payload, state.creatures) @@ -58,9 +61,13 @@ export default { } }, removeCreature: (state, payload) => { - let creatureIndex = getResourceIndexInLibrary(payload, state.creatures) - if (creatureIndex >= 0) { - state.creatures.splice(creatureIndex, 1) + if (payload >= 0) { + state.creatures.splice(payload, 1) + } + }, + switchCampCreature: (state, payload) => { + if (payload >= 0) { + state.creatures[payload].ally = !state.creatures[payload].ally } }, setCreatureQty: (state, payload) => { diff --git a/docs/.vuepress/theme/components/EncounterCalculator.vue b/docs/.vuepress/theme/components/EncounterCalculator.vue index f2b9a7c..93cd915 100644 --- a/docs/.vuepress/theme/components/EncounterCalculator.vue +++ b/docs/.vuepress/theme/components/EncounterCalculator.vue @@ -24,13 +24,14 @@ > PX : {{ totalXP }} ({{ Math.floor(totalXP / pc) }} par PJ) - +
{{c.title}}
- + + mdi-delete @@ -58,6 +59,8 @@ export default { panels: [0], challenges: CHALLENGES, encounterLevels: ENCOUNTERLEVELS, + totalPC: 0, + totalXP: 0, } }, @@ -66,9 +69,9 @@ export default { creatures: state => state.encounterCalculator.creatures, }), - ...mapGetters({ - totalPC: 'encounterCalculator/totalPC', - }), + // ...mapGetters({ + // totalPC: 'encounterCalculator/totalPC', + // }), pc: { get () { @@ -110,25 +113,30 @@ export default { return {label, color} }, - totalPC () { - let pc = 0 - for (let c of this.creatures) { - pc += getPCbyChallenge(Number(c.frontmatter.challenge)) - } - return pc - }, + // totalPC () { + // let pc = 0 + // for (let c of this.creatures) { + // if (c.ally) { + // pc -= getPCbyChallenge(Number(c.frontmatter.challenge)) + // } else { + // pc += getPCbyChallenge(Number(c.frontmatter.challenge)) + // } + // console.log(c) + // } + // return pc + // }, - totalXP () { - let xp = 0 - for (let c of this.creatures) { - if (c.frontmatter.challenge == 0) { - xp += 10 - } else { - xp += stats.challenges[c.frontmatter.challenge].xp - } - } - return xp - }, + // totalXP () { + // let xp = 0 + // for (let c of this.creatures) { + // if (c.frontmatter.challenge == 0) { + // xp += 10 + // } else { + // xp += stats.challenges[c.frontmatter.challenge].xp + // } + // } + // return xp + // }, challengeForGroup () { let level = this.encounterLevels[this.encounterLevels.findIndex((item) => { return item.level == this.level })] @@ -146,13 +154,62 @@ export default { }, methods: { - removeCreatureInEncounter (creature) { - this.$store.commit('encounterCalculator/removeCreature', creature) - } + removeCreatureInEncounter (idx) { + this.$store.commit('encounterCalculator/removeCreature', idx) + }, + + switchCampCreatureInEncounter (idx) { + this.$store.commit('encounterCalculator/switchCampCreature', idx) + this.setTotalPC() + this.setTotalXP() + }, + + setTotalPC () { + let pc = 0 + for (let c of this.creatures) { + if (c.ally) { + pc -= getPCbyChallenge(Number(c.frontmatter.challenge)) + } else { + pc += getPCbyChallenge(Number(c.frontmatter.challenge)) + } + // console.log(c) + } + this.totalPC = pc + }, + + setTotalXP () { + let xp = 0 + for (let c of this.creatures) { + if (c.frontmatter.challenge == 0) { + if (c.ally) { + xp -= 10 + } else { + xp += 10 + } + } else { + if (c.ally) { + xp -= stats.challenges[c.frontmatter.challenge].xp + } else { + xp += stats.challenges[c.frontmatter.challenge].xp + } + } + } + if (xp < 0) { + xp = 0 + } + this.totalXP = xp + }, }, mounted () { + }, + + watch: { + creatures () { + this.setTotalPC() + this.setTotalXP() + } } }