Allure 0.8.1.2 → 0.8.3.0
raw patch · 14 files changed
+155/−129 lines, 14 filesdep ~LambdaHack
Dependency ranges changed: LambdaHack
Files
- Allure.cabal +5/−5
- CHANGELOG.md +10/−0
- CREDITS +1/−0
- GameDefinition/Content/CaveKind.hs +3/−3
- GameDefinition/Content/ItemKind.hs +5/−4
- GameDefinition/Content/ItemKindBlast.hs +1/−1
- GameDefinition/Content/RuleKind.hs +4/−11
- GameDefinition/Content/TileKind.hs +34/−24
- GameDefinition/Implementation/MonadClientImplementation.hs +0/−1
- GameDefinition/Implementation/MonadServerImplementation.hs +1/−1
- GameDefinition/Main.hs +20/−3
- GameDefinition/MainMenu.ascii +45/−60
- Makefile +9/−2
- README.md +17/−14
Allure.cabal view
@@ -5,13 +5,13 @@ -- PVP summary:+-+------- breaking API changes -- | | +----- minor or non-breaking API additions -- | | | +--- code changes with no API change-version: 0.8.1.2+version: 0.8.3.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. Binaries and the game manual- are available at the homepage, where you can also- try the game out in the browser:- <http://allureofthestars.com/play>+ are available at homepage, where you can also+ try the game out in the browser at+ <http://allureofthestars.com/play>. (It runs fastest on Chrome. Keyboard commands and savefiles are supported only on recent enough versions of browsers. Mouse should work everywhere.)@@ -79,7 +79,7 @@ Implementation.MonadServerImplementation, Implementation.TieKnot, Paths_Allure- build-depends: LambdaHack >= 0.8.1.0 && < 0.8.2.0,+ build-depends: LambdaHack >= 0.8.3.0 && < 0.8.4.0, template-haskell >= 2.6, async >= 2,
CHANGELOG.md view
@@ -1,3 +1,13 @@+## [v0.8.3.0](https://github.com/AllureOfTheStars/Allure/compare/v0.8.1.2...v0.8.3.0)++- Add a hack to run SDL2 on the main thread, fixing the OS X crash+- Warn visually when impressed and Calm running low, risking domination+- Display actor as red when low Calm and impressed or when low HP+- Fix, complete and fine tune UI, AI and server skill and weapon checks+- Fix a bug where item aspects look different to clients than to the server+- Change the requirements for the main menu ASCII art+- Tweak loot and terrain a tiny bit+ ## [v0.8.1.2](https://github.com/AllureOfTheStars/Allure/compare/v0.8.1.1...v0.8.1.2) - Fix typos detected by lintian
CREDITS view
@@ -5,6 +5,7 @@ Mikolaj Konarski Krzysztof Pławski @Peritract+Pablo Reszczynski Fonts 16x16x.fon, 8x8x.fon and 8x8xb.fon are are taken from
GameDefinition/Content/CaveKind.hs view
@@ -140,8 +140,8 @@ { csymbol = 'E' , cname = "Construction site" , cfreq = [("caveEmpty", 1)]- , cgrid = DiceXY 1 1- , cminPlaceSize = DiceXY 12 12+ , cgrid = DiceXY 2 2+ , cminPlaceSize = DiceXY 12 9 , cmaxPlaceSize = DiceXY 48 32 -- favour large rooms , cdarkChance = 1 `d` 100 + 1 `dL` 100 , cnightChance = 0 -- always day@@ -254,7 +254,7 @@ , cdesc = "The black sky outside sucks light through the oriels." } emptyExit = empty- { cname = "Shuttle servicing area"+ { cname = "Shuttle servicing level" , cfreq = [("caveEmptyExit", 1)] , cdefTile = "emptyExitSet" , cdarkCorTile = "transport route"
GameDefinition/Content/ItemKind.hs view
@@ -244,7 +244,8 @@ light1 = ItemKind { isymbol = symbolLight , iname = "torch"- , ifreq = [("common item", 100), ("light source", 100), ("wooden torch", 1)]+ , ifreq = [ ("common item", 100), ("light source", 100)+ , ("wooden torch", 1) ] , iflavour = zipPlain [Brown] , icount = 1 `dL` 4 , irarity = [(1, 15)]@@ -256,7 +257,7 @@ , ieffects = [Burn 1] , ifeature = [Lobable, Equipable, EqpSlot EqpSlotLightSource] -- not Fragile; reusable flare- , idesc = "A torch improvised with cloth soaked in tar on a stick."+ , idesc = "A puttering torch improvised with polymer sheets soaked in lubricant on a stick." , ikit = [] } light2 = ItemKind@@ -272,7 +273,7 @@ , iaspects = [AddShine 3, AddSight (-1)] , ieffects = [Burn 1, Paralyze 6, OnSmash (Explode "burning oil 3")] , ifeature = [Lobable, Fragile, Equipable, EqpSlot EqpSlotLightSource ]- , idesc = "A sizable restaurant glass lamp filled with plant oil feeding a wick."+ , idesc = "A sizable restaurant glass lamp filled with plant oil feeding a slender wick." , ikit = [] } light3 = ItemKind@@ -1458,7 +1459,7 @@ gem5 = gem1 { isymbol = symbolSpecial , iname = "stimpack"- , ifreq = [ ("treasure", 100), ("gem", 25), ("any jewelry", 25)+ , ifreq = [ ("treasure", 100), ("gem", 25), ("any jewelry", 10) , ("valuable", 100) ] , iflavour = zipPlain [BrYellow] , irarity = [(1, 40), (10, 40)]
GameDefinition/Content/ItemKindBlast.hs view
@@ -755,7 +755,7 @@ , iaspects = [] , ieffects = [toOrganGood "resolute" (5 + 1 `d` 2), DropBestWeapon] , ifeature = [toVelocity 5, Fragile, Blast] -- 1 step, 1 turn- , idesc = "The fitful holographic clip shows a couple that laughs, watches in silence Saturn's rings through a huge window, throws treats to a little rhino frolicking in reduced gravity, runs through corridors wearing alien masks in a mock chase. An exited female voice proclaims: \"...safety and security, comfort, imagination...for each of your senses...robot servants...personalized life support zones...\""+ , idesc = "The fitful holographic clip shows a couple that laughs, watches in silence Saturn's rings through a huge window, throws treats to a little rhino frolicking in reduced gravity, runs through corridors wearing alien masks in a mock chase. An exited female voice proclaims: \"...safety, security and comfort...for each of your senses...personalized life support zones...robot servants...guessing your every wish...\"" , ikit = [] } outerAdHologram = cruiseAdHologram
GameDefinition/Content/RuleKind.hs view
@@ -50,17 +50,10 @@ -- The keybindings overwrite places marked with left curly brace signs. -- This sign is forbidden anywhere else in the picture. -- The picture and the whole main menu is displayed dull white on black.- --- -- The picture should be exactly 60 rows by 110 columns,- -- but only the middle rectangle of 24 rows by 80 columns is partially- -- overwritten with UI information and the curly brace signs are allowed- -- only there. So, the rectangle is 15 characters distant from the left- -- and 18 from top. For screen sizes larger than 60 by 100,- -- the picture is centered and padded with spaces, so it makes sense- -- for some or all of the picture borders to be spaces, as well.- -- If the screen is smaller than 60 by 100, borders of the picture- -- are cut off. Minimal screes size is 24 by 80 and the picture- -- should look well at this size, as well.+ -- The glyphs, or at least the character cells, are perfect squares.+ -- The picture should be exactly 45 rows by 80 columns.+ -- For larger screen sizes, the picture is centered and padded with spaces,+ -- so it makes sense for some or all of the picture borders to be spaces. , rmainMenuArt = $(do let path = "GameDefinition/MainMenu.ascii" qAddDependentFile path
GameDefinition/Content/TileKind.hs view
@@ -24,11 +24,11 @@ [unknown, unknownOuterFence, basicOuterFence, wall, wallSuspect, wallObscured, wallObscuredDefaced, wallObscuredFrescoed, pillar, pillarCache, lampPost, signboardUnread, signboardRead, tree, treeBurnt, treeBurning, rubble, rubbleSpice, doorTrapped, doorClosed, stairsUp, stairsTrappedUp, stairsOutdoorUp, stairsGatedUp, stairsDown, stairsTrappedDown, stairsOutdoorDown, stairsGatedDown, escapeUp, escapeDown, escapeOutdoorDown, wallGlass, wallGlassSpice, pillarIce, pulpit, bush, bushBurnt, bushBurning, floorFog, floorFogDark, floorSmoke, floorSmokeDark, doorOpen, floorCorridor, floorArena, floorNoise, floorDirt, floorDirtSpice, floorActor, floorActorItem, floorRed, floorBlue, floorGreen, floorBrown, floorArenaShade ] ++ map makeDarkColor ldarkColorable -- Allure-specific- ++ [oriel, outerHullWall, doorlessWall, machineWall, wallObscuredSafety, wallObscured3dBillboard, rock, pillarCache2, stairsLiftUp, stairsLiftTrappedUp, stairsLiftDown, stairsLiftTrappedDown, escapeSpaceshipDown, floorWindow]+ ++ [oriel, outerHullWall, doorlessWall, machineWall, rubbleSpiceBurning, wallObscuredSafety, wallObscured3dBillboard, rock, pillarCache2, stairsLiftUp, stairsLiftTrappedUp, stairsLiftDown, stairsLiftTrappedDown, escapeSpaceshipDown, floorWindow] unknown, unknownOuterFence, basicOuterFence, wall, wallSuspect, wallObscured, wallObscuredDefaced, wallObscuredFrescoed, pillar, pillarCache, lampPost, signboardUnread, signboardRead, tree, treeBurnt, treeBurning, rubble, rubbleSpice, doorTrapped, doorClosed, stairsUp, stairsTrappedUp, stairsOutdoorUp, stairsGatedUp, stairsDown, stairsTrappedDown, stairsOutdoorDown, stairsGatedDown, escapeUp, escapeDown, escapeOutdoorDown, wallGlass, wallGlassSpice, pillarIce, pulpit, bush, bushBurnt, bushBurning, floorFog, floorFogDark, floorSmoke, floorSmokeDark, doorOpen, floorCorridor, floorArena, floorNoise, floorDirt, floorDirtSpice, floorActor, floorActorItem, floorRed, floorBlue, floorGreen, floorBrown, floorArenaShade :: TileKind -- Allure-specific-oriel, outerHullWall, doorlessWall, machineWall, wallObscuredSafety, wallObscured3dBillboard, rock, pillarCache2, stairsLiftUp, stairsLiftTrappedUp, stairsLiftDown, stairsLiftTrappedDown, escapeSpaceshipDown, floorWindow :: TileKind+oriel, outerHullWall, doorlessWall, machineWall, rubbleSpiceBurning, wallObscuredSafety, wallObscured3dBillboard, rock, pillarCache2, stairsLiftUp, stairsLiftTrappedUp, stairsLiftDown, stairsLiftTrappedDown, escapeSpaceshipDown, floorWindow :: TileKind ldarkColorable :: [TileKind] ldarkColorable = [tree, bush, floorCorridor, floorArena, floorNoise, floorDirt, floorDirtSpice, floorActor, floorActorItem, floorWindow]@@ -90,7 +90,7 @@ , tname = "wall" , tfreq = [ ("fillerWall", 1), ("legendLit", 100), ("legendDark", 100) , ("cachable deposit", 80), ("cachable jewelry", 80)- , ("stair terminal", 100)+ , ("stair terminal", 30) , ("battleSet", 250), ("rectWindowsOver_%_Lit", 80) ] , tcolor = BrWhite , tcolor2 = defFG@@ -106,7 +106,7 @@ , talter = 2 , tfeature = [ RevealAs "trapped door" , ObscureAs "obscured wall"- ]+ ] } wallObscured = TileKind { tsymbol = '#'@@ -117,7 +117,6 @@ , talter = 5 , tfeature = [ Embed "scratch on wall" , HideAs "suspect wall"- ] } wallObscuredDefaced = TileKind@@ -129,7 +128,6 @@ , talter = 5 , tfeature = [ Embed "obscene pictogram" , HideAs "suspect wall"- ] } wallObscuredFrescoed = TileKind@@ -141,7 +139,6 @@ , talter = 5 , tfeature = [ Embed "subtle fresco" , HideAs "suspect wall"- ] -- a bit beneficial, but AI would loop if allowed to trigger -- so no @ConsideredByAI@ }@@ -185,7 +182,6 @@ , talter = 5 , tfeature = [ ConsideredByAI -- changes after use, so safe for AI , RevealAs "signboard" -- to display as hidden- ] } signboardRead = TileKind@@ -216,7 +212,7 @@ } treeBurning = tree { tname = "burning tree"- , tfreq = [("zooSet", 70), ("tree with fire", 70)]+ , tfreq = [("zooSet", 40), ("tree with fire", 70)] , tcolor = BrRed , tcolor2 = Red , talter = 5@@ -241,9 +237,9 @@ rubbleSpice = TileKind { tsymbol = '&' , tname = "rubble pile"- , tfreq = [ ("smokeClumpOver_f_Lit", 1), ("emptySet", 1)- , ("emptyExitSet", 1), ("noiseSet", 10), ("zooSet", 100)- , ("ambushSet", 20) ]+ , tfreq = [ ("rubbleSpice", 1), ("smokeClumpOver_f_Lit", 1)+ , ("emptySet", 1), ("emptyExitSet", 1), ("noiseSet", 9)+ , ("zooSet", 100), ("ambushSet", 18), ("stair terminal", 30) ] , tcolor = BrYellow , tcolor2 = Brown , talter = 4 -- boss can dig through@@ -413,7 +409,7 @@ } bushBurning = bush { tname = "burning bush"- , tfreq = [("ambushSet", 40), ("zooSet", 300), ("bush with fire", 30)]+ , tfreq = [("ambushSet", 40), ("zooSet", 290), ("bush with fire", 30)] , tcolor = BrRed , tcolor2 = Red , talter = 5@@ -545,6 +541,8 @@ -- ** Not walkable +-- *** Not clear+ oriel = TileKind { tsymbol = '%' -- story-wise it's transparent, hence the symbol , tname = "oriel"@@ -567,15 +565,16 @@ , talter = 100 , tfeature = [HideAs "fillerWall"] }-machineWall = TileKind- { tsymbol = '%'- , tname = "hardware rack"- , tfreq = [ ("noiseSet", 35), ("emptyExitSet", 7)- , ("doorlessWallOver_#", 80) ]- , tcolor = White- , tcolor2 = BrBlack- , talter = 100- , tfeature = [Spice, Clear]+rubbleSpiceBurning = TileKind+ { tsymbol = '&'+ , tname = "burning installation"+ , tfreq = [ ("smokeClumpOver_f_Lit", 1), ("emptySet", 1)+ , ("emptyExitSet", 1), ("noiseSet", 1)+ , ("ambushSet", 2), ("zooSet", 40), ("stair terminal", 40) ]+ , tcolor = BrRed+ , tcolor2 = Red+ , talter = 4 -- boss can dig through+ , tfeature = [Spice, OpenTo "rubbleSpice", Embed "big fire"] } wallObscuredSafety = TileKind { tsymbol = '#'@@ -586,7 +585,6 @@ , talter = 5 , tfeature = [ Embed "ruined first aid kit" , HideAs "suspect wall"- ] } wallObscured3dBillboard = TileKind@@ -598,7 +596,6 @@ , talter = 5 , tfeature = [ Embed "3D display" , HideAs "suspect wall"- ] } rock = pillar@@ -656,6 +653,19 @@ , tcolor = defFG , tcolor2 = defFG , tfeature = Embed "black starry sky" : tfeature floorCorridor+ }++-- *** Clear++machineWall = TileKind+ { tsymbol = '%'+ , tname = "hardware rack"+ , tfreq = [ ("noiseSet", 35), ("emptyExitSet", 6)+ , ("doorlessWallOver_#", 80) ]+ , tcolor = White+ , tcolor2 = BrBlack+ , talter = 100+ , tfeature = [Spice, Clear] } -- ** Walkable
GameDefinition/Implementation/MonadClientImplementation.hs view
@@ -25,7 +25,6 @@ import Game.LambdaHack.Atomic (MonadStateWrite (..), putState) import Game.LambdaHack.Client-import Game.LambdaHack.Client.ClientOptions import Game.LambdaHack.Client.HandleAtomicM import Game.LambdaHack.Client.HandleResponseM import Game.LambdaHack.Client.LoopM
GameDefinition/Implementation/MonadServerImplementation.hs view
@@ -83,7 +83,7 @@ chanSaveServer = SerImplementation $ gets serToSave liftIO = SerImplementation . IO.liftIO -instance MonadServerReadRequest SerImplementation where+instance MonadServerComm SerImplementation where {-# INLINE getsDict #-} getsDict f = SerImplementation $ gets $ f . serDict {-# INLINE modifyDict #-}
GameDefinition/Main.hs view
@@ -14,6 +14,7 @@ import Game.LambdaHack.Common.Prelude +import Control.Concurrent import Control.Concurrent.Async import qualified Control.Exception as Ex import qualified Options.Applicative as OA@@ -25,9 +26,9 @@ import qualified System.IO as SIO import Game.LambdaHack.Common.File (tryCreateDir)-import Game.LambdaHack.Common.Misc #endif +import Game.LambdaHack.Common.Misc import Game.LambdaHack.Server (serverOptionsPI) import Implementation.TieKnot@@ -36,9 +37,14 @@ -- run the game and handle exit. main :: IO () main = do+ -- This may be broken with JS and also bloats the outcome file, so disabled. #ifndef USE_JSFILE- -- For the case when the game is started not on a console.- -- This is broken with JS and also bloats the outcome file.+ -- Special case hack, when the game is started not on a console.+ -- Without this, any attempt to output on stdout crashes a Windows exe+ -- (at least on Windows Vista) launched from the desktop or start menu.+ -- This is very crude and results in the inability to, e.g., process+ -- the output of @--help@ through a unix pipe. However, this should be+ -- effective on all Windows version, without the need to test all. isTerminal <- SIO.hIsTerminalDevice SIO.stdout unless isTerminal $ do dataDir <- appDataDir@@ -47,12 +53,23 @@ fstderr <- SIO.openFile (dataDir </> "stderr.txt") SIO.WriteMode GHC.IO.Handle.hDuplicateTo fstdout SIO.stdout GHC.IO.Handle.hDuplicateTo fstderr SIO.stderr+ let fillWorkaround =+ -- Set up void workaround if nothing specific required.+ void $ tryPutMVar workaroundOnMainThreadMVar $ return () #endif -- Fail here, not inside server code, so that savefiles are not removed, -- because they are not the source of the failure. !serverOptions <- OA.execParser serverOptionsPI -- Avoid the bound thread that would slow down the communication. a <- async $ tieKnot serverOptions+#ifndef USE_JSFILE+ `Ex.finally` fillWorkaround+ -- Run a (possibly void) workaround. It's needed for architectures/frontends+ -- that need to perform some actions on the main thread+ -- (not just any bound thread), e.g., newer OS X drawing with SDL2.+ workaround <- takeMVar workaroundOnMainThreadMVar+ workaround+#endif resOrEx <- waitCatch a let unwrapEx e = #if MIN_VERSION_async(2,2,1)
GameDefinition/MainMenu.ascii view
@@ -1,60 +1,45 @@- - - - - - - - - - - - - - - - - - - ... jiii;.LGEDEi. . . . . ;KEKEGLLGEDt :tfL:,ittjjjjfffff - .. tii;,iGEWDL; . . . . fEDEDGfLDDG . Lf.;itjjjfffLLLLf - .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 <allureofthestars.com> . ;jDEEGLGEDt ,t :itjjffLG WKWWWWE - jtii: GEf; ,iGDEDGGEDt. tt :itjjffLG GWEWWWKE - jtii: GGj; {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{.fGDEDGLDDt tt :itjfffLG KKKWWWEL - jtti. GDj, {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ DLDEDGLDD.tj :itjjffLD LWDKWWWD - jtti GDj, {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ ELDEDGL.jj :itjjffLD jKDEWWWEL - jtti GGf, {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ ELDEE.ff::itjjffLG fKEDKWKKD - ftti LGt: {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ ELE.Lf: ijjjffLG tEEDEWKWG - fjjt.,jGf, {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ ,K:Gf,.ijjtffLD..tjEDGDKKWEE - tti;,i;GL. {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ .:ftt itiiffLGDGDDDGLDKGKfE - Ltjt;, jLj {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ :Lf;iitjifLLGfDDLijGEKEKDE.. - Lffjif.Lft {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ .,:LL;,ijjfffLGLGLLLGDKKEELK . . - ffjt iiGfj; {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{...:LL;;ijffffLGDEKKKKKEEKDj....... - .Lffj:j fDi {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{:::fL;,itjfffLGLGDEEDEKDGtK.......... - . Lfffifiif {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,.Lf;.ijjfffLL,,Lfijjt,E,::.......... - . fffj:i;t; .tfj,.tjjfffLL;ijfLGGGGGLjt;,::...... - .. Lfffjjiii, ... :LL;,,tjjfffLL;;;;iiiiiiii,;;;,:::::.. - .. LfffijijjLfi; ,:::,ffj,j;tjffffLG;;;;;;;;;;;;;;;;;,,:::::.. - ... LLLff,i;jGLLLL LiLt:::tjjffffLG:,,,,,,,,,;;;;,,,,::....... - .Version X.X.X (frontend: xxx, engine: LambdaHack X.X.X) ,,,,,,,,,,,:::::.. . - - - - - - - - - - - - - - - - - - + + + + + + + + + + +... jiii;.LGEDEi. . . . . ;KEKEGLLGEDt :tfL:,ittjjjjfffff+.. tii;,iGEWDL; . . . . fEDEDGfLDDG . Lf.;itjjjfffLLLLf+.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 <allureofthestars.com> . ;jDEEGLGEDt ,t :itjjffLG WKWWWWE +jtii: GEf; ,iGDEDGGEDt. tt :itjjffLG GWEWWWKE +jtii: GGj; {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{.fGDEDGLDDt tt :itjfffLG KKKWWWEL +jtti. GDj, {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ DLDEDGLDD.tj :itjjffLD LWDKWWWD +jtti GDj, {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ ELDEDGL.jj :itjjffLD jKDEWWWEL +jtti GGf, {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ ELDEE.ff::itjjffLG fKEDKWKKD +ftti LGt: {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ ELE.Lf: ijjjffLG tEEDEWKWG +fjjt.,jGf, {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ ,K:Gf,.ijjtffLD..tjEDGDKKWEE +tti;,i;GL. {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ .:ftt itiiffLGDGDDDGLDKGKfE +Ltjt;, jLj {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ :Lf;iitjifLLGfDDLijGEKEKDE.. +Lffjif.Lft {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ .,:LL;,ijjfffLGLGLLLGDKKEELK . . +ffjt iiGfj; {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{...:LL;;ijffffLGDEKKKKKEEKDj....... +.Lffj:j fDi {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{:::fL;,itjfffLGLGDEEDEKDGtK..........+. Lfffifiif {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{,.Lf;.ijjfffLL,,Lfijjt,E,::..........+. fffj:i;t; .tfj,.tjjfffLL;ijfLGGGGGLjt;,::...... +.. Lfffjjiii, ... :LL;,,tjjfffLL;;;;iiiiiiii,;;;,:::::.. +.. LfffijijjLfi; ,:::,ffj,j;tjffffLG;;;;;;;;;;;;;;;;;,,:::::..+... LLLff,i;jGLLLL LiLt:::tjjffffLG:,,,,,,,,,;;;;,,,,::.......+.Version X.X.X (frontend: xxx, engine: LambdaHack X.X.X) ,,,,,,,,,,,:::::.. .+ + + + + + + + + + +
Makefile view
@@ -89,7 +89,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 --logPriority 4 --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 2000 --automateAll --keepAutomated --gameMode battle --setDungeonRng 7 --setMainRng 7 benchCrawl: dist/build/Allure/Allure --dbgMsgSer --logPriority 4 --newGame 1 --noAnim --maxFps 100000 --frontendNull --benchmark --stopAfterFrames 7000 --automateAll --keepAutomated --gameMode crawl --setDungeonRng 0 --setMainRng 0@@ -227,11 +227,18 @@ cp COPYLEFT AllureOfTheStars cp CREDITS AllureOfTheStars -build-binary: build-binary-common+build-binary-ubuntu: build-binary-common cp AllureOfTheStarsInstall/bin/Allure 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++build-binary-macosx: build-binary-common+ cp AllureOfTheStarsInstall/bin/Allure AllureOfTheStars+ dist/build/Allure/Allure --version > /dev/null; \+ LH_VERSION=$$(cat ~/.Allure/stdout.txt); \+ OS_VERSION=$$(sw_vers -productVersion); \+ tar -czf Allure_$${LH_VERSION}_macosx-$${OS_VERSION}-amd64.tar.gz AllureOfTheStars new-build-dev: cabal new-build --datadir=. --disable-optimization -j1 all
README.md view
@@ -7,8 +7,8 @@ Allure of the Stars is a near-future Sci-Fi roguelike[2] and tactical squad game. Binaries and the game manual-are available at the homepage[6], where you can also-try the game out in the browser: http://allureofthestars.com/play+are available at homepage[6], where you can also+try the game out in the browser at http://allureofthestars.com/play. (It runs fastest on Chrome. Keyboard commands and savefiles are supported only on recent enough versions of browsers. Mouse should work everywhere.)@@ -40,16 +40,19 @@ you may prefer to use a native binary for your architecture, if it exists. Pre-compiled game binaries are available through-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.+the release page[11] (and, for Windows, continuously from AppVeyor[18]).+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 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.+(e.g., libsdl2-2.0-0, libsdl2-ttf-2.0-0 on Ubuntu).+On Mac OS X, you need SDL2 installed, e.g.,+from [libsdlorg](https://www.libsdl.org/download-2.0.php).+For Windows, the SDL2 and all other needed libraries are already+contained in the game's binary archive.+Note that Windows binaries no longer work on Windows XP, since Cygwin+and MSYS2 dropped support for XP. Screen and keyboard configuration@@ -104,9 +107,9 @@ cabal update cabal install Allure -For a newer version, install a matching LambdaHack library snapshot-from a development branch, download the game source from github[5]-and run `cabal install` from the main directory.+For a newer version, install a matching LambdaHack library snapshot,+clone the game source from github[5] and run `cabal install`+from the main directory. Testing and debugging@@ -192,7 +195,7 @@ [10]: http://github.com/LambdaHack/LambdaHack-[11]: https://github.com/AllureOfTheStars/Allure/releases/latest+[11]: https://github.com/AllureOfTheStars/Allure/releases [15]: https://github.com/ghcjs/ghcjs [16]: https://www.npmjs.com/package/google-closure-compiler [18]: https://ci.appveyor.com/project/Mikolaj/allure/build/artifacts