From: Mario Date: Sat, 28 Dec 2019 15:33:36 +0000 (+1000) Subject: Add an option to only account for vertical travel when calculating fall damage X-Git-Tag: xonotic-v0.8.5~1105^2~65^2~2 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=d7822b48dc834b170a7487609cfe925e29702dfc;hp=3fbd72f57641ec279bdcf73f594c7b14982139aa Add an option to only account for vertical travel when calculating fall damage --- diff --git a/balance-mario.cfg b/balance-mario.cfg index 1974ad6c81..de22d1f7b5 100644 --- a/balance-mario.cfg +++ b/balance-mario.cfg @@ -185,6 +185,7 @@ set g_balance_falldamage_deadminspeed 250 set g_balance_falldamage_minspeed 900 set g_balance_falldamage_factor 0.20 set g_balance_falldamage_maxdamage 40 +set g_balance_falldamage_onlyvertical 0 set g_balance_damagepush_speedfactor 2.5 set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning diff --git a/balance-nexuiz25.cfg b/balance-nexuiz25.cfg index 73c63df9b7..81c786ed60 100644 --- a/balance-nexuiz25.cfg +++ b/balance-nexuiz25.cfg @@ -185,6 +185,7 @@ set g_balance_falldamage_deadminspeed 150 set g_balance_falldamage_minspeed 1400 set g_balance_falldamage_factor 0.15 set g_balance_falldamage_maxdamage 25 +set g_balance_falldamage_onlyvertical 0 set g_balance_damagepush_speedfactor 0 set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning diff --git a/balance-overkill.cfg b/balance-overkill.cfg index 0e929ee740..28f8f17d76 100644 --- a/balance-overkill.cfg +++ b/balance-overkill.cfg @@ -185,6 +185,7 @@ set g_balance_falldamage_deadminspeed 250 set g_balance_falldamage_minspeed 900 set g_balance_falldamage_factor 0.20 set g_balance_falldamage_maxdamage 40 +set g_balance_falldamage_onlyvertical 0 set g_balance_damagepush_speedfactor 2.5 set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning diff --git a/balance-samual.cfg b/balance-samual.cfg index 9bcb976b60..f98731e017 100644 --- a/balance-samual.cfg +++ b/balance-samual.cfg @@ -185,6 +185,7 @@ set g_balance_falldamage_deadminspeed 250 set g_balance_falldamage_minspeed 900 set g_balance_falldamage_factor 0.20 set g_balance_falldamage_maxdamage 40 +set g_balance_falldamage_onlyvertical 0 set g_balance_damagepush_speedfactor 2.5 set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning diff --git a/balance-testing.cfg b/balance-testing.cfg index 96426aaa5c..960211605e 100644 --- a/balance-testing.cfg +++ b/balance-testing.cfg @@ -185,6 +185,7 @@ set g_balance_falldamage_deadminspeed 250 set g_balance_falldamage_minspeed 900 set g_balance_falldamage_factor 0.20 set g_balance_falldamage_maxdamage 40 +set g_balance_falldamage_onlyvertical 0 set g_balance_damagepush_speedfactor 2.5 set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning diff --git a/balance-testingxpm.cfg b/balance-testingxpm.cfg index 4fa3130f02..4ee3f36cdb 100644 --- a/balance-testingxpm.cfg +++ b/balance-testingxpm.cfg @@ -185,6 +185,7 @@ set g_balance_falldamage_deadminspeed 250 set g_balance_falldamage_minspeed 900 set g_balance_falldamage_factor 0.20 set g_balance_falldamage_maxdamage 40 +set g_balance_falldamage_onlyvertical 0 set g_balance_damagepush_speedfactor 2.5 set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning diff --git a/balance-xdf.cfg b/balance-xdf.cfg index 6a1622c2c4..e866bd11d1 100644 --- a/balance-xdf.cfg +++ b/balance-xdf.cfg @@ -185,6 +185,7 @@ set g_balance_falldamage_deadminspeed 250 set g_balance_falldamage_minspeed 900 set g_balance_falldamage_factor 0.20 set g_balance_falldamage_maxdamage 40 +set g_balance_falldamage_onlyvertical 0 set g_balance_damagepush_speedfactor 2.5 set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning diff --git a/balance-xonotic.cfg b/balance-xonotic.cfg index e19872454f..2666108f48 100644 --- a/balance-xonotic.cfg +++ b/balance-xonotic.cfg @@ -185,6 +185,7 @@ set g_balance_falldamage_deadminspeed 250 set g_balance_falldamage_minspeed 900 set g_balance_falldamage_factor 0.20 set g_balance_falldamage_maxdamage 40 +set g_balance_falldamage_onlyvertical 0 set g_balance_damagepush_speedfactor 2.5 set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning diff --git a/balance-xpm.cfg b/balance-xpm.cfg index c722638b1b..bcd5848789 100644 --- a/balance-xpm.cfg +++ b/balance-xpm.cfg @@ -185,6 +185,7 @@ set g_balance_falldamage_deadminspeed 250 set g_balance_falldamage_minspeed 900 set g_balance_falldamage_factor 0.20 set g_balance_falldamage_maxdamage 40 +set g_balance_falldamage_onlyvertical 0 set g_balance_damagepush_speedfactor 2.5 set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh index a783d72314..415fedab8e 100644 --- a/qcsrc/server/autocvars.qh +++ b/qcsrc/server/autocvars.qh @@ -39,6 +39,7 @@ float autocvar_g_balance_falldamage_deadminspeed; float autocvar_g_balance_falldamage_factor; int autocvar_g_balance_falldamage_maxdamage; float autocvar_g_balance_falldamage_minspeed; +bool autocvar_g_balance_falldamage_onlyvertical; int autocvar_g_balance_firetransfer_damage; int autocvar_g_balance_firetransfer_time; float autocvar_g_balance_fuel_limit; diff --git a/qcsrc/server/sv_main.qc b/qcsrc/server/sv_main.qc index 345b7fdb83..cd4693a2bd 100644 --- a/qcsrc/server/sv_main.qc +++ b/qcsrc/server/sv_main.qc @@ -114,7 +114,11 @@ void CreatureFrame_FallDamage(entity this) } if(!have_hook) { - float dm = vlen(this.oldvelocity) - velocity_len; // dm is now the velocity DECREASE. Velocity INCREASE should never cause a sound or any damage. + float dm; + if(autocvar_g_balance_falldamage_onlyvertical) + dm = vlen('0 0 1' * this.oldvelocity.z) - vlen('0 0 1' * this.velocity.z); + else + dm = vlen(this.oldvelocity) - velocity_len; // dm is now the velocity DECREASE. Velocity INCREASE should never cause a sound or any damage. if (IS_DEAD(this)) dm = (dm - autocvar_g_balance_falldamage_deadminspeed) * autocvar_g_balance_falldamage_factor; else