From d23bfb8191cf391673cfcdc2490d5e3c0625a073 Mon Sep 17 00:00:00 2001 From: MirceaKitsune Date: Thu, 7 Jul 2011 14:03:15 +0300 Subject: [PATCH] Stomach kicks no longer have a probability of regurgitating the player. Instead, the predator taking any damage makes it likely for a player they ate to get regurgitated. Practically, stomach kicks still keep their escape probability this way, but only as long as they deal some damage. --- data/balanceVT.cfg | 2 +- data/qcsrc/server/g_damage.qc | 12 ++++++++++++ data/qcsrc/server/vore.qc | 3 --- data/qcsrc/server/vore.qh | 1 + 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/data/balanceVT.cfg b/data/balanceVT.cfg index 8e8f5ad0..29c0a5a7 100644 --- a/data/balanceVT.cfg +++ b/data/balanceVT.cfg @@ -207,7 +207,7 @@ set g_balance_vore_kick_damage_min 15 "minimum amount of damage you can do with set g_balance_vore_kick_damage_max 30 "maximum amount of damage you can do with a stomach kick" set g_balance_vore_kick_delay 0.6 "how many seconds must pass before you can perform another stomach kick" set g_balance_vore_kick_force 140 "predators are pushed by this amount when stomach kicked, in the direction their prey is facing" -set g_balance_vore_kick_escapeprobability 0.115 "probability of getting regurgitated while performing stomach kicks (0 = never, 1 = always)" set g_balance_vore_kick_predator_punchangle 3 "your view gets tilted by this amount when receiving stomach kicks" set g_balance_vore_kick_prey_punchangle 6 "your view gets tilted by this amount when dealing stomach kicks" +set g_balance_vore_escapeprobability 0.115 "probability of getting regurgitated when the predator takes damage (0 = never, 1 = always)" // }}} diff --git a/data/qcsrc/server/g_damage.qc b/data/qcsrc/server/g_damage.qc index edc14f05..35eb1f55 100644 --- a/data/qcsrc/server/g_damage.qc +++ b/data/qcsrc/server/g_damage.qc @@ -693,6 +693,18 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float if (attacker.isbot) damage = damage * bound(0.1, (skill + 5) * 0.1, 1); + // if a predator is taking damage, check if he should regurgitate any prey + if(cvar("g_balance_vore_escapeprobability")) + { + entity e; + FOR_EACH_PLAYER(e) + { + if(e.predator == targ) + if(random() < cvar("g_balance_vore_escapeprobability")) + Vore_Regurgitate(e); + } + } + // nullify damage if teamplay is on if(deathtype != DEATH_TELEFRAG) if(attacker.classname == "player") diff --git a/data/qcsrc/server/vore.qc b/data/qcsrc/server/vore.qc index fff85c53..8bb775d8 100644 --- a/data/qcsrc/server/vore.qc +++ b/data/qcsrc/server/vore.qc @@ -422,9 +422,6 @@ void Vore_StomachKick() self.predator.punchangle_x -= cvar("g_balance_vore_kick_predator_punchangle"); self.punchangle_x += cvar("g_balance_vore_kick_prey_punchangle"); - if(random() < cvar("g_balance_vore_kick_escapeprobability")) - Vore_Regurgitate(self); - self.stomachkick_delay = time + cvar("g_balance_vore_kick_delay"); } } diff --git a/data/qcsrc/server/vore.qh b/data/qcsrc/server/vore.qh index 96eb5ed5..30989cae 100644 --- a/data/qcsrc/server/vore.qh +++ b/data/qcsrc/server/vore.qh @@ -1,4 +1,5 @@ void Vore(); +void Vore_Regurgitate(entity e); void Vore_Disconnect(); void Vore_DeadPrey_Detach(entity e); -- 2.39.2