.float() attack_ranged;
.float() checkattack;
-entity(entity ent) FindTarget;
+.float candrop;
.float spawner_monstercount;
const float MONSTERFLAG_GIANT = 512; // experimental giant monsters feature
const float MONSTERFLAG_SPAWNED = 1024; // flag for spawned monsters
+.float msound_delay; // restricts some monster sounds
+.string msound_idle;
+.string msound_death;
+.string msound_attack_melee;
+.string msound_attack_ranged;
+.string msound_spawn;
+.string msound_sight;
+.string msound_pain;
+
.void() monster_spawnfunc;
.void() monster_die;
.void() monster_delayedattack;
-.float monster_moveflags; // checks where to move when not attacking (currently unused)
+.float monster_movestate; // used to tell what the monster is currently doing
const float MONSTER_MOVE_OWNER = 1; // monster will move to owner if in range, or stand still
const float MONSTER_MOVE_WANDER = 2; // monster will ignore owner & wander around
const float MONSTER_MOVE_SPAWNLOC = 3; // monster will move to its spawn location when not attacking
const float MONSTER_MOVE_NOMOVE = 4; // monster simply stands still
+const float MONSTER_MOVE_ENEMY = 5; // used only as a movestate
float enemy_range () { return vlen(self.enemy.origin - self.origin); }