pituicat/src/Classes/Collectable.hs

28 lines
626 B
Haskell
Raw Normal View History

2021-04-20 02:19:54 +00:00
module Classes.Collectable where
2021-04-18 13:07:56 +00:00
import Classes.Physics.Collidible (Collidible)
-- | All kinds of Effects present in the game
data Effect
= HealthUp
| SpeedUp
| JumpUp
| ArmorUp
| Antidote
| StopTime
| Invisibility
2021-04-20 02:19:54 +00:00
deriving (Show)
-- | The Effect holder type definition
data EffectHolder = EffectHolder
{ effectDuration :: Double -- ^ Duration of stored effect
, effectReleased :: Effect -- ^ The actual effect released
}
2021-04-20 02:19:54 +00:00
deriving (Show)
class Collidible c => Collectable c where
effect
:: c -- ^ Collectable object
-> EffectHolder -- ^ The descriptor of the effect contained