Safe Haskell | None |
---|---|
Language | Haskell2010 |
Semantics of atomic commands shared by client and server. See https://github.com/LambdaHack/LambdaHack/wiki/Client-server-architecture.
- handleUpdAtomic :: MonadStateWrite m => UpdAtomic -> m ()
- updCreateActor :: MonadStateWrite m => ActorId -> Actor -> [(ItemId, Item)] -> m ()
- updDestroyActor :: MonadStateWrite m => ActorId -> Actor -> [(ItemId, Item)] -> m ()
- updCreateItem :: MonadStateWrite m => ItemId -> Item -> ItemQuant -> Container -> m ()
- updDestroyItem :: MonadStateWrite m => ItemId -> Item -> ItemQuant -> Container -> m ()
- updMoveActor :: MonadStateWrite m => ActorId -> Point -> Point -> m ()
- updWaitActor :: MonadStateWrite m => ActorId -> Bool -> m ()
- updDisplaceActor :: MonadStateWrite m => ActorId -> ActorId -> m ()
- updMoveItem :: MonadStateWrite m => ItemId -> Int -> ActorId -> CStore -> CStore -> m ()
- updRefillHP :: MonadStateWrite m => ActorId -> Int64 -> m ()
- updRefillCalm :: MonadStateWrite m => ActorId -> Int64 -> m ()
- updTrajectory :: MonadStateWrite m => ActorId -> Maybe ([Vector], Speed) -> Maybe ([Vector], Speed) -> m ()
- updQuitFaction :: MonadStateWrite m => FactionId -> Maybe Status -> Maybe Status -> m ()
- updLeadFaction :: MonadStateWrite m => FactionId -> Maybe ActorId -> Maybe ActorId -> m ()
- updDiplFaction :: MonadStateWrite m => FactionId -> FactionId -> Diplomacy -> Diplomacy -> m ()
- updTacticFaction :: MonadStateWrite m => FactionId -> Tactic -> Tactic -> m ()
- updAutoFaction :: MonadStateWrite m => FactionId -> Bool -> m ()
- updRecordKill :: MonadStateWrite m => ActorId -> Id ItemKind -> Int -> m ()
- updAlterTile :: MonadStateWrite m => LevelId -> Point -> Id TileKind -> Id TileKind -> m ()
- updAlterExplorable :: MonadStateWrite m => LevelId -> Int -> m ()
- updSpotTile :: MonadStateWrite m => LevelId -> [(Point, Id TileKind)] -> m ()
- updLoseTile :: MonadStateWrite m => LevelId -> [(Point, Id TileKind)] -> m ()
- updAlterSmell :: MonadStateWrite m => LevelId -> Point -> Time -> Time -> m ()
- updSpotSmell :: MonadStateWrite m => LevelId -> [(Point, Time)] -> m ()
- updLoseSmell :: MonadStateWrite m => LevelId -> [(Point, Time)] -> m ()
- updTimeItem :: MonadStateWrite m => ItemId -> Container -> ItemTimer -> ItemTimer -> m ()
- updAgeGame :: MonadStateWrite m => [LevelId] -> m ()
- updUnAgeGame :: MonadStateWrite m => [LevelId] -> m ()
- updRestart :: MonadStateWrite m => State -> m ()
- updRestartServer :: MonadStateWrite m => State -> m ()
- updResumeServer :: MonadStateWrite m => State -> m ()
Documentation
handleUpdAtomic :: MonadStateWrite m => UpdAtomic -> m () Source #
The game-state semantics of atomic game commands.
Special effects (SfxAtomic
) don't modify state.
Internal operations
updCreateActor :: MonadStateWrite m => ActorId -> Actor -> [(ItemId, Item)] -> m () Source #
Creates an actor. Note: after this command, usually a new leader for the party should be elected (in case this actor is the only one alive).
updDestroyActor :: MonadStateWrite m => ActorId -> Actor -> [(ItemId, Item)] -> m () Source #
Kills an actor.
updCreateItem :: MonadStateWrite m => ItemId -> Item -> ItemQuant -> Container -> m () Source #
Create a few copies of an item that is already registered for the dungeon
(in sitemRev
field of StateServer
).
updDestroyItem :: MonadStateWrite m => ItemId -> Item -> ItemQuant -> Container -> m () Source #
Destroy some copies (possibly not all) of an item.
updMoveActor :: MonadStateWrite m => ActorId -> Point -> Point -> m () Source #
updWaitActor :: MonadStateWrite m => ActorId -> Bool -> m () Source #
updDisplaceActor :: MonadStateWrite m => ActorId -> ActorId -> m () Source #
updMoveItem :: MonadStateWrite m => ItemId -> Int -> ActorId -> CStore -> CStore -> m () Source #
updRefillHP :: MonadStateWrite m => ActorId -> Int64 -> m () Source #
updRefillCalm :: MonadStateWrite m => ActorId -> Int64 -> m () Source #
updTrajectory :: MonadStateWrite m => ActorId -> Maybe ([Vector], Speed) -> Maybe ([Vector], Speed) -> m () Source #
updQuitFaction :: MonadStateWrite m => FactionId -> Maybe Status -> Maybe Status -> m () Source #
updLeadFaction :: MonadStateWrite m => FactionId -> Maybe ActorId -> Maybe ActorId -> m () Source #
updDiplFaction :: MonadStateWrite m => FactionId -> FactionId -> Diplomacy -> Diplomacy -> m () Source #
updTacticFaction :: MonadStateWrite m => FactionId -> Tactic -> Tactic -> m () Source #
updAutoFaction :: MonadStateWrite m => FactionId -> Bool -> m () Source #
updRecordKill :: MonadStateWrite m => ActorId -> Id ItemKind -> Int -> m () Source #
Record a given number (usually just 1, or -1 for undo) of actor kills for score calculation.
updAlterTile :: MonadStateWrite m => LevelId -> Point -> Id TileKind -> Id TileKind -> m () Source #
Alter an attribute (actually, the only, the defining attribute)
of a visible tile. This is similar to e.g., UpdTrajectory
.
For now, we don't remove embedded items when altering a tile
and neither do we create fresh ones. It works fine, e.g., for tiles on fire
that change into burnt out tile and then the fire item can no longer
be triggered due to alterMinSkillKind
excluding items without Embed
,
even if the burnt tile has low enough talter
.
updAlterExplorable :: MonadStateWrite m => LevelId -> Int -> m () Source #
updSpotTile :: MonadStateWrite m => LevelId -> [(Point, Id TileKind)] -> m () Source #
updLoseTile :: MonadStateWrite m => LevelId -> [(Point, Id TileKind)] -> m () Source #
updAlterSmell :: MonadStateWrite m => LevelId -> Point -> Time -> Time -> m () Source #
updSpotSmell :: MonadStateWrite m => LevelId -> [(Point, Time)] -> m () Source #
updLoseSmell :: MonadStateWrite m => LevelId -> [(Point, Time)] -> m () Source #
updTimeItem :: MonadStateWrite m => ItemId -> Container -> ItemTimer -> ItemTimer -> m () Source #
updAgeGame :: MonadStateWrite m => [LevelId] -> m () Source #
Age the game.
updUnAgeGame :: MonadStateWrite m => [LevelId] -> m () Source #
updRestart :: MonadStateWrite m => State -> m () Source #
updRestartServer :: MonadStateWrite m => State -> m () Source #
updResumeServer :: MonadStateWrite m => State -> m () Source #