From 2b02856374dd49f49af40afe71910d5c3d994df5 Mon Sep 17 00:00:00 2001 From: MirceaKitsune Date: Tue, 31 Jan 2012 14:13:56 +0200 Subject: [PATCH] Randomize all recoils and punch angles in several directions --- data/balanceVT.cfg | 10 +++++----- data/qcsrc/server/cl_weaponsystem.qc | 5 ++++- data/qcsrc/server/t_items.qc | 8 ++++++-- data/qcsrc/server/vore.qc | 16 ++++++++++++---- docs/TODO.txt | 2 -- 5 files changed, 27 insertions(+), 14 deletions(-) diff --git a/data/balanceVT.cfg b/data/balanceVT.cfg index c4de2504..3e646b3d 100644 --- a/data/balanceVT.cfg +++ b/data/balanceVT.cfg @@ -209,7 +209,7 @@ set g_balance_vore_swallow_speed_cutspd_prey 1 "prey movement slows down by this set g_balance_vore_swallow_speed_cutspd_pred 0.5 "predator movement slows down by this amount the closer they are to finishing swallowing" set g_balance_vore_swallow_speed 1 "how long it takes to swallow a player" set g_balance_vore_swallow_dropweapon 0.6 "probability of dropping your weapon when swallowed. 0 = never and 1 = always, does not apply to team mates" -set g_balance_vore_swallow_predator_punchangle 12 "your view gets tilted by this amount when swallowing someone" +set g_balance_vore_swallow_predator_punchangle 10 "your view gets tilted by this amount when swallowing someone" set g_balance_vore_swallow_predator_punchangle_item 6 "your view gets tilted by this amount when swallowing an item" set g_balance_vore_swallow_prey_punchvector 25 "your view gets lifted by this amount when getting swallowed" set g_balance_vore_regurgitate_damage 10 "predators take this amount of damage whenever regurgitating someone (influenced by player scale difference)" @@ -217,8 +217,8 @@ set g_balance_vore_regurgitate_swallowprogress 0.5 "regurgitated prey is given t set g_balance_vore_regurgitate_force 600 "regurgitated players rocket out at this speed, in the direction the predator is facing" set g_balance_vore_regurgitate_predatorforce 450 "players are pushed back by this amount when regurgitating someone, opposite of the direction they are facing" set g_balance_vore_regurgitate_delay 0.5 "regurgitation delay" -set g_balance_vore_regurgitate_predator_punchangle 12 "your view gets tilted by this amount when regurgitating someone" -set g_balance_vore_regurgitate_predator_punchangle_item 6 "your view gets tilted by this amount when regurgitating an item" +set g_balance_vore_regurgitate_predator_punchangle 10 "your view gets tilted by this amount when regurgitating someone" +set g_balance_vore_regurgitate_predator_punchangle_item 4 "your view gets tilted by this amount when regurgitating an item" set g_balance_vore_regurgitate_prey_punchvector 50 "your view gets lowered by this amount when getting regurgitated" set g_balance_vore_digestion_damage 3 "amount of damage applied to victims during digestion" set g_balance_vore_digestion_damage_death 4.5 "amount of damage applied to dead victims during digestion" @@ -237,8 +237,8 @@ set g_balance_vore_kick_delay 0.6 "how many seconds must pass before you can per set g_balance_vore_kick_force 320 "predators are pushed by this amount when stomach kicked, in the direction their prey is facing" set g_balance_vore_kick_repress 0 "require pressing the fire key each kick rather than holding it down" set g_balance_vore_kick_scalediff 0.5 "the damage / force of stomach kicks is affected by the size of the prey compared to the size of the predator by this amount" -set g_balance_vore_kick_predator_punchangle 6 "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_kick_predator_punchangle 8 "your view gets tilted by this amount when receiving stomach kicks" +set g_balance_vore_kick_prey_punchangle 8 "your view gets tilted by this amount when dealing stomach kicks" set g_balance_vore_kick_cutregurgitate 0.75 "probability that a stomach kick will cause the predator to lose a scheduled regurgitation" set g_balance_vore_escapeprobability 0.003 "probability of getting regurgitated when the predator takes damage, based on the amount of damage dealt" set g_balance_vore_deadpredator 1 "allow dead predators to keep their prey, as long as their body isn't gibbed" diff --git a/data/qcsrc/server/cl_weaponsystem.qc b/data/qcsrc/server/cl_weaponsystem.qc index e90c78e0..dedc00ba 100644 --- a/data/qcsrc/server/cl_weaponsystem.qc +++ b/data/qcsrc/server/cl_weaponsystem.qc @@ -223,7 +223,10 @@ void W_SetupShot_Dir_ProjectileSize(entity ent, vector s_forward, vector mi, vec ent.dphitcontentsmask = oldsolid; // restore solid type (generally SOLID_SLIDEBOX) if (!g_norecoil) - ent.punchangle_x -= recoil; + { + ent.punchangle_x += crandom() * recoil; + ent.punchangle_y += crandom() * recoil; + } if (snd != "") { diff --git a/data/qcsrc/server/t_items.qc b/data/qcsrc/server/t_items.qc index 299632a8..73e33333 100644 --- a/data/qcsrc/server/t_items.qc +++ b/data/qcsrc/server/t_items.qc @@ -297,7 +297,9 @@ void Item_Consumable_Remove(entity e, float regurgitate) PlayerSound(e.predator, playersound_regurgitate, CHAN_VOICE, VOICETYPE_PLAYERSOUND); setanim(e.predator, e.predator.anim_pain1, FALSE, TRUE, TRUE); // looks good for swallowing / regurgitating pointparticles(particleeffectnum("vore_regurgitate"), e.predator.origin, '0 0 0', 1); - e.predator.punchangle_x += cvar("g_balance_vore_regurgitate_predator_punchangle_item"); + e.predator.punchangle_x = crandom() * cvar("g_balance_vore_regurgitate_predator_punchangle_item"); + e.predator.punchangle_y = crandom() * cvar("g_balance_vore_regurgitate_predator_punchangle_item"); + e.predator.punchangle_z = crandom() * cvar("g_balance_vore_regurgitate_predator_punchangle_item"); e.predator.regurgitate_prepare = 0; e.predator.action_delay = time + cvar("g_balance_vore_action_delay"); @@ -348,7 +350,9 @@ void Item_Consumable_Spawn(entity e, entity pl) // predator effects, some common to those in Vore_Swallow PlayerSound(pl, playersound_swallow, CHAN_VOICE, VOICETYPE_PLAYERSOUND); setanim(pl, pl.anim_pain1, FALSE, TRUE, TRUE); // looks good for swallowing / regurgitating - pl.punchangle_x -= cvar("g_balance_vore_swallow_predator_punchangle_item"); + pl.punchangle_x = crandom() * cvar("g_balance_vore_swallow_predator_punchangle_item"); + pl.punchangle_y = crandom() * cvar("g_balance_vore_swallow_predator_punchangle_item"); + pl.punchangle_z = crandom() * cvar("g_balance_vore_swallow_predator_punchangle_item"); pl.regurgitate_prepare = 0; pl.action_delay = time + cvar("g_balance_vore_action_delay"); } diff --git a/data/qcsrc/server/vore.qc b/data/qcsrc/server/vore.qc index 464afe50..ef7f0291 100644 --- a/data/qcsrc/server/vore.qc +++ b/data/qcsrc/server/vore.qc @@ -314,7 +314,9 @@ void Vore_Swallow(entity e) PlayerSound(e.predator, playersound_swallow, CHAN_VOICE, VOICETYPE_PLAYERSOUND); setanim(e.predator, e.predator.anim_pain1, FALSE, TRUE, TRUE); // looks good for swallowing / regurgitating - e.predator.punchangle_x -= cvar("g_balance_vore_swallow_predator_punchangle"); + e.predator.punchangle_x = crandom() * cvar("g_balance_vore_swallow_predator_punchangle"); + e.predator.punchangle_y = crandom() * cvar("g_balance_vore_swallow_predator_punchangle"); + e.predator.punchangle_z = crandom() * cvar("g_balance_vore_swallow_predator_punchangle"); e.predator.regurgitate_prepare = 0; e.predator.spawnshieldtime = 0; // lose spawn shield when we vore e.predator.hitsound += 1; // play this for team mates too, as we could be swallowing them to heal them @@ -412,7 +414,9 @@ void Vore_Regurgitate(entity e) PlayerSound(e.predator, playersound_regurgitate, CHAN_VOICE, VOICETYPE_PLAYERSOUND); setanim(e.predator, e.predator.anim_pain1, FALSE, TRUE, TRUE); // looks good for swallowing / regurgitating pointparticles(particleeffectnum("vore_regurgitate"), e.predator.origin, '0 0 0', 1); - e.predator.punchangle_x += cvar("g_balance_vore_regurgitate_predator_punchangle"); + e.predator.punchangle_x = crandom() * cvar("g_balance_vore_regurgitate_predator_punchangle"); + e.predator.punchangle_y = crandom() * cvar("g_balance_vore_regurgitate_predator_punchangle"); + e.predator.punchangle_z = crandom() * cvar("g_balance_vore_regurgitate_predator_punchangle"); e.predator.regurgitate_prepare = 0; e.predator.action_delay = time + cvar("g_balance_vore_action_delay"); Vore_SetPreyPositions(e.predator); @@ -536,8 +540,12 @@ void Vore_StomachKick() Damage(self.predator, self, self, damage, DEATH_STOMACHKICK, self.predator.origin, force); sound(self.predator, CHAN_PROJECTILE, strcat("weapons/hit", ftos(floor(random() * 8)), ".wav"), vol, ATTN_NORM); - self.predator.punchangle_x -= cvar("g_balance_vore_kick_predator_punchangle"); - self.punchangle_x += cvar("g_balance_vore_kick_prey_punchangle"); + self.predator.punchangle_x = crandom() * cvar("g_balance_vore_kick_predator_punchangle"); + self.predator.punchangle_y = crandom() * cvar("g_balance_vore_kick_predator_punchangle"); + self.predator.punchangle_z = crandom() * cvar("g_balance_vore_kick_predator_punchangle"); + self.punchangle_x = crandom() * cvar("g_balance_vore_kick_prey_punchangle"); + self.punchangle_y = crandom() * cvar("g_balance_vore_kick_prey_punchangle"); + self.punchangle_z = crandom() * cvar("g_balance_vore_kick_prey_punchangle"); // abort the predator's scheduled regurgitation if(random() < cvar("g_balance_vore_kick_cutregurgitate")) diff --git a/docs/TODO.txt b/docs/TODO.txt index d9d82b42..d57912e0 100644 --- a/docs/TODO.txt +++ b/docs/TODO.txt @@ -120,8 +120,6 @@ - +0.8: Fix flying spectators not going through teleporters and warpzones. Very hard, since they're FLY_WORLDONLY and can't touch triggers -- 0.7: Randomize all punchangles. - - 0.7 | 0.8: Enable r_shadows in some way? - 0.7 BUG: Flying spectators cause impact particles. Don't! -- 2.39.2