packages feed

Allure-0.4.8: src/Content/FactionKind.hs

{-# LANGUAGE OverloadedStrings #-}
-- Copyright (c) 2008--2011 Andres Loeh, 2010--2012 Mikolaj Konarski
-- This file is a part of the computer game Allure of the Stars
-- and is released under the terms of the GNU Affero General Public License.
-- For license and copyright information, see the file LICENSE.
--
-- | The type of kinds of game factions (heroes, enemies, NPCs, etc.)
-- for LambdaHack.
module Content.FactionKind ( cdefs ) where

import Game.LambdaHack.Common.ContentDef
import Game.LambdaHack.Content.FactionKind

cdefs :: ContentDef FactionKind
cdefs = ContentDef
  { getSymbol = fsymbol
  , getName = fname
  , getFreq = ffreq
  , validate = fvalidate
  , content =
      [hero, alien, animal, robot, horror]
  }
hero,        alien, animal, robot, horror :: FactionKind

hero = FactionKind
  { fsymbol   = '@'
  , fname     = "hero"
  , ffreq     = [("hero", 1)]
  , fAiLeader = "fullAbility"
  , fAiMember = "meleeAdjacent"
  }

-- Includes alien-operated robots, alien-conditioned animals and hybrids.
alien = FactionKind
  { fsymbol     = 'a'
  , fname       = "alien"
  , ffreq       = [("alien", 1), ("spawn", 20), ("summon", 20)]
  , fAiLeader   = "fullAbility"
  , fAiMember   = "fullAbility"
  }

animal = FactionKind
  { fsymbol     = 'd'
  , fname       = "animal"
  , ffreq       = [("animal", 1), ("spawn", 50), ("summon", 50)]
  , fAiLeader   = "animalAbility"
  , fAiMember   = "animalAbility"
  }

-- Autonomous robots.
robot = FactionKind
  { fsymbol     = 'r'
  , fname       = "robot"
  , ffreq       = [("robot", 1), ("spawn", 10), ("summon", 10)]
  , fAiLeader   = "robotAbility"
  , fAiMember   = "robotAbility"
  }

horror = FactionKind
  { fsymbol   = 'h'
  , fname     = "horror"
  , ffreq     = [("horror", 1), ("summon", 50)]
  , fAiLeader = "fullAbility"
  , fAiMember = "fullAbility"
  }