From 6a9e220b6292e75c10ffcb0c657f45ef6daa628d Mon Sep 17 00:00:00 2001 From: vikingowl Date: Sat, 6 Nov 2021 02:45:15 +0100 Subject: [PATCH] #5 weapons only selectable, if player did damage with them --- src/components/HitgroupPuppet.vue | 89 +++++++++++++++++++++++++------ 1 file changed, 73 insertions(+), 16 deletions(-) diff --git a/src/components/HitgroupPuppet.vue b/src/components/HitgroupPuppet.vue index 7c7f90b..8b5fbeb 100644 --- a/src/components/HitgroupPuppet.vue +++ b/src/components/HitgroupPuppet.vue @@ -15,11 +15,11 @@ - - @@ -36,7 +36,7 @@ import * as echarts from 'echarts/core'; import {GeoComponent, TooltipComponent, VisualMapComponent} from 'echarts/components'; import {MapChart} from 'echarts/charts'; import {CanvasRenderer} from 'echarts/renderers'; -import {onMounted, onUnmounted, reactive, ref} from "vue"; +import {onMounted, onUnmounted, reactive, ref, watch} from "vue"; import {useStore} from "vuex"; import $ from 'jquery' @@ -62,18 +62,6 @@ export default { eq_map: [] }) - console.log(store.state.playersArr) - - setTimeout(() => { - for (let i in props.equipment_map) { - if (i < 500) { - const obj = {} - obj[i] = props.equipment_map[i] - data.eq_map.push(obj) - } - } - }, 400) - let myChart1 const getWindowWidth = () => { @@ -97,6 +85,73 @@ export default { const width = ref(getWindowWidth()) const height = ref(setHeight()) + const processPlayerWeapon = () => { + let arr = [] + if (data.selectPlayer === 'All') { + props.stats.forEach(player => { + Object.values(player).forEach(enemies => { + Object.values(enemies).forEach(weapons => { + Object.values(weapons).forEach(weapon => { + arr.push(weapon[0]) + }) + }) + }) + }) + } else if (data.selectPlayer === 'Team 1') { + props.stats.forEach(player => { + store.state.playersArr.forEach(p => { + if (p.player.steamid64 === Object.keys(player).toString() && p.team_id === 1) + Object.values(player).forEach(enemies => { + Object.values(enemies).forEach(weapons => { + Object.values(weapons).forEach(weapon => { + arr.push(weapon[0]) + }) + }) + }) + }) + }) + } else if (data.selectPlayer === 'Team 2') { + props.stats.forEach(player => { + store.state.playersArr.forEach(p => { + if (p.player.steamid64 === Object.keys(player).toString() && p.team_id === 2) + Object.values(player).forEach(enemies => { + Object.values(enemies).forEach(weapons => { + Object.values(weapons).forEach(weapon => { + arr.push(weapon[0]) + }) + }) + }) + }) + }) + } else { + props.stats.forEach(player => { + if (Object.keys(player).toString() === data.selectPlayer.steamid64) { + Object.values(player).forEach(enemies => { + Object.values(enemies).forEach(weapons => { + Object.values(weapons).forEach(weapon => { + arr.push(weapon[0]) + }) + }) + }) + } + }) + } + + const unique = arr.filter((a, b) => arr.indexOf(a) === b && a < 500) + + let arr2 = [] + + unique.forEach(w => { + for (let weapon in props.equipment_map) { + if (parseInt(w) === parseInt(weapon)) { + arr2.push({w: props.equipment_map[weapon]}) + } + } + }) + + return arr2 + } + const processDmg = () => { let arr = [] if (data.selectPlayer && data.selectWeapon) { @@ -336,7 +391,9 @@ export default { buildCharts() } - return {props, data, store, processDmg} + watch(() => data.selectPlayer, processPlayerWeapon) + + return {props, data, store, processDmg, processPlayerWeapon} } }