mirror of https://github.com/bra1n/townsquare.git
74 lines
1.8 KiB
JavaScript
74 lines
1.8 KiB
JavaScript
|
import Vue from "vue";
|
||
|
import Vuex from "vuex";
|
||
|
import editionJSON from "../editions.json";
|
||
|
import rolesJSON from "../roles.json";
|
||
|
|
||
|
Vue.use(Vuex);
|
||
|
|
||
|
const getRolesByEdition = (edition = "tb") => {
|
||
|
const selectedEdition = editionJSON.find(({ id }) => id === edition);
|
||
|
return new Map(
|
||
|
rolesJSON
|
||
|
.filter(
|
||
|
r => r.edition === edition || selectedEdition.roles.includes(r.id)
|
||
|
)
|
||
|
.sort((a, b) => b.team.localeCompare(a.team))
|
||
|
.map(role => [role.id, role])
|
||
|
);
|
||
|
};
|
||
|
|
||
|
export default new Vuex.Store({
|
||
|
state: {
|
||
|
grimoire: {
|
||
|
isNightOrder: true,
|
||
|
isPublic: true,
|
||
|
isScreenshot: false,
|
||
|
isScreenshotSuccess: false,
|
||
|
zoom: 1,
|
||
|
background: ""
|
||
|
},
|
||
|
modals: {
|
||
|
edition: false,
|
||
|
roles: false
|
||
|
},
|
||
|
edition: "tb",
|
||
|
roles: getRolesByEdition(),
|
||
|
players: []
|
||
|
},
|
||
|
mutations: {
|
||
|
toggleGrimoire({ grimoire }) {
|
||
|
grimoire.isPublic = !grimoire.isPublic;
|
||
|
grimoire.isControlOpen = !grimoire.isPublic;
|
||
|
},
|
||
|
showGrimoire({ grimoire }) {
|
||
|
grimoire.isPublic = false;
|
||
|
},
|
||
|
toggleNightOrder({ grimoire }) {
|
||
|
grimoire.isNightOrder = !grimoire.isNightOrder;
|
||
|
},
|
||
|
updateZoom({ grimoire }, by = 0) {
|
||
|
grimoire.zoom += by;
|
||
|
},
|
||
|
setBackground({ grimoire }, background) {
|
||
|
grimoire.background = background;
|
||
|
},
|
||
|
toggleModal({ modals }, name) {
|
||
|
modals[name] = !modals[name];
|
||
|
},
|
||
|
updateScreenshot({ grimoire }, status) {
|
||
|
if (status !== true && status !== false) {
|
||
|
grimoire.isScreenshotSuccess = false;
|
||
|
grimoire.isScreenshot = true;
|
||
|
} else {
|
||
|
grimoire.isScreenshotSuccess = status;
|
||
|
grimoire.isScreenshot = false;
|
||
|
}
|
||
|
},
|
||
|
setEdition(state, edition) {
|
||
|
state.edition = edition;
|
||
|
state.modals.edition = false;
|
||
|
state.roles = getRolesByEdition(edition);
|
||
|
}
|
||
|
}
|
||
|
});
|