27 lines
548 B
Haskell
27 lines
548 B
Haskell
|
{-# LANGUAGE MultiParamTypeClasses #-}
|
||
|
module Types.ObjClass where
|
||
|
|
||
|
import Affection
|
||
|
|
||
|
import Data.Ecstasy
|
||
|
|
||
|
import Types.Entity
|
||
|
import Types.UserData
|
||
|
|
||
|
class ObjectAction otype ostate where
|
||
|
objectAction
|
||
|
:: Double
|
||
|
-> otype
|
||
|
-> ostate
|
||
|
-> Ent
|
||
|
-> SystemT Entity (AffectionState (AffectionData UserData) IO) ()
|
||
|
|
||
|
objectTransition
|
||
|
:: otype
|
||
|
-> ostate
|
||
|
-> Ent
|
||
|
-> SystemT Entity (AffectionState (AffectionData UserData) IO) (Entity 'SetterOf)
|
||
|
|
||
|
class ActionTime otype ostate where
|
||
|
actionTime :: otype -> ostate -> Double
|