module Content.ModeKindPlayer
( playerHero, playerAntiHero, playerCivilian
, playerMonster, playerAntiMonster, playerAnimal
, playerHorror, playerMonsterTourist, playerHunamConvict
, playerAnimalMagnificent, playerAnimalExquisite
, hiHeroShort, hiHeroMedium, hiHeroLong, hiDweller
) where
import Prelude ()
import Game.LambdaHack.Core.Prelude
import Game.LambdaHack.Content.ModeKind
import Game.LambdaHack.Definition.Ability
playerHero, playerAntiHero, playerCivilian, playerMonster, playerAntiMonster, playerAnimal, playerHorror, playerMonsterTourist, playerHunamConvict, playerAnimalMagnificent, playerAnimalExquisite :: Player
playerHero :: Player
playerHero = $WPlayer :: Text
-> [GroupName ItemKind]
-> Skills
-> Bool
-> Bool
-> HiCondPoly
-> Bool
-> Tactic
-> LeaderMode
-> Bool
-> Player
Player
{ fname :: Text
fname = "Explorer"
, fgroups :: [GroupName ItemKind]
fgroups = ["hero"]
, fskillsOther :: Skills
fskillsOther = Skills
meleeAdjacent
, fcanEscape :: Bool
fcanEscape = Bool
True
, fneverEmpty :: Bool
fneverEmpty = Bool
True
, fhiCondPoly :: HiCondPoly
fhiCondPoly = HiCondPoly
hiHeroLong
, fhasGender :: Bool
fhasGender = Bool
True
, ftactic :: Tactic
ftactic = Tactic
TExplore
, fleaderMode :: LeaderMode
fleaderMode = AutoLeader -> LeaderMode
LeaderUI (AutoLeader -> LeaderMode) -> AutoLeader -> LeaderMode
forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> AutoLeader
AutoLeader Bool
False Bool
False
, fhasUI :: Bool
fhasUI = Bool
True
}
playerAntiHero :: Player
playerAntiHero = Player
playerHero
{ fleaderMode :: LeaderMode
fleaderMode = AutoLeader -> LeaderMode
LeaderAI (AutoLeader -> LeaderMode) -> AutoLeader -> LeaderMode
forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> AutoLeader
AutoLeader Bool
True Bool
False
, fhasUI :: Bool
fhasUI = Bool
False
}
playerCivilian :: Player
playerCivilian = $WPlayer :: Text
-> [GroupName ItemKind]
-> Skills
-> Bool
-> Bool
-> HiCondPoly
-> Bool
-> Tactic
-> LeaderMode
-> Bool
-> Player
Player
{ fname :: Text
fname = "Civilian"
, fgroups :: [GroupName ItemKind]
fgroups = ["hero", "civilian"]
, fskillsOther :: Skills
fskillsOther = Skills
zeroSkills
, fcanEscape :: Bool
fcanEscape = Bool
False
, fneverEmpty :: Bool
fneverEmpty = Bool
True
, fhiCondPoly :: HiCondPoly
fhiCondPoly = HiCondPoly
hiHeroMedium
, fhasGender :: Bool
fhasGender = Bool
True
, ftactic :: Tactic
ftactic = Tactic
TPatrol
, fleaderMode :: LeaderMode
fleaderMode = LeaderMode
LeaderNull
, fhasUI :: Bool
fhasUI = Bool
False
}
playerMonster :: Player
playerMonster = $WPlayer :: Text
-> [GroupName ItemKind]
-> Skills
-> Bool
-> Bool
-> HiCondPoly
-> Bool
-> Tactic
-> LeaderMode
-> Bool
-> Player
Player
{ fname :: Text
fname = "Monster Hive"
, fgroups :: [GroupName ItemKind]
fgroups = ["monster", "mobile monster"]
, fskillsOther :: Skills
fskillsOther = Skills
zeroSkills
, fcanEscape :: Bool
fcanEscape = Bool
False
, fneverEmpty :: Bool
fneverEmpty = Bool
False
, fhiCondPoly :: HiCondPoly
fhiCondPoly = HiCondPoly
hiDweller
, fhasGender :: Bool
fhasGender = Bool
False
, ftactic :: Tactic
ftactic = Tactic
TExplore
, fleaderMode :: LeaderMode
fleaderMode =
AutoLeader -> LeaderMode
LeaderAI (AutoLeader -> LeaderMode) -> AutoLeader -> LeaderMode
forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> AutoLeader
AutoLeader Bool
True Bool
True
, fhasUI :: Bool
fhasUI = Bool
False
}
playerAntiMonster :: Player
playerAntiMonster = Player
playerMonster
{ fleaderMode :: LeaderMode
fleaderMode = AutoLeader -> LeaderMode
LeaderUI (AutoLeader -> LeaderMode) -> AutoLeader -> LeaderMode
forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> AutoLeader
AutoLeader Bool
True Bool
True
, fhasUI :: Bool
fhasUI = Bool
True
}
playerAnimal :: Player
playerAnimal = $WPlayer :: Text
-> [GroupName ItemKind]
-> Skills
-> Bool
-> Bool
-> HiCondPoly
-> Bool
-> Tactic
-> LeaderMode
-> Bool
-> Player
Player
{ fname :: Text
fname = "Animal Kingdom"
, fgroups :: [GroupName ItemKind]
fgroups = ["animal", "mobile animal", "immobile animal", "scavenger"]
, fskillsOther :: Skills
fskillsOther = Skills
zeroSkills
, fcanEscape :: Bool
fcanEscape = Bool
False
, fneverEmpty :: Bool
fneverEmpty = Bool
False
, fhiCondPoly :: HiCondPoly
fhiCondPoly = HiCondPoly
hiDweller
, fhasGender :: Bool
fhasGender = Bool
False
, ftactic :: Tactic
ftactic = Tactic
TRoam
, fleaderMode :: LeaderMode
fleaderMode = LeaderMode
LeaderNull
, fhasUI :: Bool
fhasUI = Bool
False
}
playerHorror :: Player
playerHorror = $WPlayer :: Text
-> [GroupName ItemKind]
-> Skills
-> Bool
-> Bool
-> HiCondPoly
-> Bool
-> Tactic
-> LeaderMode
-> Bool
-> Player
Player
{ fname :: Text
fname = "Horror Den"
, fgroups :: [GroupName ItemKind]
fgroups = [GroupName ItemKind
horrorGroup]
, fskillsOther :: Skills
fskillsOther = Skills
zeroSkills
, fcanEscape :: Bool
fcanEscape = Bool
False
, fneverEmpty :: Bool
fneverEmpty = Bool
False
, fhiCondPoly :: HiCondPoly
fhiCondPoly = []
, fhasGender :: Bool
fhasGender = Bool
False
, ftactic :: Tactic
ftactic = Tactic
TPatrol
, fleaderMode :: LeaderMode
fleaderMode = LeaderMode
LeaderNull
, fhasUI :: Bool
fhasUI = Bool
False
}
playerMonsterTourist :: Player
playerMonsterTourist =
Player
playerAntiMonster { fname :: Text
fname = "Monster Tourist Office"
, fcanEscape :: Bool
fcanEscape = Bool
True
, fneverEmpty :: Bool
fneverEmpty = Bool
True
, fhiCondPoly :: HiCondPoly
fhiCondPoly = HiCondPoly
hiHeroMedium
, ftactic :: Tactic
ftactic = Tactic
TFollow
, fleaderMode :: LeaderMode
fleaderMode = AutoLeader -> LeaderMode
LeaderUI (AutoLeader -> LeaderMode) -> AutoLeader -> LeaderMode
forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> AutoLeader
AutoLeader Bool
False Bool
False }
playerHunamConvict :: Player
playerHunamConvict =
Player
playerCivilian { fname :: Text
fname = "Hunam Convict"
, fleaderMode :: LeaderMode
fleaderMode = AutoLeader -> LeaderMode
LeaderAI (AutoLeader -> LeaderMode) -> AutoLeader -> LeaderMode
forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> AutoLeader
AutoLeader Bool
True Bool
False }
playerAnimalMagnificent :: Player
playerAnimalMagnificent =
Player
playerAnimal { fname :: Text
fname = "Animal Magnificent Specimen Variety"
, fneverEmpty :: Bool
fneverEmpty = Bool
True }
playerAnimalExquisite :: Player
playerAnimalExquisite =
Player
playerAnimal { fname :: Text
fname = "Animal Exquisite Herds and Packs Galore"
, fneverEmpty :: Bool
fneverEmpty = Bool
True }
victoryOutcomes :: [Outcome]
victoryOutcomes :: [Outcome]
victoryOutcomes = [Outcome
Conquer, Outcome
Escape]
hiHeroLong, hiHeroMedium, hiHeroShort, hiDweller :: HiCondPoly
hiHeroShort :: HiCondPoly
hiHeroShort =
[ ( [(HiIndeterminant
HiLoot, 100)]
, [Outcome
forall a. Bounded a => a
minBound..Outcome
forall a. Bounded a => a
maxBound] )
, ( [(HiIndeterminant
HiConst, 100)]
, [Outcome]
victoryOutcomes )
, ( [(HiIndeterminant
HiSprint, -500)]
, [Outcome]
victoryOutcomes )
, ( [(HiIndeterminant
HiSurvival, 10)]
, [Outcome
forall a. Bounded a => a
minBound..Outcome
forall a. Bounded a => a
maxBound] [Outcome] -> [Outcome] -> [Outcome]
forall a. Eq a => [a] -> [a] -> [a]
\\ [Outcome]
victoryOutcomes )
]
hiHeroMedium :: HiCondPoly
hiHeroMedium =
[ ( [(HiIndeterminant
HiLoot, 200)]
, [Outcome
forall a. Bounded a => a
minBound..Outcome
forall a. Bounded a => a
maxBound] )
, ( [(HiIndeterminant
HiConst, 200), (HiIndeterminant
HiLoss, -10)]
, [Outcome]
victoryOutcomes )
, ( [(HiIndeterminant
HiSprint, -500)]
, [Outcome]
victoryOutcomes )
, ( [(HiIndeterminant
HiBlitz, -100)]
, [Outcome]
victoryOutcomes )
, ( [(HiIndeterminant
HiSurvival, 10)]
, [Outcome
forall a. Bounded a => a
minBound..Outcome
forall a. Bounded a => a
maxBound] [Outcome] -> [Outcome] -> [Outcome]
forall a. Eq a => [a] -> [a] -> [a]
\\ [Outcome]
victoryOutcomes )
]
hiHeroLong :: HiCondPoly
hiHeroLong =
[ ( [(HiIndeterminant
HiLoot, 10000)]
, [Outcome
forall a. Bounded a => a
minBound..Outcome
forall a. Bounded a => a
maxBound] )
, ( [(HiIndeterminant
HiSprint, -20000)]
, [Outcome]
victoryOutcomes )
, ( [(HiIndeterminant
HiBlitz, -100)]
, [Outcome]
victoryOutcomes )
, ( [(HiIndeterminant
HiSurvival, 10)]
, [Outcome
forall a. Bounded a => a
minBound..Outcome
forall a. Bounded a => a
maxBound] [Outcome] -> [Outcome] -> [Outcome]
forall a. Eq a => [a] -> [a] -> [a]
\\ [Outcome]
victoryOutcomes )
]
hiDweller :: HiCondPoly
hiDweller = [ ( [(HiIndeterminant
HiConst, 1000)]
, [Outcome]
victoryOutcomes )
, ( [(HiIndeterminant
HiConst, 1000), (HiIndeterminant
HiLoss, -10)]
, [Outcome]
victoryOutcomes )
, ( [(HiIndeterminant
HiSprint, -1000)]
, [Outcome]
victoryOutcomes )
, ( [(HiIndeterminant
HiBlitz, -100)]
, [Outcome]
victoryOutcomes )
, ( [(HiIndeterminant
HiSurvival, 100)]
, [Outcome
forall a. Bounded a => a
minBound..Outcome
forall a. Bounded a => a
maxBound] [Outcome] -> [Outcome] -> [Outcome]
forall a. Eq a => [a] -> [a] -> [a]
\\ [Outcome]
victoryOutcomes )
]