]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fusion Reactor now heals monsters instead of turrets, idea by hutty
authorMario <mario.mario@y7mail.com>
Thu, 30 May 2013 19:04:16 +0000 (05:04 +1000)
committerMario <mario.mario@y7mail.com>
Thu, 30 May 2013 19:04:16 +0000 (05:04 +1000)
qcsrc/server/mutators/gamemode_towerdefense.qc
qcsrc/server/tturrets/units/unit_fusionreactor.qc

index 9a588bfd2a3262c9b193f9572220c4e774c682ad..f4519da4c2fc19b40f96308fb6fe2b94c0337f6c 100644 (file)
@@ -606,6 +606,9 @@ MUTATOR_HOOKFUNCTION(td_TurretSpawn)
        if(self.realowner == world)
                return TRUE;
                
+       if(self.turrcaps_flags & TFL_TURRCAPS_SUPPORT)
+               self.target_range = 500;
+               
        self.bot_attack = FALSE;
        buffturret(self, 0.7);
        
@@ -878,9 +881,7 @@ MUTATOR_HOOKFUNCTION(td_TurretValidateTarget)
     if(turret_target.flags & FL_PROJECTILE)
        if(turret_target.owner.flags & FL_MONSTER)
         return TRUE; // flac support
-                       
-       if(turret.turrcaps_flags & TFL_TURRCAPS_SUPPORT && turret_target.turrcaps_flags & TFL_TURRCAPS_ISTURRET)
-               return TRUE;
+       
        if not(turret_target.flags & FL_MONSTER)
                turret_target = world;
                
index e9db03fff3f8509c052c38361b2a6df0b5adb39d..d1bf0893192e03bf755bae18f8568c819c142d9b 100644 (file)
@@ -7,11 +7,10 @@ void turret_fusionreactor_fire()
     vector fl_org;
 
     self.enemy.ammo = min(self.enemy.ammo + self.shot_dmg,self.enemy.ammo_max);
-    if(g_td) // auto repair?
+    if(g_td) // auto heal monsters in tower defense
        {
         self.enemy.health = min(self.enemy.health + self.shot_dmg,self.enemy.max_health);
-               self.enemy.tur_health = min(self.enemy.tur_health + self.shot_dmg,self.enemy.max_health);
-               self.enemy.SendFlags |= TNSF_STATUS;
+               self.enemy.SendFlags |= MSF_STATUS;
        }
     fl_org = 0.5 * (self.enemy.absmin + self.enemy.absmax);
     te_smallflash(fl_org);
@@ -51,14 +50,14 @@ float turret_fusionreactor_firecheck()
 
     if(g_td)
     {
-        if(self.realowner != self.enemy.realowner)
+        if(self.enemy.health >= self.enemy.max_health)
             return 0;
-            
-               if(self.enemy.turrcaps_flags & TFL_TURRCAPS_AMMOSOURCE)
+                       
+               if(IsDifferentTeam(self.enemy, self))
                        return 0;
                        
-        if(self.enemy.health >= self.enemy.max_health)
-            return 0;
+               if(self.enemy.flags & FL_MONSTER)
+                       return 1; // the following checks are for turrets only
     }
        
        if (self.enemy.ammo >= self.enemy.ammo_max)