]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix generator team colors
authorMario <mario.mario@y7mail.com>
Fri, 17 May 2013 15:01:47 +0000 (01:01 +1000)
committerMario <mario.mario@y7mail.com>
Fri, 17 May 2013 15:01:47 +0000 (01:01 +1000)
qcsrc/server/mutators/gamemode_towerdefense.qc

index fd178d29eeaaa8780b6776a7d40e07517d2faaf4..fc3db63d81e4d85db1a2f26cfe1bd321c2d4868f 100644 (file)
@@ -122,6 +122,14 @@ void td_generator_damage(entity inflictor, entity attacker, float damage, float
        self.SendFlags |= GSF_STATUS;
 }
 
+void td_generator_reset()
+{
+       self.SendFlags |= GSF_SETUP;
+       self.health = self.max_health;
+       
+       WaypointSprite_UpdateHealth(self.sprite, self.health);
+}
+
 void td_generator_setup()
 {
        self.think                      = func_null;
@@ -133,7 +141,7 @@ void td_generator_setup()
        self.monster_attack     = TRUE;
        self.SendFlags          = GSF_SETUP;
        self.netname            = "Generator";
-       self.SendFlags     |= GSF_STATUS;
+       self.reset                      = td_generator_reset;
        
        WaypointSprite_SpawnFixed(self.netname, self.origin + '0 0 90', self, sprite, RADARICON_OBJECTIVE, Team_ColorRGB(self.team));   
        WaypointSprite_UpdateMaxHealth(self.sprite, self.max_health);
@@ -522,6 +530,8 @@ MUTATOR_HOOKFUNCTION(td_MonsterSpawn)
                return FALSE;
        }
        
+       WaypointSprite_Kill(self.sprite);
+       
        self.candrop = FALSE;
        self.bot_attack = FALSE;
        self.ammo_fuel = bound(20, 20 * self.level, 100);
@@ -536,6 +546,12 @@ MUTATOR_HOOKFUNCTION(td_MonsterDies)
        vector backuporigin;
        entity oldself;
        
+       if(IS_PLAYER(frag_attacker.realowner))
+       {
+               PlayerScore_Add(frag_attacker.realowner, SP_SCORE, 5);
+               PlayerScore_Add(frag_attacker.realowner, SP_KILLS, 1);
+       }
+       
        total_killed++;
        
        backuporigin = self.origin;
@@ -590,6 +606,9 @@ MUTATOR_HOOKFUNCTION(td_MonsterThink)
        
        td_debug(sprintf("Monster target: %s. Monster target2: %s. Monster target entity: %s.\n", self.target, self.target2, etos(monster_target)));
        
+       if(!self.enemy && !monster_target)
+               return TRUE; // no enemy or target, must be wandering
+       
        monster_speed_run = (150 + random() * 4) * monster_skill;
        monster_speed_walk = (100 + random() * 4) * monster_skill;