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

Safe HaskellNone
LanguageHaskell2010

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 Bool Source #

Require that the target enemy is visible by the party.

condTgtEnemyRememberedM :: MonadClient m => ActorId -> m Bool Source #

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

condTgtEnemyAdjFriendM :: MonadClient m => ActorId -> m Bool Source #

Require that the target enemy is adjacent to at least one friend.

condTgtNonmovingM :: MonadClient m => ActorId -> m Bool Source #

Check if the target is nonmoving.

condAnyFoeAdjM :: MonadStateRead m => ActorId -> m Bool Source #

Require that any non-dying foe is adjacent.

condHpTooLowM :: MonadClient m => ActorId -> m Bool Source #

Require the actor's HP is low enough.

condOnTriggerableM :: MonadStateRead m => ActorId -> m Bool Source #

Require the actor stands over a triggerable tile.

condBlocksFriendsM :: MonadClient m => ActorId -> m Bool Source #

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

condFloorWeaponM :: MonadClient m => ActorId -> m Bool Source #

Require the actor stands over a weapon that would be auto-equipped.

condNoEqpWeaponM :: MonadClient m => ActorId -> m Bool Source #

Check whether the actor has no weapon in equipment.

condEnoughGearM :: MonadClient m => ActorId -> m Bool Source #

Check whether the actor has enough gear to go look for enemies.

condCanProjectM :: MonadClient m => Bool -> ActorId -> m Bool Source #

Require that the actor can project any items.

condNotCalmEnoughM :: MonadClient m => ActorId -> m Bool Source #

Require the actor is not calm enough.

condDesirableFloorItemM :: MonadClient m => ActorId -> m Bool Source #

Require that the actor stands over a desirable item.

condMeleeBadM :: MonadClient m => ActorId -> m Bool Source #

Require the actor is in a bad position to melee or can't melee at all.

condLightBetraysM :: MonadClient m => ActorId -> m Bool Source #

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

benAvailableItems :: MonadClient m => ActorId -> (Maybe Int -> ItemFull -> Actor -> [ItemFull] -> Bool) -> [CStore] -> m [((Maybe (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, CStore)), (ItemId, ItemFull))] Source #

Produce the list of items on the ground beneath the actor that are worth picking up.

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 => ActorId -> m ([(Int, Point)], [(Int, Point)]) Source #

Produce a list of acceptable adjacent points to flee to.