Tsuey / L4D2-Community-Update

Help us shape the potential future of L4D2 vanilla.
68 stars 22 forks source link

Changes to the Explosive Barrels in the Second Chapter of Cold Stream #435

Open JuggerLeft opened 9 months ago

JuggerLeft commented 9 months ago

Suggestion

The Explosive Barrels responsible for activating the event_alarme in the Second Chapter of Cold Stream can feel really unresponsive to activate depending on the Gun that you're using, requiring a LARGE amount of bullets to activate... That's because there's a bridge_dummy with 500 health/strength over the barrel!

Depending on the gun used it could take several amounts of bullets just to start the event and that feels really unintuitive...

Fix

That could be fixed by editing the .lmp file for the Second Chapter(c13m2_southpinestream) and removing bridge_dummy entirely and changing the bridge_button to set the function activated by killing the bridge_dummy instead! The function is: "OnDamaged" "!activator SpeakResponseConcept C13M2BarrelsIgnited 0 1"

The result should be:

{
"model" "*21"
"wait" "-1"
"unlocked_sound" "0"
"unlocked_sentence" "0"
"targetname" "bridge_button"
"speed" "5"
"spawnflags" "513"
"sounds" "0"
"rendermode" "0"
"renderfx" "0"
"rendercolor" "255 255 255"
"renderamt" "255"
"origin" "123.5 5638 305.06"
"movedir" "0 0 0"
"mingpulevel" "0"
"mincpulevel" "0"
"maxgpulevel" "0"
"maxcpulevel" "0"
"locked_sound" "0"
"locked_sentence" "0"
"lip" "0"
"health" "500"
"glow" "bridge_murette"
"fadescale" "1"
"fademindist" "-1"
"fademaxdist" "0"
"disableX360" "0"
"disablereceiveshadows" "0"
"damagefilter" "survivors"
"classname" "func_button"
"hammerid" "1021706"
"OnDamaged" "bridge_barrels StopGlowing  0 1"
"OnDamaged" "bridge_barrels Kill  3 1"
"OnDamaged" "bridge_button Kill  0 1"
"OnDamaged" "bridge_explosion Explode  3 1"
"OnDamaged" "bridge_fire Start  0 1"
"OnDamaged" "bridge_fire Stop  10 1"
"OnDamaged" "bridge_fire_sound PlaySound  0 1"
"OnDamaged" "bridge_fire_sound StopSound  11 1"
"OnDamaged" "bridge_shake StartShake  2 1"
"OnDamaged" "bridge_shake StopShake  5 1"
"OnDamaged" "bridge_murette Break  3 1"
"OnDamaged" "bridge_impact Explode  3 1"
"OnDamaged" "bridge_explosion_sound PlaySound  3 1"
"OnDamaged" "barrier EnableMotion  2.5 1"
"OnDamaged" "bridge_smoke Start  0 1"
"OnDamaged" "bridge_smoke Stop  10 1"
"OnDamaged" "bridge_hint Kill  0 1"
"OnDamaged" "director BeginScript event_alarme 3.2 1"
"OnDamaged" "bridge_new_particle Start  3 1"
"OnDamaged" "bridge_new_particle1 Start  3.2 1"
"OnDamaged" "bridge_new_particle1 Stop  5 1"
"OnDamaged" "bridge_new_particle Stop  5 1"
"OnDamaged" "ceda_truck_alarm PlaySound  3.5 1"
"OnDamaged" "bridge_nav_blocker UnblockNav  3 1"
"OnDamaged" "bridge_barrels_hurt_trigger Enable  3 -1"
"OnDamaged" "bridge_barrels_hurt_trigger Disable  10 -1"
"OnDamaged" "barrier DisableMotion  8 -1"
"OnDamaged" "template_onslaught_hint ForceSpawn  4 1"
"OnDamaged" "bridge_clip Kill  0 -1"
"OnDamaged" "!activator SpeakResponseConcept C13M2BarrelsIgnited 0 1"

Added it to the very end and changed OnBreak to OnDamaged

Here's a video showing how it would behave after that:

https://github.com/Tsuey/L4D2-Community-Update/assets/144526082/d8ae997a-dd23-4da9-8d33-6716445cfe6a

A horde isn't spawning because i activated director_stop for testing purposes.

JuggerLeft commented 9 months ago

health value in the bridge_button is a obsolete property, the bridge_dummy damage used strength to have a HP of 500 and that works because it's a breakable thing

alexiscoutinho commented 9 months ago

I don't think the barrels should have zero health as that would lead to accidental activations and piss off a lot of players. iirc, there are instructor hints telling to shoot the barrels, so it's not that unintuitive. A health decrease may be more appropriate though.

JuggerLeft commented 9 months ago

I don't think the barrels should have zero health as that would lead to accidental activations and piss off a lot of players. iirc, there are instructor hints telling to shoot the barrels, so it's not that unintuitive. A health decrease may be more appropriate though.

The barrel change would be consistent with how it iswith the Gas Can Bundle Event in Dead Air! On Cold Stream there are many things in front of the Barrels before you get close to it, so if you shoot it it's your fault...

I don't see anybody complaining about the Gas Can Bundle event, so why this one would be a problem? Like you said there are instructor hints telling you about shooting the Barrel so that's yet another thing that makes shooting it your fault since you're already aware of it

Tsuey commented 9 months ago

The Cold Stream 2 event needs some work, we just aren't sure how to go about it. There's at least 3 issues with the event:

We wanted to improve the event when we fixed the shortcut with the "Last Stand Refresh" patch, and thought about stuff like this, though it feels a bit more complicated than just a reduction to 0 health. It's clear there's a strong dislike for this event given a long history of 3+ skips, so something does need to be done here eventually.

JuggerLeft commented 9 months ago

The Cold Stream 2 event needs some work, we just aren't sure how to go about it. There's at least 3 issues with the event:

  • The feeling of unintuitive hit registration when depleting that initial health
  • The fixed 3 seconds it needs to be on fire, regardless of how much it's shot while on fire (I hate this the most personally)
  • The horde balancing of the event itself

We wanted to improve the event when we fixed the shortcut with the "Last Stand Refresh" patch, and thought about stuff like this, though it feels a bit more complicated than just a reduction to 0 health. It's clear there's a strong dislike for this event given a long history of 3+ skips, so something does need to be done here eventually.

Yea i agree that this event has a lot of problems specially with balance... At the very beggining of the level you need to always fight a Tank and at the very end a brutal Gauntlet. Because of how brutal the event is you end up needing to fight the Tank in the exact same spot every time and that gets really repetitive... I think that's the reason why The Sacrifice doesn't have any events or Witches after you fight the Tank.

I think TrueBoredom suggested a increase to SpecialRespawnInterval in this event from 1.0 to 5.0 before, i tested it out and the event feels a lot more balanced overall since there aren't as many SI

alexiscoutinho commented 9 months ago

Regarding rebalancing the event, I'm kinda against it. Not all campaigns have to be the same difficulty (like not all weapons in CS have to be viable). It's ok and imo good to have hard and easy campaigns and chapters. I think this campaign is more than a decade old so the window to significantly tweak its difficulty is long gone. If something is made easier, then another thing would have to become harder. I'm completely in favor of other fixes and QoL improvements though.

JuggerLeft commented 9 months ago

Regarding rebalancing the event, I'm kinda against it. Not all campaigns have to be the same difficulty (like not all weapons in CS have to be viable). It's ok and imo good to have hard and easy campaigns and chapters. I think this campaign is more than a decade old so the window to significantly tweak its difficulty is long gone. If something is made easier, then another thing would have to become harder. I'm completely in favor of other fixes and QoL improvements though.

There's a big difference between difficult and frustrating... A mutual agreement about Cold Stream is that it's a relaly frustrating Campaign overall with the event at Chapter 2 being the biggest offender! The tunnel section is terrible because SIs are being spammed at you and needing to retry a level where you fight against a Tank at the exact same place over and over again isn't fun!

Sacrifice is a example of good balance with a obligatory Tank Fight! It has no events because otherwise the Chapter overall would feel too repetitive if you failed too oftenly. Cold Stream balances things out extremely poorly... It's never too late to improve something specially when most people dislike said thing.

alexiscoutinho commented 9 months ago

If you find a solution that's not frustrating but keeps the overall difficulty, then I'll support.

JuggerLeft commented 9 months ago

The Cold Stream 2 event needs some work, we just aren't sure how to go about it. There's at least 3 issues with the event:

  • The feeling of unintuitive hit registration when depleting that initial health
  • The fixed 3 seconds it needs to be on fire, regardless of how much it's shot while on fire (I hate this the most personally)
  • The horde balancing of the event itself

We wanted to improve the event when we fixed the shortcut with the "Last Stand Refresh" patch, and thought about stuff like this, though it feels a bit more complicated than just a reduction to 0 health. It's clear there's a strong dislike for this event given a long history of 3+ skips, so something does need to be done here eventually.

Taking what you said into consideration i made another version that improves the hit registration and also speeds up the process of the explosion:

https://github.com/Tsuey/L4D2-Community-Update/assets/144526082/4d26b72e-6b58-48e6-a894-16a4889d5744

Horde is not spawning because i activated director_stop.

So first, like i suggested before, i removed the bridge_dummy that is the one responsible for the Barrels requiring a insane amount of bullets to activate, which results in the feeling of poor hit registration! After that i changed bridge_button to use the function activated by killing the bridge_dummy instead. The function was "OnDamaged" "!activator SpeakResponseConcept C13M2BarrelsIgnited 0 1"

After that i changed the delays of everything else to speed up the process of the explosion! Since the barrier_motion is enabled 0.5 seconds before most of the other functions i changed everything accordingly:

{
"model" "*21"
"wait" "-1"
"unlocked_sound" "0"
"unlocked_sentence" "0"
"targetname" "bridge_button"
"speed" "5"
"spawnflags" "513"
"sounds" "0"
"rendermode" "0"
"renderfx" "0"
"rendercolor" "255 255 255"
"renderamt" "255"
"origin" "123.5 5638 305.06"
"movedir" "0 0 0"
"mingpulevel" "0"
"mincpulevel" "0"
"maxgpulevel" "0"
"maxcpulevel" "0"
"locked_sound" "0"
"locked_sentence" "0"
"lip" "0"
"health" "500"
"glow" "bridge_murette"
"fadescale" "1"
"fademindist" "-1"
"fademaxdist" "0"
"disableX360" "0"
"disablereceiveshadows" "0"
"damagefilter" "survivors"
"classname" "func_button"
"hammerid" "1021706"
"OnDamaged" "bridge_barrels StopGlowing  0 1"
"OnDamaged" "bridge_barrels Kill  0.5 1"
"OnDamaged" "bridge_button Kill  0 1"
"OnDamaged" "bridge_explosion Explode  0.5 1"
"OnDamaged" "bridge_fire Start  0 1"
"OnDamaged" "bridge_fire Stop  10 1"
"OnDamaged" "bridge_fire_sound PlaySound  0 1"
"OnDamaged" "bridge_fire_sound StopSound  11 1"
"OnDamaged" "bridge_shake StartShake  0 1"
"OnDamaged" "bridge_shake StopShake  2 1"
"OnDamaged" "bridge_murette Break  0.5 1"
"OnDamaged" "bridge_impact Explode  0.5 1"
"OnDamaged" "bridge_explosion_sound PlaySound  0.5 1"
"OnDamaged" "barrier EnableMotion  0 1"
"OnDamaged" "bridge_smoke Start  0 1"
"OnDamaged" "bridge_smoke Stop  10 1"
"OnDamaged" "bridge_hint Kill  0 1"
"OnDamaged" "director BeginScript event_alarme 0.7 1"
"OnDamaged" "bridge_new_particle Start  0.5 1"
"OnDamaged" "bridge_new_particle1 Start  0.7 1"
"OnDamaged" "bridge_new_particle1 Stop  2.5 1"
"OnDamaged" "bridge_new_particle Stop  2.5 1"
"OnDamaged" "ceda_truck_alarm PlaySound  1 1"
"OnDamaged" "bridge_nav_blocker UnblockNav  0.5 1"
"OnDamaged" "bridge_barrels_hurt_trigger Enable  0 -1"
"OnDamaged" "bridge_barrels_hurt_trigger Disable  10 -1"
"OnDamaged" "barrier DisableMotion  5.5 -1"
"OnDamaged" "template_onslaught_hint ForceSpawn  1.5 1"
"OnDamaged" "bridge_clip Kill  0 -1"
"OnDamaged" "!activator SpeakResponseConcept C13M2BarrelsIgnited 0 1"
}

I also removed "OnDamaged" "bridge_dummy Kill 0 1" since the bridge_dummy no longer exists! With those changes i'd say that the only other thing that needs to be changed in this event is the Script to make the event more forgiving and enjoyable to play.

JuggerLeft commented 9 months ago

I will experiment Script changes for the event later and test it out with friends to see if i can figure out a good balance

JuggerLeft commented 9 months ago

Here isthe lump with the changes i made in case anyone wants to experiment with it: csbarrelsrework.zip