Copyright | (c) Alexander Vieth 2015 |
---|---|
License | BSD3 |
Maintainer | aovieth@gmail.com |
Stability | experimental |
Portability | non-portable (GHC only) |
Safe Haskell | None |
Language | Haskell2010 |
- type Resolved k phase order = (k phase order, Maybe (FailureReason phase order))
- data SomeResolved k phase where
- SomeResolved :: Resolved k phase order -> SomeResolved k phase
- withSomeResolved :: (forall order. Resolved k phase order -> t) -> SomeResolved k phase -> t
- data FailureReason phase order where
- MoveOverpowered :: AtLeast One (Aligned Subject) -> FailureReason Typical Move
- MoveBounced :: AtLeast One (Aligned Subject) -> FailureReason Typical Move
- MoveFriendlyDislodge :: Unit -> FailureReason Typical Move
- MoveNoConvoy :: FailureReason Typical Move
- MoveConvoyParadox :: FailureReason Typical Move
- SupportVoid :: FailureReason Typical Support
- SupportCut :: AtLeast One (Aligned Subject) -> FailureReason Typical Support
- SupportDislodged :: Aligned Subject -> FailureReason Typical Support
- ConvoyVoid :: FailureReason Typical Convoy
- ConvoyNoRoute :: FailureReason Typical Convoy
- ConvoyRouteCut :: [(Zone, Aligned Subject)] -> FailureReason Typical Convoy
- WithdrawCollision :: AtLeast One (Aligned Subject) -> FailureReason Retreat Withdraw
- type Resolution phase = Map Zone (Aligned Unit, SomeResolved OrderObject phase)
- typicalResolution :: Map Zone (Aligned Unit, SomeOrderObject Typical) -> Resolution Typical
- retreatResolution :: Map Zone (Aligned Unit, SomeOrderObject Retreat) -> Resolution Retreat
- adjustResolution :: Map Zone (Aligned Unit, SomeOrderObject Adjust) -> Resolution Adjust
- typicalChange :: Resolution Typical -> Zone -> Maybe (Aligned Subject)
- data ConvoyRoutes = ConvoyRoutes {}
- type ConvoyRoute = [(Zone, Maybe (Aligned Subject))]
- convoyRoutes :: Resolution Typical -> Subject -> ProvinceTarget -> ConvoyRoutes
- successfulConvoyRoutes :: ConvoyRoutes -> [ConvoyRoute]
Documentation
type Resolved k phase order = (k phase order, Maybe (FailureReason phase order)) Source #
data SomeResolved k phase where Source #
SomeResolved :: Resolved k phase order -> SomeResolved k phase |
Eq (SomeResolved OrderObject phase) Source # | |
Show (SomeResolved OrderObject phase) Source # | |
Show (SomeResolved Order phase) Source # | |
withSomeResolved :: (forall order. Resolved k phase order -> t) -> SomeResolved k phase -> t Source #
data FailureReason phase order where Source #
Enumeration of reasons why an order could not succeed.
Eq (FailureReason phase order) Source # | |
Show (FailureReason phase order) Source # | |
type Resolution phase = Map Zone (Aligned Unit, SomeResolved OrderObject phase) Source #
typicalResolution :: Map Zone (Aligned Unit, SomeOrderObject Typical) -> Resolution Typical Source #
Resolution for the Typical phase.
retreatResolution :: Map Zone (Aligned Unit, SomeOrderObject Retreat) -> Resolution Retreat Source #
Resolution for the Retreat phase.
adjustResolution :: Map Zone (Aligned Unit, SomeOrderObject Adjust) -> Resolution Adjust Source #
Resolution for the Adjust phase.
typicalChange :: Resolution Typical -> Zone -> Maybe (Aligned Subject) Source #
Changes to a board as the result of a typical phase.
Nothing
means no change, Just pt
means the unit belonging to the great
power now lies the input Zone
, and used to lie at the given
ProvinceTarget
pt
.
data ConvoyRoutes Source #
convoyRoutes :: Resolution Typical -> Subject -> ProvinceTarget -> ConvoyRoutes Source #
successfulConvoyRoutes :: ConvoyRoutes -> [ConvoyRoute] Source #
These are always non-paradox routes.