//===== Hercules Documentation ===============================
//= Hercules Monster Modes Reference
//===== By: ==================================================
//= Hercules Dev Team
//===== Current Version: =====================================
//= 20120630
//===== Description: =========================================
//= A reference description of Hercules' mob_db 'mode' field.
//============================================================

Bit Legend:
-------------------------------------------------------------------------------

MD_CANMOVE            | 0x00001 |      1
MD_LOOTER             | 0x00002 |      2
MD_AGGRESSIVE         | 0x00004 |      4
MD_ASSIST             | 0x00008 |      8
MD_CASTSENSOR_IDLE    | 0x00010 |     16
MD_BOSS               | 0x00020 |     32
MD_PLANT              | 0x00040 |     64
MD_CANATTACK          | 0x00080 |    128
MD_DETECTOR           | 0x00100 |    256
MD_CASTSENSOR_CHASE   | 0x00200 |    512
MD_CHANGECHASE        | 0x00400 |   1024
MD_ANGRY              | 0x00800 |   2048
MD_CHANGETARGET_MELEE | 0x01000 |   4096
MD_CHANGETARGET_CHASE | 0x02000 |   8192
MD_TARGETWEAK         | 0x04000 |  16384
MD_NOKNOCKBACK        | 0x08000 |  32768
MD_RANDOMTARGET       | 0x10000 |  65536 (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.

NoKnockback: Monsters will be immune to Knockback's.

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