duel-controller.js.map 9.0 KB

1
  1. {"version":3,"sources":["../../src/client-server-shared/duel-controller.js"],"names":["DuelController","dataStore","currentGameState","gameData","allHeroesSet","states","initState","selectFactionState","setCurrentState","stateName","payload","gameState","start","updateCurrentState","update","storeData","save","loadData","load","startNewGame","player1Name","player2Name","allHeroesJson","gameOptions","resumeGame","DuelControllerProxy","endTurn","data","duelControllerProxy","duelCtrl","playerBlue","name","playerRed","waitingForBlue","waitingForRed","currentPlayer","then","deck","catch","err","console","log","setTimeout","heroesToSelect","player","faction","twelveHeroes"],"mappings":"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","sourcesContent":["import { initHeroesFromJson, getRandomHeroesByFaction } from './heroesHelper';\r\nconst DuelController = function(dataStore) {\r\n let currentGameState = null;\r\n let gameData = {};\r\n let allHeroesSet = {};\r\n\r\n let states = {\r\n '0_INIT': new initState(this),\r\n '1_SELECT_FACTION': new selectFactionState(this)\r\n };\r\n\r\n let setCurrentState = (stateName, payload = null) => {\r\n currentGameState = states[stateName];\r\n gameData.gameState = stateName;\r\n currentGameState.start(payload);\r\n };\r\n let updateCurrentState = (payload = null) => {\r\n currentGameState.update(payload);\r\n };\r\n\r\n let storeData = () => {\r\n return dataStore.save(gameData);\r\n };\r\n let loadData = () => {\r\n gameData = dataStore.load();\r\n };\r\n\r\n let startNewGame = function(\r\n player1Name,\r\n player2Name,\r\n allHeroesJson,\r\n gameOptions\r\n ) {\r\n allHeroesSet = initHeroesFromJson(allHeroesJson);\r\n setCurrentState('0_INIT', {\r\n player1Name,\r\n player2Name,\r\n gameOptions\r\n });\r\n updateCurrentState();\r\n };\r\n let resumeGame = function() {};\r\n\r\n let DuelControllerProxy = () => {\r\n return {\r\n endTurn: data => {\r\n currentGameState.update(data);\r\n }\r\n };\r\n };\r\n return {\r\n startNewGame,\r\n resumeGame,\r\n duelControllerProxy: new DuelControllerProxy(),\r\n storeData,\r\n loadData,\r\n setCurrentState,\r\n updateCurrentState,\r\n gameData,\r\n allHeroesSet\r\n };\r\n};\r\n\r\nlet initState = function(duelCtrl) {\r\n let start = function(payload = null) {\r\n duelCtrl.gameData = {\r\n playerBlue: {\r\n name: payload.player1Name\r\n },\r\n playerRed: {\r\n name: payload.player2Name\r\n },\r\n gameOptions: payload.gameOptions,\r\n waitingForBlue: false,\r\n waitingForRed: false,\r\n currentPlayer: ''\r\n };\r\n };\r\n let update = function(payload = null) {\r\n duelCtrl\r\n .storeData()\r\n .then(() => {\r\n switch (duelCtrl.gameData.gameOptions.deck) {\r\n case 'faction':\r\n duelCtrl.setCurrentState('1_SELECT_FACTION');\r\n break;\r\n case 'tournament':\r\n break;\r\n\r\n case 'draft':\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n })\r\n .catch(err => {\r\n console.log('Error storing data ', err);\r\n // Retry in 5 sec\r\n setTimeout(() => {\r\n duelCtrl.updateCurrentState();\r\n }, 5000);\r\n });\r\n };\r\n return {\r\n start,\r\n update\r\n };\r\n};\r\nlet selectFactionState = function(duelCtrl) {\r\n let start = function(payload = null) {\r\n duelCtrl.gameData.heroesToSelect = duelCtrl.allHeroesSet;\r\n duelCtrl.gameData.waitingForBlue = true;\r\n duelCtrl.gameData.waitingForRed = true;\r\n duelCtrl.gameData.currentPlayer = 'both';\r\n duelCtrl.storeData\r\n .then(() => {\r\n console.log('Wating for both players');\r\n })\r\n .catch(err => {\r\n console.log('Error storing data ', err);\r\n // Retry in 5 sec\r\n setTimeout(() => {\r\n duelCtrl.currentGameState.start();\r\n }, 5000);\r\n });\r\n };\r\n\r\n let update = function(payload = null) {\r\n if (payload) {\r\n let player = 'player' + payload.player;\r\n duelCtrl.gameData[player].faction = payload.faction;\r\n duelCtrl.gameData[player].twelveHeroes = getRandomHeroesByFaction(\r\n payload.faction\r\n );\r\n duelCtrl.gameData['waitingFor' + payload.player] = false;\r\n }\r\n\r\n if (\r\n duelCtrl.gameData.waitingForBlue === false &&\r\n duelCtrl.gameData.waitingForRed === false\r\n ) {\r\n duelCtrl.storeData\r\n .then(() => {\r\n console.log('Going to next STATE');\r\n })\r\n .catch(err => {\r\n console.log('Error storing data ', err);\r\n // Retry in 5 sec\r\n setTimeout(() => {\r\n duelCtrl.currentGameState.update();\r\n }, 5000);\r\n });\r\n }\r\n };\r\n\r\n return {\r\n start,\r\n update\r\n };\r\n};\r\n\r\nexport default DuelController;\r\n"],"file":"duel-controller.js"}