Table of Contents

AI Behavior Mechanic - Code References

Java Classes

AI State Implementations

JSON Configuration

AI states can be specified in mob JSON descriptors with the “aiState” parameter:

String Resources

<!-- AI Status Strings -->
<string name="Mob_StaWanderingStatus">%s is wandering</string>
<string name="Mob_StaHuntingStatus">%s is hunting</string>
<string name="Mob_StaHuntingStatus2">%s is hunting %s</string>
<string name="Mob_StaSleepingStatus">%s is sleeping</string>
<string name="Mob_StaPassiveStatus">%s is passive</string>
<string name="Mob_StaFleeingStatus">%s is fleeing</string>
<string name="Mob_StaFleeingStatus2">%s is fleeing from %s</string>

Lua Scripts

AI states can be manipulated via Lua scripts for custom mob behaviors:

AI State Transitions

AiState Interface Methods

public interface AiState {
    void act(@NotNull Char me);                    // Called each turn to execute AI behavior
    String status(Char me);                         // Returns status string for display
    String getTag();                                // Returns AI state identifier
    void gotDamage(Char me, NamedEntityKind src, int dmg);  // Called when mob takes damage
    void onDie(@NotNull Char me);                   // Called when mob dies
}

Entity Kind