]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/g_damage.qc
Merge remote branch 'origin/master' into samual/mutator_ctf
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / g_damage.qc
index db23f49db20fcc7cabee39fa95d7dcb0868557b7..0acb4adf762061e8d1ba9f7f8b93e3fe74d3dd2c 100644 (file)
@@ -878,7 +878,23 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
        if (vlen(force))
        if (self.classname != "player" || time >= self.spawnshieldtime || g_midair)
        {
-               self.velocity = self.velocity + damage_explosion_calcpush(self.damageforcescale * force, self.velocity, autocvar_g_balance_damagepush_speedfactor);
+               vector farce = damage_explosion_calcpush(self.damageforcescale * force, self.velocity, autocvar_g_balance_damagepush_speedfactor);
+               if(self.movetype == MOVETYPE_PHYSICS)
+               {
+                       entity farcent;
+                       farcent = spawn();
+                       farcent.classname = "farce";
+                       farcent.enemy = self;
+                       farcent.movedir = farce * 10;
+                       if(self.mass)
+                               farcent.movedir = farcent.movedir * self.mass;
+                       farcent.origin = hitloc;
+                       farcent.forcetype = FORCETYPE_FORCEATPOS;
+                       farcent.nextthink = time + 0.1;
+                       farcent.think = SUB_Remove;
+               }
+               else
+                       self.velocity = self.velocity + farce;
                self.flags &~= FL_ONGROUND;
                UpdateCSQCProjectile(self);
        }