{-| Module : Diplomacy.Subject Description : Definition of Subject Copyright : (c) Alexander Vieth, 2015 Licence : BSD3 Maintainer : aovieth@gmail.com Stability : experimental Portability : non-portable (GHC only) -} {-# LANGUAGE AutoDeriveTypeable #-} module Diplomacy.Subject ( Subject , subjectUnit , subjectProvinceTarget ) where import Diplomacy.Unit import Diplomacy.Province -- | Description of a subject in a diplomacy game, like the subject of an order -- for instance: -- -- a. F Bre - Eng -- b. A Par S A Bre - Pic -- -- have subjects -- -- a. (Fleet, Normal Brest) -- b. (Army, Normal Paris) -- type Subject = (Unit, ProvinceTarget) subjectUnit :: Subject -> Unit subjectUnit (x, _) = x subjectProvinceTarget :: Subject -> ProvinceTarget subjectProvinceTarget (_, x) = x