Skip to content

Instantly share code, notes, and snippets.

@Zetaeta
Last active August 29, 2015 14:05
Show Gist options
  • Save Zetaeta/db12bd24cf8b32b09f6c to your computer and use it in GitHub Desktop.
Save Zetaeta/db12bd24cf8b32b09f6c to your computer and use it in GitHub Desktop.
HsTrains
cards = []
amusementPark = Card ActionC 1 4 0 (Just DupPlayedTrain) "Amusement Park
commandCentral = Card ActionC 0 3 0 (Just $ Draw 1 `Then` GuessDraw) "Command Central"
landfill = Card ActionC 0 2 (Just $ RetWaste Nothing) "Landfill"
normalTrain = Card TrainC 1 1 0 Nothing "Normal Train"
expressTrain = Card TrainC 2 3 0 Nothing "Express Train"
limexTrain = Card TrainC 3 6 0 Nothing "Limited Express Train"
earlyTrian = Card TrainC 2 5 0
data Card = Card
{ type :: CardType
, value :: Value
, cost :: Value
, vp :: VP
, effect :: Maybe CardEffect
, name :: String
}
data CardType = TrainC | RailC | StationC | ActionC | PointsC | WasteC
type Value = Int
type VP = Int
data CardEffect = Action Action | MakeStation | LayRail { effect :: CardEffect }
data Action = Then { first :: Action, second :: Action }
| WasteA
| Draw Int
| GuessDraw
| ChooseFromRet { choose :: Int, from :: Int }
| RetWaste (Maybe Int)
| RetWasteValue
| DiscardDraw Int
| DiscardDrawAny
| Discard Int
| UpgradeTrain { valDiff :: Int }
| GainVal Int
| Either3 Action Action Action
| TurnEffect [TurnEffect]
| RetFromPlay (Maybe CardType)
| DupAction
| DupPlayedTrain
| SearchDiscard CardType Int
| GainVP Int
data TurnEffect = NoWaste
| FreeMtn
| FreeRiver
| FreeCity
| FreePeople
| RetBought
data TurnAction = PlayCard
| BuyCard
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment