//===== rAthena Documentation ================================
//= rAthena Monster Modes Reference
//===== By: ==================================================
//= rAthena Dev Team
//===== Last Updated: ========================================
//= 20120630
//===== Description: =========================================
//= A reference description of rAthena's mob_db 'mode' field.
//============================================================

Bit Legend
-------------------------------------------------------------------------------

MD_CANMOVE            | 0x000001 |        1
MD_LOOTER             | 0x000002 |        2
MD_AGGRESSIVE         | 0x000004 |        4
MD_ASSIST             | 0x000008 |        8
MD_CASTSENSOR_IDLE    | 0x000010 |       16
MD_BOSS               | 0x000020 |       32
MD_PLANT              | 0x000040 |       64
MD_CANATTACK          | 0x000080 |      128
MD_DETECTOR           | 0x000100 |      256
MD_CASTSENSOR_CHASE   | 0x000200 |      512
MD_CHANGECHASE        | 0x000400 |     1024
MD_ANGRY              | 0x000800 |     2048
MD_CHANGETARGET_MELEE | 0x001000 |     4096
MD_CHANGETARGET_CHASE | 0x002000 |     8192
MD_TARGETWEAK         | 0x004000 |    16384
MD_RANDOMTARGET       | 0x008000 |    32768
MD_IGNOREMELEE        | 0x010000 |    65536
MD_IGNOREMAGIC        | 0x020000 |   131072
MD_IGNORERANGED       | 0x040000 |   262144
MD_MVP                | 0x080000 |   524288
MD_IGNOREMISC         | 0x100000 |  1048576
MD_KNOCKBACK_IMMUNE   | 0x200000 |  2097152
MD_NORANDOM_WALK      | 0x400000 |  4194304
MD_NOCAST_SKILL       | 0x800000 |  8388608


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.

Ignore Melee: The mob will take 1 HP damage from physical attacks.

Ignore Magic: The mob will take 1 HP damage from magic attacks.

Ignore Range: The mob will take 1 HP damage from ranged attacks.

MVP: Flagged as MVP which makes mobs resistance to Coma.

Ignore Misc: The mob will take 1 HP damage from "none" attack type.

Knockback Immune: The mob will be unable to be knocked back.


Aegis Mob Types
-------------------------------------------------------------------------------

What Aegis has are mob-types, where each type represents an AI behavior 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 (aggressive, change-target chase)
06: 0x0000 (passive, immobile, can't attack) [plants]
07: 0x108B (passive, looter, assist, change-target melee)
08: 0x6085 (aggressive, change-target chase, target weak enemies)
09: 0x3095 (aggressive, change-target melee/chase, cast sensor idle) [Guardian]
10: 0x0084 (aggressive, immobile)
11: 0x0084 (aggressive, immobile) [Guardian]
12: 0x2085 (aggressive, change-target chase) [Guardian]
13: 0x308D (aggressive, change-target melee/chase, assist)
17: 0x0091 (passive, cast sensor idle)
19: 0x3095 (aggressive, change-target melee/chase, cast sensor idle)
20: 0x3295 (aggressive, change-target melee/chase, cast sensor idle/chase)
21: 0x3695 (aggressive, change-target melee/chase, cast sensor idle/chase, chase-change target)
25: 0x0001 (passive, can't attack) [Pet]
26: 0xB695 (aggressive, change-target melee/chase, cast sensor idle/chase, chase-change target, random target)
27: 0x8084 (aggressive, 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.
