const game_config = { timeout1Instructions: 5, timeout2Scenario: 10, timeout3Chat: 10, timeout4Answer: 60, distribution: { hard: { public: [0, 1], private: [ [6, 2], // leader [7, 3], [8, 4], [9, 5], ], }, medium: { public: [6, 1], private: [ [2, 3], // leader [7, 0], [8, 4], [9, 5], ], }, easy: { public: [6, 7], private: [ [8, 9], // leader [0, 3], [1, 4], [2, 5], ], }, }, }; /** * Main initialization script automatically called by the environment once all the data has been initialized */ function initialize() { // set this player's properties from the initial state player.initialize(); const params = parameterHandler(variables); const scenario = scenarios[params.scenario]; if (params.version === AMBIGUOUS) { scenario.culpritClues[7] = scenario.culpritClues[2]; scenario.targetClues[7] = scenario.targetClues[2]; scenario.dayClues[7] = scenario.dayClues[2]; } const distribution = game_config.distribution[params.infoDistribution]; render(params, scenario, distribution); bindAnswerEvents(); timer .queueEvent(0, showInstructions) .queueEvent(game_config.timeout1Instructions, showScenario) .queueEvent(game_config.timeout2Scenario, showChat) .queueEvent(game_config.timeout3Chat, showAnswer) .queueEvent(game_config.timeout4Answer, endGame) .run(); } /** * fills in dynamic data into the page */ function render(params, scenario, distribution) { if (player.isLeader) { $(".leader").show(); } else { $(".leader").hide(); } $("[data-id='timeout1Instructions']").text(game_config.timeout1Instructions); $("[data-id='timeout2Scenario']").text(game_config.timeout2Scenario); $("[data-id='timeout3Chat']").text(game_config.timeout3Chat); $("[data-id='timeout4Answer']").text(game_config.timeout4Answer); $("[data-id='scenarioDimension1']").text(scenario.dimensions[0]); $("[data-id='scenarioDimension2']").text(scenario.dimensions[1]); $("[data-id='scenarioDimension3']").text(scenario.dimensions[2]); $("[for='dim1A']").text(scenario.culprits[0]); $("[for='dim1B']").text(scenario.culprits[1]); $("[for='dim1C']").text(scenario.culprits[2]); $("[for='dim1D']").text(scenario.culprits[3]); $("[for='dim1E']").text(scenario.culprits[4]); $("[for='dim2A']").text(scenario.targets[0]); $("[for='dim2B']").text(scenario.targets[1]); $("[for='dim2C']").text(scenario.targets[2]); $("[for='dim2D']").text(scenario.targets[3]); $("[for='dim2E']").text(scenario.targets[4]); $("[for='dim3A']").text(scenario.days[0]); $("[for='dim3B']").text(scenario.days[1]); $("[for='dim3C']").text(scenario.days[2]); $("[for='dim3D']").text(scenario.days[3]); $("[for='dim3E']").text(scenario.days[4]); const scenarioContent = `

${scenario.title}

${scenario.flavorText} `; $("[data-id='scenario']").html(scenarioContent); if (params.repeatCluesDuringChat) { $(".repeat-clues").show(); } else { $(".repeat-clues").hide(); } } /** * */ function bindAnswerEvents() { const dim1Sum = $("#dim1Sum"); const dim1Inputs = $("#dim1A,#dim1B,#dim1C,#dim1D,#dim1E"); dim1Inputs.change((e) => { let sum = 0; dim1Inputs.each((i, o) => { sum += +$(o).val(); }); dim1Sum.text(sum); }); const dim2Sum = $("#dim2Sum"); const dim2Inputs = $("#dim2A,#dim2B,#dim2C,#dim2D,#dim2E"); dim2Inputs.change((e) => { let sum = 0; dim2Inputs.each((i, o) => { sum += +$(o).val(); }); dim2Sum.text(sum); }); const dim3Sum = $("#dim3Sum"); const dim3Inputs = $("#dim3A,#dim3B,#dim3C,#dim3D,#dim3E"); dim3Inputs.change((e) => { let sum = 0; dim3Inputs.each((i, o) => { sum += +$(o).val(); }); dim3Sum.text(sum); }); $("form#answers").submit((e) => { e.preventDefault(); }); } /** * */ function showInstructions() { $("#instructions").show(); } function hideInstructions() { $("#instructions").hide(); } /** * */ function showScenario() { hideInstructions(); $("#scenario").show(); } function hideScenario() { $("#scenario").hide(); } /** * */ function showChat() { hideScenario(); $("#chat").show(); } function hideChat() { $("#chat").hide(); } /** * */ function showAnswer() { hideChat(); if (player.isLeader) { $("#answerLeader").show(); } else { $("#answerFollower").show(); } } function hideAnswer() { $("#answerLeader").hide(); $("#answerFollower").hide(); } /** * */ function endGame() { hideAnswer(); $("#endgame").show(); sequence.endRound(); }