-- set true to enable debug logging DEBUG = false function log(message) if DEBUG then print(message) end end --[[ Known locations and clues. We check this to determine if we should atttempt to spawn clues, first we look for _ and if we find nothing we look for format is [location_guid -> clueCount] ]] LOCATIONS_DATA_JSON = [[ { "San Francisco": {"type": "fixed", "value": 1, "clueSide": "back"}, " Arkham": {"type": "perPlayer", "value": 1, "clueSide": "back"}, "Buenos Aires": {"type": "fixed", "value": 2, "clueSide": "back"}, " London": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Rome": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "Istanbul": {"type": "perPlayer", "value": 4, "clueSide": "front"}, "Tokyo_123abc": {"type": "perPlayer", "value": 0, "clueSide": "back"}, "Tokyo_456efg": {"type": "perPlayer", "value": 4, "clueSide": "back"}, "Tokyo": {"type": "fixed", "value": 2, "clueSide": "back"}, "Shanghai_123": {"type": "fixed", "value": 12, "clueSide": "front"}, "Sydney": {"type": "fixed", "value": 0, "clueSide": "front"} , "The Modern Gallery": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Renaissance Gallery": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Greco Roman Exhibit": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "The Medieval Exhibit": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "The Hieroglyphs": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "The Sarcophagus Room": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Egyptian Culture Room": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Egyptian Museum": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Naguib Cafe": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Soor el-Azbakeya": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "Qala'at Salah ad-Din": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "El'Arafa 1": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "El'Arafa 2": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "El'Arafa 3": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "El'Arafa 4": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Al-Azhar Mosque": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Khan El-Khalili": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Al-Muizz Street": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Al-Azhar Park": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Bottom of the Shaft": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Tunnel 1": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Tunnel 2": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Tunnel 3": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Fresco Room": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Black Stairs": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Bottom of the Stairs": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Large Hall - 2": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Large Hall - 1": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Throne Room": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Altar Room": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Spiral Staircase": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "The Altar": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Sanctuary: Dimmed": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Sanctuary: Radiant": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Sanctuary: Mystery": {"type": "perPlayer", "value": 4, "clueSide": "front"}, "Tunnel 1a": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Tunnel 2a": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Tunnel 3a": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "The Hieroglyphs - Variant": {"type": "perPlayer", "value": 2, "clueSide": "front"} } ]] PLAYER_CARD_DATA_JSON = [[ { "Tool Belt (0)": { "tokenType": "resource", "tokenCount": 2 }, "Tool Belt (3)": { "tokenType": "resource", "tokenCount": 4 }, "Yithian Rifle": { "tokenType": "resource", "tokenCount": 3 }, "xxx": { "tokenType": "resource", "tokenCount": 3 } } ]] HIDDEN_CARD_DATA = { "Unpleasant Card (Doom)", "Unpleasant Card (Gloom)", "The Case of the Scarlet DOOOOOM!" } LOCATIONS_DATA = JSON.decode(LOCATIONS_DATA_JSON) PLAYER_CARD_DATA = JSON.decode(PLAYER_CARD_DATA_JSON) function onload(save_state) local playArea = getObjectFromGUID('721ba2') playArea.call("updateLocations", {self.getGUID()}) local playerMatWhite = getObjectFromGUID('8b081b') playerMatWhite.call("updatePlayerCards", {self.getGUID()}) local playerMatOrange = getObjectFromGUID('bd0ff4') playerMatOrange.call("updatePlayerCards", {self.getGUID()}) local playerMatGreen = getObjectFromGUID('383d8b') playerMatGreen.call("updatePlayerCards", {self.getGUID()}) local playerMatRed = getObjectFromGUID('0840d5') playerMatRed.call("updatePlayerCards", {self.getGUID()}) local dataHelper = getObjectFromGUID('708279') dataHelper.call("updateHiddenCards", {self.getGUID()}) end