Team Fortress 2

Team Fortress 2

MvM Response Rule Tweaks v2
2
8
3
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
30.160 KB
4 Apr, 2021 @ 9:47pm
16 Apr, 2023 @ 12:33pm
5 Change Notes ( view )

Would you like to see this item officially accepted and supported in Team Fortress 2?

Yes
No thanks /
Not interested
Ask me
again later
Description
Submitted for the TF Team's consideration for the Summer 2023 patch

=================================
INTRO
=================================
This submission is an updated version of an attempt to revamp/fix some of the voice responses in Mann vs Machine.
It contains modified response rules for the Heavy, Soldier, Medic, and Engineer classes with the primary goal of reintroducing some MvM-specific voicelines that have not been used in-game since the mode's launch, as well as some timing issues.

I've provided a reference .txt file that contains all of the .vcd files that were moved around in the changes, as well as transcriptions for each voiceline that plays with them.

To make things easier to track, any new response rules that were created will be located on the very bottom of the 'MvM Speech' section of each class's response files, along with some commented lines to indicate where this begins and ends.

The current MvM Related Responses do not trigger in MvM:
* MvMDeployRageHeavy - The MVM_DEPLOY_RAGE concept is never triggered
* RocketDestroyedHeavy - The ROCKET_DESTROYED concept is never triggered
* MvMAttackTheTank - The MVM_ATTACK_THE_TANK concept is never triggered
* MvMCloseCall - The MVM_CLOSE_CALL concept is never triggered
* MvMWaveWin - The MVM_WAVE_WIN concept is never triggered
* MvMWaveLose - The MVM_WAVE_LOSE concept is never triggered
* MvMTaunt

Aside from MvMTaunt, which is probably better off with the changes in this submission, most of these just need their respective concepts to be triggered in certain parts of the game code. As a result, most of the changes here are related to voiceline timing.

To Valve
This fix relies on certain code edits that would allow these unused criteria to be triggered in-game. THIS SUBMISSION ONLY CONTAINS RESPONSE RULE CHANGES. If you do not wish to add code for the unused criteria/concepts, please consider the simplified version of these changes (which does NOT require code changes): https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=2222988229

I've added notes at the bottom of this page for possible places these concepts can be called.

=================================
CHANGES
=================================
ALL/MULTI-CLASS
-----------------------------------------------
* Added a '1.3' second predelay to all MvMLastManStanding responses
- This allows the lines to play after the MvM death sound has played, making them alot easier to hear

* Added new custom 'MvMTaunt{CLASS}New' rules to retool MvMTaunt as an extension of the 'KilledPlayerVeryMany' response
- These responses have a check to ensure that they will only be considered to play when in MvM

* Added a '3.0' to '4.0' predelay to all MvMAttackTheTank responses to ensure they play after or around the end of announcer tank alert lines (if changes are implemented)
- Also added context to ensure it doesn't get cut-off when taking damage

* Added a '3.0' predelay to all MvMWaveLose responses to ensure they play after announcer upgrade alert lines on wave reset (if changes are implemented)
- Heavy did not receive this change as he never had this response.

* Added a '1.0' to '5.0' predelay to MvMWaveWin responses in the event they are implemented to the game

* Decreased frequency of MvMEncourageUpgrade{CLASS} to 5% (from 50%) to match MvMUpgradeComplete response

* Decreased frequency of MvMEncourageMoney{CLASS} to 5% (from 50%) to match MvMMoneyPickup response

HEAVY
-----------------------------------------------
* Reduced the frequency of the RocketDestroyed response triggering significantly in the event that it's fixed (50% -> 5%)

* Increased the frequency of MvMRageDeployed response triggering significantly in the event that it's fixed (50% -> 100%)
- Current trigger audio already plays 100% of the time (Heavy.battlecry03)

* Added 'MvMMoneyPickup' response to Heavy with some voicelines from the unused MvMEncourageMoney response
- scene "scenes/Player/Heavy/low/3990.vcd" = "Come, help me pick up money!"
- scene "scenes/Player/Heavy/low/3991.vcd" = "Money will not wait forever!"

MEDIC
-----------------------------------------------
* Added new line to MvMMoneyPickupMedic
- scene "scenes/Player/Medic/low/4324.vcd" = "Free money, free money!"

ENGINEER
-----------------------------------------------
* Added new custom 'MvMWaveStartEngineerNew' response to add a rare MvM exclusive round start (auto speech battlecry) line.
- Has a check to make sure it only plays in MvM.

Notes for Valve
As mentioned before, some of these changes only make sense if the game code is updated to call for the unused criteria mentioned earlier. I've provided some suggestions for when they should be called below (most of these scenarios already trigger some form of audio, such as Announcer lines):

  • 'MVM_DEPLOY_RAGE' concept is currently not triggered when knockback rage is used, and instead seems to be hardcoded to play a battlecry line upon activation (specifically Heavy.battlecry03).
  • ROCKET_DESTOYED concept (contains Heavy deflect voicelines) is also currently not called in game code
  • 'MVM_ATTACK_THE_TANK' could be updated to trigger when the tank has reached the halfway point of its path, or when it enters the area near the bomb hatch (this already triggers Administrator lines).
  • 'MVM_CLOSE_CALL' concept can play when a tank is destroyed in the final seconds of the deploying animation, or when a wave ends after the bomb alert has played at least once (similar to the requirements for the 'MVM_DESTROY_TANK_WHILE_DEPLOYING'/'Balls-E' and 'MVM_NO_ALARMS_IN_FINAL_WAVE'/'Engine Block' achievements, respectively)
  • 'MVM_WAVE_WIN' and 'MVM_WAVE_LOSE' concepts also go unused, and I was also wondering if these could be implemented to trigger when a wave is marked as completed and when a checkpoint is loaded (wave reset), respectively.