{-# LANGUAGE OverloadedStrings #-}
module FactionData
(Faction(..),factionPrefix)
where
import qualified Data.ByteString.Char8 as B
data Faction = Player
| InterstellarConcordance -- the lawful galactic government
| PanGalacticTreatyOrganization -- the neutral galactic government
| ImperialAlliance -- the chaotic galactic government
| Monsters -- nonsentient monsters (indifferent "government")
| Pirates -- pirates (tactical "government")
| Cyborgs -- cyborgs (strategic "government")
| SocialUtopiate -- an economic super-alliance (diplomatic "government")
| Whispers -- the dark indifferent destroyers of worlds
| Proselytes -- evil entities that possess others' minds
| Civilian -- merchants, children -- killing these antagonizes all factions
deriving (Eq,Read,Show,Enum,Bounded)
factionPrefix :: Faction -> B.ByteString
factionPrefix Player = "Z"
factionPrefix InterstellarConcordance = "C"
factionPrefix PanGalacticTreatyOrganization = "P"
factionPrefix ImperialAlliance = "A"
factionPrefix Monsters = "M"
factionPrefix Pirates = "R"
factionPrefix Cyborgs = "Y"
factionPrefix SocialUtopiate = "U"
factionPrefix Whispers = "X"
factionPrefix Proselytes = "K"
factionPrefix Civilian = "Q"