From a2b4401a27a572ead810da546690e47e1196f3e0 Mon Sep 17 00:00:00 2001 From: Jakob MG Date: Wed, 15 Aug 2012 23:08:02 +0200 Subject: [PATCH] Handle force reduction by damageforcescale for vehicles --- qcsrc/server/vehicles/bumblebee.qc | 2 ++ qcsrc/server/vehicles/racer.qc | 1 + qcsrc/server/vehicles/raptor.qc | 1 + qcsrc/server/vehicles/spiderbot.qc | 3 ++- qcsrc/server/vehicles/vehicles.qc | 7 +++++-- 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/qcsrc/server/vehicles/bumblebee.qc b/qcsrc/server/vehicles/bumblebee.qc index 028aac66b..0d2538d77 100644 --- a/qcsrc/server/vehicles/bumblebee.qc +++ b/qcsrc/server/vehicles/bumblebee.qc @@ -800,6 +800,8 @@ void bumb_spawn(float _f) self.solid = SOLID_BBOX; self.movetype = MOVETYPE_BOUNCEMISSILE; self.vehicle_impact = bumb_impact; + self.damageforcescale = 0.025; + setorigin(self, self.origin + '0 0 25'); } diff --git a/qcsrc/server/vehicles/racer.qc b/qcsrc/server/vehicles/racer.qc index ff129a4e4..792be5850 100644 --- a/qcsrc/server/vehicles/racer.qc +++ b/qcsrc/server/vehicles/racer.qc @@ -623,6 +623,7 @@ void racer_spawn(float _spawnflag) self.bouncefactor = autocvar_g_vehicle_racer_bouncefactor; self.bouncestop = autocvar_g_vehicle_racer_bouncestop; self.vehicle_impact = racer_impact; + self.damageforcescale = 0.5; //self.destvec = autocvar_g_vehicle_racer_bouncepain; } diff --git a/qcsrc/server/vehicles/raptor.qc b/qcsrc/server/vehicles/raptor.qc index c47c0ca3a..a623bd540 100644 --- a/qcsrc/server/vehicles/raptor.qc +++ b/qcsrc/server/vehicles/raptor.qc @@ -876,6 +876,7 @@ void raptor_spawn(float _f) self.bouncefactor = autocvar_g_vehicle_raptor_bouncefactor; self.bouncestop = autocvar_g_vehicle_raptor_bouncestop; self.vehicle_impact = raptor_impact; + self.damageforcescale = 0.25; } void spawnfunc_vehicle_raptor() diff --git a/qcsrc/server/vehicles/spiderbot.qc b/qcsrc/server/vehicles/spiderbot.qc index 9906f5271..71e57a037 100644 --- a/qcsrc/server/vehicles/spiderbot.qc +++ b/qcsrc/server/vehicles/spiderbot.qc @@ -809,11 +809,12 @@ void spiderbot_spawn(float _f) self.movetype = MOVETYPE_WALK; self.solid = SOLID_SLIDEBOX; self.alpha = self.tur_head.alpha = self.gun1.alpha = self.gun2.alpha = 1; - self.tur_head.angles = '0 0 0'; + self.tur_head.angles = '0 0 0'; setorigin(self, self.pos1 + '0 0 128'); self.angles = self.pos2; self.vehicle_impact = spider_impact; + self.damageforcescale = 0.03; } void spawnfunc_vehicle_spiderbot() diff --git a/qcsrc/server/vehicles/vehicles.qc b/qcsrc/server/vehicles/vehicles.qc index 663921b20..84de8f4a0 100644 --- a/qcsrc/server/vehicles/vehicles.qc +++ b/qcsrc/server/vehicles/vehicles.qc @@ -946,8 +946,11 @@ void vehicles_damage(entity inflictor, entity attacker, float damage, float deat if(sound_allowed(MSG_BROADCAST, attacker)) spamsound (self, CH_PAIN, "onslaught/ons_hit2.wav", VOL_BASE, ATTN_NORM); // FIXME: PLACEHOLDER } - - self.velocity += force; // * (vlen(force) / self.mass); + + if(self.damageforcescale < 1 && self.damageforcescale > 0) + self.velocity += force * self.damageforcescale; + else + self.velocity += force; if(self.vehicle_health <= 0) { -- 2.39.2