From: Rudolf Polzer Date: Sat, 6 Nov 2010 21:38:04 +0000 (+0100) Subject: additionally to zscale, also add a velocitybias (biases the laser push to your curren... X-Git-Tag: xonotic-v0.1.0preview~183^2~6 X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=3e97fbf0ff42628304093a88ea40c423bed640c2;ds=sidebyside additionally to zscale, also add a velocitybias (biases the laser push to your current velocity) --- diff --git a/balance25.cfg b/balance25.cfg index 5db0f0ddbc..673f08ab74 100644 --- a/balance25.cfg +++ b/balance25.cfg @@ -224,6 +224,8 @@ set g_balance_laser_primary_lifetime 30 set g_balance_laser_primary_shotangle 0 set g_balance_laser_primary_delay 0 set g_balance_laser_primary_gauntlet 0 +set g_balance_laser_primary_force_zscale 1 +set g_balance_laser_primary_force_velocitybias 0 set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 35 set g_balance_laser_secondary_edgedamage 10 @@ -237,7 +239,8 @@ set g_balance_laser_secondary_lifetime 30 set g_balance_laser_secondary_shotangle 0 set g_balance_laser_secondary_delay 0 set g_balance_laser_secondary_gauntlet 0 -set g_balance_laser_force_zscale 0 +set g_balance_laser_secondary_force_zscale 1 +set g_balance_laser_secondary_force_velocitybias 0 // }}} // {{{ shotgun set g_balance_shotgun_primary_bullets 6 diff --git a/balanceLeeStricklin.cfg b/balanceLeeStricklin.cfg index 593aa2d05d..e56a0c9d6e 100644 --- a/balanceLeeStricklin.cfg +++ b/balanceLeeStricklin.cfg @@ -235,6 +235,8 @@ set g_balance_laser_primary_lifetime 30 set g_balance_laser_primary_shotangle 0 set g_balance_laser_primary_delay 0.03 set g_balance_laser_primary_gauntlet 0 +set g_balance_laser_primary_force_zscale 1 +set g_balance_laser_primary_force_velocitybias 0 set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 25 set g_balance_laser_secondary_edgedamage 10 @@ -248,7 +250,8 @@ set g_balance_laser_secondary_lifetime 30 set g_balance_laser_secondary_shotangle -90 set g_balance_laser_secondary_delay 0 set g_balance_laser_secondary_gauntlet 0 -set g_balance_laser_force_zscale 0 +set g_balance_laser_secondary_force_zscale 1 +set g_balance_laser_secondary_force_velocitybias 0 // }}} // {{{ shotgun set g_balance_shotgun_primary_bullets 5 diff --git a/balanceNexSVN.cfg b/balanceNexSVN.cfg index 54e4b823ca..80049f3396 100644 --- a/balanceNexSVN.cfg +++ b/balanceNexSVN.cfg @@ -224,6 +224,8 @@ set g_balance_laser_primary_lifetime 30 set g_balance_laser_primary_shotangle 0 set g_balance_laser_primary_delay 0.03 set g_balance_laser_primary_gauntlet 0 +set g_balance_laser_primary_force_zscale 1 +set g_balance_laser_primary_force_velocitybias 0 set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 35 set g_balance_laser_secondary_edgedamage 10 @@ -237,7 +239,8 @@ set g_balance_laser_secondary_lifetime 30 set g_balance_laser_secondary_shotangle 0 set g_balance_laser_secondary_delay 0 set g_balance_laser_secondary_gauntlet 0 -set g_balance_laser_force_zscale 0 +set g_balance_laser_secondary_force_zscale 1 +set g_balance_laser_secondary_force_velocitybias 0 // }} // {{{ shotgun set g_balance_shotgun_primary_bullets 6 diff --git a/balanceSamual.cfg b/balanceSamual.cfg index 55c00c6ff2..f9f04722cb 100644 --- a/balanceSamual.cfg +++ b/balanceSamual.cfg @@ -224,6 +224,8 @@ set g_balance_laser_primary_lifetime 30 set g_balance_laser_primary_shotangle 0 set g_balance_laser_primary_delay 0.03 set g_balance_laser_primary_gauntlet 0 +set g_balance_laser_primary_force_zscale 1 +set g_balance_laser_primary_force_velocitybias 0 set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 25 set g_balance_laser_secondary_edgedamage 10 @@ -237,7 +239,8 @@ set g_balance_laser_secondary_lifetime 30 set g_balance_laser_secondary_shotangle -90 set g_balance_laser_secondary_delay 0 set g_balance_laser_secondary_gauntlet 0 -set g_balance_laser_force_zscale 0 +set g_balance_laser_secondary_force_zscale 1 +set g_balance_laser_secondary_force_velocitybias 0 // }}} // {{{ shotgun set g_balance_shotgun_primary_bullets 6 diff --git a/balanceTest.cfg b/balanceTest.cfg index 0006eb7041..a6e66c8d8b 100644 --- a/balanceTest.cfg +++ b/balanceTest.cfg @@ -224,6 +224,8 @@ set g_balance_laser_primary_lifetime 5 set g_balance_laser_primary_shotangle 0 set g_balance_laser_primary_delay 0 set g_balance_laser_primary_gauntlet 0 +set g_balance_laser_primary_force_zscale 1 +set g_balance_laser_primary_force_velocitybias 0.25 set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 35 set g_balance_laser_secondary_edgedamage 10 @@ -237,7 +239,8 @@ set g_balance_laser_secondary_lifetime 30 set g_balance_laser_secondary_shotangle 0 set g_balance_laser_secondary_delay 0 set g_balance_laser_secondary_gauntlet 0 -set g_balance_laser_force_zscale 0 +set g_balance_laser_secondary_force_zscale 1 +set g_balance_laser_secondary_force_velocitybias 0.25 // }}} // {{{ shotgun set g_balance_shotgun_primary_bullets 10 diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg index 96a46ecb2a..7f9a843cee 100644 --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@ -224,6 +224,8 @@ set g_balance_laser_primary_lifetime 5 set g_balance_laser_primary_shotangle 0 set g_balance_laser_primary_delay 0 set g_balance_laser_primary_gauntlet 0 +set g_balance_laser_primary_zscale 1.25 +set g_balance_laser_primary_velocitybias 0 set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 200 // dps set g_balance_laser_secondary_edgedamage 0 @@ -237,7 +239,8 @@ set g_balance_laser_secondary_lifetime 0 set g_balance_laser_secondary_shotangle 0 set g_balance_laser_secondary_delay 0 set g_balance_laser_secondary_gauntlet 1 -set g_balance_laser_force_zscale 1.25 +set g_balance_laser_secondary_zscale 1.25 +set g_balance_laser_secondary_velocitybias 0 // }}} // {{{ shotgun set g_balance_shotgun_primary_bullets 20 diff --git a/balancetZork.cfg b/balancetZork.cfg index 942984786e..38b77306f2 100644 --- a/balancetZork.cfg +++ b/balancetZork.cfg @@ -224,6 +224,8 @@ set g_balance_laser_primary_lifetime 5 set g_balance_laser_primary_shotangle 0 set g_balance_laser_primary_delay 0 set g_balance_laser_primary_gauntlet 0 +set g_balance_laser_primary_force_zscale 1 +set g_balance_laser_primary_force_velocitybias 0 set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 35 set g_balance_laser_secondary_edgedamage 10 @@ -237,7 +239,8 @@ set g_balance_laser_secondary_lifetime 30 set g_balance_laser_secondary_shotangle 0 set g_balance_laser_secondary_delay 0 set g_balance_laser_secondary_gauntlet 0 -set g_balance_laser_force_zscale 0 +set g_balance_laser_secondary_force_zscale 1 +set g_balance_laser_secondary_force_velocitybias 0 // }}} // {{{ shotgun set g_balance_shotgun_primary_bullets 10 diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index ef0224264f..1246d2681c 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -994,8 +994,37 @@ float RadiusDamage (entity inflictor, entity attacker, float coredamage, float e a = bound(0, tfloorforce + (1-tfloorforce) * hitratio, 1); force = force * a; - if(deathtype == WEP_LASER && cvar("g_balance_laser_force_zscale")) // scale laser push force on the z-axis - force_z = force_z * cvar("g_balance_laser_force_zscale"); + // laser force adjustments :P + if(DEATH_WEAPONOF(deathtype) == WEP_LASER) + { + vector vel; + + float force_zscale; + float force_velocitybiasramp; + float force_velocitybias; + + force_velocitybiasramp = cvar("sv_maxspeed"); + if(deathtype & HITTYPE_SECONDARY) + { + force_zscale = cvar("g_balance_laser_secondary_force_zscale"); + force_velocitybias = cvar("g_balance_laser_secondary_force_velocitybias"); + } + else + { + force_zscale = cvar("g_balance_laser_primary_force_zscale"); + force_velocitybias = cvar("g_balance_laser_primary_force_velocitybias"); + } + + vel = targ.velocity; + vel_z = 0; + vel = normalize(vel) * bound(0, vlen(vel) / force_velocitybiasramp, 1) * force_velocitybias; + force = + vlen(force) + * + normalize(normalize(force) + vel); + + force_z *= force_zscale; + } //if (targ == attacker) //{