packages feed

Allure 0.7.0.0 → 0.7.1.0

raw patch · 22 files changed

+247/−175 lines, 22 filesdep ~LambdaHackdep ~random

Dependency ranges changed: LambdaHack, random

Files

Allure.cabal view
@@ -5,7 +5,7 @@ -- PVP summary:+-+------- breaking API changes --             | | +----- minor or non-breaking API additions --             | | | +--- code changes with no API change-version:       0.7.0.0+version:       0.7.1.0 synopsis:      Near-future Sci-Fi roguelike and tactical squad game description:   Allure of the Stars                is a near-future Sci-Fi roguelike and tactical squad game.@@ -72,7 +72,7 @@                       Content.TileKind,                       TieKnot,                       Paths_Allure-  build-depends:      LambdaHack >= 0.7.0.0 && < 0.7.1.0,+  build-depends:      LambdaHack >= 0.7.1.0 && < 0.7.2.0,                       template-haskell >= 2.6,                        async      >= 2,
CHANGELOG.md view
@@ -1,3 +1,10 @@+## [v0.7.1.0, aka 'Ancient troubles'](https://github.com/AllureOfTheStars/Allure/compare/v0.7.0.0...v0.7.1.0)++- add amazing cave and item (actor, blast, organ) descriptions+- package for Windows as an installer and also as zip archives+- fix a crash from SDL frontend under some OpenGL drivers (no thread-safety)+- add WWW address to the Main Menu, for other sites that may run our JS blob+ ## [v0.7.0.0, aka 'The dice are cast'](https://github.com/AllureOfTheStars/Allure/compare/v0.6.2.0...v0.7.0.0)  - decouple tile searching from tile alteration
CREDITS view
@@ -4,6 +4,7 @@ Andres Loeh Mikolaj Konarski Krzysztof Pławski+@Peritract   Fonts 16x16x.fon, 8x8x.fon and 8x8xb.fon are are taken from
GameDefinition/Client/UI/Content/KeyKind.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.
GameDefinition/Content/CaveKind.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.@@ -65,7 +66,7 @@   , clegendLitTile  = "legendLit"   , cescapeGroup    = Nothing   , cstairFreq      = [("staircase lift", 100)]-  , cdesc         = ""+  , cdesc         = "Winding tunnels stretch into the dark."   } rogue2 = rogue   { cfreq         = [("deep random", 20)]@@ -134,7 +135,7 @@   , cdarkCorTile  = "labTrailLit"  -- let lab smoke give off light always   , clitCorTile   = "labTrailLit"   , cstairFreq    = [("staircase lift", 100)]-  , cdesc         = "An experiment (or was it manufacturing?) had gone wrong here."+  , cdesc         = "Shattered glassware and the sharp scent of spilt chemicals show that something terrible happened here."   } empty = rogue   { csymbol       = 'E'
GameDefinition/Content/ItemKind.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.@@ -480,6 +481,7 @@   , irarity  = [(6, 9), (10, 9)]   , ieffects = [ Unique, ELabel "of Attraction", Impress, RefillCalm (-20)                , OnSmash (Explode "pheromone") ]+  -- , idesc    = ""   } potion3 = potion   { ieffects = [ RefillHP 5, DropItem 1 maxBound COrgan "poisoned"@@ -539,6 +541,7 @@                , Impress, RefillCalm (-60)                , OnSmash (Explode "healing mist 2")                , OnSmash (Explode "pheromone") ]+  -- , idesc    = ""   }  -- * Non-exploding consumables, not specifically designed for throwing@@ -742,6 +745,7 @@                , Recharging (RefillHP 1) ]                ++ ieffects necklace   , ifeature = Durable : ifeature necklace+  -- , idesc    = ""   } necklace2 = necklace   { ifreq    = [("treasure", 100)]  -- just too nasty to call it useful@@ -789,6 +793,7 @@                , Recharging (RefillCalm (-1)) ]  -- fake "hears something" :)                ++ ieffects necklace   , ifeature = Durable : ifeature necklace+  -- , idesc    = ""   } necklace8 = necklace   { iaspects = [Timeout $ (1 `d` 3 + 3 - 1 `dl` 3) * 5]@@ -903,6 +908,7 @@   , ieffects = [ Unique, ELabel "of Rush"  -- no explosion, because Durable                , EqpSlot EqpSlotAddSpeed ]   , ifeature = Durable : ifeature ring+  -- , idesc    = ""   } ring7 = ring   { ifreq    = [("useful", 10), ("ring of opportunity sniper", 1) ]@@ -1106,6 +1112,7 @@   , idamage  = toDmg $ 8 `d` 1   , iaspects = iaspects hammer ++ [Timeout $ (1 `d` 2 + 3 - 1 `dl` 2) * 2]   , ieffects = ieffects hammer ++ [Unique, Recharging $ Paralyze 10]+  -- , idesc    = ""   } hammerSpark = hammer   { iname    = "Grand Smithhammer"@@ -1115,6 +1122,7 @@   , iaspects = iaspects hammer                ++ [AddShine 3, Timeout $ (1 `d` 4 + 4 - 1 `dl` 4) * 2]   , ieffects = ieffects hammer ++ [Unique, Recharging $ Explode "spark"]+  -- , idesc    = ""   } sword = ItemKind   { isymbol  = symbolPolearm
GameDefinition/Content/ItemKindActor.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.@@ -46,18 +47,26 @@                , AddAbility AbAlter 2 ]   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "A hardened veteran of combat."   , ikit     = [ ("fist", COrgan), ("foot", COrgan), ("eye 6", COrgan)                , ("sapient brain", COrgan) ]   } warrior2 = warrior-  { iname    = "pilot" }+  { iname    = "pilot"+  -- , idesc    = ""+  } warrior3 = warrior-  { iname    = "engineer" }+  { iname    = "engineer"+  -- , idesc    = ""+   } warrior4 = warrior-  { iname    = "doctor" }+  { iname    = "doctor"+  -- , idesc    = ""+  } warrior5 = warrior-  { iname    = "hacker" }+  { iname    = "hacker"+  -- , idesc    = ""+  }  scout = warrior   { iname    = "scout"@@ -66,11 +75,13 @@                ++ [ ("add sight", CEqp)                   , ("armor ranged", CEqp)                   , ("add nocto 1", CInv) ]+  -- , idesc    = ""   } ranger = warrior   { iname    = "ranger"   , ifreq    = [("ranger hero", 100), ("mobile", 1)]   , ikit     = ikit warrior ++ [("weak arrow", CInv), ("armor ranged", CEqp)]+  -- , idesc    = ""   } escapist = warrior   { iname    = "escapist"@@ -82,6 +93,7 @@                   , ("flask", CInv)                   , ("light source", CInv)                   , ("blanket", CInv) ]+  -- , idesc    = ""   } ambusher = warrior   { iname    = "ambusher"@@ -90,25 +102,37 @@                ++ [ ("ring of opportunity sniper", CEqp)                   , ("light source", CEqp), ("wooden torch", CInv)                   , ("weak arrow", CInv), ("any arrow", CSha), ("flask", CSha) ]+  -- , idesc    = ""   } soldier = warrior   { iname    = "soldier"   , ifreq    = [("soldier hero", 100), ("mobile", 1)]   , ikit     = ikit warrior ++ [("starting weapon", CEqp)]+  -- , idesc    = ""   }  civilian = warrior   { iname    = "clerk"   , ifreq    = [("civilian", 100), ("mobile", 1)]-  , iflavour = zipPlain [BrBlack] }+  , iflavour = zipPlain [BrBlack]+  -- , idesc    = ""+  } civilian2 = civilian-  { iname    = "hairdresser" }+  { iname    = "hairdresser"+  -- , idesc    = ""+  } civilian3 = civilian-  { iname    = "lawyer" }+  { iname    = "lawyer"+  -- , idesc    = ""+  } civilian4 = civilian-  { iname    = "peddler" }+  { iname    = "peddler"+  -- , idesc    = ""+  } civilian5 = civilian-  { iname    = "tax collector" }+  { iname    = "tax collector"+  -- , idesc    = ""+  }  -- * Aliens @@ -247,7 +271,7 @@   , iaspects = [ AddMaxHP 12, AddMaxCalm 70, AddSpeed 24, AddNocto 2 ]   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "An opportunistic predator, feeding on carrion and the weak."   , ikit     = [ ("small jaw", COrgan), ("eye 6", COrgan), ("nostril", COrgan)                , ("animal brain", COrgan) ]   }@@ -270,7 +294,7 @@       -- on either side, are just too frustrating.   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "It soars high above, searching for vulnerable prey."   , ikit     = [ ("screeching beak", COrgan)  -- in reality it grunts and hisses                , ("small claw", COrgan), ("eye 7", COrgan)                , ("animal brain", COrgan) ]@@ -289,7 +313,7 @@                , AddAbility AbAlter (-2) ]  -- can't use stairs nor doors   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "Its only defence is the terrible stench."   , ikit     = [ ("scent gland", COrgan)                , ("small claw", COrgan), ("snout", COrgan)                , ("nostril", COrgan), ("eye 3", COrgan)@@ -309,7 +333,7 @@                , AddAbility AbAlter (-2) ]  -- can't use stairs nor doors   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "When threatened, it rolls into a ball."   , ikit     = [ ("hooked claw", COrgan), ("snout", COrgan)                , ("armored skin", COrgan), ("armored skin", COrgan)                , ("nostril", COrgan), ("eye 3", COrgan)@@ -329,7 +353,7 @@                , AddAbility AbAlter (-2) ]  -- can't use stairs nor doors   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "Numbing venom ensures that even the fastest prey has no escape."   , ikit     = [ ("venom tooth", COrgan), ("small claw", COrgan)                , ("eye 3", COrgan), ("nostril", COrgan)                , ("animal brain", COrgan) ]@@ -348,7 +372,7 @@                , AddAbility AbAlter (-2) ]  -- can't use stairs nor doors   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "Beware its rattle - it serves as a warning of an agonising death."   , ikit     = [ ("venom fang", COrgan)                , ("eye 4", COrgan), ("nostril", COrgan)                , ("animal brain", COrgan) ]@@ -366,7 +390,7 @@   , iaspects = [ AddMaxHP 41, AddMaxCalm 60, AddSpeed 18, AddNocto 2 ]   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "Larger and more aggressive than any other lizard."   , ikit     = [ ("large tail", COrgan), ("jaw", COrgan)                , ("hooked claw", COrgan), ("speed gland 4", COrgan)                , ("armored skin", COrgan), ("eye 3", COrgan)@@ -386,7 +410,7 @@   , iaspects = [ AddMaxHP 20, AddMaxCalm 70, AddSpeed 32, AddNocto 2 ]   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "Skulking in the shadows, waiting for easy prey."   , ikit     = [ ("jaw", COrgan), ("eye 6", COrgan), ("nostril", COrgan)                , ("animal brain", COrgan) ]   }@@ -403,7 +427,7 @@   , iaspects = [ AddMaxHP 41, AddMaxCalm 70, AddSpeed 18, AddNocto 2 ]   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "An armored predator from the dawn of time."   , ikit     = [ ("large jaw", COrgan), ("large tail", COrgan)                , ("small claw", COrgan)                , ("armored skin", COrgan), ("eye 6", COrgan)@@ -447,7 +471,7 @@                , AddAbility AbAlter (-2) ]  -- can't use stairs nor doors   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "Every bee would die for the queen."   , ikit     = [ ("bee sting", COrgan), ("vision 6", COrgan)                , ("insect mortality", COrgan), ("animal brain", COrgan) ]   }@@ -466,7 +490,7 @@                , AddArmorMelee 80, AddArmorRanged 40 ]   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "A vicious cloud of stings and hate."   , ikit     = [ ("sting", COrgan), ("vision 8", COrgan)                , ("insect mortality", COrgan), ("animal brain", COrgan) ]   }@@ -484,7 +508,7 @@                , AddAbility AbWait 1, AddAbility AbMelee 1 ]   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "Each branch bears long, curved thorns."   , ikit     = [("thorn", COrgan), ("armored skin", COrgan)]   } 
GameDefinition/Content/ItemKindBlast.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.@@ -92,7 +93,7 @@                     $ toGroupName $ "firecracker" <+> tshow (n - 1)                   | n > 2 ]   , ifeature = [toVelocity 5, Fragile, Identified]-  , idesc    = ""+  , idesc    = "Scraps of burnt paper, covering little pockets of black powder, buffeted by colorful explosions."   , ikit     = []   } firecracker7 = firecracker 7@@ -119,7 +120,7 @@   -- Linger 10, because sometimes it takes 2 turns due to starting just   -- before actor turn's end (e.g., via a necklace).   , ifeature = [toLinger 10, Fragile, Identified]  -- 2 steps, 1 turn-  , idesc    = ""+  , idesc    = "A pleasant scent."   , ikit     = []   } pheromone = ItemKind@@ -135,7 +136,7 @@   , iaspects = []   , ieffects = [Impress, RefillCalm (-10)]   , ifeature = [toVelocity 10, Fragile, Identified]  -- 2 steps, 2 turns-  , idesc    = ""+  , idesc    = "A sharp, strong scent."   , ikit     = []   } mistCalming = ItemKind  -- unused@@ -151,7 +152,7 @@   , iaspects = []   , ieffects = [RefillCalm 2]   , ifeature = [toVelocity 5, Fragile, Identified]  -- 1 step, 1 turn-  , idesc    = ""+  , idesc    = "A soothing, gentle cloud."   , ikit     = []   } odorDistressing = ItemKind@@ -167,7 +168,7 @@   , iaspects = []   , ieffects = [RefillCalm (-20)]   , ifeature = [toLinger 10, Fragile, Identified]  -- 2 steps, 1 turn-  , idesc    = ""+  , idesc    = "It turns the stomach."   , ikit     = []   } mistHealing = ItemKind@@ -183,7 +184,7 @@   , iaspects = [AddShine 1]   , ieffects = [RefillHP 2]   , ifeature = [toVelocity 5, Fragile, Identified]  -- 1 step, 1 turn-  , idesc    = ""+  , idesc    = "It fills the air with light and life."   , ikit     = []   } mistHealing2 = ItemKind@@ -199,7 +200,7 @@   , iaspects = [AddShine 2]   , ieffects = [RefillHP 4]   , ifeature = [toVelocity 5, Fragile, Identified]  -- 1 step, 1 turn-  , idesc    = ""+  , idesc    = "At its touch, wounds close and bruises fade."   , ikit     = []   } mistWounding = ItemKind@@ -215,7 +216,7 @@   , iaspects = []   , ieffects = [RefillHP (-2)]   , ifeature = [toVelocity 5, Fragile, Identified]  -- 1 step, 1 turn-  , idesc    = ""+  , idesc    = "The air itself stings and itches."   , ikit     = []   } distortion = ItemKind@@ -231,7 +232,7 @@   , iaspects = []   , ieffects = [Teleport $ 15 + 1 `d` 10]   , ifeature = [toLinger 10, Fragile, Identified]  -- 2 steps, 1 turn-  , idesc    = ""+  , idesc    = "The air shifts oddly, as though light is being warped."   , ikit     = []   } glassPiece = ItemKind  -- when blowing up windows@@ -247,7 +248,7 @@   , iaspects = []   , ieffects = [RefillHP (-1)]  -- high velocity, so can't do idamage   , ifeature = [toLinger 20, Fragile, Identified]  -- 4 steps, 1 turn-  , idesc    = ""+  , idesc    = "Swift, sharp edges."   , ikit     = []   } smoke = ItemKind  -- when stuff burns out  -- unused@@ -263,7 +264,7 @@   , iaspects = []   , ieffects = []   , ifeature = [toVelocity 20, Fragile, Identified]  -- 4 steps, 2 turns-  , idesc    = ""+  , idesc    = "Twirling clouds of grey smoke."   , ikit     = []   } boilingWater = ItemKind@@ -279,7 +280,7 @@   , iaspects = []   , ieffects = [Burn 1]   , ifeature = [toVelocity 30, Fragile, Identified]  -- 6 steps, 2 turns-  , idesc    = ""+  , idesc    = "It bubbles and hisses."   , ikit     = []   } glue = ItemKind@@ -295,7 +296,7 @@   , iaspects = []   , ieffects = [Paralyze 10]   , ifeature = [toVelocity 20, Fragile, Identified]  -- 4 steps, 2 turns-  , idesc    = ""+  , idesc    = "Thick and clinging."   , ikit     = []   } singleSpark = ItemKind@@ -311,7 +312,7 @@   , iaspects = [AddShine 4]   , ieffects = []   , ifeature = [toLinger 5, Fragile, Identified]  -- 1 step, 1 turn-  , idesc    = ""+  , idesc    = "A glowing ember."   , ikit     = []   } spark = ItemKind@@ -327,7 +328,7 @@   , iaspects = [AddShine 4]   , ieffects = [Burn 1]   , ifeature = [toLinger 10, Fragile, Identified]  -- 2 steps, 1 turn-  , idesc    = ""+  , idesc    = "A flash of fire."   , ikit     = []   } @@ -350,7 +351,7 @@   , iaspects = []   , ieffects = [toOrganActorTurn "strengthened" (3 + 1 `d` 3)]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "A thick rain of droplets."   , ikit     = []   } sparseShower = ItemKind@@ -366,7 +367,7 @@   , iaspects = []   , ieffects = [toOrganGameTurn "weakened" (3 + 1 `d` 3)]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "Light droplets that cling to clothing."   , ikit     = []   } protectingBalmMelee = ItemKind@@ -382,7 +383,7 @@   , iaspects = []   , ieffects = [toOrganActorTurn "protected from melee" (3 + 1 `d` 3)]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "A thick ointment that hardens the skin."   , ikit     = []   } protectingBalmRanged = ItemKind@@ -398,7 +399,7 @@   , iaspects = []   , ieffects = [toOrganActorTurn "protected from ranged" (3 + 1 `d` 3)]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "Grease that protects from flying death."   , ikit     = []   } vulnerabilityBalm = ItemKind@@ -431,7 +432,7 @@   , ieffects = [toOrganActorTurn "resolute" (3 + 1 `d` 3)]                  -- short enough duration that @calmEnough@ not a big problem   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "A handful of honest earth, to strengthen the soul."   , ikit     = []   } hasteSpray = ItemKind@@ -447,7 +448,7 @@   , iaspects = []   , ieffects = [toOrganActorTurn "hasted" (3 + 1 `d` 3)]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "A quick spurt."   , ikit     = []   } slownessMist = ItemKind@@ -463,7 +464,7 @@   , iaspects = []   , ieffects = [toOrganGameTurn "slowed" (3 + 1 `d` 3)]   , ifeature = [toVelocity 5, Fragile, Identified]  -- 1 step, 1 turn, mist-  , idesc    = ""+  , idesc    = "Clammy fog, making each movement an effort."   , ikit     = []   } eyeDrop = ItemKind@@ -479,7 +480,7 @@   , iaspects = []   , ieffects = [toOrganActorTurn "far-sighted" (3 + 1 `d` 3)]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "Not to be taken orally."   , ikit     = []   } ironFiling = ItemKind@@ -495,7 +496,7 @@   , iaspects = []   , ieffects = [toOrganActorTurn "blind" (10 + 1 `d` 10)]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "A shaving of bright metal."   , ikit     = []   } smellyDroplet = ItemKind@@ -511,7 +512,7 @@   , iaspects = []   , ieffects = [toOrganActorTurn "keen-smelling" (3 + 1 `d` 3)]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "A viscous lump that stains the skin."   , ikit     = []   } eyeShine = ItemKind@@ -527,7 +528,7 @@   , iaspects = []   , ieffects = [toOrganActorTurn "shiny-eyed" (3 + 1 `d` 3)]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "They almost glow in the dark."   , ikit     = []   } @@ -546,7 +547,7 @@   , iaspects = []   , ieffects = [toOrganActorTurn "drunk" (3 + 1 `d` 3)]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "It burns in the best way."   , ikit     = []   } waste = ItemKind@@ -562,7 +563,7 @@   , iaspects = []   , ieffects = [Burn 1]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "Sodden and foul-smelling."   , ikit     = []   } youthSprinkle = ItemKind@@ -578,7 +579,7 @@   , iaspects = []   , ieffects = [toOrganNone "regenerating"]   , ifeature = [toLinger 10, Fragile, Identified]-  , idesc    = ""+  , idesc    = "Bright and smelling of the Spring."   , ikit     = []   } poisonCloud = ItemKind@@ -594,7 +595,7 @@   , iaspects = []   , ieffects = [toOrganNone "poisoned"]   , ifeature = [toVelocity 10, Fragile, Identified]  -- 2 steps, 2 turns-  , idesc    = ""+  , idesc    = "Choking gas that stings the eyes."   , ikit     = []   } mistAntiSlow = ItemKind@@ -610,7 +611,7 @@   , iaspects = []   , ieffects = [DropItem 1 1 COrgan "slowed"]   , ifeature = [toVelocity 5, Fragile, Identified]  -- 1 step, 1 turn-  , idesc    = ""+  , idesc    = "A cleansing rain."   , ikit     = []   } mistAntidote = ItemKind@@ -626,6 +627,6 @@   , iaspects = []   , ieffects = [DropItem 1 maxBound COrgan "poisoned"]   , ifeature = [toVelocity 5, Fragile, Identified]  -- 1 step, 1 turn-  , idesc    = ""+  , idesc    = "Washes away death's dew."   , ikit     = []   }
GameDefinition/Content/ItemKindEmbed.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.@@ -37,7 +38,7 @@   , iaspects = []   , ieffects = [Ascend True]   , ifeature = [Identified, Durable]-  , idesc    = ""+  , idesc    = "Stairs that rise towards escape."   , ikit     = []   } stairsDown = stairsUp@@ -45,12 +46,14 @@   , iname    = "staircase down"   , ifreq    = [("staircase down", 1)]   , ieffects = [Ascend False]+  , idesc    = ""   } escape = stairsUp   { iname    = "escape"   , ifreq    = [("escape", 1)]   , iflavour = zipPlain [BrYellow]   , ieffects = [Escape]+  , idesc    = ""   } terrainCache = stairsUp   { isymbol  = 'O'@@ -58,6 +61,7 @@   , ifreq    = [("terrain cache", 1)]   , iflavour = zipPlain [BrYellow]   , ieffects = [CreateItem CGround "useful" TimerNone]+  , idesc    = "Glittering gold, just waiting to be taken."   } terrainCacheTrap = ItemKind   { isymbol  = '^'@@ -75,7 +79,7 @@                       , ELabel "", ELabel "", ELabel ""                       , ELabel "", ELabel "" ]]   , ifeature = [Identified]  -- not Durable, springs at most once-  , idesc    = ""+  , idesc    = "It's a trap!"   , ikit     = []   } signboardExit = ItemKind@@ -91,7 +95,7 @@   , iaspects = []   , ieffects = [DetectExit 100]   , ifeature = [Identified, Durable]-  , idesc    = ""+  , idesc    = "A battered sign, carved by unknown hands."   , ikit     = []   } signboardMap = signboardExit@@ -112,7 +116,7 @@   , iaspects = []   , ieffects = [Burn 1, Explode "single spark"]   , ifeature = [Identified, Durable]-  , idesc    = ""+  , idesc    = "A few small logs, burning brightly."   , ikit     = []   } fireBig = fireSmall@@ -122,7 +126,7 @@   , ieffects = [ Burn 2, Explode "spark"                , CreateItem CInv "wooden torch" TimerNone ]   , ifeature = [Identified, Durable]-  , idesc    = ""+  , idesc    = "Glowing with light and warmth."   , ikit     = []   } frost = ItemKind@@ -140,7 +144,7 @@                , RefillCalm 20  -- cold reason                , PushActor (ThrowMod 200 50) ]  -- slippery ice   , ifeature = [Identified, Durable]-  , idesc    = ""+  , idesc    = "Intricate patterns of shining ice."   , ikit     = []   } rubble = ItemKind@@ -160,7 +164,7 @@                       , ELabel "", ELabel "", ELabel ""                       , ELabel "", ELabel "", ELabel "" ]]   , ifeature = [Identified, Durable]-  , idesc    = ""+  , idesc    = "Broken chunks of rock and glass."   , ikit     = []   } staircaseTrapUp = ItemKind@@ -176,7 +180,7 @@   , iaspects = []   , ieffects = [Temporary "be caught in an updraft", Teleport 5]   , ifeature = [Identified]  -- not Durable, springs at most once-  , idesc    = ""+  , idesc    = "A hidden spring, to help the unwary soar."   , ikit     = []   } -- Needs to be separate from staircaseTrapUp, to make sure the item is@@ -186,6 +190,7 @@   { ifreq    = [("staircase trap down", 1)]   , ieffects = [ Temporary "tumble down the stairwell"                , toOrganActorTurn "drunk" (20 + 1 `d` 5) ]+  , idesc    = "A treacherous slab, to teach those who are too proud."   } doorwayTrap = ItemKind   { isymbol  = '^'@@ -202,7 +207,7 @@                       , toOrganActorTurn "slowed" (20 + 1 `d` 5)                       , toOrganActorTurn "weakened" (20 + 1 `d` 5) ]]   , ifeature = [Identified]  -- not Durable, springs at most once-  , idesc    = ""+  , idesc    = "Just turn the handle..."   , ikit     = []   } obscenePictograms = ItemKind@@ -241,7 +246,7 @@                , Recharging $ toOrganActorTurn "far-sighted" (3 + 1 `d` 3)                , Recharging $ toOrganActorTurn "keen-smelling" (3 + 1 `d` 3) ]   , ifeature = [Identified, Durable]-  , idesc    = ""+  , idesc    = "Expensive yet tasteful."   , ikit     = []   } scratchOnWall = ItemKind@@ -257,7 +262,7 @@   , iaspects = []   , ieffects = [Temporary "start making sense of the scratches", DetectHidden 3]   , ifeature = [Identified, Durable]-  , idesc    = ""+  , idesc    = "A seemingly random series of scratches, carved deep into the wall."   , ikit     = []   } pulpit = ItemKind
GameDefinition/Content/ItemKindOrgan.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.@@ -46,7 +47,7 @@   , iaspects = []   , ieffects = []   , ifeature = [Durable, Identified, Meleeable]-  , idesc    = ""+  , idesc    = "Simple but effective."   , ikit     = []   } foot = fist@@ -54,7 +55,7 @@   , ifreq    = [("foot", 50)]   , iverbHit = "kick"   , idamage  = toDmg $ 4 `d` 1-  , idesc    = ""+  , idesc    = "A weapon you can still use if disarmed."   }  -- * Universal weapon organs@@ -67,14 +68,14 @@   , idamage  = toDmg $ 2 `d` 1   , iaspects = [Timeout $ 4 + 1 `d` 4]   , ieffects = [Recharging (toOrganGameTurn "slowed" 2)]-  , idesc    = ""+  , idesc    = "A curved talon."   } smallClaw = fist   { iname    = "small claw"   , ifreq    = [("small claw", 50)]   , iverbHit = "slash"   , idamage  = toDmg $ 2 `d` 1-  , idesc    = ""+  , idesc    = "A pearly spike."   } snout = fist   { iname    = "snout"@@ -82,7 +83,7 @@   , icount   = 1   , iverbHit = "bite"   , idamage  = toDmg $ 2 `d` 1-  , idesc    = ""+  , idesc    = "Sensitive and wide-nostrilled."   } smallJaw = fist   { iname    = "small jaw"@@ -90,7 +91,7 @@   , icount   = 1   , iverbHit = "rip"   , idamage  = toDmg $ 3 `d` 1-  , idesc    = ""+  , idesc    = "Filled with small, even teeth."   } jaw = fist   { iname    = "jaw"@@ -98,7 +99,7 @@   , icount   = 1   , iverbHit = "rip"   , idamage  = toDmg $ 5 `d` 1-  , idesc    = ""+  , idesc    = "Delivers a powerful bite."   } largeJaw = fist   { iname    = "large jaw"@@ -106,7 +107,7 @@   , icount   = 1   , iverbHit = "crush"   , idamage  = toDmg $ 10 `d` 1-  , idesc    = ""+  , idesc    = "Enough to swallow anything in a single gulp."   } horn = fist   { iname    = "horn"@@ -115,7 +116,7 @@   , iverbHit = "impale"   , idamage  = toDmg $ 6 `d` 1   , iaspects = [AddHurtMelee 20]-  , idesc    = ""+  , idesc    = "Sharp and solid, for defence or attack."   }  -- * Special weapon organs@@ -126,7 +127,7 @@   , icount   = 4   , iverbHit = "slap"   , idamage  = toDmg $ 4 `d` 1-  , idesc    = ""+  , idesc    = "Damp and dextrous."   } thorn = fist   { iname    = "thorn"@@ -135,7 +136,7 @@   , iverbHit = "impale"   , idamage  = toDmg $ 1 `d` 3   , ifeature = [Identified, Meleeable]  -- not Durable-  , idesc    = ""+  , idesc    = "Sharp yet brittle."   } boilingFissure = fist   { iname    = "fissure"@@ -154,6 +155,7 @@   , icount   = 3 + 1 `d` 3   , idamage  = toDmg $ 2 `d` 1   , ieffects = [toOrganGameTurn "weakened" (2 + 1 `d` 2)]+  , idesc    = ""   } sulfurFissure = boilingFissure   { iname    = "fissure"@@ -161,6 +163,7 @@   , icount   = 2 + 1 `d` 2   , idamage  = toDmg 0   , ieffects = [RefillHP 5]+  , idesc    = ""   } beeSting = fist   { iname    = "bee sting"@@ -191,7 +194,7 @@   , idamage  = toDmg $ 2 `d` 1   , iaspects = [Timeout $ 5 + 1 `d` 3]   , ieffects = [Recharging (toOrganGameTurn "slowed" (3 + 1 `d` 3))]-  , idesc    = ""+  , idesc    = "A chilling numbness spreads from its bite."   } venomFang = fist   { iname    = "venom fang"@@ -201,7 +204,7 @@   , idamage  = toDmg $ 2 `d` 1   , iaspects = [Timeout $ 7 + 1 `d` 5]   , ieffects = [Recharging (toOrganNone "poisoned")]-  , idesc    = ""+  , idesc    = "Dripping with deadly venom."   } screechingBeak = fist   { iname    = "screeching beak"@@ -211,7 +214,7 @@   , idamage  = toDmg $ 2 `d` 1   , iaspects = [Timeout $ 5 + 1 `d` 5]   , ieffects = [Recharging $ Summon "scavenger" $ 1 + 1 `dl` 2]-  , idesc    = ""+  , idesc    = "Both a weapon and a beacon, calling more scavengers to the meal."   } largeTail = fist   { iname    = "large tail"@@ -221,7 +224,7 @@   , idamage  = toDmg $ 6 `d` 1   , iaspects = [Timeout $ 1 + 1 `d` 3, AddHurtMelee 20]   , ieffects = [Recharging (PushActor (ThrowMod 400 25))]-  , idesc    = ""+  , idesc    = "Slow but heavy."   }  -- Non-weapons@@ -241,7 +244,7 @@   , iaspects = [AddArmorMelee 30, AddArmorRanged 15]   , ieffects = []   , ifeature = [Durable, Identified]-  , idesc    = ""+  , idesc    = "Homemade armour is just as good."   , ikit     = []   } @@ -254,7 +257,7 @@   , icount   = 2   , iverbHit = "glare at"   , iaspects = [AddSight (intToDice n)]-  , idesc    = ""+  , idesc    = "A piercing stare."   } eye2 = eye 2 eye3 = eye 3
GameDefinition/Content/ItemKindTemporary.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.@@ -47,7 +48,7 @@                , Recharging $ tmpNoLonger name                , OnSmash $ tmpNoLonger name ]   , ifeature = [Identified, Fragile, Durable]  -- hack: destroy on drop-  , idesc    = ""+  , idesc    = ""  -- no description needed; stats are enough   , ikit     = []   } 
GameDefinition/Content/ModeKind.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.
GameDefinition/Content/ModeKindPlayer.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.
GameDefinition/Content/PlaceKind.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.
GameDefinition/Content/RuleKind.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE TemplateHaskell #-}--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.
GameDefinition/Content/TileKind.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.
GameDefinition/Main.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.@@ -18,8 +19,11 @@ import qualified GHC.IO.Handle as GHC.IO.Handle import qualified Options.Applicative as OA import           System.Exit+import           System.FilePath import qualified System.IO as SIO +import Game.LambdaHack.Common.File (tryCreateDir)+import Game.LambdaHack.Common.Misc import Game.LambdaHack.Server (serverOptionsPI) import TieKnot @@ -30,8 +34,10 @@   -- For the case when the game is started not on a console.   isTerminal <- SIO.hIsTerminalDevice SIO.stdout   unless isTerminal $ do-    fstdout <- SIO.openFile "stdout.txt" SIO.WriteMode-    fstderr <- SIO.openFile "stderr.txt" SIO.WriteMode+    dataDir <- appDataDir+    tryCreateDir dataDir+    fstdout <- SIO.openFile (dataDir </> "stdout.txt") SIO.WriteMode+    fstderr <- SIO.openFile (dataDir </> "stderr.txt") SIO.WriteMode     GHC.IO.Handle.hDuplicateTo fstdout SIO.stdout     GHC.IO.Handle.hDuplicateTo fstderr SIO.stderr   serverOptions <- OA.execParser serverOptionsPI
GameDefinition/MainMenu.ascii view
@@ -3,7 +3,7 @@ .tti;, GDKLt,        . . .    . .   ,itLDEGLLGED.           :.fi.;ttjjfffLEWW#DL .tti;::GELti    Allure of the Stars  .KtGDEDLfGEDt        ...j;:;ttjjffLD#WWW#Kf .tti;.jGDt                  .  .  ..   ,LDEDLfGEDt      ...t.:itjjfffL WWWWW#K;-jtti,iLDLt                            .  ;jDEEGLGEDt      ,t :itjjffLG  WKWWWWE+jtti,iLDLt    <allureofthestars.com>  .  ;jDEEGLGEDt      ,t :itjjffLG  WKWWWWE jtii: GEf;                                ,iGDEDGGEDt.   tt :itjjffLG  GWEWWWKE jtii: GGj;   {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{.fGDEDGLDDt  tt :itjfffLG   KKKWWWEL jtti. GDj,   {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{  DLDEDGLDD.tj :itjjffLD   LWDKWWWD
GameDefinition/TieKnot.hs view
@@ -1,4 +1,5 @@--- Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+-- Copyright (c) 2008--2011 Andres Loeh+-- Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) -- This file is a part of the computer game Allure of the Stars -- and is released under the terms of the GNU Affero General Public License. -- For license and copyright information, see the file LICENSE.
GameDefinition/config.ui.default view
@@ -1,4 +1,5 @@-; Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+; Copyright (c) 2008--2011 Andres Loeh+; Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) ; This file is a part of the computer game Allure of the Stars ; and is released under the terms of the GNU Affero General Public License. ; For license and copyright information, see the file LICENSE.
Makefile view
@@ -1,11 +1,12 @@-# Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+# Copyright (c) 2008--2011 Andres Loeh+# Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history) # This file is a part of the computer game Allure of the Stars # and is released under the terms of the GNU Affero General Public License. # For license and copyright information, see the file LICENSE. #  play:-	dist/build/Allure/Allure --dbgMsgSer --dumpInitRngs+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --dumpInitRngs  configure-debug: 	cabal configure --enable-profiling --profiling-detail=all-functions -fwith_expensive_assertions --disable-optimization@@ -23,83 +24,81 @@ 	ccjs dist/build/Allure/Allure.jsexe/all.js --compilation_level=ADVANCED_OPTIMIZATIONS --isolation_mode=IIFE --assume_function_wrapper --jscomp_off="*" --externs=node > ../allureofthestars.github.io/play/allure.all.js  frontendRaid:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode raid+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode raid  frontendBrawl:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode brawl+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode brawl  frontendShootout:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode shootout+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode shootout  frontendEscape:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 3 --dumpInitRngs --automateAll --gameMode escape+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 3 --dumpInitRngs --automateAll --gameMode escape  frontendZoo:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 2 --dumpInitRngs --automateAll --gameMode zoo+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 2 --dumpInitRngs --automateAll --gameMode zoo  frontendAmbush:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode ambush+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode ambush  frontendCrawl:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 1 --dumpInitRngs --automateAll --gameMode crawl+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 1 --dumpInitRngs --automateAll --gameMode crawl  frontendSafari:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 2 --dumpInitRngs --automateAll --gameMode safari+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 2 --dumpInitRngs --automateAll --gameMode safari  frontendSafariSurvival:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode "safari survival"+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode "safari survival"  frontendBattle:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode battle+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode battle  frontendBattleSurvival:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode "battle survival"+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 5 --dumpInitRngs --automateAll --gameMode "battle survival"  frontendDefense:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix test --newGame 9 --dumpInitRngs --automateAll --gameMode defense+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix test --newGame 9 --dumpInitRngs --automateAll --gameMode defense   benchMemoryAnim:-	dist/build/Allure/Allure --dbgMsgSer --newGame 1 --maxFps 100000 --benchmark --stopAfterFrames 33000 --automateAll --keepAutomated --gameMode crawl --setDungeonRng 120 --setMainRng 47 --frontendNull --noAnim +RTS -s -A1M -RTS+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --newGame 1 --maxFps 100000 --benchmark --stopAfterFrames 33000 --automateAll --keepAutomated --gameMode crawl --setDungeonRng 120 --setMainRng 47 --frontendNull --noAnim +RTS -s -A1M -RTS  benchBattle:-	dist/build/Allure/Allure --dbgMsgSer --newGame 3 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 1500 --automateAll --keepAutomated --gameMode battle --setDungeonRng 7 --setMainRng 7+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --newGame 3 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 1500 --automateAll --keepAutomated --gameMode battle --setDungeonRng 7 --setMainRng 7  benchAnimBattle:-	dist/build/Allure/Allure --dbgMsgSer --newGame 3 --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 7000 --automateAll --keepAutomated --gameMode battle --setDungeonRng 7 --setMainRng 7+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --newGame 3 --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 7000 --automateAll --keepAutomated --gameMode battle --setDungeonRng 7 --setMainRng 7  benchFrontendBattle:-	dist/build/Allure/Allure --dbgMsgSer --newGame 3 --noAnim --maxFps 100000 --benchmark --stopAfterFrames 1500 --automateAll --keepAutomated --gameMode battle --setDungeonRng 7 --setMainRng 7+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --newGame 3 --noAnim --maxFps 100000 --benchmark --stopAfterFrames 1500 --automateAll --keepAutomated --gameMode battle --setDungeonRng 7 --setMainRng 7  benchCrawl:-	dist/build/Allure/Allure --dbgMsgSer --newGame 1 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 7000 --automateAll --keepAutomated --gameMode crawl --setDungeonRng 0 --setMainRng 0+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --newGame 1 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 7000 --automateAll --keepAutomated --gameMode crawl --setDungeonRng 0 --setMainRng 0  benchFrontendCrawl:-	dist/build/Allure/Allure --dbgMsgSer --newGame 1 --noAnim --maxFps 100000 --benchmark --stopAfterFrames 7000 --automateAll --keepAutomated --gameMode crawl --setDungeonRng 0 --setMainRng 0+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --newGame 1 --noAnim --maxFps 100000 --benchmark --stopAfterFrames 7000 --automateAll --keepAutomated --gameMode crawl --setDungeonRng 0 --setMainRng 0  benchNull: benchBattle benchAnimBattle benchCrawl  bench: benchBattle benchAnimBattle benchFrontendBattle benchCrawl benchFrontendCrawl  nativeBenchCrawl:-	dist/build/Allure/Allure		   --dbgMsgSer --newGame 2 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 2000 --automateAll --keepAutomated --gameMode crawl --setDungeonRng 0 --setMainRng 0+	dist/build/Allure/Allure		   --dbgMsgSer --logPriority 4 --newGame 2 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 2000 --automateAll --keepAutomated --gameMode crawl --setDungeonRng 0 --setMainRng 0  nativeBenchBattle:-	dist/build/Allure/Allure		   --dbgMsgSer --newGame 3 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 1000 --automateAll --keepAutomated --gameMode battle --setDungeonRng 0 --setMainRng 0+	dist/build/Allure/Allure		   --dbgMsgSer --logPriority 4 --newGame 3 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 1000 --automateAll --keepAutomated --gameMode battle --setDungeonRng 0 --setMainRng 0  nativeBench: nativeBenchBattle nativeBenchCrawl  nodeBenchCrawl:-	node dist/build/Allure/Allure.jsexe/all.js --dbgMsgSer --newGame 2 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 2000 --automateAll --keepAutomated --gameMode crawl --setDungeonRng 0 --setMainRng 0+	node dist/build/Allure/Allure.jsexe/all.js --dbgMsgSer --logPriority 4 --newGame 2 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 2000 --automateAll --keepAutomated --gameMode crawl --setDungeonRng 0 --setMainRng 0  nodeBenchBattle:-	node dist/build/Allure/Allure.jsexe/all.js --dbgMsgSer --newGame 3 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 1000 --automateAll --keepAutomated --gameMode battle --setDungeonRng 0 --setMainRng 0+	node dist/build/Allure/Allure.jsexe/all.js --dbgMsgSer --logPriority 4 --newGame 3 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 1000 --automateAll --keepAutomated --gameMode battle --setDungeonRng 0 --setMainRng 0  nodeBench: nodeBenchBattle nodeBenchCrawl  -test-travis-short: test-short- test-travis: test-short test-medium benchNull  test: test-short test-medium benchNull@@ -109,69 +108,73 @@ test-medium: testRaid-medium testBrawl-medium testShootout-medium testEscape-medium testZoo-medium testAmbush-medium testCrawl-medium testSafari-medium testSafariSurvival-medium testBattle-medium testBattleSurvival-medium  testRaid-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 20 --dumpInitRngs --automateAll --keepAutomated --gameMode raid 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 20 --dumpInitRngs --automateAll --keepAutomated --gameMode raid 2> /tmp/teletypetest.log  testBrawl-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 20 --dumpInitRngs --automateAll --keepAutomated --gameMode brawl 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 20 --dumpInitRngs --automateAll --keepAutomated --gameMode brawl 2> /tmp/teletypetest.log  testShootout-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 20 --dumpInitRngs --automateAll --keepAutomated --gameMode shootout 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 20 --dumpInitRngs --automateAll --keepAutomated --gameMode shootout 2> /tmp/teletypetest.log  testEscape-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 3 --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 40 --dumpInitRngs --automateAll --keepAutomated --gameMode escape 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 3 --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 40 --dumpInitRngs --automateAll --keepAutomated --gameMode escape 2> /tmp/teletypetest.log  testZoo-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 2 --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 100 --dumpInitRngs --automateAll --keepAutomated --gameMode zoo 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 2 --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 100 --dumpInitRngs --automateAll --keepAutomated --gameMode zoo 2> /tmp/teletypetest.log  testAmbush-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 20 --dumpInitRngs --automateAll --keepAutomated --gameMode ambush 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 20 --dumpInitRngs --automateAll --keepAutomated --gameMode ambush 2> /tmp/teletypetest.log  testCrawl-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 1 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 200 --dumpInitRngs --automateAll --keepAutomated --gameMode crawl 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 1 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 200 --dumpInitRngs --automateAll --keepAutomated --gameMode crawl 2> /tmp/teletypetest.log  testSafari-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 2 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 100 --dumpInitRngs --automateAll --keepAutomated --gameMode safari 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 2 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 100 --dumpInitRngs --automateAll --keepAutomated --gameMode safari 2> /tmp/teletypetest.log  testSafariSurvival-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 8 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 60 --dumpInitRngs --automateAll --keepAutomated --gameMode "safari survival" 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 8 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 60 --dumpInitRngs --automateAll --keepAutomated --gameMode "safari survival" 2> /tmp/teletypetest.log  testBattle-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 3 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 20 --dumpInitRngs --automateAll --keepAutomated --gameMode battle 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 3 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 20 --dumpInitRngs --automateAll --keepAutomated --gameMode battle 2> /tmp/teletypetest.log  testBattleSurvival-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 7 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 60 --dumpInitRngs --automateAll --keepAutomated --gameMode "battle survival" 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 7 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 60 --dumpInitRngs --automateAll --keepAutomated --gameMode "battle survival" 2> /tmp/teletypetest.log  testDefense-medium:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 9 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 300 --dumpInitRngs --automateAll --keepAutomated --gameMode defense 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 9 --noAnim --maxFps 100000 --frontendTeletype --benchmark --stopAfterSeconds 300 --dumpInitRngs --automateAll --keepAutomated --gameMode defense 2> /tmp/teletypetest.log  test-short-new:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --savePrefix raid --dumpInitRngs --automateAll --keepAutomated --gameMode raid --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --savePrefix brawl --dumpInitRngs --automateAll --keepAutomated --gameMode brawl --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --savePrefix shootout --dumpInitRngs --automateAll --keepAutomated --gameMode shootout --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --savePrefix escape --dumpInitRngs --automateAll --keepAutomated --gameMode escape --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --savePrefix zoo --dumpInitRngs --automateAll --keepAutomated --gameMode zoo --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --savePrefix ambush --dumpInitRngs --automateAll --keepAutomated --gameMode ambush --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --savePrefix crawl --dumpInitRngs --automateAll --keepAutomated --gameMode crawl --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --savePrefix safari --dumpInitRngs --automateAll --keepAutomated --gameMode safari --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --savePrefix safariSurvival --dumpInitRngs --automateAll --keepAutomated --gameMode "safari survival" --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --savePrefix battle --dumpInitRngs --automateAll --keepAutomated --gameMode battle --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --newGame 5 --savePrefix battleSurvival --dumpInitRngs --automateAll --keepAutomated --gameMode "battle survival" --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --savePrefix raid --dumpInitRngs --automateAll --keepAutomated --gameMode raid --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --savePrefix brawl --dumpInitRngs --automateAll --keepAutomated --gameMode brawl --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --savePrefix shootout --dumpInitRngs --automateAll --keepAutomated --gameMode shootout --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --savePrefix escape --dumpInitRngs --automateAll --keepAutomated --gameMode escape --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --savePrefix zoo --dumpInitRngs --automateAll --keepAutomated --gameMode zoo --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --savePrefix ambush --dumpInitRngs --automateAll --keepAutomated --gameMode ambush --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --savePrefix crawl --dumpInitRngs --automateAll --keepAutomated --gameMode crawl --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --savePrefix safari --dumpInitRngs --automateAll --keepAutomated --gameMode safari --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --savePrefix safariSurvival --dumpInitRngs --automateAll --keepAutomated --gameMode "safari survival" --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --savePrefix battle --dumpInitRngs --automateAll --keepAutomated --gameMode battle --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --newGame 5 --savePrefix battleSurvival --dumpInitRngs --automateAll --keepAutomated --gameMode "battle survival" --frontendTeletype --stopAfterSeconds 2 2> /tmp/teletypetest.log  # "--setDungeonRng 0 --setMainRng 0" is needed for determinism relative to seed # generated before game save test-short-load:-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix raid --dumpInitRngs --automateAll --keepAutomated --gameMode raid --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix brawl --dumpInitRngs --automateAll --keepAutomated --gameMode brawl --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix shootout --dumpInitRngs --automateAll --keepAutomated --gameMode shootouti --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix escape --dumpInitRngs --automateAll --keepAutomated --gameMode escape --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix zoo --dumpInitRngs --automateAll --keepAutomated --gameMode zoo --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix ambush --dumpInitRngs --automateAll --keepAutomated --gameMode ambush --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix crawl --dumpInitRngs --automateAll --keepAutomated --gameMode crawl --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix safari --dumpInitRngs --automateAll --keepAutomated --gameMode safari --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix safariSurvival --dumpInitRngs --automateAll --keepAutomated --gameMode "safari survival" --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix battle --dumpInitRngs --automateAll --keepAutomated --gameMode battle --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log-	dist/build/Allure/Allure --dbgMsgSer --boostRandomItem --savePrefix battleSurvival --dumpInitRngs --automateAll --keepAutomated --gameMode "battle survival" --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix raid --dumpInitRngs --automateAll --keepAutomated --gameMode raid --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix brawl --dumpInitRngs --automateAll --keepAutomated --gameMode brawl --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix shootout --dumpInitRngs --automateAll --keepAutomated --gameMode shootouti --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix escape --dumpInitRngs --automateAll --keepAutomated --gameMode escape --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix zoo --dumpInitRngs --automateAll --keepAutomated --gameMode zoo --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix ambush --dumpInitRngs --automateAll --keepAutomated --gameMode ambush --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix crawl --dumpInitRngs --automateAll --keepAutomated --gameMode crawl --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix safari --dumpInitRngs --automateAll --keepAutomated --gameMode safari --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix safariSurvival --dumpInitRngs --automateAll --keepAutomated --gameMode "safari survival" --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix battle --dumpInitRngs --automateAll --keepAutomated --gameMode battle --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log+	dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --boostRandomItem --savePrefix battleSurvival --dumpInitRngs --automateAll --keepAutomated --gameMode "battle survival" --frontendTeletype --stopAfterSeconds 2 --setDungeonRng 0 --setMainRng 0 2> /tmp/teletypetest.log ++version:+	dist/build/Allure/Allure --version+ #in LambdaHack/ # cabal install --disable-library-profiling --disable-profiling --disable-documentation -f-release @@ -197,7 +200,9 @@  build-binary: build-binary-common 	cp AllureOfTheStarsInstall/bin/Allure AllureOfTheStars-	tar -czf Allure_x_ubuntu-16.04-amd64.tar.gz AllureOfTheStars+	dist/build/Allure/Allure --version > /dev/null; \+	LH_VERSION=$$(cat ~/.Allure/stdout.txt); \+	tar -czf Allure_$${LH_VERSION}_ubuntu-16.04-amd64.tar.gz AllureOfTheStars  new-build-dev: 	cabal new-build --datadir=. --disable-optimization -j1 all
README.md view
@@ -40,14 +40,16 @@ you may prefer to use a native binary for your architecture, if it exists.  Pre-compiled game binaries for some platforms are available through-the release page[11] and from AppVeyor (Windows 32bit[17] and Windows 64bit[18];-note that these no longer work on Windows XP, since Cygwin and MSYS2-dropped support for XP). To use a pre-compiled binary archive,+the release page[11] (and continuously from AppVeyor[18]).+Note that Windows binaries no longer work on Windows XP, since Cygwin+and MSYS2 dropped support for XP). To use a pre-compiled binary archive, unpack it and run the executable in the unpacked directory.+Or use program shortcuts from the installer, if available. -On Linux, make sure you have the SDL2 libraries suite installed on your system-(e.g., libsdl2, libsdl2-ttf). For Windows, the SDL2 and all other needed-libraries are already contained in the game's binary archive.+On Linux, make sure you have the SDL2 libraries installed on your system+(e.g., libsdl2-2.0-0, libsdl2-ttf-2.0-0 on Ubuntu; also libdw1).+For Windows, the SDL2 and all other needed libraries are already contained+in the game's binary archive.   Screen and keyboard configuration@@ -174,7 +176,8 @@ Copyright --------- -Copyright (c) 2008--2011 Andres Loeh, 2010--2017 Mikolaj Konarski+Copyright (c) 2008--2011 Andres Loeh+Copyright (c) 2010--2017 Mikolaj Konarski and others (see git history)  Allure of the Stars is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by@@ -205,5 +208,4 @@ [11]: https://github.com/AllureOfTheStars/Allure/releases/latest [15]: https://github.com/ghcjs/ghcjs [16]: https://www.npmjs.com/package/google-closure-compiler-[17]: https://ci.appveyor.com/project/Mikolaj/allure-hpt6r/build/artifacts [18]: https://ci.appveyor.com/project/Mikolaj/allure/build/artifacts