Safe Haskell | None |
---|---|
Language | Haskell2010 |
Handle effects (most often caused by requests sent by clients).
- applyItem :: (MonadAtomic m, MonadServer m) => ActorId -> ItemId -> CStore -> m ()
- itemEffect :: (MonadAtomic m, MonadServer m) => ActorId -> ActorId -> ItemId -> ItemFull -> Bool -> Bool -> m Bool
- itemEffectAndDestroy :: (MonadAtomic m, MonadServer m) => ActorId -> ActorId -> ItemId -> ItemFull -> CStore -> m ()
- effectsSem :: (MonadAtomic m, MonadServer m) => [Effect Int] -> ActorId -> ActorId -> Bool -> m Bool
- dropEqpItem :: (MonadAtomic m, MonadServer m) => ActorId -> Actor -> Bool -> ItemId -> Int -> m ()
- armorHurtBonus :: (MonadAtomic m, MonadServer m) => ActorId -> ActorId -> m Int
Documentation
applyItem :: (MonadAtomic m, MonadServer m) => ActorId -> ItemId -> CStore -> m () Source
itemEffect :: (MonadAtomic m, MonadServer m) => ActorId -> ActorId -> ItemId -> ItemFull -> Bool -> Bool -> m Bool Source
The source actor affects the target actor, with a given item.
If any of the effect effect fires up, the item gets identified. This function
is mutually recursive with effect
and so it's a part of Effect
semantics.
itemEffectAndDestroy :: (MonadAtomic m, MonadServer m) => ActorId -> ActorId -> ItemId -> ItemFull -> CStore -> m () Source
effectsSem :: (MonadAtomic m, MonadServer m) => [Effect Int] -> ActorId -> ActorId -> Bool -> m Bool Source
dropEqpItem :: (MonadAtomic m, MonadServer m) => ActorId -> Actor -> Bool -> ItemId -> Int -> m () Source
Drop a single actor's item. Note that if there multiple copies, at most one explodes to avoid excessive carnage and UI clutter (let's say, the multiple explosions interfere with each other or perhaps larger quantities of explosives tend to be packaged more safely).
armorHurtBonus :: (MonadAtomic m, MonadServer m) => ActorId -> ActorId -> m Int Source