+METHOD(Mage, mr_pain, float(Mage this, entity actor, float damage_take, entity attacker, float deathtype))
+{
+ TC(Mage, this);
+ return damage_take;
+}
+
+METHOD(Mage, mr_death, bool(Mage this, entity actor))
+{
+ TC(Mage, this);
+ setanim(actor, actor.anim_die1, false, true, true);
+ return true;
+}
+
+#endif
+#ifdef GAMEQC
+METHOD(Mage, mr_anim, bool(Mage this, entity actor))
+{
+ TC(Mage, this);
+ vector none = '0 0 0';
+ actor.anim_die1 = animfixfps(actor, '4 1 0.5', none); // 2 seconds
+ actor.anim_walk = animfixfps(actor, '1 1 1', none);
+ actor.anim_idle = animfixfps(actor, '0 1 1', none);
+ actor.anim_pain1 = animfixfps(actor, '3 1 2', none); // 0.5 seconds
+ actor.anim_shoot = animfixfps(actor, '2 1 5', none); // analyze models and set framerate
+ actor.anim_run = animfixfps(actor, '5 1 1', none);
+ return true;
+}
+#endif
+#ifdef SVQC
+.float speed;
+spawnfunc(item_health_big);
+METHOD(Mage, mr_setup, bool(Mage this, entity actor))
+{
+ TC(Mage, this);
+ if(!actor.health) actor.health = (autocvar_g_monster_mage_health);
+ if(!actor.speed) { actor.speed = (autocvar_g_monster_mage_speed_walk); }
+ if(!actor.speed2) { actor.speed2 = (autocvar_g_monster_mage_speed_run); }
+ if(!actor.stopspeed) { actor.stopspeed = (autocvar_g_monster_mage_speed_stop); }
+ if(!actor.damageforcescale) { actor.damageforcescale = (autocvar_g_monster_mage_damageforcescale); }
+
+ actor.monster_loot = spawnfunc_item_health_big;
+ actor.monster_attackfunc = M_Mage_Attack;