mr:ai_behavior_mechanic
Table of Contents
AI Behavior Mechanic - Code References
Java Classes
- AI State Interface: AiState.java - Base interface for all AI states
- AI State Manager: MobAi.java - Manages AI state transitions
- Mob Base Class: Mob.java - Contains AI state management logic
AI State Implementations
- Wandering AI: Wandering.java - Random movement, transitions to hunting when enemy spotted
- Hunting AI: Hunting.java - Actively pursues enemies
- Sleeping AI: Sleeping.java - Dormant until woken by damage or enemy in FOV
- Passive AI: Passive.java - Does not initiate combat, only responds to damage
- Fleeing AI: Fleeing.java - Runs away from enemies
- RunningAmok AI: RunningAmok.java - Moves randomly while attacking everything
- Horrified AI: Horrified.java - Frightened state causing mob to flee
- ThiefFleeing AI: ThiefFleeing.java - Specialized fleeing AI for thief-type mobs
- ControlledAI AI: ControlledAi.java - AI controlled by player (summons/pets)
JSON Configuration
AI states can be specified in mob JSON descriptors with the “aiState” parameter:
- Mob Descriptors: Located in
RemixedDungeon/src/main/assets/mobsDesc/directory - Example:
{"aiState": "Sleeping"}
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:
- Script Location:
RemixedDungeon/src/main/assets/scripts/mobs/ - AI Control: Lua scripts can call Mob.setState() to change AI behavior
AI State Transitions
- Damage Trigger: When mob takes damage → typically transitions to Hunting AI
- Sight Trigger: When mob sees enemy while Sleeping/Wandering → transitions to Hunting AI
- Health Trigger: When mob's health is low → may transition to Fleeing AI
- Scripted Trigger: Lua scripts can force AI state changes
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
- Interface:
com.nyrds.pixeldungeon.ai.AiState - Package:
com.nyrds.pixeldungeon.ai - Pattern: State Pattern for AI behavior management
mr/ai_behavior_mechanic.txt · Last modified: by 127.0.0.1
