]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/monsters/monster/knight.qc
Merge branch 'master' into Mario/monsters
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / monsters / monster / knight.qc
index c1d2763a8d0f77252fee10c776e8598f41611879..816ac600ffbadbf7f94cfb185ffe3787b808ac57 100644 (file)
@@ -1,12 +1,9 @@
-// size
 const vector KNIGHT_MIN = '-20 -20 -32';
 const vector KNIGHT_MAX = '20 20 41';
 
-// model
 string KNIGHT_MODEL = "models/monsters/hknight.mdl";
 
 #ifdef SVQC
-// cvars
 float autocvar_g_monster_knight;
 float autocvar_g_monster_knight_health;
 float autocvar_g_monster_knight_melee_damage;
@@ -29,7 +26,6 @@ float autocvar_g_monster_knight_jump_chance;
 float autocvar_g_monster_knight_jump_damage;
 float autocvar_g_monster_knight_jump_dist;
 
-// animations
 const float knight_anim_stand  = 0;
 const float knight_anim_walk   = 1;
 const float knight_anim_run    = 2;
@@ -57,8 +53,6 @@ void knight_think()
 
 void knight_inferno()
 {
-       self.monster_delayedattack = func_null;
-       self.delay = -1;
        if not(self.enemy)
                return;
                
@@ -103,9 +97,6 @@ void knight_fireball()
        
        monster_makevectors(self.enemy);
        
-       self.monster_delayedattack = func_null;
-       self.delay = -1;
-       
        self.effects |= EF_MUZZLEFLASH;
        sound(self, CHAN_WEAPON, "weapons/fireball2.wav", 1, ATTN_NORM);
 
@@ -169,15 +160,11 @@ void knight_spike()
 
 void knight_spikes()
 {
-       self.monster_delayedattack = knight_spikes;
-       self.delay = time + 0.1;
        self.knight_cycles += 1;
        knight_spike();
-       if(self.knight_cycles >= 7)
-       {
-               self.monster_delayedattack = func_null;
-               self.delay = -1;
-       }
+       
+       if(self.knight_cycles <= 7)
+               defer(0.1, knight_spikes);
 }
 
 float knight_attack_ranged()
@@ -198,25 +185,22 @@ float knight_attack_ranged()
                case 1:
                {
                        monsters_setframe(knight_anim_magic2);
-                       self.delay = time + 0.4;
-                       self.monster_delayedattack = knight_fireball;
                        self.attack_finished_single = time + 2;
+                       defer(0.4, knight_fireball);
                        
                        return TRUE;
                }
                case 2:
                {
-                       self.monster_delayedattack = knight_inferno;
-                       self.delay = time + 0.5;
                        self.attack_finished_single = time + 3;
+                       defer(0.5, knight_inferno);
                        return TRUE;
                }
                case 3:
                {
                        monsters_setframe(knight_anim_magic3);
-                       self.monster_delayedattack = knight_spikes;
-                       self.delay = time + 0.4;
                        self.attack_finished_single = time + 3;
+                       defer(0.4, knight_spikes);
                        
                        return TRUE;
                }
@@ -308,7 +292,7 @@ void knight_spawn()
 }
 
 void spawnfunc_monster_knight()
-{      
+{
        if not(autocvar_g_monster_knight) { remove(self); return; }
        
        self.monster_spawnfunc = spawnfunc_monster_knight;