-.float sprite_height;
-
.void() attack_melee;
.float() attack_ranged;
.float() checkattack;
.float candrop;
-.float spawner_monstercount;
+.float spawn_time; // stop monster from moving around right after spawning
+
+.string oldtarget2;
+.float lastshielded;
+
+const float MONSTER_RESPAWN_SPAWNPOINT = 10; // re-spawn at original spawn point
+const float MONSTER_RESPAWN_DEATHPOINT = 11; // re-spawn where we died
.float monster_respawned; // used to make sure we're not recounting respawned monster stats
const float MONSTERSKILL_NOTINSANE = 2048; // monster will not spawn on skill 5
const float MONSTERSKILL_NOTNIGHTMARE = 4096; // monster will not spawn on skill >= 6
+// legacy flags
const float MONSTERFLAG_NORESPAWN = 2;
const float MONSTERFLAG_MINIBOSS = 64; // monster spawns as mini-boss (also has a chance of naturally becoming one)
const float MONSTERFLAG_NOWANDER = 128; // disable wandering around (currently unused)
const float MONSTERFLAG_APPEAR = 256; // delay spawn until triggered
-const float MONSTERFLAG_GIANT = 512; // experimental giant monsters feature
-const float MONSTERFLAG_SPAWNED = 1024; // flag for spawned monsters
+const float MONSTERFLAG_SPAWNED = 512; // flag for spawned monsters
.float msound_delay; // restricts some monster sounds
.string msound_idle;
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); }
-
-float MONSTER_STATE_ATTACK_LEAP = 1; // the start of something big?
+const float MONSTER_STATE_ATTACK_LEAP = 1;
+const float MONSTER_STATE_ATTACK_MELEE = 2;