-- 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 = [[ { "Old Road": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Manor": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Hamlet": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Cabinet Room": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Collapsed Corridor": {"type": "fixed", "value": 0, "clueSide": "front"}, "Corridor": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Dining Room": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Entryway": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Trapped Corridor": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Study": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Laboratory": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Domed Chamber": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Chapel": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Basement Hallway": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Reading Room": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Parlor": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Overgrown Path": {"type": "fixed", "value": 0, "clueSide": "front"}, "Entry Hall": {"type": "fixed", "value": 0, "clueSide": "front"}, "Abattoir": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Banquet Hall": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Empty Room": {"type": "fixed", "value": 0, "clueSide": "front"}, "Freezer": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Guest Room": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Kennels": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "Laundry Room": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Oven": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Portraits Corridor": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Servants' Quarters": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Service Corridor": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Stairwell": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Theatre": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "Webbed Corridor": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Wine Cellar": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "Writing Room": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Abbey": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Campsite": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "East Gate": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Guildhall": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "North Gate": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Sanitarium": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "Smithy": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "South Gate": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Surgery": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Tavern": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Town Center": {"type": "fixed", "value": 0, "clueSide": "front"}, "Wagon": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "West Gate": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Mysterious Door (Sealed Shut)": {"type": "fixed", "value": 0, "clueSide": "front"}, "Mysterious Door (And a Mysterious Drawer)": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Library Stairs": {"type": "fixed", "value": 0, "clueSide": "front"}, "Library Entrance": {"type": "fixed", "value": 0, "clueSide": "front"}, "Canopy Sanctum West": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "Canopy Sanctum East": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "Psychology Section": {"type": "fixed", "value": 1, "clueSide": "front"}, "Philosophy Section": {"type": "fixed", "value": 1, "clueSide": "front"}, "Occult Section": {"type": "fixed", "value": 2, "clueSide": "front"}, "Necromancy Section": {"type": "fixed", "value": 3, "clueSide": "front"}, "Mycology Section": {"type": "fixed", "value": 3, "clueSide": "front"}, "Metallurgy Section": {"type": "fixed", "value": 1, "clueSide": "front"}, "Medical Sciences Section": {"type": "fixed", "value": 1, "clueSide": "front"}, "Mathematics Section": {"type": "fixed", "value": 2, "clueSide": "front"}, "Divination Section": {"type": "fixed", "value": 3, "clueSide": "front"}, "Anthropomancy Section": {"type": "fixed", "value": 2, "clueSide": "front"}, "Breeding Pool": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Shimmering Grotto": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Woodland Cemetery": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Graven Cairns": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Hermit's Hovel": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Foul Orchard": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Lotus Field": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Leechridden Swamp": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Flooded Grove": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Grim Backwoods": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Twilight Mire": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Scalding Tarn": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Fungal Reaches": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "Salt Marsh": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Choked Estuary": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Witch's Cottage": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Reflecting Pool": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Forbidden Garden": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Cavern of Souls": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Isolated Chapel": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Murmuring Bosk": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Woodland Stream": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Cooling Spinney": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Sylvan Library": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Weald Clearing": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Abandoned Brigand Camp": {"type": "perPlayer", "value": 1, "clueSide": "front"}, " Stairwell": {"type": "fixed", "value": 0, "clueSide": "front"}, "Orb Reliquary": {"type": "fixed", "value": 0, "clueSide": "front"}, "Locus Beacon": {"type": "fixed", "value": 0, "clueSide": "front"}, "Crown Pedestal": {"type": "fixed", "value": 0, "clueSide": "front"}, "Torture Chamber": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Archways": {"type": "fixed", "value": 0, "clueSide": "front"}, "Unfinished Corridor": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Storeroom": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Sewer Passage": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Service Corridor": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Echo Chamber": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Chandelier Room": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Rubble-Filled Corridor": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Haunted Corridor": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Foyer": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "Altar": {"type": "perPlayer", "value": 2, "clueSide": "front"}, "Vortex to Nowhere": {"type": "fixed", "value": 2, "clueSide": "front"}, "Underground River": {"type": "fixed", "value": 2, "clueSide": "front"}, "Underground Lake": {"type": "fixed", "value": 2, "clueSide": "front"}, "Trickling Bluffs": {"type": "fixed", "value": 3, "clueSide": "front"}, "Thawing Floes": {"type": "fixed", "value": 3, "clueSide": "front"}, "Steep Incline": {"type": "fixed", "value": 2, "clueSide": "front"}, "Loading Yard": {"type": "fixed", "value": 0, "clueSide": "front"}, "Iridescent Sac": {"type": "fixed", "value": 5, "clueSide": "front"}, "Flooded Ruins": {"type": "fixed", "value": 2, "clueSide": "front"}, "Enchanted Tree": {"type": "fixed", "value": 3, "clueSide": "front"}, "Crystal Nursery": {"type": "fixed", "value": 3, "clueSide": "front"}, "Cove Entrance": {"type": "fixed", "value": 0, "clueSide": "front"}, "Siren's Grotto": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Guardians of Mira": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Ghostly Reservoir": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Eldritch Obelisk": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Hidden Door": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Light at the End": {"type": "perPlayer", "value": 3, "clueSide": "front"}, "Narrow Steps": {"type": "fixed", "value": 0, "clueSide": "front"}, " Narrow Steps": {"type": "perPlayer", "value": 1, "clueSide": "front"}, "Cerebral Forest": {"type": "fixed", "value": 1, "clueSide": "front"}, "Cerebral Forest ": {"type": "fixed", "value": 2, "clueSide": "front"}, "Floating Lungs": {"type": "fixed", "value": 1, "clueSide": "front"}, "Intestinal Exchangers": {"type": "fixed", "value": 1, "clueSide": "front"}, "Liver Outcrop": {"type": "fixed", "value": 1, "clueSide": "front"}, "Liver Outcrop ": {"type": "fixed", "value": 2, "clueSide": "front"}, "Rift": {"type": "fixed", "value": 0, "clueSide": "front"}, "Alveolar Glade": {"type": "fixed", "value": 2, "clueSide": "front"}, "Bone Filaments": {"type": "fixed", "value": 2, "clueSide": "front"}, "Bubbling Plasma": {"type": "fixed", "value": 3, "clueSide": "front"}, "Canals of Hering": {"type": "fixed", "value": 2, "clueSide": "front"}, "Cholecystic Isle": {"type": "fixed", "value": 2, "clueSide": "front"}, "Cliffs of Dermis": {"type": "fixed", "value": 3, "clueSide": "front"}, "Uro Boulders": {"type": "fixed", "value": 2, "clueSide": "front"}, "Undulating Pseudopods": {"type": "fixed", "value": 2, "clueSide": "front"}, "Roost Oculorum": {"type": "fixed", "value": 2, "clueSide": "front"}, "Mucus Swamp": {"type": "fixed", "value": 3, "clueSide": "front"}, "Leukocyte Geysers": {"type": "fixed", "value": 3, "clueSide": "front"}, "Hemostreams": {"type": "fixed", "value": 3, "clueSide": "front"}, "Epithelium Carpet": {"type": "fixed", "value": 2, "clueSide": "front"}, "Corroded Troche": {"type": "fixed", "value": 2, "clueSide": "front"}, "Corneum Plateaus": {"type": "fixed", "value": 5, "clueSide": "front"}, "Cochlic Monolith": {"type": "fixed", "value": 3, "clueSide": "front"} } ]] PLAYER_CARD_DATA_JSON = [[ { "The Necronomicon (Alhazred Translation)": { "tokenType": "resource", "tokenCount": 2 }, "Athanasias": { "tokenType": "resource", "tokenCount": 2 }, "Delusions": { "tokenType": "resource", "tokenCount": 4 }, "Dance of Sarnath (1)": { "tokenType": "resource", "tokenCount": 4 } } ]] 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