#_S      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                               ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` abcdefghijklmnopqrstuvwxyz{|}~None"#$/8X_`gm%Allure,Description of default key-command bindings.eIn addition to these commands, mouse and keys have a standard meaning when navigating various menus.None"#$/8X_`gm'NAllure2Description of default screen layout and features.None"#$/8X_`gm(-  !"#$%&'()*+,-./- +*)('&%$#"! .,-/None"#$/8X_`gm*E0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstEonmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?rs>=<;:9876543210pqtNone"#$/8X_`gm,Quvwxyz{|}~Q~}|{zyxwvuNone"#$/8X_`gm0&;;None"#$/8X_`gm2q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqqnmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&"%$#!      opqNone"#$/8X_`gm<@xAllureNA special player, for summoned actors that don't belong to any of the main players of a given game. E.g., animals summoned during a brawl game between two hero factions land in the horror faction. In every game, either all factions for which summoning items exist should be present or a horror player should be added to host them.rstuvwxyz{|}~rstuvwxyz{|}~ None"#$/8X_`gm=n None"#$/8X_`gmB,3      !"#$%&'()*+,-./012345633210/.-,+*)('&%$#"!      456 None"#$/8MX_`gmI7Allure"Client state transformation monad.<Allurecurrent global state=Allurecurrent client state>AllureUI state, empty for AI clients?Allure"this client connection information@Allureconnection to the save threadAAllureURun the main client loop, with the given arguments and empty initial states, in the IO monad. 789:;<=>?@A A:;<=>?@789 None"#$/8MX_`gmONAllure"Server state transformation monad.SAllurecurrent global stateTAllurecurrent server stateUAllure$client-server connection informationVAllureconnection to the save threadWAllureURun the main server loop, with the given arguments and empty initial states, in the IO monad. NOPQRSTUVW WQRSTUVNOPSafe"#$/8X_`gmP None"#$/8X_`gmP``None"#$/8X_`gmQ abcdefghijk fedcbaghikjNone"#$/8X_`gmRlmnopqrstuvwxyz{|}~~}|{zyxwvutsrqponmlNone"#$/8X_`gmT'None"#$/8X_`gm_?AllureyTie the LambdaHack engine client, server and frontend code with the game-specific content definitions, and run the game.8The custom monad types to be used are determined by the  executorSer call, which in turn calls  executorCli. If other functions are used in their place- the types are different and so the whole pattern of computation differs. Which of the frontends is run inside the UI client depends on the flags supplied when compiling the engine library. Similarly for the choice of native vs JS builds.AllureHRuns tieKnotForAsync in an async and applies the main thread workaround. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                             ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? t @ A B C D E    F F G H H I J K L M N O P Q R S T U V W X Y Z [ [ \ ] ] ^ _ ` a b c d e f g h i j klmnopqrstuvwxyz{|}~>?CtAB+Allure-0.10.2.0-inplaceClient.UI.Content.InputClient.UI.Content.ScreenContent.ItemKindTemporaryContent.ItemKindBlastContent.ItemKindOrganContent.ItemKindActorContent.ItemKindEmbedContent.ModeKindPlayerContent.TileKindContent.PlaceKind(Implementation.MonadClientImplementation(Implementation.MonadServerImplementationContent.RuleKindContent.ItemKindContent.CaveKindContent.ModeKindTieKnot Paths_AllurestandardKeysAndMouseapplyTsstandardLayoutAndFeatures S_PAINTEDS_MORE_PRACTICALS_MORE_PROJECTING S_MORE_TIDYS_MORE_PATIENTS_MORE_MODIFYINGS_MORE_DISPLACINGS_MORE_COMBATIVE S_MORE_MOBILES_PARSIMONIOUS S_WITHHOLDINGS_DISPOSSESSED S_IMPATIENT S_RETAININGS_IRREPLACEABLE S_PACIFIED S_IMMOBILES_POISON_RESISTANTS_SLOW_RESISTANT S_POISONEDS_REGENERATING S_FRENZIEDS_DRUNKS_DEAF S_DEAFENED S_SHINY_EYEDS_MELEE_DEFLECTINGS_RANGED_DEFLECTINGS_ROSE_SMELLINGS_FOUL_SMELLINGS_KEEN_SMELLINGS_BLIND S_FAR_SIGHTEDS_SLOWEDS_HASTED S_RESOLUTE S_DEFENSELESSS_PROTECTED_FROM_RANGEDS_PROTECTED_FROM_MELEE S_WEAKENEDS_STRENGTHENEDnoStatGN bonusStatGNtemporariesGNSingleton temporaries BLAST_SOURCE COLD_SOURCE WATER_SOURCE OIL_SOURCE FIRE_SOURCE STORY_TELLING ADVERTISEMENTS_CURRENT_RECHARGES_CURRENT_DISCHARGES_RHINO_HOLOGRAMS_PAINT_DROPLETS_FOCUSED_SLOWNESS_MISTS_SLOWNESS_MISTS_VIOLENT_SLOWNESS_MIST ARMOR_MISCS_FOCUSED_BURNING_OIL_4S_FOCUSED_BURNING_OIL_3S_FOCUSED_BURNING_OIL_2S_BURNING_OIL_4S_BURNING_OIL_3S_BURNING_OIL_2S_VIOLENT_BURNING_OIL_4S_VIOLENT_BURNING_OIL_3S_VIOLENT_BURNING_OIL_2 S_PING_PLASHS_POISON_CLOUDS_YOUTH_SPRINKLES_WHISKEY_SPRAY S_EYE_SHINES_SMELLY_DROPLET S_IRON_FILING S_EYE_DROP S_HASTE_SPRAYS_RESOLUTION_DUSTS_DEFENSELESSNESS_RUNOUTS_RANGE_PROTECTIVE_BALMS_MELEE_PROTECTIVE_BALMS_SPARSE_SHOWERS_DENSE_SHOWER S_SLEEP_MISTS_ANTIDOTE_MISTS_ANTI_SLOW_MISTS_WASTES_GLUES_BOILING_WATERS_SMOKE S_DISTORTIONS_WOUNDING_MISTS_HEALING_MIST_2S_HEALING_MISTS_DISTRESSING_ODORS_CALMING_MIST S_PHEROMONES_FOCUSED_GLASS_HAIL S_GLASS_HAILS_FOCUSED_FLASHS_VIOLENT_FLASHS_FOCUSED_CONCUSSION S_CONCUSSIONS_VIOLENT_CONCUSSIONS_FOCUSED_FRAGMENTATIONS_FRAGMENTATIONS_VIOLENT_FRAGMENTATION S_FIRECRACKERblastsGNSingletonblastsGN blastNoStatOfblastBonusStatOfblastsBACKSTORY_NEUTRALBACKSTORY_MIXED BACKSTORY_BADBACKSTORY_GOODBACKSTORY_FLUFF BACKSTORY GENETIC_FLAWGENETIC_FLAW_10GENETIC_FLAW_3ELECTRIC_AMBIENCE S_CRUDE_WELD S_MOUTH_VENTS_HULL_PLATING S_ROBOT_BRAINS_FUEL_FISSURE S_FUEL_VENTS_DUST_FISSURE S_DUST_VENTS_MEDBOT_FISSURE S_MEDBOT_VENTS_COOLING_FISSURES_COOLING_VENT S_LIVE_WIRE S_SMALL_BEAKS_RHINO_INERTIA S_JET_BOOSTER S_COILED_TAILS_POWERFUL_HIND_LEGS S_INK_SACS_FLOTATION_BAGS_RAZORS_HUNGRYS_ANIMAL_STOMACHALCOHOL SCAVENGERS_SPEED_GLAND_10S_SPEED_GLAND_5S_EAR_8S_EAR_6S_EAR_3 S_VISION_16 S_VISION_12 S_VISION_6S_EYE_8S_EYE_6S_EYE_3S_BOILING_VENT S_SCENT_GLANDS_ANIMAL_BRAINS_SAPIENT_BRAINS_INSECT_MORTALITYS_RATLLE S_NOSTRILS_BARKS_ARMORED_SKIN S_HUGE_TAIL S_LARGE_TAILS_SCREECHING_BEAK S_VENOM_FANG S_VENOM_TOOTHS_STING S_BEE_STINGS_BOILING_FISSURES_THORNS_LIPS_TIP S_TENTACLE S_RHINO_HORNS_HORNS_ANTLER S_LARGE_JAWS_JAW S_SMALL_JAWS_SNOUT S_SMALL_CLAW S_HOOKED_CLAWS_FOOTS_FISTorgansGNSingletonorgansGNorgansWIRECUTTING_TOOLSHARPENING_TOOL BONDING_TOOLBREACHING_TOOLPOLE_OR_HANDLEPOLE BLOWTORCH SPOTLIGHTCONSTRUCTION_HOOTERWASTE_CONTAINERTRANQUILIZER_DARTCAN_OF_STICKY_FOAMNEEDLEROASTED_MEAT_CHUNKRAW_MEAT_CHUNKMERCENARY_AMMOMERCENARY_WEAPON COOKED_FOOD S_EMPTY_FLASKS_PERFUME_POTIONS_BULLTEPROOF_VESTGEMSTARTING_WEAPONSTARTING_ARMOR ANY_ARROWRING_OF_OPPORTUNITY_SNIPERFIREPROOF_CLOTHLIGHT_ATTENUATOR WEAK_ARROW ADD_NOCTO_1 ARMOR_RANGED ADD_SIGHTS_WOODEN_TORCHCONSTRUCTION_ROBOTIMMOBILE_ROBOT MOBILE_ROBOTROBOTEXPLOSIVE_MONSTERAQUATIC_MONSTERAQUATIC_ANIMALMERCENARY_HERO CRAWL_HEROIMMOBILE_ANIMAL MOBILE_ANIMALANIMAL SCOUT_MONSTERMOBILE_MONSTERMONSTERCIVILIAN SOLDIER_HERO BRAWLER_HERO AMBUSHER_HERO ESCAPIST_HERO RANGER_HERO SCOUT_HEROHEROactorsGNSingletonactorsGNactorsS_SHARPENED_PIPES_PIPES_STAFFS_HALBERD_SHARPS_HALBERD_BLUNT S_POLL_AXE S_FIRE_AXE S_CROWBAR S_LONG_CLUB S_SHORT_CLUB S_LONG_SPEARS_POLE_CLEAVERS_RAPIER_SHARPS_RAPIER_BLUNTS_DAGGER S_CLEAVERS_LONG_SHARP_HAMMERS_SHORT_SHARP_HAMMERS_LONG_BLUNT_HAMMERS_SHORT_BLUNT_HAMMERS_SHIELD_SHARPS_SHIELD_BLUNTS_HARPOON_SHARPS_HARPOON_CARGOS_SPACESUIT_TORN S_SPACESUITS_SPACESUIT_BOOTS_SPACESUIT_HELMETS_SPACESUIT_GLOVES_SPACESUIT_TROUSERSS_SPACESUIT_JACKET S_WATER_FLASKS_ROSE_WATER_FLASKS_REFRIGERATION_COIL S_OIL_LAMPS_DOUSED_OIL_LAMPS_DOUSED_WOODEN_TORCHS_COOKED_PUMPKIN S_PUMPKIN S_COOKED_BARK S_SPICY_BARKS_COOKED_FLOWER S_DULL_FLOWER S_COOKED_HERBS_FRAGRANT_HERBS_COOKED_FRUITS_RECONFIGURED_FRUIT S_COOKED_LEAF S_THIC_LEAFS_COOKED_FUNGUSS_FRAYED_FUNGUSS_COOKED_BERRYS_ENCHANCED_BERRY CLOTH_RAGSTARTING_HAMMERPERFUME THICK_CLOTHSPACESUIT_PARTPOLE_AND_STEELHANDLE_AND_STEELHANDLE STEEL_SCRAPFIRE_FIGHTING_ITEM EDIBLE_PLANTMUSEALWORKSHOP_BENCHBARREL_CONTENTSDECONTAMINATION_CHAMBER OIL_PUDDLESHUTTLE_HARDWARE LIFT_TRAP LIFT_DOWNLIFT_UPDOOR_TRAP_PUSHSTAIRS_TRAP_DOWN_OILEDIBLE_PLANT_RIPE JEWELRY_CASE DEPOSIT_BOX BLOOD_ON_WALL CRACKED_FLUE DISPLAY_3DFIRE_FIGHTING_GEARRUINED_FIRST_AID_KITDISENGAGED_DOCKING_GEARBLACK_STARRY_SKYJEWELRY_DISPLAY_TRAPABANDONED_CACHESTAIRS_DOWN_OUTDOORSTAIRS_UP_OUTDOORS_SANDSTONE_ROCK FROZEN_GROUND STRAIGHT_PATH SHALLOW_WATERLECTERNSTAIRS_TRAP_DOWNSTAIRS_TRAP_UPESCAPE STAIRS_DOWN STAIRS_UP DOORWAY_TRAPDOORWAY_TRAP_UNKNOWNRUBBLEFROSTBIG_FIRE SMALL_FIRE_5 SMALL_FIRESIGNAGE SUBTLE_FRESCOOBSCENE_PICTOGRAMSCRATCH_ON_WALLembedsGNSingletonembedsGNembeds playerHeroplayerAntiHeroplayerCivilian playerMonsterplayerAntiMonster playerAnimal playerHorrorplayerMonsterTouristplayerHunamConvictplayerAnimalMagnificentplayerAnimalExquisite hiHeroShort hiHeroMedium hiHeroLong hiDweller playerRobotS_UNDERBRUSH_DARKS_UNDERBRUSH_LITS_STAIRCASE_TRAP_DOWN_OILS_HARDWARE_RACKS_SHUTTLE_HULLS_REINFORCED_WALL S_LIFT_SHAFT S_FROZEN_PATH S_OIL_SPILL S_POOL_DARK S_POOL_LITBARREL STUCK_DOORFLOOR_ACTOR_ITEM_LITFLOOR_ACTOR_ITEM TRAPPED_DOOR CACHE_SHUTTLE CACHE_MAZE CACHE_JEWELRY CACHE_DEPOSITRUBBLE_OR_WASTE_DARKRUBBLE_OR_WASTE_LITORDINARY_LIFT_DOWNORDINARY_LIFT_UPESCAPE_SPACESHIP_DOWNWELDED_LIFT_UPWELDED_STAIRCASE_UPDECON_LIFT_DOWN DECON_LIFT_UPDECON_STAIRCASE_DOWNDECON_STAIRCASE_UPGATED_LIFT_DOWN GATED_LIFT_UPSTAIRCASE_LIFT_DOWNSTAIRCASE_LIFT_UPLIFT_TERMINAL_DARKLIFT_TERMINAL_LITOIL_RESIDUE_DARKOIL_RESIDUE_LIT DOORLESS_WALL PUMPS_DARK PUMPS_LITDOORLESS_MACHINERY RECT_WINDOWSASHES_SMOKE_DARKASHES_SMOKE_LITUNDERBRUSH_CLUMP_DARKUNDERBRUSH_CLUMP_LITBUSH_GROVE_DARKBUSH_GROVE_LITS_SHADED_GROUNDS_FLOOR_ASHES_DARKS_FLOOR_ASHES_LITS_FLOOR_ACTOR_DARKS_FLOOR_ACTOR_LIT S_SMOKE_LIT S_FOG_LIT S_BUSH_LITS_PULPIT S_TREE_DARK S_TREE_LIT S_LAMP_POSTESCAPE_OUTDOOR_DOWN ESCAPE_DOWN ESCAPE_UPGATED_STAIRCASE_DOWNSTAIRCASE_OUTDOOR_DOWNORDINARY_STAIRCASE_DOWNSTAIRCASE_DOWNGATED_STAIRCASE_UPSTAIRCASE_OUTDOOR_UPORDINARY_STAIRCASE_UP STAIRCASE_UP SIGNBOARDSTAIR_TERMINAL_DARKSTAIR_TERMINAL_LITFOG_CLUMP_DARK FOG_CLUMP_LITBUSH_CLUMP_DARKBUSH_CLUMP_LITSMOKE_CLUMP_DARKSMOKE_CLUMP_LITTREE_SHADE_WALKABLE_DARKTREE_SHADE_WALKABLE_LIT EXIT_SET_LIT HUNT_SET_LITMUSEUM_SET_DARKMUSEUM_SET_LIT ROGUE_SETARENA_SET_DARK ARENA_SET_LITAMBUSH_SET_DARKAMBUSH_SET_LITESCAPE_SET_DARKESCAPE_SET_LIT ZOO_SET_DARK ZOO_SET_LITSHOOTOUT_SET_LIT BRAWL_SET_LITBATTLE_SET_DARKBATTLE_SET_LITPOWER_SET_DARK POWER_SET_LIT NOISE_SET_LITEMPTY_SET_DARK EMPTY_SET_LITOILY_FLOOR_DARKOILY_FLOOR_LITTRAPPABLE_WALL OPENABLE_WALLEMPTY_AIRLOCK_FENCE AIRLOCK_FENCE ORIELS_FENCETRANSPORT_ROUTEHABITAT_CONTAINMENT_WALLFLOOR_ARENA_DARKFLOOR_ARENA_LIT DIRT_DARKDIRT_LITDAMP_FLOOR_DARKDAMP_FLOOR_LIT LAB_TRAIL_LITSAFE_TRAIL_LIT TRAIL_LITFLOOR_CORRIDOR_DARKFLOOR_CORRIDOR_LIT FILLER_WALLgroupNamesSingleton groupNamescontentWELDED_WALLED_STAIRCASEWELDED_OPEN_STAIRCASEWELDED_TINY_STAIRCASEWELDED_WALLED_LIFTWELDED_OPEN_LIFTWELDED_TINY_LIFTGATED_CLOSED_LIFTGATED_OPEN_LIFTGATED_TINY_LIFTDECON_WALLED_LIFTDECON_OPEN_LIFTDECON_TINY_LIFTDECON_WALLED_STAIRCASEDECON_OPEN_STAIRCASEDECON_TINY_STAIRCASEESCAPE_FROM_SPACESHIP_DOWN CLOSED_LIFT WALLED_LIFT OPEN_LIFT TINY_LIFTRAIDEXITMUSEUM RESIDENTIALOUTDOOR_WALLED_STAIRCASEOUTDOOR_CLOSED_STAIRCASEOUTDOOR_TINY_STAIRCASEGATED_CLOSED_STAIRCASEGATED_OPEN_STAIRCASEGATED_TINY_STAIRCASEWALLED_STAIRCASECLOSED_STAIRCASEOPEN_STAIRCASETINY_STAIRCASEOUTDOOR_ESCAPE_DOWNINDOOR_ESCAPE_UPINDOOR_ESCAPE_DOWNEMPTYNOISEBATTLEAMBUSHARENASHOOTOUTBRAWLZOO LABORATORYROGUECliImplementationrunCliImplementationCliStatecliState cliClient cliSessioncliDict cliToSave executorCli$$fMonadClientAtomicCliImplementation*$fMonadClientWriteRequestCliImplementation*$fMonadClientReadResponseCliImplementation $fMonadClientUICliImplementation#$fMonadClientSetupCliImplementation$fMonadClientCliImplementation"$fMonadClientReadCliImplementation"$fMonadStateWriteCliImplementation!$fMonadStateReadCliImplementation$fMonadCliImplementation$fFunctorCliImplementation$fApplicativeCliImplementationSerImplementationrunSerImplementationSerStateserState serServerserDict serToSave executorSer$$fMonadServerAtomicSerImplementation"$fMonadServerCommSerImplementation$fMonadServerSerImplementation"$fMonadStateWriteSerImplementation!$fMonadStateReadSerImplementation$fMonadSerImplementation$fFunctorSerImplementation$fApplicativeSerImplementation standardRulesGARDENING_TOOLLIQUID_NITROGEN COOKED_PLANT CLOTHING_MISC ARMOR_LOOSEHARPOONotherItemContentitems CAVE_POWER CAVE_CASINO CAVE_EXIT CAVE_MUSEUMCAVE_RESIDENTIAL CAVE_BRIDGE CAVE_SAFARI_3 CAVE_SAFARI_2 CAVE_SAFARI_1 CAVE_BATTLE CAVE_AMBUSHCAVE_ZOO CAVE_ESCAPE CAVE_HUNT CAVE_SHOOTOUTCAVE_BRAWL_ALT CAVE_BRAWL CAVE_RAIDCAVE_OUTERMOSTCAVE_SHALLOW_ROGUE CAVE_NOISECAVE_LABORATORY CAVE_ARENA CAVE_ROGUE DEFENSE_EMPTYDEFENSEBATTLE_SURVIVALBATTLE_DEFENSESAFARI_SURVIVALCRAWL_SURVIVAL CRAWL_EMPTYSHORTSEEDIGSAFARIRANGEDBURNINGNIGHTHUNTPERILOUSFOGGYCRAWLLONGtieKnotForAsynctieKnotversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir