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
{ fname = "Explorer"
, fgroups = ["hero"]
, fskillsOther = meleeAdjacent
, fcanEscape = True
, fneverEmpty = True
, fhiCondPoly = hiHeroLong
, fhasGender = True
, ftactic = TExplore
, fleaderMode = LeaderUI $ AutoLeader False False
, fhasUI = True
}
playerAntiHero = playerHero
{ fleaderMode = LeaderAI $ AutoLeader True False
, fhasUI = False
}
playerCivilian = Player
{ fname = "Civilian"
, fgroups = ["hero", "civilian"]
, fskillsOther = zeroSkills
, fcanEscape = False
, fneverEmpty = True
, fhiCondPoly = hiHeroMedium
, fhasGender = True
, ftactic = TPatrol
, fleaderMode = LeaderNull
, fhasUI = False
}
playerMonster = Player
{ fname = "Monster Hive"
, fgroups = ["monster", "mobile monster"]
, fskillsOther = zeroSkills
, fcanEscape = False
, fneverEmpty = False
, fhiCondPoly = hiDweller
, fhasGender = False
, ftactic = TExplore
, fleaderMode =
LeaderAI $ AutoLeader True True
, fhasUI = False
}
playerAntiMonster = playerMonster
{ fleaderMode = LeaderUI $ AutoLeader True True
, fhasUI = True
}
playerAnimal = Player
{ fname = "Animal Kingdom"
, fgroups = ["animal", "mobile animal", "immobile animal", "scavenger"]
, fskillsOther = zeroSkills
, fcanEscape = False
, fneverEmpty = False
, fhiCondPoly = hiDweller
, fhasGender = False
, ftactic = TRoam
, fleaderMode = LeaderNull
, fhasUI = False
}
playerHorror = Player
{ fname = "Horror Den"
, fgroups = [horrorGroup]
, fskillsOther = zeroSkills
, fcanEscape = False
, fneverEmpty = False
, fhiCondPoly = []
, fhasGender = False
, ftactic = TPatrol
, fleaderMode = LeaderNull
, fhasUI = False
}
playerMonsterTourist =
playerAntiMonster { fname = "Monster Tourist Office"
, fcanEscape = True
, fneverEmpty = True
, fhiCondPoly = hiHeroMedium
, ftactic = TFollow
, fleaderMode = LeaderUI $ AutoLeader False False }
playerHunamConvict =
playerCivilian { fname = "Hunam Convict"
, fleaderMode = LeaderAI $ AutoLeader True False }
playerAnimalMagnificent =
playerAnimal { fname = "Animal Magnificent Specimen Variety"
, fneverEmpty = True }
playerAnimalExquisite =
playerAnimal { fname = "Animal Exquisite Herds and Packs Galore"
, fneverEmpty = True }
victoryOutcomes :: [Outcome]
victoryOutcomes = [Conquer, Escape]
hiHeroLong, hiHeroMedium, hiHeroShort, hiDweller :: HiCondPoly
hiHeroShort =
[ ( [(HiLoot, 100)]
, [minBound..maxBound] )
, ( [(HiConst, 100)]
, victoryOutcomes )
, ( [(HiSprint, -500)]
, victoryOutcomes )
, ( [(HiSurvival, 10)]
, [minBound..maxBound] \\ victoryOutcomes )
]
hiHeroMedium =
[ ( [(HiLoot, 200)]
, [minBound..maxBound] )
, ( [(HiConst, 200), (HiLoss, -10)]
, victoryOutcomes )
, ( [(HiSprint, -500)]
, victoryOutcomes )
, ( [(HiBlitz, -100)]
, victoryOutcomes )
, ( [(HiSurvival, 10)]
, [minBound..maxBound] \\ victoryOutcomes )
]
hiHeroLong =
[ ( [(HiLoot, 10000)]
, [minBound..maxBound] )
, ( [(HiSprint, -20000)]
, victoryOutcomes )
, ( [(HiBlitz, -100)]
, victoryOutcomes )
, ( [(HiSurvival, 10)]
, [minBound..maxBound] \\ victoryOutcomes )
]
hiDweller = [ ( [(HiConst, 1000)]
, victoryOutcomes )
, ( [(HiConst, 1000), (HiLoss, -10)]
, victoryOutcomes )
, ( [(HiSprint, -1000)]
, victoryOutcomes )
, ( [(HiBlitz, -100)]
, victoryOutcomes )
, ( [(HiSurvival, 100)]
, [minBound..maxBound] \\ victoryOutcomes )
]