SpacePrivateers-0.1.0.0: GameDefinition/Content/ItemKindActor.hs
-- | Actor (or rather actor body trunk) definitions.
module Content.ItemKindActor ( actors ) where
import qualified Data.EnumMap.Strict as EM
import Game.LambdaHack.Common.Ability
import Game.LambdaHack.Common.Color
import Game.LambdaHack.Common.Effect
import Game.LambdaHack.Common.Flavour
import Game.LambdaHack.Common.Misc
import Game.LambdaHack.Content.ItemKind
actors :: [ItemKind]
actors = privateers ++ merchants ++ forcesOfChaos ++ spawns ++ animals
privateers, merchants, forcesOfChaos, spawns, animals :: [ItemKind]
privateers = [warrior, scout]
merchants = [merchant, merchantSgt]
forcesOfChaos = [chaosWarrior, chaosLord]
spawns = [warpBeast]
animals = [ventLizard]
warrior, scout :: ItemKind
merchant, merchantSgt :: ItemKind
chaosWarrior, chaosLord :: ItemKind
warpBeast :: ItemKind
ventLizard :: ItemKind
-- * Heroes (hero)
warrior = ItemKind
{ isymbol = '@'
, iname = "warrior"
, ifreq = [("hero", 100)]
, iflavour = zipPlain [BrBlack]
, icount = 1
, irarity = [(1, 5)]
, iverbHit = "thud"
, iweight = 80000
, iaspects = [ AddMaxHP 50, AddMaxCalm 60, AddSpeed 20
, AddSight 3 ]
, ieffects = []
, ifeature = [Durable, Identified]
, idesc = "PBI, ready to take the next city vessel."
, ikit = [("fist", COrgan), ("foot", COrgan), ("eye 4", COrgan),
("starting weapon", CEqp)]
}
scout = warrior
{ iname = "scout"
, iaspects = [ AddMaxHP 40, AddMaxCalm 60, AddSpeed 25
, AddSight 4 ]
, idesc = "Fast and keen scouts are essential any fighting force."
, ikit = [("fist", COrgan), ("foot", COrgan), ("eye 5", COrgan),
("any arrow", CInv), ("any vial", CInv), ("any vial", CInv)]
}
-- * Merchant Mariners (merchant)
merchant = ItemKind
{ isymbol = '@'
, iname = "merchant mariner"
, ifreq = [("merchant", 100)]
, iflavour = zipPlain [Blue]
, icount = 1
, irarity = [(1, 10)]
, iverbHit = "thud"
, iweight = 80000
, iaspects = [ AddMaxHP 30, AddMaxCalm 40, AddSpeed 20
, AddSight 3 ]
, ieffects = []
, ifeature = [Durable, Identified]
, idesc = "Merchant mariners are operating city vessels on their endless journey to stars."
, ikit = [("fist", COrgan), ("foot", COrgan), ("eye 4", COrgan)]
}
merchantSgt = merchant
{ iname = "merchant mariner sgt"
, ifreq = [("merchant", 100)]
, iflavour = zipPlain [BrBlue]
, icount = 1
, irarity = [(1, 1), (10, 3)]
, iverbHit = "thud"
, iweight = 80000
, iaspects = [ AddMaxHP 40, AddMaxCalm 60, AddSpeed 20
, AddSight 3 ]
, ieffects = []
, ifeature = [Durable, Identified]
, idesc = "Squad leader for merchant mariners"
, ikit = [("fist", COrgan), ("foot", COrgan), ("eye 4", COrgan),
("starting weapon", CEqp)]
}
-- * Forces of Chaos (chaos)
chaosWarrior = ItemKind
{ isymbol = 'c'
, iname = "chaos warrior"
, ifreq = [("chaos", 100)]
, iflavour = zipPlain [BrBlack]
, icount = 1
, irarity = [(1, 5)]
, iverbHit = "thud"
, iweight = 100000
, iaspects = [ AddMaxHP 40, AddMaxCalm 70, AddSpeed 20
, AddSight 3 ]
, ieffects = []
, ifeature = [Durable, Identified]
, idesc = "Warrior of Chaos, ready to wreck havoc."
, ikit = [("fist", COrgan), ("foot", COrgan), ("eye 4", COrgan),
("starting weapon", CEqp)]
}
chaosLord = chaosWarrior
{ isymbol = 'c'
, iname = "chaos lord"
, ifreq = [("chaos", 100)]
, irarity = [(5, 1), (10, 3)]
, iflavour = zipPlain [BrRed]
, iaspects = [ AddMaxHP 60, AddMaxCalm 70, AddSpeed 20
, AddSight 3 ]
, idesc = "Lord of Chaos, leader of warriors"
}
-- * Horrors (spawn)
warpBeast = ItemKind
{ isymbol = 'w'
, iname = "warp beast"
, ifreq = [("spawn", 100)]
, iflavour = zipPlain [BrRed]
, icount = 1
, irarity = [(1, 5)]
, iverbHit = "thud"
, iweight = 40000
, iaspects = [ AddMaxHP 20, AddMaxCalm 30, AddSpeed 20
, AddSight 1 ]
, ieffects = []
, ifeature = [Durable, Identified]
, idesc = "Shambling beast of warp has phased into this corporeal realm."
, ikit = [("small claw", COrgan), ("foot", COrgan), ("eye 2", COrgan),
("nostril", COrgan)]
}
-- * Animals
ventLizard = ItemKind
{ isymbol = ':'
, iname = "vent lizard"
, ifreq = [("summonable animal", 100)]
, iflavour = zipPlain [Green]
, icount = 1
, irarity = [(1, 5)]
, iverbHit = "thud"
, iweight = 25000
, iaspects = [ AddMaxHP 15, AddMaxCalm 30, AddSpeed 18
, AddSkills $ EM.singleton AbAlter (-1)
, AddSight 3 ]
, ieffects = []
, ifeature = [Durable, Identified]
, idesc = ""
, ikit = [ ("claw", COrgan), ("snout", COrgan), ("armored skin", COrgan)
, ("nostril", COrgan) ]
}