| Copyright | (c) Alexander Vieth 2015 |
|---|---|
| License | BSD3 |
| Maintainer | aovieth@gmail.com |
| Stability | experimental |
| Portability | non-portable (GHC only) |
| Safe Haskell | None |
| Language | Haskell2010 |
Diplomacy.OrderResolution
Description
- 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 #
Constructors
| SomeResolved :: Resolved k phase order -> SomeResolved k phase |
Instances
| 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.
Constructors
Instances
| 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.
convoyRoutes :: Resolution Typical -> Subject -> ProvinceTarget -> ConvoyRoutes Source #
successfulConvoyRoutes :: ConvoyRoutes -> [ConvoyRoute] Source #
These are always non-paradox routes.