From b88050475a088716e4d812bc645ed2fb893244f1 Mon Sep 17 00:00:00 2001 From: Samual Date: Tue, 27 Sep 2011 02:21:18 -0400 Subject: [PATCH] More work on underwater effects and exploding projectiles in lava/slime (plus adjustments to uzi balance) --- balanceXonotic.cfg | 22 +++++++++++----------- qcsrc/server/sv_main.qc | 15 ++++++++++----- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg index 978f9165c..f12649153 100644 --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@ -179,11 +179,11 @@ set g_balance_falldamage_minspeed 900 set g_balance_falldamage_factor 0.20 set g_balance_falldamage_maxdamage 40 set g_balance_damagepush_speedfactor 2.5 -set g_balance_contents_damagerate 5 -set g_balance_contents_playerdamage_drowning 5 -set g_balance_contents_playerdamage_lava 10 -set g_balance_contents_playerdamage_slime 5 -set g_balance_contents_projectiledamage 15 +set g_balance_contents_damagerate 10 +set g_balance_contents_playerdamage_drowning 20 +set g_balance_contents_playerdamage_lava 50 +set g_balance_contents_playerdamage_slime 30 +set g_balance_contents_projectiledamage 40 // }}} // {{{ powerups @@ -282,14 +282,14 @@ set g_balance_shotgun_reload_time 2 // {{{ uzi set g_balance_uzi_mode 1 // Activates varible spread for sustained & burst mode secondary set g_balance_uzi_spread_min 0.02 -set g_balance_uzi_spread_max 0.06 +set g_balance_uzi_spread_max 0.05 set g_balance_uzi_spread_add 0.012 set g_balance_uzi_burst 3 // # of bullets in a burst (if set to 2 or more) set g_balance_uzi_burst_animtime 0.3 set g_balance_uzi_burst_refire 0.06 // refire between burst bullets set g_balance_uzi_burst_refire2 0.45 // refire after burst -set g_balance_uzi_burst_spread 0.03 +set g_balance_uzi_burst_spread 0.02 set g_balance_uzi_burst_damage 25 set g_balance_uzi_burst_force 20 set g_balance_uzi_burst_ammo 3 @@ -298,12 +298,12 @@ set g_balance_uzi_first 1 set g_balance_uzi_first_damage 14 set g_balance_uzi_first_force 5 set g_balance_uzi_first_spread 0.03 -set g_balance_uzi_first_refire 0.4 +set g_balance_uzi_first_refire 0.2 set g_balance_uzi_first_ammo 1 set g_balance_uzi_sustained_damage 12 set g_balance_uzi_sustained_force 5 -set g_balance_uzi_sustained_spread 0.04 +set g_balance_uzi_sustained_spread 0.03 set g_balance_uzi_sustained_refire 0.1 set g_balance_uzi_sustained_ammo 1 @@ -542,7 +542,7 @@ set g_balance_minstanex_reload_time 2 set g_balance_hagar_primary_damage 25 set g_balance_hagar_primary_edgedamage 12.5 set g_balance_hagar_primary_force 50 -set g_balance_hagar_primary_health 5 +set g_balance_hagar_primary_health 15 set g_balance_hagar_primary_damageforcescale 0 set g_balance_hagar_primary_radius 60 set g_balance_hagar_primary_spread 0.04 @@ -562,7 +562,7 @@ set g_balance_hagar_secondary_load_abort 1 set g_balance_hagar_secondary_damage 40 set g_balance_hagar_secondary_edgedamage 20 set g_balance_hagar_secondary_force 50 -set g_balance_hagar_secondary_health 5 +set g_balance_hagar_secondary_health 15 set g_balance_hagar_secondary_damageforcescale 0 set g_balance_hagar_secondary_radius 80 set g_balance_hagar_secondary_spread 0.05 diff --git a/qcsrc/server/sv_main.qc b/qcsrc/server/sv_main.qc index 07da60c55..96b3b8671 100644 --- a/qcsrc/server/sv_main.qc +++ b/qcsrc/server/sv_main.qc @@ -3,6 +3,10 @@ void CreatureFrame (void) { local entity oldself; local float dm; + + float damagerate; // where damagerate 5 means 5 hits per second (0.2 delay) + damagerate = (1 / bound(1, autocvar_g_balance_contents_damagerate, 100)); + oldself = self; for(self = world; (self = findfloat(self, damagedbycontents, TRUE)); ) { @@ -17,6 +21,7 @@ void CreatureFrame (void) { self.flags |= FL_INWATER; self.dmgtime = 0; + te_customflash(self.origin, 40, 2, '50 1 1'); } if(!vehic && !projectile) // vehicles and projectiles don't drown @@ -33,7 +38,7 @@ void CreatureFrame (void) if (!self.deadflag) if (self.pain_finished < time) { - Damage (self, world, world, autocvar_g_balance_contents_playerdamage_drowning, DEATH_DROWN, self.origin, '0 0 0'); + Damage (self, world, world, autocvar_g_balance_contents_playerdamage_drowning * damagerate, DEATH_DROWN, self.origin, '0 0 0'); self.pain_finished = time + 0.5; } } @@ -41,7 +46,7 @@ void CreatureFrame (void) if (self.dmgtime < time) { - self.dmgtime = time + (1 / min(1, autocvar_g_balance_contents_damagerate)); + self.dmgtime = time + damagerate; if (!projectile) { @@ -52,7 +57,7 @@ void CreatureFrame (void) self.watersound_finished = time + 0.5; sound (self, CH_PLAYER, "player/lava.wav", VOL_BASE, ATTN_NORM); } - Damage (self, world, world, autocvar_g_balance_contents_playerdamage_lava * self.waterlevel, DEATH_LAVA, self.origin, '0 0 0'); + Damage (self, world, world, autocvar_g_balance_contents_playerdamage_lava * damagerate * self.waterlevel, DEATH_LAVA, self.origin, '0 0 0'); } else if (self.watertype == CONTENT_SLIME) { @@ -61,12 +66,12 @@ void CreatureFrame (void) self.watersound_finished = time + 0.5; sound (self, CH_PLAYER, "player/slime.wav", VOL_BASE, ATTN_NORM); } - Damage (self, world, world, autocvar_g_balance_contents_playerdamage_slime * self.waterlevel, DEATH_SLIME, self.origin, '0 0 0'); + Damage (self, world, world, autocvar_g_balance_contents_playerdamage_slime * damagerate * self.waterlevel, DEATH_SLIME, self.origin, '0 0 0'); } } else if ((self.watertype == CONTENT_LAVA) || (self.watertype == CONTENT_SLIME)) { - Damage (self, world, world, autocvar_g_balance_contents_projectiledamage * self.waterlevel, DEATH_SLIME, self.origin, '0 0 0'); + Damage (self, world, world, autocvar_g_balance_contents_projectiledamage * damagerate * self.waterlevel, DEATH_SLIME, self.origin, '0 0 0'); } } } -- 2.39.2