//===== 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.
