LambdaHack-0.4.9.0: A game engine library for roguelike dungeon crawlers

Safe HaskellNone

Game.LambdaHack.Client.AI.ConditionClient

Description

Semantics of abilities in terms of actions and the AI procedure for picking the best action for an actor.

Synopsis

Documentation

condTgtEnemyPresentM :: MonadClient m => ActorId -> m BoolSource

Require that the target enemy is visible by the party.

condTgtEnemyRememberedM :: MonadClient m => ActorId -> m BoolSource

Require that the target enemy is remembered on the actor's level.

condAnyFoeAdjM :: MonadStateRead m => ActorId -> m BoolSource

Require that any non-dying foe is adjacent.

condHpTooLowM :: MonadClient m => ActorId -> m BoolSource

Require the actor's HP is low enough.

condOnTriggerableM :: MonadStateRead m => ActorId -> m BoolSource

Require the actor stands over a triggerable tile.

condBlocksFriendsM :: MonadClient m => ActorId -> m BoolSource

Require the actor blocks the paths of any of his party members.

condFloorWeaponM :: MonadClient m => ActorId -> m BoolSource

Require the actor stands over a weapon.

condNoEqpWeaponM :: MonadClient m => ActorId -> m BoolSource

Check whether the actor has no weapon in equipment.

condCanProjectM :: MonadClient m => ActorId -> m BoolSource

Require that the actor can project any items.

condNotCalmEnoughM :: MonadClient m => ActorId -> m BoolSource

Require the actor is not calm enough.

condDesirableFloorItemM :: MonadClient m => ActorId -> m BoolSource

Require that the actor stands over a desirable item.

condMeleeBadM :: MonadClient m => ActorId -> m BoolSource

Require the actor is in a bad position to melee. We do not check if the actor has a weapon, because having no innate weapon is rare.

condLightBetraysM :: MonadClient m => ActorId -> m BoolSource

Require that the actor stands in the dark, but is betrayed by his own equipped light,

benAvailableItems :: MonadClient m => ActorId -> (ItemFull -> Maybe Int -> Bool) -> [CStore] -> m [((Maybe (Int, (Int, Int)), (Int, CStore)), (ItemId, ItemFull))]Source

Produce the list of items with a given property available to the actor and the items' values.

benGroundItems :: MonadClient m => ActorId -> m [((Maybe (Int, (Int, Int)), (Int, CStore)), (ItemId, ItemFull))]Source

Produce the list of items on the ground beneath the actor.

threatDistList :: MonadClient m => ActorId -> m [(Int, (ActorId, Actor))]Source

Produce the chess-distance-sorted list of non-low-HP foes on the level. We don't consider path-distance, because we are interested in how soon the foe can hit us, which can diverge greately from path distance for short distances.

fleeList :: MonadClient m => Bool -> ActorId -> m [(Int, Point)]Source

Produce a list of acceptable adjacent points to flee to.