SpacePrivateers-0.1.0.0: GameDefinition/Content/ModeKind.hs
-- | The type of kinds of game modes for Space Privateers.
module Content.ModeKind ( cdefs ) where
import qualified Data.IntMap.Strict as IM
import Game.LambdaHack.Common.ContentDef
import Game.LambdaHack.Content.ModeKind
cdefs :: ContentDef ModeKind
cdefs = ContentDef
{ getSymbol = msymbol
, getName = mname
, getFreq = mfreq
, validate = validateModeKind
, content =
[campaign]
}
campaign :: ModeKind
campaign = ModeKind
{ msymbol = 'a'
, mname = "campaign"
, mfreq = [("campaign", 1)]
, mplayers = playersCampaign
, mcaves = cavesCampaign
, mdesc = "Get ready to assault the city vessel and plunder some loot!"
}
playersCampaign :: Players
playersCampaign = Players
{ playersList = [ playerHero
, playerMerchant
, playerChaos
, playerHorror
, playerSpawn ]
, playersEnemy = [ ("Space Privateers", "Merchant Mariners")
, ("Space Privateers", "Forces of Chaos")
, ("Space Privateers", "Spawns of Warp")
, ("Merchant Mariners", "Forces of Chaos")
, ("Merchant Mariners", "Spawns of Warp") ]
, playersAlly = [("Forces of Chaos", "Spawns of Warp")] }
playerHero, playerMerchant, playerChaos, playerSpawn, playerHorror :: Player
playerHero = Player
{ playerName = "Space Privateers"
, playerFaction = "hero"
, playerIsSpawn = False
, playerIsHero = True
, playerEntry = -1
, playerInitial = 3
, playerLeader = True
, playerAI = False
, playerUI = True
}
playerMerchant = Player
{ playerName = "Merchant Mariners"
, playerFaction = "merchant"
, playerIsSpawn = True
, playerIsHero = False
, playerEntry = -1
, playerInitial = 3
, playerLeader = False
, playerAI = True
, playerUI = False
}
playerChaos = Player
{ playerName = "Forces of Chaos"
, playerFaction = "chaos"
, playerIsSpawn = True
, playerIsHero = False
, playerEntry = -1
, playerInitial = 5
, playerLeader = False
, playerAI = True
, playerUI = False
}
playerHorror = Player
{ playerName = "Horrors of Warp"
, playerFaction = "horror"
, playerIsSpawn = True
, playerIsHero = False
, playerEntry = -1
, playerInitial = 0
, playerLeader = False
, playerAI = True
, playerUI = False
}
playerSpawn = Player
{ playerName = "Spawns of Warp"
, playerFaction = "spawn"
, playerIsSpawn = True
, playerIsHero = False
, playerEntry = -1
, playerInitial = 0
, playerLeader = False
, playerAI = True
, playerUI = False
}
cavesCampaign :: Caves
cavesCampaign = IM.fromList $ [ (-1, ("caveRogue", Just True))
, (-2, ("caveRogue", Nothing))
, (-3, ("caveRogue", Nothing)) ]
++ zip [-4, -5..(-9)] (repeat ("dng", Nothing))
++ [(-10, ("caveRogue", Nothing))]