diff --git a/.Types.hs.swp b/.Types.hs.swp new file mode 100644 index 0000000..28ed585 Binary files /dev/null and b/.Types.hs.swp differ diff --git a/Main.hs b/Main.hs new file mode 100644 index 0000000..672f85e --- /dev/null +++ b/Main.hs @@ -0,0 +1,33 @@ +data CardSym = Card1 -- | Card2 | Card3 | Card4 etc etc +data TypeSym = Angel + | Character + | MainCharacter + | Instrumentality + | Battle + | Put + | Drama + | Eva + + +data CardInfo = CardInfo + { ciName :: String + , ciFaction :: Faction + , ci -- etc etc etc etc etc + } + +data CardMeta = CardMeta + { cmOwner :: PlayerId + } + +type CardId = Integer +type PlayerId = Integer + +class SymLookup where + getSym :: CardId -> CardSym + +class MetaLookup where + getMeta :: CardId -> CardMeta + +class CardLookup where + getCard :: CardSym -> CardInfo + diff --git a/State.hs b/State.hs index 139ee25..8fc9912 100644 --- a/State.hs +++ b/State.hs @@ -1,8 +1,29 @@ module State where +-- needed state: +-- NeoTokyo groups +-- Put cards +-- id counter +-- +-- +-- +-- + type Group = [MainCharacter] type NeoTokyo = [Group] type Downed = [MainCharacter] -type BoardState = (NeoTokyo, Downed) +type Angels = [Angel] +type BoardState = (NeoTokyo, Downed, Angels) data MainCharacter = Asuka | Shinji | Rei | Misato | Ritsuko | Gendo deriving (Show, Eq) +data Angel = Sachial | Shamshel | Ramiel | Gaghiel | Israfel + | Sandalphon | Matariel | Sahaquiel | Treul | Leliel + | Bardiel | Zeruel | Arael | Armisael | Kaworu | Man | Lillith | Adam + +data Card = MainCharacter | Angel | Eva | Put | Battle | Instrumentality | Character +type Deck = [Card] +type Hand = [Card] +type Discard = [Card] +type Player = (String, Hand, Deck, Discard, Instrumentality) +type Players = [Player] +