LambdaHack-0.2.10: A roguelike game engine in early and active development

Safe HaskellNone

Game.LambdaHack.Server.EffectSem

Contents

Description

Effect semantics. TODO: document

Synopsis

Documentation

itemEffect :: (MonadAtomic m, MonadServer m) => ActorId -> ActorId -> Maybe ItemId -> Item -> m ()

The source actor affects the target actor, with a given item. If the event is seen, the item may get identified. This function is mutually recursive with effect and so it's a part of Effect semantics.

effectSem :: (MonadAtomic m, MonadServer m) => Effect Int -> ActorId -> ActorId -> m Bool

The source actor affects the target actor, with a given effect and power. Both actors are on the current level and can be the same actor. The boolean result indicates if the effect was spectacular enough for the actors to identify it (and the item that caused it, if any).

Assorted operations

addHero :: (MonadAtomic m, MonadServer m) => FactionId -> Point -> LevelId -> [(Int, Text)] -> Maybe Int -> Time -> m ActorId

Create a new hero on the current level, close to the given position.

spawnMonsters :: (MonadAtomic m, MonadServer m) => [Point] -> LevelId -> ((FactionId, Faction) -> Bool) -> Time -> Text -> m ()

Spawn monsters of any spawn or summon faction, friendly or not. To be used for spontaneous spawning of monsters and for the summon effect.