]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/vehicles/vehicles.qc
Kill credits to whoever made a vehicle blow up and killing someone else
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / vehicles / vehicles.qc
index b6ca4f943058bdbabe7cfbe2323489f2b82cde2b..071ee74ac767c0d82b4f9745883e72cc34df5d08 100644 (file)
@@ -198,24 +198,24 @@ void targetdrone_think()
 {
        self.nextthink = time + 0.1;
 
-       if(self.enemy)
-       if(self.enemy.deadflag != DEAD_NO)
-               self.enemy = targetdrone_getfear();
+       if(self.wp00)
+       if(self.wp00.deadflag != DEAD_NO)
+               self.wp00 = targetdrone_getfear();
 
-       if(!self.enemy)
-               self.enemy = targetdrone_getfear();
+       if(!self.wp00)
+               self.wp00 = targetdrone_getfear();
 
        vector newdir;
 
-       if(self.enemy)
-               newdir = steerlib_push(self.enemy.origin) + randomvec() * 0.75;
+       if(self.wp00)
+               newdir = steerlib_push(self.wp00.origin) + randomvec() * 0.75;
        else
                newdir = randomvec() * 0.75;
 
        newdir = newdir * 0.5 + normalize(self.velocity) * 0.5;
 
-       if(self.enemy)
-               self.velocity = normalize(newdir) * (500 + (1024 / min(vlen(self.enemy.origin - self.origin), 1024)) * 700);
+       if(self.wp00)
+               self.velocity = normalize(newdir) * (500 + (1024 / min(vlen(self.wp00.origin - self.origin), 1024)) * 700);
        else
                self.velocity = normalize(newdir) * 750;
 
@@ -849,7 +849,9 @@ void vehicles_damage(entity inflictor, entity attacker, float damage, float deat
         
     if(DEATH_ISWEAPON(deathtype, WEP_MINSTANEX))
         damage *= autocvar_g_vehicles_minstanex_damagerate;
-
+    
+    self.enemy = attacker;
+    
     if((self.vehicle_flags & VHF_HASSHIELD) && (self.vehicle_shield > 0))
     {
         if (wasfreed(self.vehicle_shieldent) || self.vehicle_shieldent == world)
@@ -916,7 +918,7 @@ void vehicles_clearrturn()
     ret = findchain(classname, "vehicle_return");
     while(ret)
     {
-        if(ret.enemy == self)
+        if(ret.wp00 == self)
         {
             ret.classname   = "";
             ret.think       = SUB_Remove;
@@ -933,10 +935,10 @@ void vehicles_clearrturn()
 
 void vehicles_return()
 {
-    pointparticles(particleeffectnum("teleport"), self.enemy.origin + '0 0 64', '0 0 0', 1);
+    pointparticles(particleeffectnum("teleport"), self.wp00.origin + '0 0 64', '0 0 0', 1);
 
-    self.enemy.think     = vehicles_spawn;
-    self.enemy.nextthink = time;
+    self.wp00.think     = vehicles_spawn;
+    self.wp00.nextthink = time;
 
     if(self.waypointsprite_attached)
         WaypointSprite_Kill(self.waypointsprite_attached);
@@ -971,9 +973,9 @@ void vehicles_showwp()
         oldself = self;
         self = spawn();
         setmodel(self, "null");
-        self.team = oldself.enemy.team;
-        self.enemy = oldself.enemy;
-        setorigin(self, oldself.enemy.pos1);
+        self.team = oldself.wp00.team;
+        self.wp00 = oldself.wp00;
+        setorigin(self, oldself.wp00.pos1);
 
         self.nextthink = time + 5;
         self.think = vehicles_showwp_goaway;
@@ -986,7 +988,7 @@ void vehicles_showwp()
     WaypointSprite_Spawn("vehicle", 0, 0, self, '0 0 64', world, 0, self, waypointsprite_attached, TRUE, RADARICON_POWERUP, rgb);
     if(self.waypointsprite_attached)
     {
-        WaypointSprite_UpdateRule(self.waypointsprite_attached, self.enemy.team, SPRITERULE_DEFAULT);
+        WaypointSprite_UpdateRule(self.waypointsprite_attached, self.wp00.team, SPRITERULE_DEFAULT);
         if(oldself == world)
             WaypointSprite_UpdateBuildFinished(self.waypointsprite_attached, self.nextthink);
         WaypointSprite_Ping(self.waypointsprite_attached);
@@ -1004,7 +1006,7 @@ void vehicles_setreturn()
 
     ret = spawn();
     ret.classname   = "vehicle_return";
-    ret.enemy       = self;
+    ret.wp00       = self;
     ret.team        = self.team;
     ret.think       = vehicles_showwp;