//===== Athena Doc ========================================
//= eAthena Monster Modes Reference
//===== By ================================================
//= Developers
//===== Version ===========================================
//= 1.0
//=========================================================
//= 1.0 - Standardized doc file
//===== Description =======================================
//= A reference description of eA's mob_db 'mode' field
//=========================================================
Bit Legend:
-------------------------------------------------------------------------------
MD_CANMOVE | 0x0001 | 1
MD_LOOTER | 0x0002 | 2
MD_AGGRESSIVE | 0x0004 | 4
MD_ASSIST | 0x0008 | 8
MD_CASTSENSOR_IDLE | 0x0010 | 16
MD_BOSS | 0x0020 | 32
MD_PLANT | 0x0040 | 64
MD_CANATTACK | 0x0080 | 128
MD_DETECTOR | 0x0100 | 256
MD_CASTSENSOR_CHASE | 0x0200 | 512
MD_CHANGECHASE | 0x0400 | 1024
MD_ANGRY | 0x0800 | 2048
MD_CHANGETARGET_MELEE | 0x1000 | 4096
MD_CHANGETARGET_CHASE | 0x2000 | 8192
MD_TARGETWEAK | 0x4000 | 16384
MD_RANDOMTARGET | 0x8000 | 32768 (not implemented)
Explanation for modes:
-------------------------------------------------------------------------------
CanMove: Enables the mob to move/chase characters.
CanAttack: Enables the mob to attack/retaliate when you are within attack
range. Note that this only enables them to use normal attacks, skills are
always allowed.
Looter: The mob will loot up nearby items on the ground when it's on idle state.
Aggressive: normal aggressive mob, will look for a close-by player to attack.
Assist: When a nearby mob of the same class attacks, assist types will join them.
Cast Sensor Idle: Will go after characters who start casting on them if idle
or walking (without a target).
Cast Sensor Chase: Will go after characters who start casting on them if idle
or chasing other players (they switch chase targets)
Boss: Special flag which makes mobs immune to certain status changes and skills.
Plant: Always receives 1 damage from attacks.
Detector: Enables mob to detect and attack characters who are in hiding/cloak.
ChangeChase: Allows chasing mobs to switch targets if another player happens
to be within attack range (handy on ranged attackers, for example)
Angry: These mobs are "hyper-active". Apart from "chase"/"attack", they have
the states "follow"/"angry". Once hit, they stop using these states and use
the normal ones. The new states are used to determine a different skill-set
for their "before attacked" and "after attacked" states. Also, when
"following", they automatically switch to whoever character is closest.
Change Target Melee: Enables a mob to switch targets when attacked while
attacking someone else.
Change Target Chase: Enables a mob to switch targets when attacked while
chasing another character.
Target Weak: Allows aggressive monsters to only be aggressive against
characters that are five levels below it's own level.
For example, a monster of level 104 will not pick fights with a level 99.
Random Target: Picks a new random target in range on each attack / skill.
(not implemented)
Aegis Mob Types:
-------------------------------------------------------------------------------
What Aegis has are mob-types, where each type represents an AI behaviour that
is mimicked by a group of eA mode bits. This is the table to convert from one
to another:
Aegis/eA (description)
01: 0x0081 (passive)
02: 0x0083 (passive, looter)
03: 0x1089 (passive, assist and change-target melee)
04: 0x3885 (angry, change-target melee/chase)
05: 0x2085 (aggro, change-target chase)
06: 0x0000 (passive, immobile, can't attack) [plants]
07: 0x108B (passive, looter, assist, change-target melee)
08: 0x6085 (aggro, change-target chase, target weak enemies)
09: 0x3095 (aggro, change-target melee/chase, cast sensor idle) [Guardian]
10: 0x0084 (aggro, immobile)
11: 0x0084 (aggro, immobile) [Guardian]
12: 0x2085 (aggro, change-target chase) [Guardian]
13: 0x308D (aggro, change-target melee/chase, assist)
17: 0x0091 (passive, cast sensor idle)
19: 0x3095 (aggro, change-target melee/chase, cast sensor idle)
20: 0x3295 (aggro, change-target melee/chase, cast sensor idle/chase)
21: 0x3695 (aggro, change-target melee/chase, cast sensor idle/chase, chase-change target)
26: 0xB695 (aggro, change-target melee/chase, cast sensor idle/chase, chase-change target, random target)
27: 0x8084 (aggro, immobile, random target)
- Note that the detector bit due to being Insect/Demon, plant and Boss mode
bits need to be added independently of this list.