From c03fed3c8cdbe62e62b89e26c9c517712b775ec4 Mon Sep 17 00:00:00 2001 From: Ashetf2 Date: Mon, 10 Mar 2025 00:36:09 -0500 Subject: [PATCH 1/4] Create new response concept Fixes https://github.com/ValveSoftware/Source-1-Games/issues/4912 --- src/game/server/team_train_watcher.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/game/server/team_train_watcher.cpp b/src/game/server/team_train_watcher.cpp index 743f669b0d6..61e8ce3f65c 100644 --- a/src/game/server/team_train_watcher.cpp +++ b/src/game/server/team_train_watcher.cpp @@ -1186,6 +1186,12 @@ void CTeamTrainWatcher::WatcherThink( void ) { if ( m_hAreaCap->IsTouching( pPlayer ) ) { + // only makes sense for offense + pPlayer->SpeakConceptIfAllowed( MP_CONCEPT_CART_PUSHING ); + } + else + { + // for offense and defense, since cart doesn't move when red is touching pPlayer->SpeakConceptIfAllowed( MP_CONCEPT_CART_MOVING_FORWARD ); } } From 8e5bf497de58d9690ccb33f6304a0e221266e087 Mon Sep 17 00:00:00 2001 From: Ashetf2 Date: Mon, 10 Mar 2025 00:41:37 -0500 Subject: [PATCH 2/4] Add vanilla response script files --- game/tc2/scripts/talker/demoman.txt | 1438 +++++++++++++ game/tc2/scripts/talker/heavy.txt | 1882 +++++++++++++++++ game/tc2/scripts/talker/medic.txt | 1424 +++++++++++++ game/tc2/scripts/talker/response_rules.txt | 710 +++++++ game/tc2/scripts/talker/scout.txt | 1896 +++++++++++++++++ game/tc2/scripts/talker/sniper.txt | 2120 ++++++++++++++++++++ game/tc2/scripts/talker/soldier.txt | 1845 +++++++++++++++++ game/tc2/scripts/talker/spy.txt | 1364 +++++++++++++ 8 files changed, 12679 insertions(+) create mode 100644 game/tc2/scripts/talker/demoman.txt create mode 100644 game/tc2/scripts/talker/heavy.txt create mode 100644 game/tc2/scripts/talker/medic.txt create mode 100644 game/tc2/scripts/talker/response_rules.txt create mode 100644 game/tc2/scripts/talker/scout.txt create mode 100644 game/tc2/scripts/talker/sniper.txt create mode 100644 game/tc2/scripts/talker/soldier.txt create mode 100644 game/tc2/scripts/talker/spy.txt diff --git a/game/tc2/scripts/talker/demoman.txt b/game/tc2/scripts/talker/demoman.txt new file mode 100644 index 00000000000..8b9b6f6f0d1 --- /dev/null +++ b/game/tc2/scripts/talker/demoman.txt @@ -0,0 +1,1438 @@ +//-------------------------------------------------------------------------------------------------------------- +// Demoman Response Rule File +//-------------------------------------------------------------------------------------------------------------- + +Criterion "DemomanIsKillSpeechObject" "DemomanKillSpeechObject" "1" "required" weight 0 +Criterion "DemomanIsNotStillonFire" "DemomanOnFire" "!=1" "required" weight 0 +Criterion "DemomanIsStillonFire" "DemomanOnFire" "1" "required" weight 0 +Criterion "DemomanNotKillSpeech" "DemomanKillSpeech" "!=1" "required" weight 0 +Criterion "DemomanNotKillSpeechMelee" "DemomanKillSpeechMelee" "!=1" "required" weight 0 +Criterion "DemomanNotSaidHealThanks" "DemomanSaidHealThanks" "!=1" "required" +Criterion "IsHelpCapDemoman" "DemomanHelpCap" "1" "required" weight 0 +// Custom stuff +Criterion "DemomanNotInvulnerableSpeech" "DemomanInvulnerableSpeech" "!=1" "required" weight 0 +Criterion "DemomanNotAssistSpeech" "DemomanAssistSpeech" "!=1" "required" weight 0 +Criterion "IsDrunk" "NotSober" "1" "required" weight 0 +Criterion "DemomanNotAwardSpeech" "DemomanAwardSpeech" "!=1" "required" weight 0 + + +Response PlayerCloakedSpyDemomanDemoman +{ + scene "scenes/Player/Demoman/low/901.vcd" +} +Rule PlayerCloakedSpyDemomanDemoman +{ + criteria ConceptPlayerCloakedSpy IsDemoman IsOnDemoman + Response PlayerCloakedSpyDemomanDemoman +} + +Response PlayerCloakedSpyEngineerDemoman +{ + scene "scenes/Player/Demoman/low/907.vcd" +} +Rule PlayerCloakedSpyEngineerDemoman +{ + criteria ConceptPlayerCloakedSpy IsDemoman IsOnEngineer + Response PlayerCloakedSpyEngineerDemoman +} + +Response PlayerCloakedSpyHeavyDemoman +{ + scene "scenes/Player/Demoman/low/897.vcd" +} +Rule PlayerCloakedSpyHeavyDemoman +{ + criteria ConceptPlayerCloakedSpy IsDemoman IsOnHeavy + Response PlayerCloakedSpyHeavyDemoman +} + +Response PlayerCloakedSpyMedicDemoman +{ + scene "scenes/Player/Demoman/low/905.vcd" +} +Rule PlayerCloakedSpyMedicDemoman +{ + criteria ConceptPlayerCloakedSpy IsDemoman IsOnMedic + Response PlayerCloakedSpyMedicDemoman +} + +Response PlayerCloakedSpyPyroDemoman +{ + scene "scenes/Player/Demoman/low/899.vcd" +} +Rule PlayerCloakedSpyPyroDemoman +{ + criteria ConceptPlayerCloakedSpy IsDemoman IsOnPyro + Response PlayerCloakedSpyPyroDemoman +} + +Response PlayerCloakedSpyScoutDemoman +{ + scene "scenes/Player/Demoman/low/893.vcd" +} +Rule PlayerCloakedSpyScoutDemoman +{ + criteria ConceptPlayerCloakedSpy IsDemoman IsOnScout + Response PlayerCloakedSpyScoutDemoman +} + +Response PlayerCloakedSpySniperDemoman +{ + scene "scenes/Player/Demoman/low/909.vcd" +} +Rule PlayerCloakedSpySniperDemoman +{ + criteria ConceptPlayerCloakedSpy IsDemoman IsOnSniper + Response PlayerCloakedSpySniperDemoman +} + +Response PlayerCloakedSpySoldierDemoman +{ + scene "scenes/Player/Demoman/low/895.vcd" +} +Rule PlayerCloakedSpySoldierDemoman +{ + criteria ConceptPlayerCloakedSpy IsDemoman IsOnSoldier + Response PlayerCloakedSpySoldierDemoman +} + +Response PlayerCloakedSpySpyDemoman +{ + scene "scenes/Player/Demoman/low/903.vcd" +} +Rule PlayerCloakedSpySpyDemoman +{ + criteria ConceptPlayerCloakedSpy IsDemoman IsOnSpy + Response PlayerCloakedSpySpyDemoman +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech +//-------------------------------------------------------------------------------------------------------------- +Response HealThanksDemoman +{ + scene "scenes/Player/Demoman/low/1032.vcd" + scene "scenes/Player/Demoman/low/1033.vcd" + scene "scenes/Player/Demoman/low/1034.vcd" +} +Rule HealThanksDemoman +{ + criteria ConceptMedicChargeStopped IsDemoman SuperHighHealthContext DemomanNotSaidHealThanks 50PercentChance + ApplyContext "DemomanSaidHealThanks:1:20" + Response HealThanksDemoman +} + +Response AwardDemoman +{ + scene "scenes/Player/Demoman/low/866.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/868.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/865.vcd" predelay "2.5" +} +Rule AwardDemoman +{ + criteria ConceptAchievementAward IsDemoman DemomanNotAwardSpeech + ApplyContext "DemomanAwardSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response AwardDemoman +} + +Response PlayerRoundStartDemoman +{ + scene "scenes/Player/Demoman/low/1358.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/1369.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/876.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/877.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/878.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/879.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/880.vcd" predelay "1.0, 5.0" +} +Rule PlayerRoundStartDemoman +{ + criteria ConceptPlayerRoundStart IsDemoman + Response PlayerRoundStartDemoman +} + +Response PlayerCappedIntelligenceDemoman +{ + scene "scenes/Player/Demoman/low/866.vcd" + scene "scenes/Player/Demoman/low/867.vcd" +} +Rule PlayerCappedIntelligenceDemoman +{ + criteria ConceptPlayerCapturedIntelligence IsDemoman + Response PlayerCappedIntelligenceDemoman +} + +Response PlayerCapturedPointDemoman +{ + scene "scenes/Player/Demoman/low/863.vcd" + scene "scenes/Player/Demoman/low/865.vcd" + scene "scenes/Player/Demoman/low/864.vcd" +} +Rule PlayerCapturedPointDemoman +{ + criteria ConceptPlayerCapturedPoint IsDemoman + Response PlayerCapturedPointDemoman +} + +Response PlayerSuddenDeathDemoman +{ + scene "scenes/Player/Demoman/low/938.vcd" + scene "scenes/Player/Demoman/low/939.vcd" + scene "scenes/Player/Demoman/low/940.vcd" + scene "scenes/Player/Demoman/low/941.vcd" + scene "scenes/Player/Demoman/low/942.vcd" + scene "scenes/Player/Demoman/low/944.vcd" + scene "scenes/Player/Demoman/low/945.vcd" + scene "scenes/Player/Demoman/low/947.vcd" + scene "scenes/Player/Demoman/low/948.vcd" + scene "scenes/Player/Demoman/low/949.vcd" + scene "scenes/Player/Demoman/low/946.vcd" +} +Rule PlayerSuddenDeathDemoman +{ + criteria ConceptPlayerSuddenDeathStart IsDemoman + Response PlayerSuddenDeathDemoman +} + +Response PlayerStalemateDemoman +{ + scene "scenes/Player/Demoman/low/869.vcd" + scene "scenes/Player/Demoman/low/870.vcd" + scene "scenes/Player/Demoman/low/871.vcd" + scene "scenes/Player/Demoman/low/1357.vcd" +} +Rule PlayerStalemateDemoman +{ + criteria ConceptPlayerStalemate IsDemoman + Response PlayerStalemateDemoman +} + +Response PlayerTeleporterThanksDemoman +{ + scene "scenes/Player/Demoman/low/1035.vcd" + scene "scenes/Player/Demoman/low/1036.vcd" +} +Rule PlayerTeleporterThanksDemoman +{ + criteria ConceptTeleported IsNotEngineer IsDemoman 30PercentChance + Response PlayerTeleporterThanksDemoman +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Combat +//-------------------------------------------------------------------------------------------------------------- +Response DefendOnThePointDemoman +{ + scene "scenes/Player/Demoman/low/1011.vcd" + scene "scenes/Player/Demoman/low/1389.vcd" +} +Rule DefendOnThePointDemoman +{ + criteria ConceptFireWeapon IsDemoman IsOnFriendlyControlPoint NotDefendOnThePointSpeech + ApplyContext "DefendOnThePointSpeech:1:30" + applycontexttoworld + Response DefendOnThePointDemoman +} + +Response DemomanJarateHit +{ + scene "scenes/Player/Demoman/low/871.vcd" + scene "scenes/Player/Demoman/low/947.vcd" + scene "scenes/Player/Demoman/low/969.vcd" + scene "scenes/Player/Demoman/low/971.vcd" +} +Rule DemomanJarateHit +{ + criteria ConceptJarateHit IsDemoman 50PercentChance + Response DemomanJarateHit +} + +// Invuln responses for Grenade Launcher +Response InvulnerableSpeechDemoman2 +{ + scene "scenes/Player/Demoman/low/1019.vcd" + scene "scenes/Player/Demoman/low/1012.vcd" + scene "scenes/Player/Demoman/low/1029.vcd" + scene "scenes/Player/Demoman/low/1021.vcd" +} + + +Rule InvulnerableSpeechDemoman2 +{ + criteria ConceptFireWeapon IsDemoman WeaponIsGrenade IsInvulnerable DemomanNotInvulnerableSpeech + ApplyContext "DemomanInvulnerableSpeech:1:30" + Response InvulnerableSpeechDemoman2 +} +// End invuln responses for GL + +// Invulnerable responses for Sticky launcher +Response InvulnerableSpeechDemoman +{ + scene "scenes/Player/Demoman/low/1023.vcd" + scene "scenes/Player/Demoman/low/1022.vcd" + scene "scenes/Player/Demoman/low/1018.vcd" +} + +Rule InvulnerableSpeechDemoman +{ + criteria ConceptFireWeapon IsDemoman WeaponIsPipebomb IsInvulnerable DemomanNotInvulnerableSpeech + ApplyContext "DemomanInvulnerableSpeech:1:30" + Response InvulnerableSpeechDemoman +} +// End invuln responses for Sticky + +Response KilledPlayerAssistAutoDemoman +{ + scene "scenes/Player/Demoman/low/1009.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/867.vcd" predelay "2.5" +} +Rule KilledPlayerAssistAutoDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsBeingHealed IsManyRecentKills KilledPlayerDelay 20PercentChance DemomanNotAssistSpeech + ApplyContext "DemomanAssistSpeech:1:20" + Response KilledPlayerAssistAutoDemoman +} + +Response KilledPlayerManyDemoman +{ + scene "scenes/Player/Demoman/low/1000.vcd" + scene "scenes/Player/Demoman/low/1014.vcd" + scene "scenes/Player/Demoman/low/1016.vcd" + scene "scenes/Player/Demoman/low/1020.vcd" +} +Rule KilledPlayerManyDemoman +{ + criteria ConceptKilledPlayer IsManyRecentKills 30PercentChance IsWeaponSecondary KilledPlayerDelay DemomanNotKillSpeech IsDemoman + ApplyContext "DemomanKillSpeech:1:10" + Response KilledPlayerManyDemoman +} + +// Custom stuff +// Responses against killing a Soldier +Response KilledSoldierDemoman +{ + scene "scenes/Player/Demoman/low/3568.vcd" + scene "scenes/Player/Demoman/low/3574.vcd" + scene "scenes/Player/Demoman/low/3577.vcd" +} +Rule KilledSoldierDemoman +{ + criterion ConceptKilledPlayer KilledPlayerDelay IsVictimSoldier 10PercentChance DemomanNotKillSpeech IsDemoman WeaponClassIsNotAxe + ApplyContext "DemomanKillSpeech:1:60" + Response KilledSoldierDemoman +} + +// Frying pan responses +// These are our base responses for non-sword melee weapons. +Response KilledPlayerPanDemoman +{ + scene "scenes/Player/Demoman/low/3566.vcd" + scene "scenes/Player/Demoman/low/3567.vcd" + scene "scenes/Player/Demoman/low/3569.vcd" + scene "scenes/Player/Demoman/low/3570.vcd" + scene "scenes/Player/Demoman/low/3571.vcd" + scene "scenes/Player/Demoman/low/3572.vcd" + scene "scenes/Player/Demoman/low/3573.vcd" + scene "scenes/Player/Demoman/low/3575.vcd" +} +Rule KilledPlayerPanDemoman +{ + criteria ConceptKilledPlayer KilledPlayerDelay WeaponIsFryingPan 20PercentChance DemomanNotKillSpeechMelee IsDemoman + ApplyContext "DemomanKillSpeechMelee:1:10" + Response KilledPlayerPanDemoman +} + +Rule KilledPlayerSaxxyDemoman +{ + criteria ConceptKilledPlayer KilledPlayerDelay WeaponIsSaxxy 20PercentChance DemomanNotKillSpeechMelee IsDemoman + ApplyContext "DemomanKillSpeechMelee:1:10" + Response KilledPlayerPanDemoman +} +// End Frying Pan responses + +// Custom rules for when Demoman drinks from Scrumpy +// to trigger one of the above drunk lines +Rule DrunkDemoman +{ + criteria ConceptFireWeapon IsDrunk IsDemoman IsWeaponMelee WeaponIsNotFryingPan // Fire if he's holding the Bottle and if the drunk context is set + Response KilledPlayerPanDemoman +} +// End custom drunk rules + +// Modified to play for the Bottle only +// Modified to include Frying Pan repsonses above, saves having duplicate entries. +Response KilledPlayerMeleeDemoman +{ + scene "scenes/Player/Demoman/low/998.vcd" +} +Rule KilledPlayerMeleeDemoman +{ + criteria ConceptKilledPlayer KilledPlayerDelay WeaponIsBottle WeaponIsNotPainTrain WeaponIsNotSaxxy 30PercentChance DemomanNotKillSpeechMelee IsDemoman + ApplyContext "DemomanKillSpeechMelee:1:10" + Response KilledPlayerPanDemoman + Response KilledPlayerMeleeDemoman +} +// + +// Eyelander responses +// These apply to all tf_weapon_sword class weapons. +Response KilledPlayerSwordDemoman +{ + scene "scenes/Player/Demoman/low/3565.vcd" + scene "scenes/Player/Demoman/low/910.vcd" + scene "scenes/Player/Demoman/low/950.vcd" + scene "scenes/Player/Demoman/low/1379.vcd" +} + +Rule KilledPlayerSwordDemoman +{ + criteria ConceptKilledPlayer KilledPlayerDelay WeaponIsSword 20PercentChance IsNotVictimDemoman DemomanNotKillSpeechMelee IsDemoman + ApplyContext "DemomanKillSpeechMelee:1:30" + Response KilledPlayerSwordDemoman +} + +// The above rule is for non-Demoman victims only. + +Response KilledPlayerSword2Demoman +{ + scene "scenes/Player/Demoman/low/3564.vcd" +} + +Rule KilledPlayerSword2Demoman +{ + criteria ConceptKilledPlayer KilledPlayerDelay WeaponIsSword 20PercentChance IsVictimDemoman DemomanNotKillSpeechMelee IsDemoman + ApplyContext "DemomanKillSpeechMelee:1:30" + Response KilledPlayerSword2Demoman +} +// The above rule is for Demoman victims only. +// End Eyelander responses + +// Katana response rules shared with Eyelander +Rule KilledPlayerKatanaDemoman +{ + criteria ConceptKilledPlayer KilledPlayerDelay WeaponIsKatana 20PercentChance IsNotVictimDemoman DemomanNotKillSpeechMelee IsDemoman + ApplyContext "DemomanKillSpeechMelee:1:30" + Response KilledPlayerSwordDemoman +} +// The above rule is for non-Demoman victims only. +Rule KilledPlayerKatana2Demoman +{ + criteria ConceptKilledPlayer KilledPlayerDelay WeaponIsKatana 20PercentChance IsVictimDemoman DemomanNotKillSpeechMelee IsDemoman + ApplyContext "DemomanKillSpeechMelee:1:30" + Response KilledPlayerSword2Demoman +} +// The above rule is for Demoman victims only. +// End Katana responses + +// Pain Train responses +// Shares responses with Frying Pan, saves having duplicate entries. +Response KilledPlayerClubDemoman +{ + scene "scenes/Player/Demoman/low/3578.vcd" +} + +Rule KilledPlayerClubDemoman +{ + criteria ConceptKilledPlayer KilledPlayerDelay WeaponIsPainTrain 10PercentChance DemomanNotKillSpeechMelee IsDemoman + ApplyContext "DemomanKillSpeechMelee:1:15" + Response KilledPlayerClubDemoman + Response KilledPlayerPanDemoman +} +// End Pain Train responses + +// Caber responses +Response KilledPlayerCaberDemoman +{ + scene "scenes/player/Demoman/low/1007.vcd" + scene "scenes/Player/Demoman/low/1008.vcd" + scene "scenes/Player/Demoman/low/997.vcd" +} +Rule KilledPlayerCaberDemoman +{ + criteria ConceptAttackerPain KilledPlayerDelay WeaponIsCaber IsCritical CaberHealthContext DemomanNotKillSpeechMelee IsDemoman + ApplyContext "DemomanKillSpeechMelee:1:10" + Response KilledPlayerCaberDemoman +} + +Response KilledPlayerVeryManyDemoman +{ + scene "scenes/Player/Demoman/low/997.vcd" + scene "scenes/Player/Demoman/low/999.vcd" + scene "scenes/Player/Demoman/low/1003.vcd" + scene "scenes/Player/Demoman/low/1004.vcd" + scene "scenes/Player/Demoman/low/1006.vcd" + scene "scenes/Player/Demoman/low/1024.vcd" +} +Rule KilledPlayerVeryManyDemoman +{ + criteria ConceptKilledPlayer IsVeryManyRecentKills 50PercentChance IsWeaponSecondary KilledPlayerDelay DemomanNotKillSpeech IsDemoman + ApplyContext "DemomanKillSpeech:1:10" + Response KilledPlayerVeryManyDemoman +} + +Response PlayerKilledCapperDemoman +{ + scene "scenes/Player/Demoman/low/867.vcd" + scene "scenes/Player/Demoman/low/884.vcd" + scene "scenes/Player/Demoman/low/887.vcd" + scene "scenes/Player/Demoman/low/952.vcd" + scene "scenes/Player/Demoman/low/955.vcd" + scene "scenes/Player/Demoman/low/989.vcd" + scene "scenes/Player/Demoman/low/991.vcd" + scene "scenes/Player/Demoman/low/992.vcd" + scene "scenes/Player/Demoman/low/993.vcd" + scene "scenes/Player/Demoman/low/1001.vcd" + scene "scenes/Player/Demoman/low/1002.vcd" +} +Rule PlayerKilledCapperDemoman +{ + criteria ConceptCapBlocked IsDemoman + ApplyContext "DemomanKillSpeech:1:10" + Response PlayerKilledCapperDemoman +} + +Response PlayerKilledDominatingDemoman +{ + scene "scenes/Player/Demoman/low/886.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/910.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/950.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/1379.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/1384.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/1385.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/951.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/953.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/954.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/956.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/1383.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsDominated + ApplyContext "DemomanKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingDemoman +} + +Response PlayerKilledDominatingDemomanDemoman +{ + scene "scenes/Player/Demoman/low/3515.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3516.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3517.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3518.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingDemomanDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsDominated IsVictimDemoman + ApplyContext "DemomanKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingDemomanDemoman +} + +Response PlayerKilledDominatingEngineerDemoman +{ + scene "scenes/Player/Demoman/low/3519.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3520.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3521.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3522.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3523.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3524.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingEngineerDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsDominated IsVictimEngineer + ApplyContext "DemomanKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingEngineerDemoman +} + +Response PlayerKilledDominatingHeavyDemoman +{ + scene "scenes/Player/Demoman/low/3525.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3526.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3527.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3528.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3529.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingHeavyDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsDominated IsVictimHeavy + ApplyContext "DemomanKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingHeavyDemoman +} + +Response PlayerKilledDominatingMedicDemoman +{ + scene "scenes/Player/Demoman/low/3530.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3531.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3532.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3533.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingMedicDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsDominated IsVictimMedic + ApplyContext "DemomanKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingMedicDemoman +} + +Response PlayerKilledDominatingPyroDemoman +{ + scene "scenes/Player/Demoman/low/3534.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3535.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3536.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3537.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingPyroDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsDominated IsVictimPyro + ApplyContext "DemomanKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingPyroDemoman +} + +Response PlayerKilledDominatingScoutDemoman +{ + scene "scenes/Player/Demoman/low/3538.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3539.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3540.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3541.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3542.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3543.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3544.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3545.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingScoutDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsDominated IsVictimScout + ApplyContext "DemomanKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingScoutDemoman +} + +Response PlayerKilledDominatingSniperDemoman +{ + scene "scenes/Player/Demoman/low/3546.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3547.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3548.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3549.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSniperDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsDominated IsVictimSniper + ApplyContext "DemomanKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSniperDemoman +} + +Response PlayerKilledDominatingSoldierDemoman +{ + scene "scenes/Player/Demoman/low/3550.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3551.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3552.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3553.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3554.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSoldierDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsDominated IsVictimSoldier + ApplyContext "DemomanKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSoldierDemoman +} + +Response PlayerKilledDominatingSpyDemoman +{ + scene "scenes/Player/Demoman/low/3561.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3562.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/3563.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSpyDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsDominated IsVictimSpy + ApplyContext "DemomanKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSpyDemoman +} + +Response PlayerKilledForRevengeDemoman +{ + scene "scenes/Player/Demoman/low/914.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/990.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/1005.vcd" predelay "2.5" + scene "scenes/Player/Demoman/low/1025.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeDemoman +{ + criteria ConceptKilledPlayer IsDemoman IsRevenge + ApplyContext "DemomanKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeDemoman +} + +Response PlayerKilledObjectDemoman +{ + scene "scenes/Player/Demoman/low/1007.vcd" + scene "scenes/Player/Demoman/low/1008.vcd" +} +Rule PlayerKilledObjectDemoman +{ + criteria ConceptKilledObject IsDemoman 30PercentChance IsARecentKill + ApplyContext "DemomanKillSpeechObject:1:30" + Response PlayerKilledObjectDemoman +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Pain +//-------------------------------------------------------------------------------------------------------------- +Response PlayerAttackerPainDemoman +{ + scene "scenes/Player/Demoman/low/983.vcd" + scene "scenes/Player/Demoman/low/984.vcd" + scene "scenes/Player/Demoman/low/985.vcd" + scene "scenes/Player/Demoman/low/1396.vcd" +} +Rule PlayerAttackerPainDemoman +{ + criteria ConceptAttackerPain IsDemoman IsNotDominating + Response PlayerAttackerPainDemoman +} + +Response PlayerOnFireDemoman +{ + scene "scenes/Player/Demoman/low/872.vcd" + scene "scenes/Player/Demoman/low/874.vcd" +} +Rule PlayerOnFireDemoman +{ + criteria ConceptFire IsDemoman DemomanIsNotStillonFire IsNotDominating + ApplyContext "DemomanOnFire:1:7" + Response PlayerOnFireDemoman +} + +Response PlayerOnFireRareDemoman +{ + scene "scenes/Player/Demoman/low/873.vcd" +} +Rule PlayerOnFireRareDemoman +{ + criteria ConceptFire IsDemoman 10PercentChance DemomanIsNotStillonFire IsNotDominating + ApplyContext "DemomanOnFire:1:7" + Response PlayerOnFireRareDemoman +} + +Response PlayerPainDemoman +{ + scene "scenes/Player/Demoman/low/986.vcd" + scene "scenes/Player/Demoman/low/987.vcd" + scene "scenes/Player/Demoman/low/988.vcd" + scene "scenes/Player/Demoman/low/1392.vcd" + scene "scenes/Player/Demoman/low/1393.vcd" + scene "scenes/Player/Demoman/low/1394.vcd" + scene "scenes/Player/Demoman/low/1395.vcd" +} +Rule PlayerPainDemoman +{ + criteria ConceptPain IsDemoman IsNotDominating + Response PlayerPainDemoman +} + +Response PlayerStillOnFireDemoman +{ + scene "scenes/Player/Demoman/low/1927.vcd" +} +Rule PlayerStillOnFireDemoman +{ + criteria ConceptFire IsDemoman DemomanIsStillonFire IsNotDominating + ApplyContext "DemomanOnFire:1:7" + Response PlayerStillOnFireDemoman +} + + +//-------------------------------------------------------------------------------------------------------------- +// Duel Speech +//-------------------------------------------------------------------------------------------------------------- +Response AcceptedDuelDemoman +{ + scene "scenes/Player/Demoman/low/1015.vcd" + scene "scenes/Player/Demoman/low/1017.vcd" + scene "scenes/Player/Demoman/low/1038.vcd" +} +Rule AcceptedDuelDemoman +{ + criteria ConceptIAcceptDuel IsDemoman + Response AcceptedDuelDemoman +} + +Response MeleeDareDemoman +{ + scene "scenes/Player/Demoman/low/868.vcd" + scene "scenes/Player/Demoman/low/879.vcd" + scene "scenes/Player/Demoman/low/1369.vcd" + scene "scenes/Player/Demoman/low/1027.vcd" + scene "scenes/Player/Demoman/low/1028.vcd" + scene "scenes/Player/Demoman/low/3566.vcd" + scene "scenes/Player/Demoman/low/3569.vcd" + scene "scenes/Player/Demoman/low/3574.vcd" + scene "scenes/Player/Demoman/low/3576.vcd" + scene "scenes/Player/Demoman/low/3578.vcd" +} +Rule MeleeDareDemoman +{ + criteria ConceptRequestDuel IsDemoman + Response MeleeDareDemoman +} + +Response RejectedDuelDemoman +{ + scene "scenes/Player/Demoman/low/938.vcd" + scene "scenes/Player/Demoman/low/939.vcd" + scene "scenes/Player/Demoman/low/3545.vcd" +} +Rule RejectedDuelDemoman +{ + criteria ConceptDuelRejected IsDemoman + Response RejectedDuelDemoman +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 1 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerGoDemoman +{ + scene "scenes/Player/Demoman/low/911.vcd" + scene "scenes/Player/Demoman/low/912.vcd" + scene "scenes/Player/Demoman/low/913.vcd" +} +Rule PlayerGoDemoman +{ + criteria ConceptPlayerGo IsDemoman + Response PlayerGoDemoman +} + +Response PlayerHeadLeftDemoman +{ + scene "scenes/Player/Demoman/low/917.vcd" + scene "scenes/Player/Demoman/low/918.vcd" + scene "scenes/Player/Demoman/low/919.vcd" +} +Rule PlayerHeadLeftDemoman +{ + criteria ConceptPlayerLeft IsDemoman + Response PlayerHeadLeftDemoman +} + +Response PlayerHeadRightDemoman +{ + scene "scenes/Player/Demoman/low/920.vcd" + scene "scenes/Player/Demoman/low/921.vcd" + scene "scenes/Player/Demoman/low/922.vcd" +} +Rule PlayerHeadRightDemoman +{ + criteria ConceptPlayerRight IsDemoman + Response PlayerHeadRightDemoman +} + +Response PlayerHelpDemoman +{ + scene "scenes/Player/Demoman/low/923.vcd" + scene "scenes/Player/Demoman/low/924.vcd" + scene "scenes/Player/Demoman/low/925.vcd" +} +Rule PlayerHelpDemoman +{ + criteria ConceptPlayerHelp IsDemoman + Response PlayerHelpDemoman +} + +Response PlayerHelpCaptureDemoman +{ + scene "scenes/Player/Demoman/low/926.vcd" + scene "scenes/Player/Demoman/low/927.vcd" + scene "scenes/Player/Demoman/low/928.vcd" +} +Rule PlayerHelpCaptureDemoman +{ + criteria ConceptPlayerHelp IsDemoman IsOnCappableControlPoint + ApplyContext "DemomanHelpCap:1:10" + Response PlayerHelpCaptureDemoman +} + +Response PlayerHelpCapture2Demoman +{ + scene "scenes/Player/Demoman/low/1011.vcd" + scene "scenes/Player/Demoman/low/1389.vcd" +} +Rule PlayerHelpCapture2Demoman +{ + criteria ConceptPlayerHelp IsDemoman IsOnCappableControlPoint IsHelpCapDemoman + Response PlayerHelpCapture2Demoman +} + +Response PlayerHelpDefendDemoman +{ + scene "scenes/Player/Demoman/low/929.vcd" + scene "scenes/Player/Demoman/low/930.vcd" + scene "scenes/Player/Demoman/low/931.vcd" +} +Rule PlayerHelpDefendDemoman +{ + criteria ConceptPlayerHelp IsDemoman IsOnFriendlyControlPoint + Response PlayerHelpDefendDemoman +} + +Response PlayerMedicDemoman +{ + scene "scenes/Player/Demoman/low/957.vcd" + scene "scenes/Player/Demoman/low/958.vcd" + scene "scenes/Player/Demoman/low/959.vcd" +} +Rule PlayerMedicDemoman +{ + criteria ConceptPlayerMedic IsDemoman + Response PlayerMedicDemoman +} + +Response PlayerAskForBallDemoman +{ +} +Rule PlayerAskForBallDemoman +{ + criteria ConceptPlayerAskForBall IsDemoman + Response PlayerAskForBallDemoman +} + + +Response PlayerMoveUpDemoman +{ + scene "scenes/Player/Demoman/low/960.vcd" + scene "scenes/Player/Demoman/low/961.vcd" + scene "scenes/Player/Demoman/low/962.vcd" +} +Rule PlayerMoveUpDemoman +{ + criteria ConceptPlayerMoveUp IsDemoman + Response PlayerMoveUpDemoman +} + +Response PlayerNoDemoman +{ + scene "scenes/Player/Demoman/low/977.vcd" + scene "scenes/Player/Demoman/low/978.vcd" + scene "scenes/Player/Demoman/low/979.vcd" +} +Rule PlayerNoDemoman +{ + criteria ConceptPlayerNo IsDemoman + Response PlayerNoDemoman +} + +Response PlayerThanksDemoman +{ + scene "scenes/Player/Demoman/low/1030.vcd" + scene "scenes/Player/Demoman/low/1031.vcd" +} +Rule PlayerThanksDemoman +{ + criteria ConceptPlayerThanks IsDemoman + Response PlayerThanksDemoman +} + +// Custom Assist kill response +// As there is no actual concept for assist kills, this is the second best method. +// Say thanks after you kill more than one person. + +Response KilledPlayerAssistDemoman +{ + scene "scenes/Player/Demoman/low/1009.vcd" + scene "scenes/Player/Demoman/low/867.vcd" +} +Rule KilledPlayerAssistDemoman +{ + criteria ConceptPlayerThanks IsDemoman IsARecentKill KilledPlayerDelay DemomanNotAssistSpeech + ApplyContext "DemomanAssistSpeech:1:20" + Response KilledPlayerAssistDemoman +} + +Response KilledPlayerAssistDemoman2 +{ + scene "scenes/Player/Demoman/low/1010.vcd" +} +Rule KilledPlayerAssistDemoman2 +{ + criteria ConceptPlayerThanks IsDemoman IsNotBeingHealed IsARecentKill KilledPlayerDelay DemomanNotAssistSpeech + ApplyContext "DemomanAssistSpeech:1:20" + Response KilledPlayerAssistDemoman + Response KilledPlayerAssistDemoman2 +} + +// End custom + +Response PlayerYesDemoman +{ + scene "scenes/Player/Demoman/low/1037.vcd" + scene "scenes/Player/Demoman/low/1038.vcd" + scene "scenes/Player/Demoman/low/1039.vcd" +} +Rule PlayerYesDemoman +{ + criteria ConceptPlayerYes IsDemoman + Response PlayerYesDemoman +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 2 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerActivateChargeDemoman +{ + scene "scenes/Player/Demoman/low/860.vcd" + scene "scenes/Player/Demoman/low/861.vcd" + scene "scenes/Player/Demoman/low/862.vcd" +} +Rule PlayerActivateChargeDemoman +{ + criteria ConceptPlayerActivateCharge IsDemoman + Response PlayerActivateChargeDemoman +} + +Response PlayerCloakedSpyDemoman +{ + scene "scenes/Player/Demoman/low/889.vcd" + scene "scenes/Player/Demoman/low/890.vcd" + scene "scenes/Player/Demoman/low/891.vcd" +} +Rule PlayerCloakedSpyDemoman +{ + criteria ConceptPlayerCloakedSpy IsDemoman + Response PlayerCloakedSpyDemoman +} + +Response PlayerDispenserHereDemoman +{ + scene "scenes/Player/Demoman/low/964.vcd" +} +Rule PlayerDispenserHereDemoman +{ + criteria ConceptPlayerDispenserHere IsDemoman + Response PlayerDispenserHereDemoman +} + +Response PlayerIncomingDemoman +{ + scene "scenes/Player/Demoman/low/932.vcd" + scene "scenes/Player/Demoman/low/933.vcd" + scene "scenes/Player/Demoman/low/934.vcd" +} +Rule PlayerIncomingDemoman +{ + criteria ConceptPlayerIncoming IsDemoman + Response PlayerIncomingDemoman +} + +Response PlayerSentryAheadDemoman +{ + scene "scenes/Player/Demoman/low/994.vcd" + scene "scenes/Player/Demoman/low/995.vcd" + scene "scenes/Player/Demoman/low/996.vcd" +} +Rule PlayerSentryAheadDemoman +{ + criteria ConceptPlayerSentryAhead IsDemoman + Response PlayerSentryAheadDemoman +} + +Response PlayerSentryHereDemoman +{ + scene "scenes/Player/Demoman/low/966.vcd" +} +Rule PlayerSentryHereDemoman +{ + criteria ConceptPlayerSentryHere IsDemoman + Response PlayerSentryHereDemoman +} + +Response PlayerTeleporterHereDemoman +{ + scene "scenes/Player/Demoman/low/968.vcd" +} +Rule PlayerTeleporterHereDemoman +{ + criteria ConceptPlayerTeleporterHere IsDemoman + Response PlayerTeleporterHereDemoman +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 3 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerBattleCryDemoman +{ + scene "scenes/Player/Demoman/low/1358.vcd" + scene "scenes/Player/Demoman/low/1369.vcd" + scene "scenes/Player/Demoman/low/876.vcd" + scene "scenes/Player/Demoman/low/877.vcd" + scene "scenes/Player/Demoman/low/878.vcd" + scene "scenes/Player/Demoman/low/879.vcd" + scene "scenes/Player/Demoman/low/880.vcd" +} +Rule PlayerBattleCryDemoman +{ + criteria ConceptPlayerBattleCry IsDemoman + Response PlayerBattleCryDemoman +} + +// Custom stuff - melee dare +// Look at enemy, then do battle cry voice command while holding a melee weapon. +Response MeleeDareCombatDemoman +{ + scene "scenes/Player/Demoman/low/1028.vcd" + scene "scenes/Player/Demoman/low/1017.vcd" + scene "scenes/Player/Demoman/low/1015.vcd" +} +Rule MeleeDareCombatDemoman +{ + criteria ConceptPlayerBattleCry IsWeaponMelee IsDemoman IsCrosshairEnemy + Response MeleeDareCombatDemoman +} +//End custom + + +Response PlayerCheersDemoman +{ + scene "scenes/Player/Demoman/low/881.vcd" + scene "scenes/Player/Demoman/low/883.vcd" + scene "scenes/Player/Demoman/low/884.vcd" + scene "scenes/Player/Demoman/low/1359.vcd" + scene "scenes/Player/Demoman/low/886.vcd" + scene "scenes/Player/Demoman/low/887.vcd" + scene "scenes/Player/Demoman/low/882.vcd" + scene "scenes/Player/Demoman/low/885.vcd" +} +Rule PlayerCheersDemoman +{ + criteria ConceptPlayerCheers IsDemoman + Response PlayerCheersDemoman +} + +Response PlayerGoodJobDemoman +{ + scene "scenes/Player/Demoman/low/914.vcd" + scene "scenes/Player/Demoman/low/915.vcd" +} +Rule PlayerGoodJobDemoman +{ + criteria ConceptPlayerGoodJob IsDemoman + Response PlayerGoodJobDemoman +} + +Response PlayerJeersDemoman +{ + scene "scenes/Player/Demoman/low/938.vcd" + scene "scenes/Player/Demoman/low/939.vcd" + scene "scenes/Player/Demoman/low/940.vcd" + scene "scenes/Player/Demoman/low/941.vcd" + scene "scenes/Player/Demoman/low/942.vcd" + scene "scenes/Player/Demoman/low/944.vcd" + scene "scenes/Player/Demoman/low/945.vcd" + scene "scenes/Player/Demoman/low/947.vcd" + scene "scenes/Player/Demoman/low/948.vcd" + scene "scenes/Player/Demoman/low/949.vcd" + scene "scenes/Player/Demoman/low/946.vcd" +} +Rule PlayerJeersDemoman +{ + criteria ConceptPlayerJeers IsDemoman + Response PlayerJeersDemoman +} + +Response PlayerLostPointDemoman +{ + scene "scenes/Player/Demoman/low/973.vcd" + scene "scenes/Player/Demoman/low/1360.vcd" + scene "scenes/Player/Demoman/low/969.vcd" + scene "scenes/Player/Demoman/low/970.vcd" + scene "scenes/Player/Demoman/low/971.vcd" + scene "scenes/Player/Demoman/low/972.vcd" +} +Rule PlayerLostPointDemoman +{ + criteria ConceptPlayerLostPoint IsDemoman + Response PlayerLostPointDemoman +} + +Response PlayerNegativeDemoman +{ + scene "scenes/Player/Demoman/low/973.vcd" + scene "scenes/Player/Demoman/low/1360.vcd" + scene "scenes/Player/Demoman/low/969.vcd" + scene "scenes/Player/Demoman/low/970.vcd" + scene "scenes/Player/Demoman/low/971.vcd" + scene "scenes/Player/Demoman/low/972.vcd" +} +Rule PlayerNegativeDemoman +{ + criteria ConceptPlayerNegative IsDemoman + Response PlayerNegativeDemoman +} + +Response PlayerNiceShotDemoman +{ + scene "scenes/Player/Demoman/low/974.vcd" + scene "scenes/Player/Demoman/low/975.vcd" + scene "scenes/Player/Demoman/low/976.vcd" +} +Rule PlayerNiceShotDemoman +{ + criteria ConceptPlayerNiceShot IsDemoman + Response PlayerNiceShotDemoman +} + +Response PlayerPositiveDemoman +{ + scene "scenes/Player/Demoman/low/989.vcd" + scene "scenes/Player/Demoman/low/990.vcd" + scene "scenes/Player/Demoman/low/991.vcd" + scene "scenes/Player/Demoman/low/992.vcd" + scene "scenes/Player/Demoman/low/993.vcd" +} + +Response PlayerTauntsDemoman +{ + scene "scenes/Player/Demoman/low/1380.vcd" + scene "scenes/Player/Demoman/low/1382.vcd" + scene "scenes/Player/Demoman/low/1386.vcd" +} +Rule PlayerPositiveDemoman +{ + criteria ConceptPlayerPositive IsDemoman + Response PlayerPositiveDemoman + Response PlayerTauntsDemoman +} + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Cart +//-------------------------------------------------------------------------------------------------------------- +Criterion "DemomanNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 +Criterion "DemomanNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 +Criterion "DemomanNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 +Criterion "DemomanNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 +Criterion "DemomanNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 +Criterion "DemomanNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Response CartMovingBackwardsDefenseDemoman +{ + scene "scenes/Player/Demoman/low/7718.vcd" + scene "scenes/Player/Demoman/low/7719.vcd" + scene "scenes/Player/Demoman/low/7720.vcd" +} +Rule CartMovingBackwardsDefenseDemoman +{ + criteria ConceptCartMovingBackward IsOnDefense IsDemoman DemomanNotSaidCartMovingBackwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardD:1:20" + Response CartMovingBackwardsDefenseDemoman +} +Response CartMovingBackwardsOffenseDemoman +{ + scene "scenes/Player/Demoman/low/7714.vcd" + scene "scenes/Player/Demoman/low/7715.vcd" + scene "scenes/Player/Demoman/low/7713.vcd" + scene "scenes/Player/Demoman/low/8533.vcd" +} +Rule CartMovingBackwardsOffenseDemoman +{ + criteria ConceptCartMovingBackward IsOnOffense IsDemoman DemomanNotSaidCartMovingBackwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardO:1:20" + Response CartMovingBackwardsOffenseDemoman +} +Response CartMovingForwardDefenseDemoman +{ + scene "scenes/Player/Demoman/low/7716.vcd" + scene "scenes/Player/Demoman/low/7717.vcd" +} +Rule CartMovingForwardDefenseDemoman +{ + criteria ConceptCartMovingForward IsOnDefense IsDemoman DemomanNotSaidCartMovingForwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardD:1:20" + Response CartMovingForwardDefenseDemoman +} +Response CartMovingForwardOffenseDemoman +{ + scene "scenes/Player/Demoman/low/7704.vcd" + scene "scenes/Player/Demoman/low/7705.vcd" + scene "scenes/Player/Demoman/low/7706.vcd" + scene "scenes/Player/Demoman/low/7707.vcd" + scene "scenes/Player/Demoman/low/7711.vcd" + scene "scenes/Player/Demoman/low/7721.vcd" + scene "scenes/Player/Demoman/low/7723.vcd" + scene "scenes/Player/Demoman/low/7724.vcd" +} +Rule CartMovingForwardOffenseDemoman +{ + criteria ConceptCartMovingForward IsOnOffense IsDemoman DemomanNotSaidCartMovingForwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardO:1:20" + Response CartMovingForwardOffenseDemoman +} +Response CartMovingStoppedDefenseDemoman +{ +} +Rule CartMovingStoppedDefenseDemoman +{ + criteria ConceptCartMovingStopped IsOnDefense IsDemoman DemomanNotSaidCartMovingStoppedD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedD:1:20" + Response CartMovingStoppedDefenseDemoman +} +Response CartMovingStoppedOffenseDemoman +{ + scene "scenes/Player/Demoman/low/7726.vcd" + scene "scenes/Player/Demoman/low/7727.vcd" + scene "scenes/Player/Demoman/low/7725.vcd" +} +Rule CartMovingStoppedOffenseDemoman +{ + criteria ConceptCartMovingStopped IsOnOffense IsDemoman DemomanNotSaidCartMovingStoppedO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedO:1:20" + Response CartMovingStoppedOffenseDemoman +} +//-------------------------------------------------------------------------------------------------------------- +// END OF Auto Speech Cart +//-------------------------------------------------------------------------------------------------------------- + +//-------------------------------------------------------------------------------------------------------------- +// Begin Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- +Response PlayerFirstRoundStartCompDemoman +{ + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_comp_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_comp_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_comp_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_comp_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_comp_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_rare_03.vcd" predelay "1.0, 5.0" +} +Rule PlayerFirstRoundStartCompDemoman +{ + criteria ConceptPlayerRoundStartComp IsDemoman IsFirstRound IsNotComp6v6 40PercentChance + Response PlayerFirstRoundStartCompDemoman +} + +Response PlayerFirstRoundStartComp6sDemoman +{ + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_comp_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_comp_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_comp_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_comp_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_comp_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_6s_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_6s_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamefirst_6s_03.vcd" predelay "1.0, 5.0" +} +Rule PlayerFirstRoundStartComp6sDemoman +{ + criteria ConceptPlayerRoundStartComp IsDemoman IsFirstRound IsComp6v6 40PercentChance + Response PlayerFirstRoundStartComp6sDemoman +} + +Response PlayerWonPrevRoundCompDemoman +{ + scene "scenes/Player/Demoman/low/cm_demo_pregamewonlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamewonlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamewonlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamewonlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamewonlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamewonlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamewonlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamewonlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamewonlast_rare_01.vcd" predelay "1.0, 5.0" +} +Rule PlayerWonPrevRoundCompDemoman +{ + criteria ConceptPlayerRoundStartComp IsDemoman IsNotFirstRound PlayerWonPreviousRound 40PercentChance + Response PlayerWonPrevRoundCompDemoman +} + +Response PlayerLostPrevRoundCompDemoman +{ + scene "scenes/Player/Demoman/low/cm_demo_pregamelostlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamelostlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamelostlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamelostlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregamelostlast_rare_01.vcd" predelay "1.0, 5.0" +} +Rule PlayerLostPrevRoundCompDemoman +{ + criteria ConceptPlayerRoundStartComp IsDemoman IsNotFirstRound PlayerLostPreviousRound PreviousRoundWasNotTie 40PercentChance + Response PlayerLostPrevRoundCompDemoman +} + +Response PlayerTiedPrevRoundCompDemoman +{ + scene "scenes/Player/Demoman/low/cm_demo_pregametie_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregametie_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregametie_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_pregametie_04.vcd" predelay "1.0, 5.0" +} +Rule PlayerTiedPrevRoundCompDemoman +{ + criteria ConceptPlayerRoundStartComp IsDemoman IsNotFirstRound PreviousRoundWasTie 40PercentChance + Response PlayerTiedPrevRoundCompDemoman +} + +Response PlayerGameWinCompDemoman +{ + scene "scenes/Player/Demoman/low/cm_demo_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_rare_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_rare_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_rare_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Demoman/low/cm_demo_gamewon_rare_03.vcd" predelay "2.0, 5.0" +} +Rule PlayerGameWinCompDemoman +{ + criteria ConceptPlayerGameOverComp PlayerOnWinningTeam IsDemoman 40PercentChance + Response PlayerGameWinCompDemoman +} + +Response PlayerMatchWinCompDemoman +{ + scene "scenes/Player/Demoman/low/cm_demo_matchwon_01.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Demoman/low/cm_demo_matchwon_02.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Demoman/low/cm_demo_matchwon_03.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Demoman/low/cm_demo_matchwon_04.vcd" predelay "1.0, 2.0" +} +Rule PlayerMatchWinCompDemoman +{ + criteria ConceptPlayerMatchOverComp PlayerOnWinningTeam IsDemoman 40PercentChance + Response PlayerMatchWinCompDemoman +} +//-------------------------------------------------------------------------------------------------------------- +// End Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/game/tc2/scripts/talker/heavy.txt b/game/tc2/scripts/talker/heavy.txt new file mode 100644 index 00000000000..d124fd97e13 --- /dev/null +++ b/game/tc2/scripts/talker/heavy.txt @@ -0,0 +1,1882 @@ +//-------------------------------------------------------------------------------------------------------------- +// Heavy Response Rule File +//-------------------------------------------------------------------------------------------------------------- + +Criterion "HeavyIsKillSpeechObject" "HeavyKillSpeechObject" "1" "required" weight 0 +Criterion "HeavyIsNotStillonFire" "HeavyOnFire" "!=1" "required" weight 0 +Criterion "HeavyIsStillonFire" "HeavyOnFire" "1" "required" weight 0 +Criterion "HeavyNotInvulnerableSpeech" "HeavyInvulnerableSpeech" "!=1" "required" weight 0 +Criterion "HeavyNotKillSpeech" "HeavyKillSpeech" "!=1" "required" weight 0 +Criterion "HeavyNotKillSpeechMelee" "HeavyKillSpeechMelee" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Criterion "HeavyNotSaidHealThanks" "HeavySaidHealThanks" "!=1" "required" +Criterion "IsHelpCapHeavy" "HeavyHelpCap" "1" "required" weight 0 +// Custom stuff +Criterion "HeavyNotMedicSpeech" "HeavyMedicSpeech" "!=1" "required" +Criterion "HeavyNotAwardSpeech" "HeavyAwardSpeech" "!=1" "required" +Criterion "HeavyNotAssistSpeech" "HeavyAssistSpeech" "!=1" "required" weight 0 +Criterion "IsHeavyFistsSwung" "HeavyFistsSwung" "1" "required" weight 0 +Criterion "IsNotHeavyFistsSwung" "HeavyFistsSwung" "!=1" "required" weight 0 +Criterion "IsHeavyFistsSwinging" "HeavyFistsSwinging" "1" "required" weight 0 +Criterion "IsNotHeavyFistsSwinging" "HeavyFistsSwinging" "!=1" "required" weight 0 +Criterion "NotGunTauntHeavy" "GunTauntHeavy" "!=1" "required" weight 0 +Criterion "IsNotDaring" "IsDaring" "!=1" "required" weight 0 +Criterion "HeavyNotKillSpeechObject" "HeavyKillSpeechObject" "!=1" "required" weight 0 +Criterion "HeavyNotShinySpeech" "HeavyShinySpeech" "!=1" "required" weight 0 +Criterion "HeavyNotFairyNoises" "HeavyFairyNoises" "!=1" "required" weight 0 + + +Response PlayerCloakedSpyDemomanHeavy +{ + scene "scenes/Player/Heavy/low/225.vcd" +} +Rule PlayerCloakedSpyDemomanHeavy +{ + criteria ConceptPlayerCloakedSpy IsHeavy IsOnDemoman + Response PlayerCloakedSpyDemomanHeavy +} + +Response PlayerCloakedSpyEngineerHeavy +{ + scene "scenes/Player/Heavy/low/228.vcd" +} +Rule PlayerCloakedSpyEngineerHeavy +{ + criteria ConceptPlayerCloakedSpy IsHeavy IsOnEngineer + Response PlayerCloakedSpyEngineerHeavy +} + +Response PlayerCloakedSpyHeavyHeavy +{ + scene "scenes/Player/Heavy/low/223.vcd" +} +Rule PlayerCloakedSpyHeavyHeavy +{ + criteria ConceptPlayerCloakedSpy IsHeavy IsOnHeavy + Response PlayerCloakedSpyHeavyHeavy +} + +Response PlayerCloakedSpyMedicHeavy +{ + scene "scenes/Player/Heavy/low/227.vcd" +} +Rule PlayerCloakedSpyMedicHeavy +{ + criteria ConceptPlayerCloakedSpy IsHeavy IsOnMedic + Response PlayerCloakedSpyMedicHeavy +} + +Response PlayerCloakedSpyPyroHeavy +{ + scene "scenes/Player/Heavy/low/224.vcd" +} +Rule PlayerCloakedSpyPyroHeavy +{ + criteria ConceptPlayerCloakedSpy IsHeavy IsOnPyro + Response PlayerCloakedSpyPyroHeavy +} + +Response PlayerCloakedSpyScoutHeavy +{ + scene "scenes/Player/Heavy/low/221.vcd" +} +Rule PlayerCloakedSpyScoutHeavy +{ + criteria ConceptPlayerCloakedSpy IsHeavy IsOnScout + Response PlayerCloakedSpyScoutHeavy +} + +Response PlayerCloakedSpySniperHeavy +{ + scene "scenes/Player/Heavy/low/229.vcd" +} +Rule PlayerCloakedSpySniperHeavy +{ + criteria ConceptPlayerCloakedSpy IsHeavy IsOnSniper + Response PlayerCloakedSpySniperHeavy +} + +Response PlayerCloakedSpySoldierHeavy +{ + scene "scenes/Player/Heavy/low/222.vcd" +} +Rule PlayerCloakedSpySoldierHeavy +{ + criteria ConceptPlayerCloakedSpy IsHeavy IsOnSoldier + Response PlayerCloakedSpySoldierHeavy +} + +Response PlayerCloakedSpySpyHeavy +{ + scene "scenes/Player/Heavy/low/226.vcd" +} +Rule PlayerCloakedSpySpyHeavy +{ + criteria ConceptPlayerCloakedSpy IsHeavy IsOnSpy + Response PlayerCloakedSpySpyHeavy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech +//-------------------------------------------------------------------------------------------------------------- +// Custom achievement stuff +Response AwardHeavy +{ + scene "scenes/Player/Heavy/low/1954.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/1955.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/1956.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2057.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2058.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2059.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2060.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2061.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2062.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2063.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2064.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2065.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2068.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2069.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2200.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2259.vcd" predelay "2.5" + +} +Rule AwardHeavy +{ + criteria ConceptAchievementAward IsHeavy HeavyNotAwardSpeech + ApplyContext "HeavyAwardSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response AwardHeavy +} +//End custom achievement + +Response HealThanksHeavy +{ + scene "scenes/Player/Heavy/low/344.vcd" + scene "scenes/Player/Heavy/low/345.vcd" + scene "scenes/Player/Heavy/low/346.vcd" +} +Rule HealThanksHeavy +{ + criteria ConceptMedicChargeStopped IsHeavy SuperHighHealthContext HeavyNotSaidHealThanks 50PercentChance + ApplyContext "HeavySaidHealThanks:1:20" + Response HealThanksHeavy +} + +Response PlayerRoundStartHeavy +{ + scene "scenes/Player/Heavy/low/205.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/206.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/207.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/208.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/209.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/210.vcd" predelay "1.0, 5.0" +} +Rule PlayerRoundStartHeavy +{ + criteria ConceptPlayerRoundStart IsHeavy + Response PlayerRoundStartHeavy +} + +Response PlayerCappedIntelligenceHeavy +{ + scene "scenes/Player/Heavy/low/196.vcd" + scene "scenes/Player/Heavy/low/197.vcd" + scene "scenes/Player/Heavy/low/198.vcd" +} +Rule PlayerCappedIntelligenceHeavy +{ + criteria ConceptPlayerCapturedIntelligence IsHeavy + Response PlayerCappedIntelligenceHeavy +} + +Response PlayerCapturedPointHeavy +{ + scene "scenes/Player/Heavy/low/193.vcd" + scene "scenes/Player/Heavy/low/194.vcd" + scene "scenes/Player/Heavy/low/195.vcd" +} +Rule PlayerCapturedPointHeavy +{ + criteria ConceptPlayerCapturedPoint IsHeavy + Response PlayerCapturedPointHeavy +} + +Response PlayerSuddenDeathHeavy +{ + scene "scenes/Player/Heavy/low/258.vcd" + scene "scenes/Player/Heavy/low/259.vcd" + scene "scenes/Player/Heavy/low/260.vcd" + scene "scenes/Player/Heavy/low/261.vcd" + scene "scenes/Player/Heavy/low/262.vcd" + scene "scenes/Player/Heavy/low/263.vcd" + scene "scenes/Player/Heavy/low/264.vcd" + scene "scenes/Player/Heavy/low/265.vcd" + scene "scenes/Player/Heavy/low/266.vcd" +} +Rule PlayerSuddenDeathHeavy +{ + criteria ConceptPlayerSuddenDeathStart IsHeavy + Response PlayerSuddenDeathHeavy +} + +Response PlayerStalemateHeavy +{ + scene "scenes/Player/Heavy/low/199.vcd" + scene "scenes/Player/Heavy/low/200.vcd" + scene "scenes/Player/Heavy/low/201.vcd" +} +Rule PlayerStalemateHeavy +{ + criteria ConceptPlayerStalemate IsHeavy + Response PlayerStalemateHeavy +} + +Response PlayerTeleporterThanksHeavy +{ + scene "scenes/Player/Heavy/low/347.vcd" + scene "scenes/Player/Heavy/low/348.vcd" + scene "scenes/Player/Heavy/low/349.vcd" +} +Rule PlayerTeleporterThanksHeavy +{ + criteria ConceptTeleported IsNotEngineer IsHeavy 30PercentChance + Response PlayerTeleporterThanksHeavy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Cart +//-------------------------------------------------------------------------------------------------------------- +Response CartMovingBackwardsDefenseHeavy +{ + scene "scenes/Player/Heavy/low/1990.vcd" + scene "scenes/Player/Heavy/low/1991.vcd" + scene "scenes/Player/Heavy/low/1992.vcd" + scene "scenes/Player/Heavy/low/2070.vcd" + scene "scenes/Player/Heavy/low/2208.vcd" + scene "scenes/Player/Heavy/low/2209.vcd" + scene "scenes/Player/Heavy/low/2267.vcd" + scene "scenes/Player/Heavy/low/2268.vcd" +} +Rule CartMovingBackwardsDefenseHeavy +{ + criteria ConceptCartMovingBackward IsOnDefense IsHeavy HeavyNotSaidCartMovingBackwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardD:1:20" + Response CartMovingBackwardsDefenseHeavy +} + +Response CartMovingBackwardsOffenseHeavy +{ + scene "scenes/Player/Heavy/low/1987.vcd" + scene "scenes/Player/Heavy/low/1988.vcd" + scene "scenes/Player/Heavy/low/1989.vcd" + scene "scenes/Player/Heavy/low/2071.vcd" + scene "scenes/Player/Heavy/low/2072.vcd" + scene "scenes/Player/Heavy/low/2206.vcd" + scene "scenes/Player/Heavy/low/2207.vcd" +} +Rule CartMovingBackwardsOffenseHeavy +{ + criteria ConceptCartMovingBackward IsOnOffense IsHeavy HeavyNotSaidCartMovingBackwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardO:1:20" + Response CartMovingBackwardsOffenseHeavy +} + +Response CartMovingForwardDefenseHeavy +{ + scene "scenes/Player/Heavy/low/1984.vcd" + scene "scenes/Player/Heavy/low/1985.vcd" + scene "scenes/Player/Heavy/low/2269.vcd" + scene "scenes/Player/Heavy/low/1986.vcd" + scene "scenes/Player/Heavy/low/2073.vcd" + scene "scenes/Player/Heavy/low/2270.vcd" + scene "scenes/Player/Heavy/low/2263.vcd" +} +Rule CartMovingForwardDefenseHeavy +{ + criteria ConceptCartMovingForward IsOnDefense IsHeavy HeavyNotSaidCartMovingForwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardD:1:20" + Response CartMovingForwardDefenseHeavy +} + +Response CartMovingForwardOffenseHeavy +{ + scene "scenes/Player/Heavy/low/1963.vcd" + scene "scenes/Player/Heavy/low/1964.vcd" + scene "scenes/Player/Heavy/low/1965.vcd" + scene "scenes/Player/Heavy/low/2179.vcd" + scene "scenes/Player/Heavy/low/2180.vcd" + scene "scenes/Player/Heavy/low/2181.vcd" + scene "scenes/Player/Heavy/low/2182.vcd" + scene "scenes/Player/Heavy/low/2183.vcd" + scene "scenes/Player/Heavy/low/2184.vcd" + scene "scenes/Player/Heavy/low/2271.vcd" + scene "scenes/Player/Heavy/low/2185.vcd" + scene "scenes/Player/Heavy/low/2186.vcd" + scene "scenes/Player/Heavy/low/2187.vcd" + scene "scenes/Player/Heavy/low/2188.vcd" + scene "scenes/Player/Heavy/low/2189.vcd" + scene "scenes/Player/Heavy/low/2190.vcd" + scene "scenes/Player/Heavy/low/2203.vcd" + scene "scenes/Player/Heavy/low/1957.vcd" + scene "scenes/Player/Heavy/low/1958.vcd" + scene "scenes/Player/Heavy/low/1959.vcd" + scene "scenes/Player/Heavy/low/2202.vcd" + scene "scenes/Player/Heavy/low/2201.vcd" + scene "scenes/Player/Heavy/low/2193.vcd" + scene "scenes/Player/Heavy/low/2066.vcd" + scene "scenes/Player/Heavy/low/2261.vcd" + scene "scenes/Player/Heavy/low/2260.vcd" + scene "scenes/Player/Heavy/low/2262.vcd" +} +Rule CartMovingForwardOffenseHeavy +{ + criteria ConceptCartMovingForward IsOnOffense IsHeavy HeavyNotSaidCartMovingForwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardO:1:20" + Response CartMovingForwardOffenseHeavy +} + +Response CartMovingStoppedDefenseHeavy +{ + scene "scenes/Player/Heavy/low/1966.vcd" + scene "scenes/Player/Heavy/low/1967.vcd" + scene "scenes/Player/Heavy/low/1968.vcd" + scene "scenes/Player/Heavy/low/2191.vcd" +} +Rule CartMovingStoppedDefenseHeavy +{ + criteria ConceptCartMovingStopped IsOnDefense IsHeavy HeavyNotSaidCartMovingStoppedD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedD:1:20" + Response CartMovingStoppedDefenseHeavy +} + +Response CartMovingStoppedOffenseHeavy +{ + scene "scenes/Player/Heavy/low/1960.vcd" + scene "scenes/Player/Heavy/low/1961.vcd" + scene "scenes/Player/Heavy/low/2192.vcd" + scene "scenes/Player/Heavy/low/1962.vcd" +} +Rule CartMovingStoppedOffenseHeavy +{ + criteria ConceptCartMovingStopped IsOnOffense IsHeavy HeavyNotSaidCartMovingStoppedO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedO:1:20" + Response CartMovingStoppedOffenseHeavy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Combat +//-------------------------------------------------------------------------------------------------------------- + +// Minigun responses imported from tf.txt + +Response HeavyTimeFiringMinigunShort +{ + scene "scenes/player/heavy/low/attackminigun_vocal02.vcd" + scene "scenes/player/heavy/low/attackminigun_vocal03.vcd" +} +Rule HeavyTimeFiringMinigunShort +{ + criteria ConceptFireMinigunTalk IsHeavy WeaponIsMinigun TimeFiringMinigunShort 30PercentChance + Response HeavyTimeFiringMinigunShort +} + +Response HeavyTimeFiringMinigunLong +{ + //scene "scenes/player/heavy/low/specialcompleted11.vcd" This is a remnant from the beta files. + //scene "scenes/player/heavy/low/laughShort03.vcd" This is a remnant from the beta files. + scene "scenes/player/heavy/low/1279.vcd" + scene "scenes/player/heavy/low/1273.vcd" +} +Rule HeavyTimeFiringMinigunLong +{ + criteria ConceptFireMinigunTalk IsHeavy WeaponIsMinigun TimeFiringMinigunLong 50PercentChance + Response HeavyTimeFiringMinigunLong +} + +Response HeavyTimeFiringMinigunReallyLong +{ + scene "scenes/player/heavy/low/attackMinigun_vocal05.vcd" + //scene "scenes/player/heavy/low/specialcompleted07.vcd" This is a remnant from the beta files. + scene "scenes/player/heavy/low/318.vcd" + // Was that so hard VALVe? ;) +} +Rule HeavyTimeFiringMinigunReallyLong +{ + criteria ConceptFireMinigunTalk IsHeavy WeaponIsMinigun TimeFiringMinigunReallyLong 50PercentChance + Response HeavyTimeFiringMinigunReallyLong +} + +// End minigun responses imported from tf.txt + +Response DefendOnThePointHeavy +{ + scene "scenes/Player/Heavy/low/322.vcd" + scene "scenes/Player/Heavy/low/1277.vcd" +} +Rule DefendOnThePointHeavy +{ + criteria ConceptFireWeapon IsHeavy IsOnFriendlyControlPoint NotDefendOnThePointSpeech + ApplyContext "DefendOnThePointSpeech:1:30" + applycontexttoworld + Response DefendOnThePointHeavy +} + +Response InvulnerableSpeechHeavy +{ + scene "scenes/Player/Heavy/low/314.vcd" + scene "scenes/Player/Heavy/low/315.vcd" + scene "scenes/Player/Heavy/low/316.vcd" + scene "scenes/Player/Heavy/low/325.vcd" + scene "scenes/Player/Heavy/low/341.vcd" +} +Rule InvulnerableSpeechHeavy +{ + criteria ConceptFireMinigun IsHeavy WeaponIsMinigun IsInvulnerable HeavyNotInvulnerableSpeech + ApplyContext "HeavyInvulnerableSpeech:1:30" + Response InvulnerableSpeechHeavy +} + +// Custom stuff +Response KilledMedicHeavy +{ + scene "scenes/Player/Heavy/low/1982.vcd" + scene "scenes/Player/Heavy/low/1983.vcd" + scene "scenes/Player/Heavy/low/1993.vcd" + scene "scenes/Player/Heavy/low/1994.vcd" +} +Rule KilledMedicHeavy +{ + criteria ConceptKilledPlayer IsVictimMedic IsHeavy IsBeingHealed 50PercentChance KilledPlayerDelay HeavyNotMedicSpeech + ApplyContext "HeavyMedicSpeech:1:20" + ApplyContext "IsDominating:1:5" // Added the IsDominating context so this isn't interrupted. Heavy is going to be under fire a lot in this kind of situation. + Response KilledMedicHeavy +} + +Response KilledPlayerAssistAutoHeavy +{ + scene "scenes/Player/Heavy/low/320.vcd" predelay "2.5" +} +Rule KilledPlayerAssistAutoHeavy +{ + criteria ConceptKilledPlayer IsHeavy IsBeingHealed IsManyRecentKills KilledPlayerDelay 20PercentChance HeavyNotAssistSpeech + ApplyContext "HeavyAssistSpeech:1:20" + Response KilledPlayerAssistAutoHeavy +} + +// End custom + +// Modified to include a new line +Response KilledPlayerManyHeavy +{ + scene "scenes/Player/Heavy/low/310.vcd" + scene "scenes/Player/Heavy/low/311.vcd" + scene "scenes/Player/Heavy/low/1279.vcd" + scene "scenes/Player/Heavy/low/326.vcd" + scene "scenes/Player/Heavy/low/327.vcd" + scene "scenes/player/heavy/low/335.vcd" +} +Rule KilledPlayerManyHeavy +{ + criteria ConceptKilledPlayer IsManyRecentKills 30PercentChance IsWeaponPrimary KilledPlayerDelay HeavyNotKillSpeech IsHeavy + ApplyContext "HeavyKillSpeech:1:10" + Response KilledPlayerManyHeavy +} + +Response KilledPlayerMeleeHeavy +{ + scene "scenes/Player/Heavy/low/272.vcd" + scene "scenes/Player/Heavy/low/273.vcd" +} +Rule KilledPlayerMeleeHeavy +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee HeavyNotKillSpeechMelee IsHeavy + ApplyContext "HeavyKillSpeechMelee:1:10" + Response KilledPlayerMeleeHeavy +} + +// Custom stuff +// Fist of Steel kill +Response KilledPlayerMeleeMetalHeavy +{ + scene "scenes/Player/Heavy/low/1941.vcd" +} +Rule KilledPlayerMeleeMetalHeavy +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance WeaponIsMetalFists HeavyNotKillSpeechMelee IsHeavy + ApplyContext "HeavyKillSpeechMelee:1:10" + Response KilledPlayerMeleeMetalHeavy + Response KilledPlayerMeleeHeavy +} + +// Iron Curtain/Brass Beast kill +Response KilledPlayerShinyHeavy +{ + scene "scenes/player/heavy/low/2210.vcd" predelay ".25" + scene "scenes/player/heavy/low/2198.vcd" predelay ".25" + scene "scenes/player/heavy/low/2204.vcd" predelay ".25" + scene "scenes/player/heavy/low/2199.vcd" predelay ".25" +} +Rule KilledPlayerShinyHeavy +{ + criterion ConceptKilledPlayer KilledPlayerDelay 20PercentChance IsManyRecentKills IsWeaponPrimary WeaponIsNotVanillaPrimary HeavyNotKillSpeech IsHeavy WeaponIsNotTaggedMinigun + ApplyContext "HeavyKillSpeech:1:90" + Response KilledPlayerShinyHeavy +} + +// Custom kill response against an Engineer. +Response KilledPlayerTauntHeavy +{ + scene "scenes/player/heavy/low/332.vcd" + scene "scenes/player/heavy/low/337.vcd" +} +Rule KilledPlayerTauntHeavy +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsHeavy IsVictimEngineer IsCrosshairEnemy HeavyNotKillSpeech + ApplyContext "HeavyKillSpeech:1:10" + Response KilledPlayerTauntHeavy +} + +// Swinging fists start +Response HeavySwingFistsStart +{ + scene "scenes/player/heavy/low/1980.vcd" +} +Rule HeavySwingFistsStart +{ + criteria ConceptFireWeapon IsWeaponMelee 50PercentChance IsHeavy IsNotDaring HeavyNotKillSpeechMelee IsNotDominating IsNotHeavyFistsSwung WeaponIsNotSaxxy + ApplyContext "HeavyFistsSwung:1:10" + Response HeavySwingFistsStart +} + +Response HeavySwingFists +{ + scene "scenes/player/heavy/low/2272.vcd" + scene "scenes/player/heavy/low/2273.vcd" + scene "scenes/player/heavy/low/2274.vcd" + scene "scenes/player/heavy/low/1978.vcd" + scene "scenes/player/heavy/low/1979.vcd" +} +Rule HeavySwingFists +{ + criteria ConceptFireWeapon IsWeaponMelee 50PercentChance IsHeavyFistsSwung IsNotDaring HeavyNotKillSpeechMelee IsNotDominating IsHeavy IsNotHeavyFistsSwinging + ApplyContext "HeavyFistsSwinging:2:3" + Response HeavySwingFists +} + +// End custom + +// Modified to include a new line +Response KilledPlayerVeryManyHeavy +{ + scene "scenes/Player/Heavy/low/318.vcd" + scene "scenes/Player/Heavy/low/319.vcd" + scene "scenes/Player/Heavy/low/323.vcd" + scene "scenes/Player/Heavy/low/338.vcd" + scene "scenes/Player/Heavy/low/340.vcd" + scene "scenes/player/heavy/low/333.vcd" +} +Rule KilledPlayerVeryManyHeavy +{ + criteria ConceptKilledPlayer IsVeryManyRecentKills 50PercentChance IsWeaponPrimary KilledPlayerDelay HeavyNotKillSpeech IsHeavy + ApplyContext "HeavyKillSpeech:1:10" + Response KilledPlayerVeryManyHeavy +} + +Response MedicFollowHeavy +{ + scene "scenes/Player/Heavy/low/1933.vcd" predelay ".25" + scene "scenes/Player/Heavy/low/1935.vcd" predelay ".25" + scene "scenes/Player/Heavy/low/1936.vcd" predelay ".25" + scene "scenes/Player/Heavy/low/1937.vcd" predelay ".25" + scene "scenes/Player/Heavy/low/1938.vcd" predelay ".25" + scene "scenes/Player/Heavy/low/1939.vcd" predelay ".25" + scene "scenes/Player/Heavy/low/2086.vcd" predelay ".25" +} +Rule MedicFollowHeavy +{ + criteria ConceptPlayerMedic IsOnMedic IsHeavy IsNotCrossHairEnemy NotLowHealth HeavyIsNotStillonFire + ApplyContext "HeavyKillSpeech:1:10" + Response MedicFollowHeavy +} + +Response HeavyJarateHit +{ + scene "scenes/Player/Heavy/low/1267.vcd" + scene "scenes/Player/Heavy/low/201.vcd" + scene "scenes/Player/Heavy/low/259.vcd" +} +Rule HeavyJarateHit +{ + criteria ConceptJarateHit IsHeavy 50PercentChance + Response HeavyJarateHit +} + +Response PlayerKilledCapperHeavy +{ + scene "scenes/Player/Heavy/low/1265.vcd" + scene "scenes/Player/Heavy/low/289.vcd" + scene "scenes/Player/Heavy/low/306.vcd" + scene "scenes/Player/Heavy/low/330.vcd" + scene "scenes/Player/Heavy/low/334.vcd" + scene "scenes/Player/Heavy/low/339.vcd" + scene "scenes/Player/Heavy/low/331.vcd" +} +Rule PlayerKilledCapperHeavy +{ + criteria ConceptCapBlocked IsHeavy + ApplyContext "HeavyKillSpeech:1:10" + Response PlayerKilledCapperHeavy +} + +Response PlayerKilledDominatingHeavy +{ + scene "scenes/Player/Heavy/low/1948.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/1950.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2074.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2075.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2076.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2077.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2078.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2079.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2080.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2083.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2084.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2085.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2103.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2115.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2194.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2256.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/235.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/263.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/267.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/268.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/269.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/1268.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/1269.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/1272.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/270.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/271.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2067.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2265.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2266.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/303.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/304.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/336.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingHeavy +{ + criteria ConceptKilledPlayer IsHeavy IsDominated + ApplyContext "HeavyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingHeavy +} + +Response PlayerKilledForRevengeHeavy +{ + scene "scenes/Player/Heavy/low/213.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/216.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/305.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/1951.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/1952.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/1953.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2100.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2101.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2102.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2104.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2105.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2108.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2109.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2110.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2111.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2112.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2113.vcd" predelay "2.5" + scene "scenes/Player/Heavy/low/2114.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeHeavy +{ + criteria ConceptKilledPlayer IsHeavy IsRevenge + ApplyContext "HeavyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeHeavy +} + +Response PlayerKilledObjectHeavy +{ + scene "scenes/Player/Heavy/low/2264.vcd" + scene "scenes/Player/Heavy/low/1262.vcd" + scene "scenes/Player/Heavy/low/312.vcd" + scene "scenes/Player/Heavy/low/313.vcd" +} +Rule PlayerKilledObjectHeavy +{ + criteria ConceptKilledObject IsHeavy 30PercentChance IsARecentKill HeavyNotKillSpeechObject + ApplyContext "HeavyKillSpeechObject:1:30" + Response PlayerKilledObjectHeavy +} + +// Custom stuff +Response PlayerKilledSentryHeavy +{ + scene "scenes/player/heavy/low/332.vcd" +} +Rule PlayerKilledSentryHeavy +{ + criteria ConceptKilledObject IsHeavy IsSentryGun 10PercentChance HeavyNotKillSpeechObject + ApplyContext "HeavyKillSpeechObject:1:30" + Response PlayerKilledSentryHeavy +} + +Response PlayerKilledDispenserHeavy +{ + scene "scenes/player/heavy/low/337.vcd" +} +Rule PlayerKilledDispenserHeavy +{ + criteria ConceptKilledObject IsHeavy IsDispenser 10PercentChance HeavyNotKillSpeechObject + ApplyContext "HeavyKillSpeechObject:1:30" + Response PlayerKilledDispenserHeavy +} +// End custom + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Pain +//-------------------------------------------------------------------------------------------------------------- +Response PlayerAttackerPainHeavy +{ + scene "scenes/Player/Heavy/low/297.vcd" + scene "scenes/Player/Heavy/low/298.vcd" + scene "scenes/Player/Heavy/low/299.vcd" +} +Rule PlayerAttackerPainHeavy +{ + criteria ConceptAttackerPain IsHeavy IsNotDominating + Response PlayerAttackerPainHeavy +} + +Response PlayerOnFireHeavy +{ + scene "scenes/Player/Heavy/low/202.vcd" + scene "scenes/Player/Heavy/low/203.vcd" + scene "scenes/Player/Heavy/low/1400.vcd" +} +Rule PlayerOnFireHeavy +{ + criteria ConceptFire IsHeavy HeavyIsNotStillonFire IsNotDominating + ApplyContext "HeavyOnFire:1:7" + Response PlayerOnFireHeavy +} + +Response PlayerOnFireRareHeavy +{ + scene "scenes/Player/Heavy/low/204.vcd" + scene "scenes/Player/Heavy/low/1399.vcd" +} +Rule PlayerOnFireRareHeavy +{ + criteria ConceptFire IsHeavy 10PercentChance HeavyIsNotStillonFire IsNotDominating + ApplyContext "HeavyOnFire:1:7" + Response PlayerOnFireRareHeavy +} + +Response PlayerPainHeavy +{ + scene "scenes/Player/Heavy/low/300.vcd" + scene "scenes/Player/Heavy/low/301.vcd" + scene "scenes/Player/Heavy/low/302.vcd" + scene "scenes/Player/Heavy/low/1390.vcd" + scene "scenes/Player/Heavy/low/1391.vcd" +} +Rule PlayerPainHeavy +{ + criteria ConceptPain IsHeavy IsNotDominating + Response PlayerPainHeavy +} + +Response PlayerStillOnFireHeavy +{ + scene "scenes/Player/Heavy/low/1925.vcd" +} +Rule PlayerStillOnFireHeavy +{ + criteria ConceptFire IsHeavy HeavyIsStillonFire IsNotDominating + ApplyContext "HeavyOnFire:1:7" + Response PlayerStillOnFireHeavy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Duel Speech +//-------------------------------------------------------------------------------------------------------------- +Response AcceptedDuelHeavy +{ + scene "scenes/Player/Heavy/low/2058.vcd" + scene "scenes/Player/Heavy/low/2061.vcd" + scene "scenes/Player/Heavy/low/205.vcd" + scene "scenes/Player/Heavy/low/1950.vcd" + scene "scenes/Player/Heavy/low/2084.vcd" + scene "scenes/Player/Heavy/low/324.vcd" + scene "scenes/Player/Heavy/low/326.vcd" + scene "scenes/Player/Heavy/low/330.vcd" + scene "scenes/Player/Heavy/low/350.vcd" + scene "scenes/Player/Heavy/low/351.vcd" +} +Rule AcceptedDuelHeavy +{ + criteria ConceptIAcceptDuel IsHeavy + Response AcceptedDuelHeavy +} + +Response MeleeDareHeavy +{ + scene "scenes/Player/Heavy/low/1975.vcd" + scene "scenes/Player/Heavy/low/1977.vcd" + scene "scenes/Player/Heavy/low/2090.vcd" + scene "scenes/Player/Heavy/low/2091.vcd" + scene "scenes/Player/Heavy/low/2119.vcd" + scene "scenes/Player/Heavy/low/2205.vcd" + scene "scenes/Player/Heavy/low/2258.vcd" +} +Rule MeleeDareHeavy +{ + criteria ConceptRequestDuel IsHeavy + Response MeleeDareHeavy +} + +Response RejectedDuelHeavy +{ + scene "scenes/Player/Heavy/low/201.vcd" + scene "scenes/Player/Heavy/low/2074.vcd" + scene "scenes/Player/Heavy/low/2075.vcd" + scene "scenes/Player/Heavy/low/2076.vcd" + scene "scenes/Player/Heavy/low/2077.vcd" + scene "scenes/Player/Heavy/low/2081.vcd" + scene "scenes/Player/Heavy/low/2082.vcd" + scene "scenes/Player/Heavy/low/2103.vcd" + scene "scenes/Player/Heavy/low/258.vcd" + scene "scenes/Player/Heavy/low/327.vcd" +} +Rule RejectedDuelHeavy +{ + criteria ConceptDuelRejected IsHeavy + Response RejectedDuelHeavy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 1 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerGoHeavy +{ + scene "scenes/Player/Heavy/low/231.vcd" + scene "scenes/Player/Heavy/low/232.vcd" + scene "scenes/Player/Heavy/low/233.vcd" +} +Rule PlayerGoHeavy +{ + criteria ConceptPlayerGo IsHeavy + Response PlayerGoHeavy +} + +Response PlayerHeadLeftHeavy +{ + scene "scenes/Player/Heavy/low/237.vcd" + scene "scenes/Player/Heavy/low/238.vcd" + scene "scenes/Player/Heavy/low/239.vcd" + scene "scenes/Player/Heavy/low/2276.vcd" +} +Rule PlayerHeadLeftHeavy +{ + criteria ConceptPlayerLeft IsHeavy + Response PlayerHeadLeftHeavy +} + +Response PlayerHeadRightHeavy +{ + scene "scenes/Player/Heavy/low/240.vcd" + scene "scenes/Player/Heavy/low/241.vcd" + scene "scenes/Player/Heavy/low/242.vcd" + scene "scenes/Player/Heavy/low/2275.vcd" +} +Rule PlayerHeadRightHeavy +{ + criteria ConceptPlayerRight IsHeavy + Response PlayerHeadRightHeavy +} + +Response PlayerHelpHeavy +{ + scene "scenes/Player/Heavy/low/243.vcd" + scene "scenes/Player/Heavy/low/244.vcd" + scene "scenes/Player/Heavy/low/245.vcd" +} +Rule PlayerHelpHeavy +{ + criteria ConceptPlayerHelp IsHeavy + Response PlayerHelpHeavy +} + +Response PlayerHelpCaptureHeavy +{ + scene "scenes/Player/Heavy/low/246.vcd" + scene "scenes/Player/Heavy/low/247.vcd" + scene "scenes/Player/Heavy/low/248.vcd" +} +Rule PlayerHelpCaptureHeavy +{ + criteria ConceptPlayerHelp IsHeavy IsOnCappableControlPoint + ApplyContext "HeavyHelpCap:1:10" + Response PlayerHelpCaptureHeavy +} + +Response PlayerHelpCapture2Heavy +{ + scene "scenes/Player/Heavy/low/321.vcd" + scene "scenes/Player/Heavy/low/322.vcd" + scene "scenes/Player/Heavy/low/1276.vcd" + scene "scenes/Player/Heavy/low/1277.vcd" +} +Rule PlayerHelpCapture2Heavy +{ + criteria ConceptPlayerHelp IsHeavy IsOnCappableControlPoint IsHelpCapHeavy + Response PlayerHelpCapture2Heavy +} + +// Custom stuff +// Response for when the Heavy is fighting on a cappable point +Response PlayerGetOnPointHeavy +{ + scene "scenes/Player/Heavy/low/1947.vcd" + scene "scenes/Player/Heavy/low/2195.vcd" + scene "scenes/Player/Heavy/low/2196.vcd" + scene "scenes/Player/Heavy/low/2197.vcd" +} + +Rule PlayerGetOnPointHeavy +{ + criterion ConceptFireWeapon IsHeavy IsOnCappableControlPoint NotDefendOnThePointSpeech + ApplyContext "DefendOnThePointSpeech:1:15" + applycontexttoworld + Response PlayerGetOnPointHeavy +} +// End custom + +Response PlayerHelpDefendHeavy +{ + scene "scenes/Player/Heavy/low/249.vcd" + scene "scenes/Player/Heavy/low/250.vcd" + scene "scenes/Player/Heavy/low/251.vcd" +} +Rule PlayerHelpDefendHeavy +{ + criteria ConceptPlayerHelp IsHeavy IsOnFriendlyControlPoint + Response PlayerHelpDefendHeavy +} + +Response PlayerMedicHeavy +{ + scene "scenes/Player/Heavy/low/274.vcd" + scene "scenes/Player/Heavy/low/275.vcd" + scene "scenes/Player/Heavy/low/276.vcd" +} +Rule PlayerMedicHeavy +{ + criteria ConceptPlayerMedic IsHeavy + Response PlayerMedicHeavy +} + +Response PlayerAskForBallHeavy +{ +} +Rule PlayerAskForBallHeavy +{ + criteria ConceptPlayerAskForBall IsHeavy + Response PlayerAskForBallHeavy +} + +Response PlayerMoveUpHeavy +{ + scene "scenes/Player/Heavy/low/277.vcd" + scene "scenes/Player/Heavy/low/278.vcd" + scene "scenes/Player/Heavy/low/279.vcd" +} +Rule PlayerMoveUpHeavy +{ + criteria ConceptPlayerMoveUp IsHeavy + Response PlayerMoveUpHeavy +} + +Response PlayerNoHeavy +{ + scene "scenes/Player/Heavy/low/291.vcd" + scene "scenes/Player/Heavy/low/292.vcd" + scene "scenes/Player/Heavy/low/293.vcd" +} +Rule PlayerNoHeavy +{ + criteria ConceptPlayerNo IsHeavy + Response PlayerNoHeavy +} + +Response PlayerThanksHeavy +{ + scene "scenes/Player/Heavy/low/342.vcd" + scene "scenes/Player/Heavy/low/343.vcd" + scene "scenes/Player/Heavy/low/1278.vcd" +} +Rule PlayerThanksHeavy +{ + criteria ConceptPlayerThanks IsHeavy + Response PlayerThanksHeavy +} + +// Custom Assist kill response +// As there is no actual concept for assist kills, this is the second best method. +// Say thanks after you kill more than one person. + +Response KilledPlayerAssistHeavy +{ + scene "scenes/Player/Heavy/low/320.vcd" +} +Rule KilledPlayerAssistHeavy +{ + criteria ConceptPlayerThanks IsHeavy IsARecentKill KilledPlayerDelay HeavyNotAssistSpeech + ApplyContext "HeavyAssistSpeech:1:20" + Response KilledPlayerAssistHeavy +} +// End custom + +Response PlayerYesHeavy +{ + scene "scenes/Player/Heavy/low/350.vcd" + scene "scenes/Player/Heavy/low/351.vcd" + scene "scenes/Player/Heavy/low/352.vcd" +} +Rule PlayerYesHeavy +{ + criteria ConceptPlayerYes IsHeavy + Response PlayerYesHeavy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 2 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerActivateChargeHeavy +{ + scene "scenes/Player/Heavy/low/190.vcd" + scene "scenes/Player/Heavy/low/191.vcd" + scene "scenes/Player/Heavy/low/192.vcd" + scene "scenes/Player/Heavy/low/1261.vcd" +} +Rule PlayerActivateChargeHeavy +{ + criteria ConceptPlayerActivateCharge IsHeavy + Response PlayerActivateChargeHeavy +} + +Response PlayerCloakedSpyHeavy +{ + scene "scenes/Player/Heavy/low/218.vcd" + scene "scenes/Player/Heavy/low/219.vcd" + scene "scenes/Player/Heavy/low/220.vcd" + scene "scenes/Player/Heavy/low/1264.vcd" +} +Rule PlayerCloakedSpyHeavy +{ + criteria ConceptPlayerCloakedSpy IsHeavy + Response PlayerCloakedSpyHeavy +} + +Response PlayerDispenserHereHeavy +{ + scene "scenes/Player/Heavy/low/280.vcd" +} +Rule PlayerDispenserHereHeavy +{ + criteria ConceptPlayerDispenserHere IsHeavy + Response PlayerDispenserHereHeavy +} + +Response PlayerIncomingHeavy +{ + scene "scenes/Player/Heavy/low/252.vcd" + scene "scenes/Player/Heavy/low/253.vcd" + scene "scenes/Player/Heavy/low/254.vcd" +} +Rule PlayerIncomingHeavy +{ + criteria ConceptPlayerIncoming IsHeavy + Response PlayerIncomingHeavy +} + +Response PlayerSentryAheadHeavy +{ + scene "scenes/Player/Heavy/low/308.vcd" + scene "scenes/Player/Heavy/low/309.vcd" +} +Rule PlayerSentryAheadHeavy +{ + criteria ConceptPlayerSentryAhead IsHeavy + Response PlayerSentryAheadHeavy +} + +Response PlayerSentryHereHeavy +{ + scene "scenes/Player/Heavy/low/281.vcd" +} +Rule PlayerSentryHereHeavy +{ + criteria ConceptPlayerSentryHere IsHeavy + Response PlayerSentryHereHeavy +} + +Response PlayerTeleporterHereHeavy +{ + scene "scenes/Player/Heavy/low/282.vcd" +} +Rule PlayerTeleporterHereHeavy +{ + criteria ConceptPlayerTeleporterHere IsHeavy + Response PlayerTeleporterHereHeavy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 3 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerBattleCryHeavy +{ + scene "scenes/Player/Heavy/low/205.vcd" + scene "scenes/Player/Heavy/low/206.vcd" + scene "scenes/Player/Heavy/low/207.vcd" + scene "scenes/Player/Heavy/low/208.vcd" + scene "scenes/Player/Heavy/low/209.vcd" + scene "scenes/Player/Heavy/low/210.vcd" +} +Rule PlayerBattleCryHeavy +{ + criteria ConceptPlayerBattleCry IsHeavy + Response PlayerBattleCryHeavy +} + +// Custom stuff - melee dare +// Look at enemy, then do battle cry voice command while holding a melee weapon. +Response MeleeDareCombatHeavy +{ + scene "scenes/Player/Heavy/low/1975.vcd" + scene "scenes/Player/Heavy/low/1976.vcd" + scene "scenes/Player/Heavy/low/1977.vcd" + scene "scenes/Player/Heavy/low/2087.vcd" + scene "scenes/Player/Heavy/low/2090.vcd" + scene "scenes/Player/Heavy/low/2091.vcd" + scene "scenes/Player/Heavy/low/2092.vcd" + scene "scenes/Player/Heavy/low/2093.vcd" + scene "scenes/Player/Heavy/low/2106.vcd" + scene "scenes/Player/Heavy/low/2107.vcd" + scene "scenes/Player/Heavy/low/2119.vcd" + scene "scenes/Player/Heavy/low/2205.vcd" + scene "scenes/Player/Heavy/low/2258.vcd" +} +Rule MeleeDareCombatHeavy +{ + criteria ConceptPlayerBattleCry IsWeaponMelee IsHeavy IsCrosshairEnemy + ApplyContext "IsDaring:1:5" + Response MeleeDareCombatHeavy +} + +Response PlayerShinyCryHeavy +{ + scene "scenes/Player/Heavy/low/1944.vcd" + scene "scenes/Player/Heavy/low/1940.vcd" + scene "scenes/Player/Heavy/low/1942.vcd" + scene "scenes/Player/Heavy/low/1943.vcd" + scene "scenes/player/heavy/low/2199.vcd" +} +Rule PlayerShinyCryHeavy +{ + criteria ConceptPlayerBattleCry 30PercentChance IsWeaponPrimary IsHeavy WeaponIsNotVanillaPrimary WeaponIsNotTaggedMinigun + Response PlayerShinyCryHeavy +} + +Rule PlayerShinyWindupHeavy +{ + criteria ConceptWindMinigun IsWeaponPrimary IsHeavy WeaponIsNotVanillaPrimary WeaponIsNotTaggedMinigun WeaponIsNotTomislav 5PercentChance HeavyNotShinySpeech HeavyNotKillSpeech + ApplyContext "HeavyShinySpeech:1:300" + Response PlayerShinyCryHeavy +} + +// Custom response battle cry against an Engineer. +Response PlayerTauntCryHeavy +{ + scene "scenes/player/heavy/low/332.vcd" + scene "scenes/player/heavy/low/337.vcd" +} +Rule PlayerTauntCryHeavy +{ + criteria ConceptPlayerBattleCry 75PercentChance IsHeavy IsOnEngineer IsCrosshairEnemy + Response PlayerTauntCryHeavy +} + +// Custom response for taunt against non-Heavies +Response PlayerTauntGunHeavy +{ + scene "scenes/player/heavy/low/329.vcd" + scene "scenes/player/heavy/low/333.vcd" + scene "scenes/player/heavy/low/335.vcd" +} +Rule PlayerTauntGunHeavy +{ + criterion ConceptPlayerBattleCry 75PercentChance IsHeavy IsNotOnHeavy IsCrosshairEnemy NotGunTauntHeavy IsNotWeaponMelee + ApplyContext "GunTauntHeavy:1:10" + Response PlayerTauntGunHeavy +} +//End custom + +Response PlayerCheersHeavy +{ + scene "scenes/Player/Heavy/low/211.vcd" + scene "scenes/Player/Heavy/low/212.vcd" + scene "scenes/Player/Heavy/low/213.vcd" + scene "scenes/Player/Heavy/low/214.vcd" + scene "scenes/Player/Heavy/low/215.vcd" + scene "scenes/Player/Heavy/low/216.vcd" + scene "scenes/Player/Heavy/low/217.vcd" + scene "scenes/Player/Heavy/low/1263.vcd" +} +Rule PlayerCheersHeavy +{ + criteria ConceptPlayerCheers IsHeavy + Response PlayerCheersHeavy +} + +Response PlayerGoodJobHeavy +{ + scene "scenes/Player/Heavy/low/234.vcd" + scene "scenes/Player/Heavy/low/235.vcd" + scene "scenes/Player/Heavy/low/236.vcd" + scene "scenes/Player/Heavy/low/1265.vcd" +} +Rule PlayerGoodJobHeavy +{ + criteria ConceptPlayerGoodJob IsHeavy + Response PlayerGoodJobHeavy +} + +Response PlayerJeersHeavy +{ + scene "scenes/Player/Heavy/low/258.vcd" + scene "scenes/Player/Heavy/low/259.vcd" + scene "scenes/Player/Heavy/low/260.vcd" + scene "scenes/Player/Heavy/low/261.vcd" + scene "scenes/Player/Heavy/low/262.vcd" + scene "scenes/Player/Heavy/low/263.vcd" + scene "scenes/Player/Heavy/low/264.vcd" + scene "scenes/Player/Heavy/low/265.vcd" + scene "scenes/Player/Heavy/low/266.vcd" +} +Rule PlayerJeersHeavy +{ + criteria ConceptPlayerJeers IsHeavy + Response PlayerJeersHeavy +} + +Response PlayerLostPointHeavy +{ + scene "scenes/Player/Heavy/low/1267.vcd" + scene "scenes/Player/Heavy/low/283.vcd" + scene "scenes/Player/Heavy/low/284.vcd" + scene "scenes/Player/Heavy/low/285.vcd" + scene "scenes/Player/Heavy/low/286.vcd" + scene "scenes/Player/Heavy/low/287.vcd" +} +Rule PlayerLostPointHeavy +{ + criteria ConceptPlayerLostPoint IsHeavy + Response PlayerLostPointHeavy +} + +Response PlayerNegativeHeavy +{ + scene "scenes/Player/Heavy/low/1267.vcd" + scene "scenes/Player/Heavy/low/283.vcd" + scene "scenes/Player/Heavy/low/284.vcd" + scene "scenes/Player/Heavy/low/285.vcd" + scene "scenes/Player/Heavy/low/286.vcd" + scene "scenes/Player/Heavy/low/287.vcd" +} +Rule PlayerNegativeHeavy +{ + criteria ConceptPlayerNegative IsHeavy + Response PlayerNegativeHeavy +} + +Response PlayerNiceShotHeavy +{ + scene "scenes/Player/Heavy/low/288.vcd" + scene "scenes/Player/Heavy/low/289.vcd" + scene "scenes/Player/Heavy/low/290.vcd" +} +Rule PlayerNiceShotHeavy +{ + criteria ConceptPlayerNiceShot IsHeavy + Response PlayerNiceShotHeavy +} + +Response PlayerPositiveHeavy +{ + scene "scenes/Player/Heavy/low/303.vcd" + scene "scenes/Player/Heavy/low/304.vcd" + scene "scenes/Player/Heavy/low/305.vcd" + scene "scenes/Player/Heavy/low/306.vcd" + scene "scenes/Player/Heavy/low/307.vcd" +} + +Response PlayerTauntsHeavy +{ + scene "scenes/Player/Heavy/low/1270.vcd" + scene "scenes/Player/Heavy/low/1271.vcd" + scene "scenes/Player/Heavy/low/1274.vcd" + scene "scenes/Player/Heavy/low/1273.vcd" +} +Rule PlayerPositiveHeavy +{ + criteria ConceptPlayerPositive IsHeavy + Response PlayerPositiveHeavy + Response PlayerTauntsHeavy +} +// Modified to be an extension of the 'positive' voice command. + +//-------------------------------------------------------------------------------------------------------------- +// MvM Speech +//-------------------------------------------------------------------------------------------------------------- +Response MvMBombDroppedHeavy +{ + scene "scenes/Player/Heavy/low/4009.vcd" +} +Rule MvMBombDroppedHeavy +{ + criteria ConceptMvMBombDropped 5PercentChance IsMvMDefender IsHeavy + Response MvMBombDroppedHeavy +} + +Response MvMBombCarrierUpgrade1Heavy +{ + scene "scenes/Player/Heavy/low/4005.vcd" +} +Rule MvMBombCarrierUpgrade1Heavy +{ + criteria ConceptMvMBombCarrierUpgrade1 5PercentChance IsMvMDefender IsHeavy + Response MvMBombCarrierUpgrade1Heavy +} + +Response MvMBombCarrierUpgrade2Heavy +{ + scene "scenes/Player/Heavy/low/4006.vcd" +} +Rule MvMBombCarrierUpgrade2Heavy +{ + criteria ConceptMvMBombCarrierUpgrade2 5PercentChance IsMvMDefender IsHeavy + Response MvMBombCarrierUpgrade2Heavy +} + +Response MvMDefenderDiedEngineerHeavy +{ + scene "scenes/Player/Heavy/low/3962.vcd" +} +Rule MvMDefenderDiedEngineerHeavy +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimEngineer IsHeavy + Response MvMDefenderDiedEngineerHeavy +} + +Response MvMDefenderDiedSpyHeavy +{ + scene "scenes/Player/Heavy/low/3963.vcd" +} +Rule MvMDefenderDiedSpyHeavy +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimSpy IsHeavy + Response MvMDefenderDiedSpyHeavy +} + +Response MvMDefenderDiedScoutHeavy +{ + scene "scenes/Player/Heavy/low/3964.vcd" +} +Rule MvMDefenderDiedScoutHeavy +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimScout IsHeavy + Response MvMDefenderDiedScoutHeavy +} + +Response MvMDefenderDiedHeavyHeavy +{ + scene "scenes/Player/Heavy/low/3965.vcd" +} +Rule MvMDefenderDiedHeavyHeavy +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimHeavy IsHeavy + Response MvMDefenderDiedHeavyHeavy +} + +Response MvMDefenderDiedDemomanHeavy +{ + scene "scenes/Player/Heavy/low/3966.vcd" +} +Rule MvMDefenderDiedDemomanHeavy +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimDemoman IsHeavy + Response MvMDefenderDiedDemomanHeavy +} + +Response MvMDefenderDiedSniperHeavy +{ + scene "scenes/Player/Heavy/low/3967.vcd" +} +Rule MvMDefenderDiedSniperHeavy +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimSniper IsHeavy + Response MvMDefenderDiedSniperHeavy +} + +Response MvMDefenderDiedPyroHeavy +{ + scene "scenes/Player/Heavy/low/3968.vcd" +} +Rule MvMDefenderDiedPyroHeavy +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimPyro IsHeavy + Response MvMDefenderDiedPyroHeavy +} + +Response MvMDefenderDiedMedicHeavy +{ + scene "scenes/Player/Heavy/low/3969.vcd" +} +Rule MvMDefenderDiedMedicHeavy +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimMedic IsHeavy + Response MvMDefenderDiedMedicHeavy +} + +Response MvMFirstBombPickupHeavy +{ + scene "scenes/Player/Heavy/low/4004.vcd" +} +Rule MvMFirstBombPickupHeavy +{ + criteria ConceptMvMFirstBombPickup 5PercentChance IsMvMDefender IsHeavy + Response MvMFirstBombPickupHeavy +} + +Response MvMBombPickupHeavy +{ + scene "scenes/Player/Heavy/low/4003.vcd" + scene "scenes/Player/Heavy/low/4004.vcd" +} +Rule MvMBombPickupHeavy +{ + criteria ConceptMvMBombPickup 5PercentChance IsMvMDefender IsHeavy + Response MvMBombPickupHeavy +} + +Response MvMSniperCalloutHeavy +{ + scene "scenes/Player/Heavy/low/3972.vcd" +} +Rule MvMSniperCalloutHeavy +{ + criteria ConceptMvMSniperCallout 50PercentChance IsMvMDefender IsHeavy + Response MvMSniperCalloutHeavy +} + +Response MvMSentryBusterHeavy +{ + scene "scenes/Player/Heavy/low/4018.vcd" +} +Rule MvMSentryBusterHeavy +{ + criteria ConceptMvMSentryBuster 50PercentChance IsMvMDefender IsHeavy + Response MvMSentryBusterHeavy +} + +Response MvMSentryBusterDownHeavy +{ + scene "scenes/Player/Heavy/low/4019.vcd" +} +Rule MvMSentryBusterDownHeavy +{ + criteria ConceptMvMSentryBusterDown 20PercentChance IsMvMDefender IsHeavy + Response MvMSentryBusterDownHeavy +} + +Response MvMLastManStandingHeavy +{ + scene "scenes/Player/Heavy/low/3970.vcd" + scene "scenes/Player/Heavy/low/3971.vcd" +} +Rule MvMLastManStandingHeavy +{ + criteria ConceptMvMLastManStanding 20PercentChance IsMvMDefender IsHeavy + Response MvMLastManStandingHeavy +} + +Response MvMEncourageMoneyHeavy +{ + scene "scenes/Player/Heavy/low/3988.vcd" + scene "scenes/Player/Heavy/low/3989.vcd" + scene "scenes/Player/Heavy/low/3990.vcd" + scene "scenes/Player/Heavy/low/3991.vcd" +} +Rule MvMEncourageMoneyHeavy +{ + criteria ConceptMvMEncourageMoney 50PercentChance IsMvMDefender IsHeavy + Response MvMEncourageMoneyHeavy +} + +Response MvMEncourageUpgradeHeavy +{ + scene "scenes/Player/Heavy/low/4000.vcd" + scene "scenes/Player/Heavy/low/4001.vcd" + scene "scenes/Player/Heavy/low/4002.vcd" +} +Rule MvMEncourageUpgradeHeavy +{ + criteria ConceptMvMEncourageUpgrade 50PercentChance IsMvMDefender IsHeavy + Response MvMEncourageUpgradeHeavy +} + +Response MvMUpgradeCompleteHeavy +{ + scene "scenes/Player/Heavy/low/3992.vcd" + scene "scenes/Player/Heavy/low/3993.vcd" + scene "scenes/Player/Heavy/low/3994.vcd" + scene "scenes/Player/Heavy/low/3995.vcd" + scene "scenes/Player/Heavy/low/3996.vcd" + scene "scenes/Player/Heavy/low/3997.vcd" + +} +Rule MvMUpgradeCompleteHeavy +{ + criteria ConceptMvMUpgradeComplete 5PercentChance IsMvMDefender IsHeavy + Response MvMUpgradeCompleteHeavy +} + +Response MvMGiantCalloutHeavy +{ + scene "scenes/Player/Heavy/low/4020.vcd" +} +Rule MvMGiantCalloutHeavy +{ + criteria ConceptMvMGiantCallout 20PercentChance IsMvMDefender IsHeavy + Response MvMGiantCalloutHeavy +} + +Response MvMGiantHasBombHeavy +{ + scene "scenes/Player/Heavy/low/4024.vcd" +} +Rule MvMGiantHasBombHeavy +{ + criteria ConceptMvMGiantHasBomb 20PercentChance IsMvMDefender IsHeavy + Response MvMGiantHasBombHeavy +} + +Response MvMSappedRobotHeavy +{ + scene "scenes/Player/Heavy/low/3975.vcd" + scene "scenes/Player/Heavy/low/3976.vcd" +} +Rule MvMSappedRobotHeavy +{ + criteria ConceptMvMSappedRobot 50PercentChance IsMvMDefender IsHeavy + Response MvMSappedRobotHeavy +} + +Response MvMCloseCallHeavy +{ + scene "scenes/Player/Heavy/low/4007.vcd" + scene "scenes/Player/Heavy/low/4008.vcd" +} +Rule MvMCloseCallHeavy +{ + criteria ConceptMvMCloseCall 50PercentChance IsMvMDefender IsHeavy + Response MvMCloseCallHeavy +} + +Response MvMTankCalloutHeavy +{ + scene "scenes/Player/Heavy/low/4011.vcd" +} +Rule MvMTankCalloutHeavy +{ + criteria ConceptMvMTankCallout 50PercentChance IsMvMDefender IsHeavy + Response MvMTankCalloutHeavy +} + +Response MvMTankDeadHeavy +{ + scene "scenes/Player/Heavy/low/4017.vcd" +} +Rule MvMTankDeadHeavy +{ + criteria ConceptMvMTankDead 50PercentChance IsMvMDefender IsHeavy + Response MvMTankDeadHeavy +} + +Response MvMTankDeployingHeavy +{ + scene "scenes/Player/Heavy/low/4016.vcd" +} +Rule MvMTankDeployingHeavy +{ + criteria ConceptMvMTankDeploying 50PercentChance IsMvMDefender IsHeavy + Response MvMTankDeployingHeavy +} + +Response MvMAttackTheTankHeavy +{ + scene "scenes/Player/Heavy/low/4012.vcd" + scene "scenes/Player/Heavy/low/4013.vcd" +} +Rule MvMAttackTheTankHeavy +{ + criteria ConceptMvMAttackTheTank 50PercentChance IsMvMDefender IsHeavy + Response MvMAttackTheTankHeavy +} + +Response MvMTauntHeavy +{ + scene "scenes/Player/Heavy/low/3977.vcd" + scene "scenes/Player/Heavy/low/3978.vcd" +} +Rule MvMTauntHeavy +{ + criteria ConceptMvMTaunt 50PercentChance IsMvMDefender IsHeavy + Response MvMTauntHeavy +} + +Response MvMWaveWinHeavy +{ + scene "scenes/Player/Heavy/low/3949.vcd" + scene "scenes/Player/Heavy/low/3950.vcd" + scene "scenes/Player/Heavy/low/3951.vcd" + scene "scenes/Player/Heavy/low/3952.vcd" + scene "scenes/Player/Heavy/low/3953.vcd" +} +Rule MvMWaveWinHeavy +{ + criteria ConceptMvMWaveWin 50PercentChance IsMvMDefender IsHeavy + Response MvMWaveWinHeavy +} + +Response MvMGiantKilledHeavy +{ + scene "scenes/Player/Heavy/low/4023.vcd" +} +Rule MvMGiantKilledHeavy +{ + criteria ConceptMvMGiantKilled 50PercentChance IsMvMDefender IsHeavy + Response MvMGiantKilledHeavy +} + +Response MvMGiantKilledTeammateHeavy +{ + scene "scenes/Player/Heavy/low/4022.vcd" +} +Rule MvMGiantKilledTeammateHeavy +{ + criteria ConceptMvMGiantKilledTeammate 50PercentChance IsMvMDefender IsHeavy + Response MvMGiantKilledTeammateHeavy +} + +Response MvMDeployRageHeavy +{ + scene "scenes/Player/Heavy/low/3983.vcd" + scene "scenes/Player/Heavy/low/3985.vcd" + scene "scenes/Player/Heavy/low/3986.vcd" + scene "scenes/Player/Heavy/low/3987.vcd" +} +Rule MvMDeployRageHeavy +{ + criteria ConceptMvMDeployRage 50PercentChance IsMvMDefender IsHeavy + Response MvMDeployRageHeavy +} + +Response RocketDestroyedHeavy +{ + scene "scenes/Player/Heavy/low/3979.vcd" + scene "scenes/Player/Heavy/low/3980.vcd" + scene "scenes/Player/Heavy/low/3982.vcd" +} +Rule RocketDestroyedHeavy +{ + criteria ConceptRocketDestroyed 50PercentChance IsHeavy + Response RocketDestroyedHeavy +} + +//-------------------------------------------------------------------------------------------------------------- +// Begin Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- +Response PlayerFirstRoundStartCompHeavy +{ + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_comp_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_comp_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_rare_01.vcd" predelay "1.0, 5.0" +} +Rule PlayerFirstRoundStartCompHeavy +{ + criteria ConceptPlayerRoundStartComp IsHeavy IsFirstRound IsNotComp6v6 40PercentChance + Response PlayerFirstRoundStartCompHeavy +} + +Response PlayerFirstRoundStartComp6sHeavy +{ + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_comp_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_comp_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_6s_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_6s_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamefirst_6s_03.vcd" predelay "1.0, 5.0" +} +Rule PlayerFirstRoundStartComp6sHeavy +{ + criteria ConceptPlayerRoundStartComp IsHeavy IsFirstRound IsComp6v6 40PercentChance + Response PlayerFirstRoundStartComp6sHeavy +} + +Response PlayerWonPrevRoundCompHeavy +{ + scene "scenes/Player/Heavy/low/cm_heavy_pregamewonlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamewonlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamewonlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamewonlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamewonlast_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamewonlast_06.vcd" predelay "1.0, 5.0" +} +Rule PlayerWonPrevRoundCompHeavy +{ + criteria ConceptPlayerRoundStartComp IsHeavy IsNotFirstRound PlayerWonPreviousRound 40PercentChance + Response PlayerWonPrevRoundCompHeavy +} + +Response PlayerLostPrevRoundCompHeavy +{ + scene "scenes/Player/Heavy/low/cm_heavy_pregamelostlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamelostlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamelostlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamelostlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamelostlast_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamelostlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamelostlast_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamelostlast_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamelostlast_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregamelostlast_10.vcd" predelay "1.0, 5.0" +} +Rule PlayerLostPrevRoundCompHeavy +{ + criteria ConceptPlayerRoundStartComp IsHeavy IsNotFirstRound PlayerLostPreviousRound PreviousRoundWasNotTie 40PercentChance + Response PlayerLostPrevRoundCompHeavy +} + +Response PlayerTiedPrevRoundCompHeavy +{ + scene "scenes/Player/Heavy/low/cm_heavy_pregametie_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregametie_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregametie_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_pregametie_04.vcd" predelay "1.0, 5.0" +} +Rule PlayerTiedPrevRoundCompHeavy +{ + criteria ConceptPlayerRoundStartComp IsHeavy IsNotFirstRound PreviousRoundWasTie 40PercentChance + Response PlayerTiedPrevRoundCompHeavy +} + +Response PlayerGameWinCompHeavy +{ + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_comp_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_comp_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_comp_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_rare_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_rare_02.vcd" predelay "2.0, 5.0" +} +Rule PlayerGameWinCompHeavy +{ + criteria ConceptPlayerGameOverComp PlayerOnWinningTeam IsNotComp6v6 IsHeavy 40PercentChance + Response PlayerGameWinCompHeavy +} + +Response PlayerGameWinComp6sHeavy +{ + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_comp_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_comp_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_comp_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_rare_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_rare_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Heavy/low/cm_heavy_gamewon_6s_01.vcd" predelay "2.0, 5.0" +} +Rule PlayerGameWinComp6sHeavy +{ + criteria ConceptPlayerGameOverComp PlayerOnWinningTeam IsComp6v6 IsHeavy 40PercentChance + Response PlayerGameWinComp6sHeavy +} + +Response PlayerMatchWinCompHeavy +{ + scene "scenes/Player/Heavy/low/cm_heavy_matchwon_01.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Heavy/low/cm_heavy_matchwon_02.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Heavy/low/cm_heavy_matchwon_03.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Heavy/low/cm_heavy_matchwon_04.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Heavy/low/cm_heavy_matchwon_05.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Heavy/low/cm_heavy_matchwon_06.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Heavy/low/cm_heavy_matchwon_07.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Heavy/low/cm_heavy_matchwon_08.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Heavy/low/cm_heavy_matchwon_09.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Heavy/low/cm_heavy_matchwon_10.vcd" predelay "1.0, 2.0" +} +Rule PlayerMatchWinCompHeavy +{ + criteria ConceptPlayerMatchOverComp PlayerOnWinningTeam IsHeavy 40PercentChance + Response PlayerMatchWinCompHeavy +} +//-------------------------------------------------------------------------------------------------------------- +// End Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/game/tc2/scripts/talker/medic.txt b/game/tc2/scripts/talker/medic.txt new file mode 100644 index 00000000000..1dbb478b87d --- /dev/null +++ b/game/tc2/scripts/talker/medic.txt @@ -0,0 +1,1424 @@ +//-------------------------------------------------------------------------------------------------------------- +// Medic Response Rule File +//-------------------------------------------------------------------------------------------------------------- + +Criterion "MedicIsKillSpeechObject" "MedicKillSpeechObject" "1" "required" weight 0 +Criterion "MedicIsNotStillonFire" "MedicOnFire" "!=1" "required" weight 0 +Criterion "MedicIsStillonFire" "MedicOnFire" "1" "required" weight 0 +Criterion "MedicNotInvulnerableSpeech" "MedicInvulnerableSpeech" "!=1" "required" weight 0 +Criterion "MedicNotKillSpeech" "MedicKillSpeech" "!=1" "required" weight 0 +Criterion "MedicNotKillSpeechMelee" "MedicKillSpeechMelee" "!=1" "required" weight 0 +Criterion "MedicNotSaidHealThanks" "MedicSaidHealThanks" "!=1" "required" +Criterion "IsHelpCapMedic" "MedicHelpCap" "1" "required" weight 0 +// Custom stuff +Criterion "MedicNotAssistSpeech" "MedicAssistSpeech" "!=1" "required" weight 0 + + +Response MedicChargeReady +{ + scene "scenes/Player/Medic/low/528.vcd" + scene "scenes/Player/Medic/low/529.vcd" + scene "scenes/Player/Medic/low/530.vcd" +} +Rule MedicChargeReady +{ + criteria ConceptMedicChargeReady IsMedic + Response MedicChargeReady +} + +Response PlayerCloakedSpyDemomanMedic +{ + scene "scenes/Player/Medic/low/559.vcd" +} +Rule PlayerCloakedSpyDemomanMedic +{ + criteria ConceptPlayerCloakedSpy IsMedic IsOnDemoman + Response PlayerCloakedSpyDemomanMedic +} + +Response PlayerCloakedSpyEngineerMedic +{ + scene "scenes/Player/Medic/low/562.vcd" +} +Rule PlayerCloakedSpyEngineerMedic +{ + criteria ConceptPlayerCloakedSpy IsMedic IsOnEngineer + Response PlayerCloakedSpyEngineerMedic +} + +Response PlayerCloakedSpyHeavyMedic +{ + scene "scenes/Player/Medic/low/557.vcd" +} +Rule PlayerCloakedSpyHeavyMedic +{ + criteria ConceptPlayerCloakedSpy IsMedic IsOnHeavy + Response PlayerCloakedSpyHeavyMedic +} + +Response PlayerCloakedSpyMedicMedic +{ + scene "scenes/Player/Medic/low/561.vcd" +} +Rule PlayerCloakedSpyMedicMedic +{ + criteria ConceptPlayerCloakedSpy IsMedic IsOnMedic + Response PlayerCloakedSpyMedicMedic +} + +Response PlayerCloakedSpyPyroMedic +{ + scene "scenes/Player/Medic/low/558.vcd" +} +Rule PlayerCloakedSpyPyroMedic +{ + criteria ConceptPlayerCloakedSpy IsMedic IsOnPyro + Response PlayerCloakedSpyPyroMedic +} + +Response PlayerCloakedSpyScoutMedic +{ + scene "scenes/Player/Medic/low/555.vcd" +} +Rule PlayerCloakedSpyScoutMedic +{ + criteria ConceptPlayerCloakedSpy IsMedic IsOnScout + Response PlayerCloakedSpyScoutMedic +} + +Response PlayerCloakedSpySniperMedic +{ + scene "scenes/Player/Medic/low/563.vcd" +} +Rule PlayerCloakedSpySniperMedic +{ + criteria ConceptPlayerCloakedSpy IsMedic IsOnSniper + Response PlayerCloakedSpySniperMedic +} + +Response PlayerCloakedSpySoldierMedic +{ + scene "scenes/Player/Medic/low/556.vcd" +} +Rule PlayerCloakedSpySoldierMedic +{ + criteria ConceptPlayerCloakedSpy IsMedic IsOnSoldier + Response PlayerCloakedSpySoldierMedic +} + +Response PlayerCloakedSpySpyMedic +{ + scene "scenes/Player/Medic/low/560.vcd" +} +Rule PlayerCloakedSpySpyMedic +{ + criteria ConceptPlayerCloakedSpy IsMedic IsOnSpy + Response PlayerCloakedSpySpyMedic +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech +//-------------------------------------------------------------------------------------------------------------- +Response HealThanksMedic +{ + scene "scenes/Player/Medic/low/683.vcd" + scene "scenes/Player/Medic/low/684.vcd" +} +Rule HealThanksMedic +{ + criteria ConceptMedicChargeStopped IsMedic SuperHighHealthContext MedicNotSaidHealThanks 50PercentChance + ApplyContext "MedicSaidHealThanks:1:20" + Response HealThanksMedic +} + +Response PlayerRoundStartMedic +{ + scene "scenes/Player/Medic/low/537.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Medic/low/539.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Medic/low/540.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Medic/low/541.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Medic/low/542.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Medic/low/543.vcd" predelay "1.0, 5.0" +} +Rule PlayerRoundStartMedic +{ + criteria ConceptPlayerRoundStart IsMedic + Response PlayerRoundStartMedic +} + +Response PlayerCappedIntelligenceMedic +{ + scene "scenes/Player/Medic/low/525.vcd" + scene "scenes/Player/Medic/low/526.vcd" + scene "scenes/Player/Medic/low/527.vcd" +} +Rule PlayerCappedIntelligenceMedic +{ + criteria ConceptPlayerCapturedIntelligence IsMedic + Response PlayerCappedIntelligenceMedic +} + +Response PlayerCapturedPointMedic +{ + scene "scenes/Player/Medic/low/522.vcd" + scene "scenes/Player/Medic/low/523.vcd" + scene "scenes/Player/Medic/low/524.vcd" +} +Rule PlayerCapturedPointMedic +{ + criteria ConceptPlayerCapturedPoint IsMedic + Response PlayerCapturedPointMedic +} + +Response PlayerSuddenDeathMedic +{ + scene "scenes/Player/Medic/low/592.vcd" + scene "scenes/Player/Medic/low/593.vcd" + scene "scenes/Player/Medic/low/594.vcd" + scene "scenes/Player/Medic/low/595.vcd" + scene "scenes/Player/Medic/low/596.vcd" + scene "scenes/Player/Medic/low/597.vcd" + scene "scenes/Player/Medic/low/598.vcd" + scene "scenes/Player/Medic/low/599.vcd" + scene "scenes/Player/Medic/low/600.vcd" + scene "scenes/Player/Medic/low/601.vcd" + scene "scenes/Player/Medic/low/603.vcd" + scene "scenes/Player/Medic/low/602.vcd" +} +Rule PlayerSuddenDeathMedic +{ + criteria ConceptPlayerSuddenDeathStart IsMedic + Response PlayerSuddenDeathMedic +} + +Response PlayerStalemateMedic +{ + scene "scenes/Player/Medic/low/531.vcd" + scene "scenes/Player/Medic/low/532.vcd" + scene "scenes/Player/Medic/low/533.vcd" + scene "scenes/Player/Medic/low/1222.vcd" + scene "scenes/Player/Medic/low/1223.vcd" + scene "scenes/Player/Medic/low/1224.vcd" + scene "scenes/Player/Medic/low/1225.vcd" +} +Rule PlayerStalemateMedic +{ + criteria ConceptPlayerStalemate IsMedic + Response PlayerStalemateMedic +} + +Response PlayerTeleporterThanksMedic +{ + scene "scenes/Player/Medic/low/688.vcd" + scene "scenes/Player/Medic/low/686.vcd" + scene "scenes/Player/Medic/low/687.vcd" +} +Rule PlayerTeleporterThanksMedic +{ + criteria ConceptTeleported IsNotEngineer IsMedic 30PercentChance + Response PlayerTeleporterThanksMedic +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Combat +//-------------------------------------------------------------------------------------------------------------- +Response DefendOnThePointMedic +{ + scene "scenes/Player/Medic/low/659.vcd" + scene "scenes/Player/Medic/low/660.vcd" + scene "scenes/Player/Medic/low/1237.vcd" + scene "scenes/Player/Medic/low/1238.vcd" + scene "scenes/Player/Medic/low/1239.vcd" +} +Rule DefendOnThePointMedic +{ + criteria ConceptFireWeapon IsMedic IsOnFriendlyControlPoint NotDefendOnThePointSpeech + ApplyContext "DefendOnThePointSpeech:1:30" + applycontexttoworld + Response DefendOnThePointMedic +} + +Response InvulnerableSpeechMedic +{ + scene "scenes/Player/Medic/low/648.vcd" + scene "scenes/Player/Medic/low/649.vcd" + scene "scenes/Player/Medic/low/650.vcd" +} +Rule InvulnerableSpeechMedic +{ + criteria ConceptMedicChargeDeployed IsMedic IsInvulnerable MedicNotInvulnerableSpeech + ApplyContext "MedicInvulnerableSpeech:1:30" + Response InvulnerableSpeechMedic +} + +Response MedicJarateHit +{ + scene "scenes/Player/Medic/low/622.vcd" + scene "scenes/Player/Medic/low/623.vcd" + scene "scenes/Player/Medic/low/1223.vcd" + scene "scenes/Player/Medic/low/1224.vcd" + scene "scenes/Player/Medic/low/1225.vcd" +} +Rule MedicJarateHit +{ + criteria ConceptJarateHit IsMedic 50PercentChance + Response MedicJarateHit +} + +// Custom stuff +Response InvulnerableSpeechCombatMedic +{ + scene "scenes/Player/Medic/low/646.vcd" + scene "scenes/Player/Medic/low/647.vcd" + scene "scenes/Player/Medic/low/653.vcd" +} +Rule InvulnerableSpeechCombatMedic +{ + criteria ConceptFireWeapon IsMedic IsInvulnerable WeaponIsNotMediGun MedicNotInvulnerableSpeech + ApplyContext "MedicInvulnerableSpeech:1:30" + Response InvulnerableSpeechCombatMedic +} + +Response KritzSpeechMedic +{ + scene "scenes/Player/Medic/low/664.vcd" + scene "scenes/Player/Medic/low/676.vcd" +} +Rule KritzSpeechMedic +{ + criteria ConceptMedicChargeDeployed IsMedic WeaponIsNotVanillaSecondary WeaponIsNotTaggedMedigun MedicNotInvulnerableSpeech + ApplyContext "MedicInvulnerableSpeech:1:30" + Response InvulnerableSpeechMedic + Response KritzSpeechMedic +} + +Response KilledPlayerAssistAutoMedic +{ + scene "scenes/Player/Medic/low/657.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/658.vcd" predelay "2.5" +} +Rule KilledPlayerAssistAutoMedic +{ + criteria ConceptKilledPlayer IsMedic IsBeingHealed IsARecentKill KilledPlayerDelay 20PercentChance MedicNotAssistSpeech + ApplyContext "MedicAssistSpeech:1:20" + Response KilledPlayerAssistAutoMedic +} + +// End custom + +// Modified so that Medic says pretty much any of his killstreak or domination lines when he gets a kill +// Medic will rarely get kills let alone dominations himself so this is fine + +Response KilledPlayerManyMedic +{ + scene "scenes/Player/Medic/low/651.vcd" + scene "scenes/Player/Medic/low/663.vcd" +} +Rule KilledPlayerManyMedic +{ + criteria ConceptKilledPlayer IsManyRecentKills 30PercentChance KilledPlayerDelay MedicNotKillSpeech IsMedic + ApplyContext "MedicKillSpeech:1:10" + Response KilledPlayerManyMedic +} +Response KilledPlayerVeryManyMedic +{ + scene "scenes/Player/Medic/low/646.vcd" + scene "scenes/Player/Medic/low/655.vcd" + scene "scenes/Player/Medic/low/656.vcd" + scene "scenes/Player/Medic/low/652.vcd" +} +Rule KilledPlayerVeryManyMedic +{ + criteria ConceptKilledPlayer IsVeryManyRecentKills 50PercentChance KilledPlayerDelay MedicNotKillSpeech IsMedic + ApplyContext "MedicKillSpeech:1:10" + Response KilledPlayerVeryManyMedic +} + +Response PlayerKilledDominatingMedic +{ + scene "scenes/Player/Medic/low/1227.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/1232.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/605.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/606.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/1229.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/607.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/608.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/1230.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/679.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/1240.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingMedic +{ + criteria ConceptKilledPlayer IsMedic IsDominated + ApplyContext "MedicKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingMedic +} + + +Response KilledPlayerMedic +{ + scene "scenes/Player/Medic/low/645.vcd" +} +Rule KilledPlayerMedic +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance MedicNotKillSpeech MedicNotKillSpeechMelee IsMedic + ApplyContext "MedicKillSpeechMelee:1:10" + Response InvulnerableSpeechCombatMedic + Response KilledPlayerMedic + Response KilledPlayerManyMedic + Response KilledPlayerVeryManyMedic + Response PlayerKilledDominatingMedic +} + +// Done + +Response PlayerKilledCapperMedic +{ + scene "scenes/Player/Medic/low/1222.vcd" + scene "scenes/Player/Medic/low/545.vcd" + scene "scenes/Player/Medic/low/551.vcd" + scene "scenes/Player/Medic/low/552.vcd" + scene "scenes/Player/Medic/low/641.vcd" + scene "scenes/Player/Medic/low/674.vcd" +} +Rule PlayerKilledCapperMedic +{ + criteria ConceptCapBlocked IsMedic + ApplyContext "MedicKillSpeech:1:10" + Response PlayerKilledCapperMedic +} + +Response PlayerKilledForRevengeMedic +{ + scene "scenes/Player/Medic/low/569.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/620.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/1233.vcd" predelay "2.5" + scene "scenes/Player/Medic/low/1234.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeMedic +{ + criteria ConceptKilledPlayer IsMedic IsRevenge + ApplyContext "MedicKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeMedic +} + +Response PlayerKilledObjectMedic +{ + scene "scenes/Player/Medic/low/653.vcd" + scene "scenes/Player/Medic/low/654.vcd" +} +Rule PlayerKilledObjectMedic +{ + criteria ConceptKilledObject IsMedic 30PercentChance IsARecentKill + ApplyContext "MedicKillSpeechObject:1:30" + Response PlayerKilledObjectMedic +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Pain +//-------------------------------------------------------------------------------------------------------------- +Response PlayerAttackerPainMedic +{ + scene "scenes/Player/Medic/low/633.vcd" + scene "scenes/Player/Medic/low/634.vcd" + scene "scenes/Player/Medic/low/635.vcd" + scene "scenes/Player/Medic/low/1243.vcd" +} +Rule PlayerAttackerPainMedic +{ + criteria ConceptAttackerPain IsMedic IsNotDominating + Response PlayerAttackerPainMedic +} + +Response PlayerOnFireMedic +{ + scene "scenes/Player/Medic/low/534.vcd" + scene "scenes/Player/Medic/low/535.vcd" + scene "scenes/Player/Medic/low/536.vcd" +} +Rule PlayerOnFireMedic +{ + criteria ConceptFire IsMedic MedicIsNotStillonFire IsNotDominating + ApplyContext "MedicOnFire:1:7" + Response PlayerOnFireMedic +} + +Response PlayerOnFireRareMedic +{ + scene "scenes/Player/Medic/low/1401.vcd" + scene "scenes/Player/Medic/low/1402.vcd" +} +Rule PlayerOnFireRareMedic +{ + criteria ConceptFire IsMedic 10PercentChance MedicIsNotStillonFire IsNotDominating + ApplyContext "MedicOnFire:1:7" + Response PlayerOnFireRareMedic +} + +Response PlayerPainMedic +{ + scene "scenes/Player/Medic/low/636.vcd" + scene "scenes/Player/Medic/low/637.vcd" + scene "scenes/Player/Medic/low/638.vcd" + scene "scenes/Player/Medic/low/1244.vcd" + scene "scenes/Player/Medic/low/1245.vcd" + scene "scenes/Player/Medic/low/1246.vcd" + scene "scenes/Player/Medic/low/1247.vcd" + scene "scenes/Player/Medic/low/1248.vcd" +} +Rule PlayerPainMedic +{ + criteria ConceptPain IsMedic IsNotDominating + Response PlayerPainMedic +} + +Response PlayerStillOnFireMedic +{ + scene "scenes/Player/Medic/low/1924.vcd" +} +Rule PlayerStillOnFireMedic +{ + criteria ConceptFire IsMedic MedicIsStillonFire IsNotDominating + ApplyContext "MedicOnFire:1:7" + Response PlayerStillOnFireMedic +} + + +//-------------------------------------------------------------------------------------------------------------- +// Duel Speech +//-------------------------------------------------------------------------------------------------------------- +Response AcceptedDuelMedic +{ + scene "scenes/Player/Medic/low/541.vcd" + scene "scenes/Player/Medic/low/640.vcd" + scene "scenes/Player/Medic/low/689.vcd" + scene "scenes/Player/Medic/low/690.vcd" +} +Rule AcceptedDuelMedic +{ + criteria ConceptIAcceptDuel IsMedic + Response AcceptedDuelMedic +} + +Response MeleeDareMedic +{ + scene "scenes/Player/Medic/low/524.vcd" + scene "scenes/Player/Medic/low/597.vcd" + scene "scenes/Player/Medic/low/672.vcd" + scene "scenes/Player/Medic/low/677.vcd" +} +Rule MeleeDareMedic +{ + criteria ConceptRequestDuel IsMedic + Response MeleeDareMedic +} + +Response RejectedDuelMedic +{ + scene "scenes/Player/Medic/low/531.vcd" + scene "scenes/Player/Medic/low/1222.vcd" + scene "scenes/Player/Medic/low/1225.vcd" + scene "scenes/Player/Medic/low/596.vcd" + scene "scenes/Player/Medic/low/678.vcd" +} +Rule RejectedDuelMedic +{ + criteria ConceptDuelRejected IsMedic + Response RejectedDuelMedic +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 1 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerGoMedic +{ + scene "scenes/Player/Medic/low/565.vcd" + scene "scenes/Player/Medic/low/566.vcd" + scene "scenes/Player/Medic/low/567.vcd" + scene "scenes/Player/Medic/low/1226.vcd" + scene "scenes/Player/Medic/low/1596.vcd" // this doesnt exist +} +Rule PlayerGoMedic +{ + criteria ConceptPlayerGo IsMedic + Response PlayerGoMedic +} + +Response PlayerHeadLeftMedic +{ + scene "scenes/Player/Medic/low/571.vcd" + scene "scenes/Player/Medic/low/572.vcd" + scene "scenes/Player/Medic/low/573.vcd" +} +Rule PlayerHeadLeftMedic +{ + criteria ConceptPlayerLeft IsMedic + Response PlayerHeadLeftMedic +} + +Response PlayerHeadRightMedic +{ + scene "scenes/Player/Medic/low/574.vcd" + scene "scenes/Player/Medic/low/575.vcd" + scene "scenes/Player/Medic/low/576.vcd" +} +Rule PlayerHeadRightMedic +{ + criteria ConceptPlayerRight IsMedic + Response PlayerHeadRightMedic +} + +Response PlayerHelpMedic +{ + scene "scenes/Player/Medic/low/577.vcd" + scene "scenes/Player/Medic/low/578.vcd" + scene "scenes/Player/Medic/low/579.vcd" +} +Rule PlayerHelpMedic +{ + criteria ConceptPlayerHelp IsMedic + Response PlayerHelpMedic +} + +Response PlayerHelpCaptureMedic +{ + scene "scenes/Player/Medic/low/580.vcd" + scene "scenes/Player/Medic/low/581.vcd" +} +Rule PlayerHelpCaptureMedic +{ + criteria ConceptPlayerHelp IsMedic IsOnCappableControlPoint + ApplyContext "MedicHelpCap:1:10" + Response PlayerHelpCaptureMedic +} + +Response PlayerHelpCapture2Medic +{ + scene "scenes/Player/Medic/low/659.vcd" + scene "scenes/Player/Medic/low/660.vcd" + scene "scenes/Player/Medic/low/1237.vcd" + scene "scenes/Player/Medic/low/1238.vcd" + scene "scenes/Player/Medic/low/1239.vcd" +} +Rule PlayerHelpCapture2Medic +{ + criteria ConceptPlayerHelp IsMedic IsOnCappableControlPoint IsHelpCapMedic + Response PlayerHelpCapture2Medic +} + +Response PlayerHelpDefendMedic +{ + scene "scenes/Player/Medic/low/583.vcd" + scene "scenes/Player/Medic/low/584.vcd" + scene "scenes/Player/Medic/low/585.vcd" +} +Rule PlayerHelpDefendMedic +{ + criteria ConceptPlayerHelp IsMedic IsOnFriendlyControlPoint + Response PlayerHelpDefendMedic +} + +Response PlayerMedicMedic +{ + scene "scenes/Player/Medic/low/611.vcd" + scene "scenes/Player/Medic/low/612.vcd" + scene "scenes/Player/Medic/low/613.vcd" +} +Rule PlayerMedicMedic +{ + criteria ConceptPlayerMedic IsMedic + Response PlayerMedicMedic +} + +Response PlayerAskForBallMedic +{ +} +Rule PlayerAskForBallMedic +{ + criteria ConceptPlayerAskForBall IsMedic + Response PlayerAskForBallMedic +} + +Response PlayerMoveUpMedic +{ + scene "scenes/Player/Medic/low/614.vcd" + scene "scenes/Player/Medic/low/615.vcd" +} +Rule PlayerMoveUpMedic +{ + criteria ConceptPlayerMoveUp IsMedic + Response PlayerMoveUpMedic +} + +Response PlayerNoMedic +{ + scene "scenes/Player/Medic/low/627.vcd" + scene "scenes/Player/Medic/low/628.vcd" + scene "scenes/Player/Medic/low/629.vcd" +} +Rule PlayerNoMedic +{ + criteria ConceptPlayerNo IsMedic + Response PlayerNoMedic +} + +Response PlayerThanksMedic +{ + scene "scenes/Player/Medic/low/681.vcd" + scene "scenes/Player/Medic/low/682.vcd" +} +Rule PlayerThanksMedic +{ + criteria ConceptPlayerThanks IsMedic + Response PlayerThanksMedic +} + +// Custom Assist kill response +// As there is no actual concept for assist kills, this is the second best method. +// Say thanks after you kill more than one person. + +Response KilledPlayerAssistMedic +{ + scene "scenes/Player/Medic/low/657.vcd" + scene "scenes/Player/Medic/low/658.vcd" +} +Rule KilledPlayerAssistMedic +{ + criteria ConceptPlayerThanks IsMedic IsARecentKill KilledPlayerDelay MedicNotAssistSpeech + ApplyContext "MedicAssistSpeech:1:20" + Response KilledPlayerAssistMedic +} +// End custom + +Response PlayerYesMedic +{ + scene "scenes/Player/Medic/low/689.vcd" + scene "scenes/Player/Medic/low/690.vcd" + scene "scenes/Player/Medic/low/691.vcd" +} +Rule PlayerYesMedic +{ + criteria ConceptPlayerYes IsMedic + Response PlayerYesMedic +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 2 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerActivateChargeMedic +{ + scene "scenes/Player/Medic/low/519.vcd" + scene "scenes/Player/Medic/low/520.vcd" + scene "scenes/Player/Medic/low/521.vcd" +} +Rule PlayerActivateChargeMedic +{ + criteria ConceptPlayerActivateCharge IsMedic + Response PlayerActivateChargeMedic +} + +Response PlayerChargeReadyMedic +{ + scene "scenes/Player/Medic/low/528.vcd" + scene "scenes/Player/Medic/low/529.vcd" + scene "scenes/Player/Medic/low/530.vcd" +} +Rule PlayerChargeReadyMedic +{ + criteria ConceptPlayerChargeReady IsMedic + Response PlayerChargeReadyMedic +} + +Response PlayerCloakedSpyMedic +{ + scene "scenes/Player/Medic/low/553.vcd" + scene "scenes/Player/Medic/low/554.vcd" +} +Rule PlayerCloakedSpyMedic +{ + criteria ConceptPlayerCloakedSpy IsMedic + Response PlayerCloakedSpyMedic +} + +Response PlayerDispenserHereMedic +{ + scene "scenes/Player/Medic/low/616.vcd" +} +Rule PlayerDispenserHereMedic +{ + criteria ConceptPlayerDispenserHere IsMedic + Response PlayerDispenserHereMedic +} + +Response PlayerIncomingMedic +{ + scene "scenes/Player/Medic/low/586.vcd" + scene "scenes/Player/Medic/low/587.vcd" + scene "scenes/Player/Medic/low/588.vcd" +} +Rule PlayerIncomingMedic +{ + criteria ConceptPlayerIncoming IsMedic + Response PlayerIncomingMedic +} + +Response PlayerSentryAheadMedic +{ + scene "scenes/Player/Medic/low/643.vcd" + scene "scenes/Player/Medic/low/644.vcd" +} +Rule PlayerSentryAheadMedic +{ + criteria ConceptPlayerSentryAhead IsMedic + Response PlayerSentryAheadMedic +} + +Response PlayerSentryHereMedic +{ + scene "scenes/Player/Medic/low/617.vcd" +} +Rule PlayerSentryHereMedic +{ + criteria ConceptPlayerSentryHere IsMedic + Response PlayerSentryHereMedic +} + +Response PlayerTeleporterHereMedic +{ + scene "scenes/Player/Medic/low/618.vcd" +} +Rule PlayerTeleporterHereMedic +{ + criteria ConceptPlayerTeleporterHere IsMedic + Response PlayerTeleporterHereMedic +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 3 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerBattleCryMedic +{ + scene "scenes/Player/Medic/low/537.vcd" + scene "scenes/Player/Medic/low/539.vcd" + scene "scenes/Player/Medic/low/540.vcd" + scene "scenes/Player/Medic/low/541.vcd" + scene "scenes/Player/Medic/low/542.vcd" + scene "scenes/Player/Medic/low/543.vcd" +} +Rule PlayerBattleCryMedic +{ + criteria ConceptPlayerBattleCry IsMedic + Response PlayerBattleCryMedic +} + +// Custom stuff - melee dare +// Look at enemy, then do battle cry voice command while holding a melee weapon. +Response MeleeDareCombatMedic +{ + scene "scenes/Player/Medic/low/661.vcd" + scene "scenes/Player/Medic/low/669.vcd" + scene "scenes/Player/Medic/low/672.vcd" + scene "scenes/Player/Medic/low/667.vcd" + scene "scenes/Player/Medic/low/677.vcd" + scene "scenes/Player/Medic/low/680.vcd" + scene "scenes/Player/Medic/low/1241.vcd" + scene "scenes/Player/Medic/low/679.vcd" +} +Rule MeleeDareCombatMedic +{ + criteria ConceptPlayerBattleCry IsWeaponMelee IsMedic IsCrosshairEnemy + Response MeleeDareCombatMedic +} +//End custom + +Response PlayerCheersMedic +{ + scene "scenes/Player/Medic/low/544.vcd" + scene "scenes/Player/Medic/low/545.vcd" + scene "scenes/Player/Medic/low/548.vcd" + scene "scenes/Player/Medic/low/550.vcd" + scene "scenes/Player/Medic/low/551.vcd" + scene "scenes/Player/Medic/low/552.vcd" +} +Rule PlayerCheersMedic +{ + criteria ConceptPlayerCheers IsMedic + Response PlayerCheersMedic +} + +Response PlayerGoodJobMedic +{ + scene "scenes/Player/Medic/low/568.vcd" + scene "scenes/Player/Medic/low/569.vcd" + scene "scenes/Player/Medic/low/570.vcd" +} +Rule PlayerGoodJobMedic +{ + criteria ConceptPlayerGoodJob IsMedic + Response PlayerGoodJobMedic +} + +Response PlayerJeersMedic +{ + scene "scenes/Player/Medic/low/592.vcd" + scene "scenes/Player/Medic/low/593.vcd" + scene "scenes/Player/Medic/low/594.vcd" + scene "scenes/Player/Medic/low/595.vcd" + scene "scenes/Player/Medic/low/596.vcd" + scene "scenes/Player/Medic/low/597.vcd" + scene "scenes/Player/Medic/low/598.vcd" + scene "scenes/Player/Medic/low/599.vcd" + scene "scenes/Player/Medic/low/600.vcd" + scene "scenes/Player/Medic/low/601.vcd" + scene "scenes/Player/Medic/low/603.vcd" + scene "scenes/Player/Medic/low/602.vcd" +} +Rule PlayerJeersMedic +{ + criteria ConceptPlayerJeers IsMedic + Response PlayerJeersMedic +} + +Response PlayerLostPointMedic +{ + scene "scenes/Player/Medic/low/619.vcd" + scene "scenes/Player/Medic/low/620.vcd" + scene "scenes/Player/Medic/low/621.vcd" + scene "scenes/Player/Medic/low/622.vcd" + scene "scenes/Player/Medic/low/623.vcd" + scene "scenes/Player/Medic/low/1233.vcd" + scene "scenes/Player/Medic/low/1234.vcd" +} +Rule PlayerLostPointMedic +{ + criteria ConceptPlayerLostPoint IsMedic + Response PlayerLostPointMedic +} + +Response PlayerNegativeMedic +{ + scene "scenes/Player/Medic/low/619.vcd" + scene "scenes/Player/Medic/low/620.vcd" + scene "scenes/Player/Medic/low/621.vcd" + scene "scenes/Player/Medic/low/622.vcd" + scene "scenes/Player/Medic/low/623.vcd" + scene "scenes/Player/Medic/low/1233.vcd" + scene "scenes/Player/Medic/low/1234.vcd" +} +Rule PlayerNegativeMedic +{ + criteria ConceptPlayerNegative IsMedic + Response PlayerNegativeMedic +} + +Response PlayerNiceShotMedic +{ + scene "scenes/Player/Medic/low/624.vcd" + scene "scenes/Player/Medic/low/625.vcd" +} +Rule PlayerNiceShotMedic +{ + criteria ConceptPlayerNiceShot IsMedic + Response PlayerNiceShotMedic +} + +Response PlayerPositiveMedic +{ + scene "scenes/Player/Medic/low/639.vcd" + scene "scenes/Player/Medic/low/640.vcd" + scene "scenes/Player/Medic/low/641.vcd" + scene "scenes/Player/Medic/low/1235.vcd" + scene "scenes/Player/Medic/low/1236.vcd" +} + +Response PlayerTauntsMedic +{ + scene "scenes/Player/Medic/low/604.vcd" + scene "scenes/Player/Medic/low/1228.vcd" + scene "scenes/Player/Medic/low/1231.vcd" + scene "scenes/Player/Medic/low/609.vcd" + scene "scenes/Player/Medic/low/610.vcd" +} +Rule PlayerPositiveMedic +{ + criteria ConceptPlayerPositive IsMedic + Response PlayerPositiveMedic + Response PlayerTauntsMedic +} + +//-------------------------------------------------------------------------------------------------------------- +// MvM Speech +//-------------------------------------------------------------------------------------------------------------- +Response MvMBombDroppedMedic +{ + scene "scenes/Player/Medic/low/4205.vcd" + scene "scenes/Player/Medic/low/4204.vcd" +} +Rule MvMBombDroppedMedic +{ + criteria ConceptMvMBombDropped 5PercentChance IsMvMDefender IsMedic + Response MvMBombDroppedMedic +} + +Response MvMBombCarrierUpgrade1Medic +{ + scene "scenes/Player/Medic/low/4200.vcd" +} +Rule MvMBombCarrierUpgrade1Medic +{ + criteria ConceptMvMBombCarrierUpgrade1 5PercentChance IsMvMDefender IsMedic + Response MvMBombCarrierUpgrade1Medic +} + +Response MvMBombCarrierUpgrade2Medic +{ + scene "scenes/Player/Medic/low/4201.vcd" +} +Rule MvMBombCarrierUpgrade2Medic +{ + criteria ConceptMvMBombCarrierUpgrade2 5PercentChance IsMvMDefender IsMedic + Response MvMBombCarrierUpgrade2Medic +} + +Response MvMBombCarrierUpgrade3Medic +{ + scene "scenes/Player/Medic/low/4202.vcd" +} +Rule MvMBombCarrierUpgrade3Medic +{ + criteria ConceptMvMBombCarrierUpgrade3 5PercentChance IsMvMDefender IsMedic + Response MvMBombCarrierUpgrade3Medic +} + +Response MvMDefenderDiedScoutMedic +{ + scene "scenes/Player/Medic/low/4173.vcd" +} +Rule MvMDefenderDiedScoutMedic +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimScout IsMedic + Response MvMDefenderDiedScoutMedic +} + +Response MvMDefenderDiedSpyMedic +{ + scene "scenes/Player/Medic/low/4174.vcd" +} +Rule MvMDefenderDiedSpyMedic +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimSpy IsMedic + Response MvMDefenderDiedSpyMedic +} + +Response MvMDefenderDiedHeavyMedic +{ + scene "scenes/Player/Medic/low/4175.vcd" +} +Rule MvMDefenderDiedHeavyMedic +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimHeavy IsMedic + Response MvMDefenderDiedHeavyMedic +} + +Response MvMDefenderDiedSoldierMedic +{ + scene "scenes/Player/Medic/low/4176.vcd" +} +Rule MvMDefenderDiedSoldierMedic +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimSoldier IsMedic + Response MvMDefenderDiedSoldierMedic +} + +Response MvMDefenderDiedMedicMedic +{ + scene "scenes/Player/Medic/low/4177.vcd" +} +Rule MvMDefenderDiedMedicMedic +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimMedic IsMedic + Response MvMDefenderDiedMedicMedic +} + +Response MvMDefenderDiedDemomanMedic +{ + scene "scenes/Player/Medic/low/4178.vcd" +} +Rule MvMDefenderDiedDemomanMedic +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimDemoman IsMedic + Response MvMDefenderDiedDemomanMedic +} + +Response MvMDefenderDiedPyroMedic +{ + scene "scenes/Player/Medic/low/4179.vcd" +} +Rule MvMDefenderDiedPyroMedic +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimPyro IsMedic + Response MvMDefenderDiedPyroMedic +} + +Response MvMDefenderDiedSniperMedic +{ + scene "scenes/Player/Medic/low/4180.vcd" +} +Rule MvMDefenderDiedSniperMedic +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimSniper IsMedic + Response MvMDefenderDiedSniperMedic +} + +Response MvMDefenderDiedEngineerMedic +{ + scene "scenes/Player/Medic/low/4181.vcd" +} +Rule MvMDefenderDiedEngineerMedic +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimEngineer IsMedic + Response MvMDefenderDiedEngineerMedic +} + +Response MvMFirstBombPickupMedic +{ + scene "scenes/Player/Medic/low/4197.vcd" + scene "scenes/Player/Medic/low/4199.vcd" +} +Rule MvMFirstBombPickupMedic +{ + criteria ConceptMvMFirstBombPickup 5PercentChance IsMvMDefender IsMedic + Response MvMFirstBombPickupMedic +} + +Response MvMBombPickupMedic +{ + scene "scenes/Player/Medic/low/4196.vcd" +} +Rule MvMBombPickupMedic +{ + criteria ConceptMvMBombPickup 5PercentChance IsMvMDefender IsMedic + Response MvMBombPickupMedic +} + +Response MvMSniperCalloutMedic +{ + scene "scenes/Player/Medic/low/4183.vcd" +} +Rule MvMSniperCalloutMedic +{ + criteria ConceptMvMSniperCallout 50PercentChance IsMvMDefender IsMedic + Response MvMSniperCalloutMedic +} + +Response MvMSentryBusterMedic +{ + scene "scenes/Player/Medic/low/4212.vcd" +} +Rule MvMSentryBusterMedic +{ + criteria ConceptMvMSentryBuster 50PercentChance IsMvMDefender IsMedic + Response MvMSentryBusterMedic +} + +Response MvMSentryBusterDownMedic +{ + scene "scenes/Player/Medic/low/4213.vcd" +} +Rule MvMSentryBusterDownMedic +{ + criteria ConceptMvMSentryBusterDown 20PercentChance IsMvMDefender IsMedic + Response MvMSentryBusterDownMedic +} + +Response MvMLastManStandingMedic +{ + scene "scenes/Player/Medic/low/4182.vcd" +} +Rule MvMLastManStandingMedic +{ + criteria ConceptMvMLastManStanding 20PercentChance IsMvMDefender IsMedic + Response MvMLastManStandingMedic +} + +Response MvMEncourageMoneyMedic +{ + scene "scenes/Player/Medic/low/4188.vcd" + scene "scenes/Player/Medic/low/4189.vcd" + scene "scenes/Player/Medic/low/4324.vcd" +} +Rule MvMEncourageMoneyMedic +{ + criteria ConceptMvMEncourageMoney 50PercentChance IsMvMDefender IsMedic + Response MvMEncourageMoneyMedic +} + +Response MvMEncourageUpgradeMedic +{ + scene "scenes/Player/Medic/low/4193.vcd" + scene "scenes/Player/Medic/low/4194.vcd" + scene "scenes/Player/Medic/low/4195.vcd" +} +Rule MvMEncourageUpgradeMedic +{ + criteria ConceptMvMEncourageUpgrade 50PercentChance IsMvMDefender IsMedic + Response MvMEncourageUpgradeMedic +} + +Response MvMUpgradeCompleteMedic +{ + scene "scenes/Player/Medic/low/4190.vcd" + scene "scenes/Player/Medic/low/4191.vcd" + scene "scenes/Player/Medic/low/4192.vcd" + scene "scenes/Player/Medic/low/4325.vcd" +} +Rule MvMUpgradeCompleteMedic +{ + criteria ConceptMvMUpgradeComplete 5PercentChance IsMvMDefender IsMedic + Response MvMUpgradeCompleteMedic +} + +Response MvMGiantCalloutMedic +{ + scene "scenes/Player/Medic/low/4214.vcd" +} +Rule MvMGiantCalloutMedic +{ + criteria ConceptMvMGiantCallout 20PercentChance IsMvMDefender IsMedic + Response MvMGiantCalloutMedic +} + +Response MvMGiantHasBombMedic +{ + scene "scenes/Player/Medic/low/4217.vcd" +} +Rule MvMGiantHasBombMedic +{ + criteria ConceptMvMGiantHasBomb 20PercentChance IsMvMDefender IsMedic + Response MvMGiantHasBombMedic +} + +Response MvMSappedRobotMedic +{ + scene "scenes/Player/Medic/low/4184.vcd" + scene "scenes/Player/Medic/low/4185.vcd" +} +Rule MvMSappedRobotMedic +{ + criteria ConceptMvMSappedRobot 50PercentChance IsMvMDefender IsMedic + Response MvMSappedRobotMedic +} + +Response MvMTankCalloutMedic +{ + scene "scenes/Player/Medic/low/4206.vcd" +} +Rule MvMTankCalloutMedic +{ + criteria ConceptMvMTankCallout 50PercentChance IsMvMDefender IsMedic + Response MvMTankCalloutMedic +} + +Response MvMTankDeployingMedic +{ + scene "scenes/Player/Medic/low/4210.vcd" +} +Rule MvMTankDeployingMedic +{ + criteria ConceptMvMTankDeploying 50PercentChance IsMvMDefender IsMedic + Response MvMTankDeployingMedic +} + +Response MvMAttackTheTankMedic +{ + scene "scenes/Player/Medic/low/4207.vcd" + scene "scenes/Player/Medic/low/4208.vcd" + scene "scenes/Player/Medic/low/4209.vcd" +} +Rule MvMAttackTheTankMedic +{ + criteria ConceptMvMAttackTheTank 50PercentChance IsMvMDefender IsMedic + Response MvMAttackTheTankMedic +} + +Response MvMTauntMedic +{ + scene "scenes/Player/Medic/low/4186.vcd" +} +Rule MvMTauntMedic +{ + criteria ConceptMvMTaunt 50PercentChance IsMvMDefender IsMedic + Response MvMTauntMedic +} + +Response MvMWaveStartMedic +{ + scene "scenes/Player/Medic/low/4109.vcd" +} +Rule MvMWaveStartMedic +{ + criteria ConceptMvMWaveStart 50PercentChance IsMvMDefender IsMedic + Response MvMWaveStartMedic +} + +Response MvMWaveWinMedic +{ + scene "scenes/Player/Medic/low/4163.vcd" + scene "scenes/Player/Medic/low/4164.vcd" + scene "scenes/Player/Medic/low/4165.vcd" +} +Rule MvMWaveWinMedic +{ + criteria ConceptMvMWaveWin 50PercentChance IsMvMDefender IsMedic + Response MvMWaveWinMedic +} + +Response MvMWaveLoseMedic +{ + scene "scenes/Player/Medic/low/4166.vcd" + scene "scenes/Player/Medic/low/4167.vcd" + scene "scenes/Player/Medic/low/4168.vcd" + scene "scenes/Player/Medic/low/4323.vcd" +} +Rule MvMWaveLoseMedic +{ + criteria ConceptMvMWaveLose 50PercentChance IsMvMDefender IsMedic + Response MvMWaveLoseMedic +} + +Response MvMMoneyPickupMedic +{ + scene "scenes/Player/Medic/low/4187.vcd" +} +Rule MvMMoneyPickupMedic +{ + criteria ConceptMvMMoneyPickup 5PercentChance IsMvMDefender IsMedic + Response MvMMoneyPickupMedic +} + +Response MvMGiantKilledMedic +{ + scene "scenes/Player/Medic/low/4218.vcd" +} +Rule MvMGiantKilledMedic +{ + criteria ConceptMvMGiantKilled 50PercentChance IsMvMDefender IsMedic + Response MvMGiantKilledMedic +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Cart +//-------------------------------------------------------------------------------------------------------------- +Criterion "MedicNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 +Criterion "MedicNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 +Criterion "MedicNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 +Criterion "MedicNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 +Criterion "MedicNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 +Criterion "MedicNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Response CartMovingBackwardsDefenseMedic +{ +} +Rule CartMovingBackwardsDefenseMedic +{ + criteria ConceptCartMovingBackward IsOnDefense IsMedic MedicNotSaidCartMovingBackwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardD:1:20" + Response CartMovingBackwardsDefenseMedic +} +Response CartMovingBackwardsOffenseMedic +{ + scene "scenes/Player/Medic/low/6763.vcd" + scene "scenes/Player/Medic/low/6765.vcd" +} +Rule CartMovingBackwardsOffenseMedic +{ + criteria ConceptCartMovingBackward IsOnOffense IsMedic MedicNotSaidCartMovingBackwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardO:1:20" + Response CartMovingBackwardsOffenseMedic +} +Response CartMovingForwardDefenseMedic +{ + scene "scenes/Player/Medic/low/6767.vcd" + scene "scenes/Player/Medic/low/6766.vcd" +} +Rule CartMovingForwardDefenseMedic +{ + criteria ConceptCartMovingForward IsOnDefense IsMedic MedicNotSaidCartMovingForwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardD:1:20" + Response CartMovingForwardDefenseMedic +} +Response CartMovingForwardOffenseMedic +{ + scene "scenes/Player/Medic/low/6752.vcd" + scene "scenes/Player/Medic/low/6753.vcd" + scene "scenes/Player/Medic/low/6754.vcd" + scene "scenes/Player/Medic/low/6755.vcd" + scene "scenes/Player/Medic/low/6756.vcd" + scene "scenes/Player/Medic/low/6758.vcd" + scene "scenes/Player/Medic/low/6760.vcd" + scene "scenes/Player/Medic/low/6761.vcd" + scene "scenes/Player/Medic/low/6770.vcd" + scene "scenes/Player/Medic/low/6774.vcd" + scene "scenes/Player/Medic/low/6775.vcd" +} +Rule CartMovingForwardOffenseMedic +{ + criteria ConceptCartMovingForward IsOnOffense IsMedic MedicNotSaidCartMovingForwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardO:1:20" + Response CartMovingForwardOffenseMedic +} +Response CartMovingStoppedDefenseMedic +{ + scene "scenes/Player/Medic/low/6786.vcd" +} +Rule CartMovingStoppedDefenseMedic +{ + criteria ConceptCartMovingStopped IsOnDefense IsMedic MedicNotSaidCartMovingStoppedD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedD:1:20" + Response CartMovingStoppedDefenseMedic +} +Response CartMovingStoppedOffenseMedic +{ + scene "scenes/Player/Medic/low/6776.vcd" + scene "scenes/Player/Medic/low/6782.vcd" + scene "scenes/Player/Medic/low/6781.vcd" + scene "scenes/Player/Medic/low/6779.vcd" +} +Rule CartMovingStoppedOffenseMedic +{ + criteria ConceptCartMovingStopped IsOnOffense IsMedic MedicNotSaidCartMovingStoppedO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedO:1:20" + Response CartMovingStoppedOffenseMedic +} +//-------------------------------------------------------------------------------------------------------------- +// END OF Auto Speech Cart +//-------------------------------------------------------------------------------------------------------------- + + + + + + + + + + + + + + + + + + + + + diff --git a/game/tc2/scripts/talker/response_rules.txt b/game/tc2/scripts/talker/response_rules.txt new file mode 100644 index 00000000000..bc3a823199f --- /dev/null +++ b/game/tc2/scripts/talker/response_rules.txt @@ -0,0 +1,710 @@ +// This is the base rule script file for the AI response system for Expressive AI's who speak based on certain "Concepts" +// You can think of a concept as a high level state that the code is trying to convey, such as say hello, or say you're mad, etc. +// +// The format of this file is that there are five main types of commands: +// 1) #include "filename" // This just causes the included scriptfile to be parsed and added to the database +// 2) enumeration: this declares an enumerated type so that comparisons can be matched against the string versions of the type +// 3) response: this specifies a response to issue. A response consists of a weighted set of options and can recursively reference +// other responses by name +// 4) criterion: This is a match condition +// 5) rule: a rule consists of one or more criteria and a response +// +// In general, the system is presented with a criteria set, which is a set of key value pairs generated by the game code and +// various entity I/O and keyfields. For instance, the following criteria set was created in a map with a train terminal +// "speaker" entity wishing to fire random station announcements +// concept = 'train_speaker' (weight 5.000000) ; the high level concept for the search request +// map = 'terminal_pa' ; the name of the map +// classname = 'speaker' ; the classname and name of the "speaking" entity +// name = 'terminal_pa' +// health = '10' ; the absolute health of the speaking entity +// healthfrac = '0.000' ; the health fraction (health/maxhealth) of the speaking entity +// playerhealth = '100' ; similar data related to the current player: +// playerhealthfrac = '1.000' +// playerweapon = 'none' ; the name of the weapon the player is carrying +// playeractivity = 'ACT_WALK' ; animating activity of the player +// playerspeed = '0.000' ; how fast the player is moving +// +// Based on such a criteria set, the system checks each rule against the set. To do this, each criterion of the rule is +// given a numeric score as follows: +// score = 0 if criteria doesn't match or, criterion weight * keyvaliue weight if it does match +// The final score for a rule is the sum of all of the scores of its criteria. The best rule is the one with the highest +// score. Once a best rule is selected, then a response is looked up based on the response definitions and the engine is +// asked to dispatch that response. +// +// The specific syntax for the various keywords is as follows: +// +// ENUMERATIONS: +// +// enumeration +// { +// "key1" "value1" +// "key2" "value2" +// ...etc. +// } +// The code and criteria refer to enumerations with square brackets and a double colon separator, e.g.: +// [enumerationname::key1] +// +// +// RESPONSES: +// +// Single line: +// response [nodelay | defaultdelay | delay interval ] [speakonce] [noscene] [odds nnn] [respeakdelay interval] [soundelvel "SNDLVL_xxx"] responsetype parameters +// Multiple lines +// response +// { +// [permitrepeats] ; optional parameter, by default we visit all responses in group before repeating any +// [sequential] ; optional parameter, by default we randomly choose responses, but with this we walk through the list starting at the first and going to the last +// [norepeat] ; Once we've run through all of the entries, disable the response group +// responsetype1 parameters1 [nodelay | defaultdelay | delay interval ] [speakonce] [odds nnn] [respeakdelay interval] [soundelvel "SNDLVL_xxx"] [displayfirst] [ displaylast ] weight nnn +// responsetype2 parameters2 [nodelay | defaultdelay | delay interval ] [speakonce] [odds nnn] [respeakdelay interval] [soundelvel "SNDLVL_xxx"] [displayfirst] [ displaylast ] weight nnn +// etc. +// } +// Where: +// interval = "startnumber,endnumber" or "number" (e.g., "2.8,3.2" or "3.2") +// responsetype =: +// speak ; it's an entry in sounds.txt +// sentence ; it's a sentence name from sentences.txt +// scene ; it's a .vcd file +// response ; it's a reference to another response group by name +// print ; print the text in developer 2 (for placeholder responses) +// nodelay = an additional delay of 0 after speaking +// defaultdelay = an additional delay of 2.8 to 3.2 seconds after speaking +// delay interval = an additional delay based on a random sample from the interval after speaking +// predelay interval = delays the speech for the time interval. NOTE: Only works on scenes (i.e. no sentences/speak/print) +// speakonce = don't use this response more than one time (default off) +// noscene = For an NPC, play the sound immediately using EmitSound, don't play it through the scene system. Good for playing sounds on dying or dead NPCs. +// odds = if this response is selected, if odds < 100, then there is a chance that nothing will be said (default 100) +// respeakdelay = don't use this response again for at least this long (default 0) +// soundlevel = use this soundlevel for the speak/sentence (default SNDLVL_TALKING) +// weight = if there are multiple responses, this is a selection weighting so that certain responses are favored over others in the group (default 1) +// displayfirst/displaylast : this should be the first/last item selected (ignores weight) +// +// CRITERIA: +// +// criterion weight nnn required +// Where: +// matchkey matches one of the criteria in the set as shown above +// matchvalue is a string or number value or a range, the following are all valid: +// "0" ; numeric match to value 0 +// "1" ; numeric match to value 1 +// "weapon_smg1" ; string match to weapon_smg1 string +// "[npcstate::idle]" ; match enumeration by looking up numeric value +// ">0" ; match if greater than zero +// ">10,<=50" ; match if greater than ten and less than or equal to 50 +// ">0,<[npcstate::alert]" ; match if greater than zer and les then value of enumeration for alert +// "!=0" ; match if not equal to zero +// weight = floating point weighting for score assuming criteria match (default value 1.0) +// required: if a rule has one or more criteria with the required flag set, then if any such criteria +// fail, the entire rule receives a score of zero +// +// RULE: +// +// rule +// { +// criteria name1 [name2 name3 etc.] +// response responsegroupname [responsegroupname2 etc.] +// [matchonce] ; optional parameter +// [ weight nnn required ] +// } +// Where: +// criteria just lies one more more criterion names from above and response list one or more of the response +// names from above (usually just one) +// matchonce (off by default): means that the rule is deactivated after the first time it is matched +// Note that additional "unnamed" criteria can be specified inline in the rule using the same syntax +// as for defining a criterion, except for the criterion keyword and the criterion name keys +// +// Interaction with entity I/O system +// CBaseEntity contains an inputfunc called "DispatchResponse" which accepts a string which is a concept name +// Thus, a game entity can fire this input on another entity with a concept string and a criteria set will +// be generated and searched against the entities current response system rule set. +// Right now only the speaker entity and NPC_Talker derived NPCs have any response rules loaded +// In addition, map placed entities have up to three "context" keypairs that can be specified. +// They take the form: "key:value" (key, single colon separator, value) +// When an entity with any such context keypairs is asked to dispatch a response, the keypairs are added to the +// criteria set passed to the rule system. Thus, map placed entities and triggers can specify their +// own context keypairs and these can be hooked up to response rules to do map-specific and appropriate +// responses +// In addition, entity I/O can be used to add, remove and clear any such context keypairs via the +// AddContext, RemoveContext, and ClearContext input functions. +// AddContext takes a keypair of the "key:value" format, while RemoveContext take just the "key" +// ClearContext removes all context keypairs +// The game .dll code can enumerate context keypairs and change them via code based methods +// +// The player and the world have their context added with the string player or world as a prefix, e.g.: +// "playerkey:value" or "worldkey:value" to differentiate world/player context from the context of the +// responding entity. + +// Base script +enumeration "NPCState" +{ + "None" "0" + "Idle" "1" + "Alert" "2" + "Combat" "3" + "Scripted" "4" + "PlayDead" "5" + "Dead" "6" +} + +criterion "ConceptPlayerTaunt" "Concept" "TLK_PLAYER_TAUNT" "required" +criterion "ConceptPlayerThanks" "Concept" "TLK_PLAYER_THANKS" "required" +criterion "ConceptPlayerMedic" "Concept" "TLK_PLAYER_MEDIC" required +criterion "ConceptPlayerAskForBall" "Concept" "TLK_PLAYER_ASK_FOR_BALL" required +criterion "ConceptPlayerHelp" "Concept" "TLK_PLAYER_HELP" required +criterion "ConceptPlayerGo" "Concept" "TLK_PLAYER_GO" required +criterion "ConceptPlayerMoveUp" "Concept" "TLK_PLAYER_MOVEUP" required +criterion "ConceptPlayerLeft" "Concept" "TLK_PLAYER_LEFT" required +criterion "ConceptPlayerRight" "Concept" "TLK_PLAYER_RIGHT" required +criterion "ConceptPlayerYes" "Concept" "TLK_PLAYER_YES" required +criterion "ConceptPlayerNo" "Concept" "TLK_PLAYER_NO" required +criterion "ConceptPlayerIncoming" "Concept" "TLK_PLAYER_INCOMING" required +criterion "ConceptPlayerCloakedSpy" "Concept" "TLK_PLAYER_CLOAKEDSPY" required +criterion "ConceptPlayerSentryAhead" "Concept" "TLK_PLAYER_SENTRYAHEAD" required +criterion "ConceptPlayerTeleporterHere" "Concept" "TLK_PLAYER_TELEPORTERHERE" required +criterion "ConceptPlayerDispenserHere" "Concept" "TLK_PLAYER_DISPENSERHERE" required +criterion "ConceptPlayerSentryHere" "Concept" "TLK_PLAYER_SENTRYHERE" required +criterion "ConceptPlayerActivateCharge" "Concept" "TLK_PLAYER_ACTIVATECHARGE" required +criterion "ConceptPlayerChargeReady" "Concept" "TLK_PLAYER_CHARGEREADY" required +criterion "ConceptPlayerTaunts" "Concept" "TLK_PLAYER_TAUNTS" required +criterion "ConceptPlayerBattleCry" "Concept" "TLK_PLAYER_BATTLECRY" required +criterion "ConceptPlayerCheers" "Concept" "TLK_PLAYER_CHEERS" required +criterion "ConceptPlayerJeers" "Concept" "TLK_PLAYER_JEERS" required +criterion "ConceptPlayerPositive" "Concept" "TLK_PLAYER_POSITIVE" required +criterion "ConceptPlayerNegative" "Concept" "TLK_PLAYER_NEGATIVE" required +criterion "ConceptPlayerNiceShot" "Concept" "TLK_PLAYER_NICESHOT" required +criterion "ConceptPlayerGoodJob" "Concept" "TLK_PLAYER_GOODJOB" required +criterion "ConceptSpySapping" "Concept" "TLK_SPY_SAPPER" required +criterion "ConceptPain" "Concept" "TLK_PLAYER_PAIN" required +criterion "ConceptAttackerPain" "Concept" "TLK_PLAYER_ATTACKER_PAIN" required +criterion "ConceptFire" "Concept" "TLK_ONFIRE" required +criterion "ConceptCapBlocked" "Concept" "TLK_CAPTURE_BLOCKED" required +criterion "ConceptMedicChargeDeployed" "Concept" "TLK_MEDIC_CHARGEDEPLOYED" required +criterion "ConceptMedicChargeStopped" "Concept" "TLK_HEALTARGET_STOPPEDHEALING" required + +criterion "ConceptEngineerPickupBuilding" "Concept" "TLK_PICKUP_BUILDING" required +criterion "ConceptEngineerDeployBuilding" "Concept" "TLK_REDEPLOY_BUILDING" required +criterion "ConceptEngineerCarryingBuilding" "Concept" "TLK_CARRYING_BUILDING" required + + + + +criterion "ConceptScoutBallGrab" "Concept" "TLK_GRAB_BALL" required + +// Force weight to 2 so that this matches all classes +criterion "ConceptPlayerTaunt2" "Concept" "TLK_PLAYER_TAUNT2" required + +criterion "ConceptPlayerShowItemTaunt" "Concept" "TLK_PLAYER_SHOW_ITEM_TAUNT" required + +criterion "ConceptPlayerHoldTaunt" "Concept" "TLK_PLAYER_HOLDTAUNT" required + +//Auto fire concepts +criterion "ConceptPlayerCapturedPoint" "Concept" "TLK_CAPTURED_POINT" required +criterion "ConceptPlayerRoundStart" "Concept" "TLK_ROUND_START" required +criterion "ConceptPlayerRoundStartComp" "Concept" "TLK_ROUND_START_COMP" required +criterion "ConceptPlayerSuddenDeathStart" "Concept" "TLK_SUDDENDEATH_START" required +criterion "ConceptPlayerStalemate" "Concept" "TLK_STALEMATE" required +criterion "ConceptPlayerBuildingObject" "Concept" "TLK_BUILDING_OBJECT" required +criterion "ConceptPlayerDetonatedObject" "Concept" "TLK_DETONATED_OBJECT" required +criterion "ConceptLostObject" "Concept" "TLK_LOST_OBJECT" required +criterion "ConceptKilledObject" "Concept" "TLK_KILLED_OBJECT" required +criterion "ConceptMedicChargeReady" "Concept" "TLK_MEDIC_CHARGEREADY" required +criterion "ConceptTeleported" "Concept" "TLK_TELEPORTED" required +criterion "ConceptPlayerDead" "Concept" "TLK_DEAD" required + +criterion "ConceptPlayerGrabbedIntelligence" "Concept" "TLK_FLAGPICKUP" required +criterion "ConceptPlayerCapturedIntelligence" "Concept" "TLK_FLAGCAPTURED" required + +//cart stuff +criterion "ConceptCartMovingForward" "Concept" "TLK_CART_MOVING_FORWARD" required +criterion "ConceptCartMovingStopped" "Concept" "TLK_CART_STOP" required +criterion "ConceptCartMovingBackward" "Concept" "TLK_CART_MOVING_BACKWARD" required + +criterion "ConceptAteFood" "Concept" "TLK_ATE_FOOD" required + +//scout pack +criterion "ConceptDoubleJump" "Concept" "TLK_DOUBLE_JUMP" required +criterion "ConceptDodging" "Concept" "TLK_DODGING" required +criterion "ConceptDodgeShot" "Concept" "TLK_DODGE_SHOT" required +criterion "ConceptGrabBall" "Concept" "TLK_GRAB_BALL" required +criterion "ConceptRegenBall" "Concept" "TLK_REGEN_BALL" required +criterion "ConceptDeflected" "Concept" "TLK_DEFLECTED" required +criterion "ConceptBallMissed" "Concept" "TLK_BALL_MISSED" required +criterion "ConceptStunned" "Concept" "TLK_STUNNED" required +criterion "ConceptStunnedTarget" "Concept" "TLK_STUNNED_TARGET" required +criterion "ConceptTired" "Concept" "TLK_TIRED" required +criterion "ConceptBatBall" "Concept" "TLK_BAT_BALL" required +criterion "IsDoubleJumping" "DoubleJumping" "1" required +criterion "ConceptAchievementAward" "Concept" "TLK_ACHIEVEMENT_AWARD" required +// Custom stuff +criterion "IsNotDoubleJumping" "DoubleJumping" "0" required // Needed to stop Scout saying double jump lines when he lands. + +// spy / sniper pack +criterion "ConceptJarateLaunch" "Concept" "TLK_JARATE_LAUNCH" required +criterion "ConceptJarateHit" "Concept" "TLK_JARATE_HIT" required + +// Item Taunts +criterion "ConceptTauntReplay" "Concept" "TLK_TAUNT_REPLAY" required +criterion "ConceptTauntLaugh" "Concept" "TLK_TAUNT_LAUGH" required +criterion "ConceptTauntHeroicPose" "Concept" "TLK_TAUNT_HEROIC_POSE" required +criterion "ConceptTauntPyroArmageddon" "Concept" "TLK_TAUNT_PYRO_ARMAGEDDON" required +criterion "ConceptTauntGuitarRiff" "Concept" "TLK_TAUNT_GUITAR_RIFF" required +criterion "ConceptTauntEurekaTeleport" "Concept" "TLK_TAUNT_EUREKA_EFFECT" required + +criterion "IsOnOffense" "teamrole" "offense" required +criterion "IsOnDefense" "teamrole" "defense" required + + +// Expressions +criterion "ConceptPlayerExpression" "Concept" "TLK_PLAYER_EXPRESSION" required + + +criterion "ConceptPlayerLostPoint" "Concept" "TLK_LOST_CONTROL_POINT'" required + + +criterion "IsSapper" "objtype" "sapper" required +criterion "IsSentryGun" "objtype" "sentrygun" required +criterion "IsTeleporter" "objtype" "teleporter" required +criterion "IsDispenser" "objtype" "dispenser" required +criterion "IsDisguised" "disguised" "1" required +criterion "IsNotDisguised" "disguised" "!=1" required +criterion "IsWeaponPrimary" "weaponmode" "primary" required +criterion "IsWeaponSecondary" "weaponmode" "secondary" required +criterion "IsWeaponMelee" "weaponmode" "melee" required +criterion "IsNotWeaponMelee" "weaponmode" "!=melee" required +criterion "IsWeaponBuilding" "weaponmode" "building" required +criterion "IsWeaponPda" "weaponmode" "pda" required +criterion "IsCloaked" "cloaked" "1" required +criterion "IsNotCloaked" "cloaked" "!=1" required + +criterion "IsOnScout" "crosshair_on" "Scout" "required" +criterion "IsOnSniper" "crosshair_on" "Sniper" "required" +criterion "IsOnSoldier" "crosshair_on" "Soldier" "required" +criterion "IsOnDemoman" "crosshair_on" "Demoman" "required" +criterion "IsOnMedic" "crosshair_on" "Medic" "required" +criterion "IsOnHeavy" "crosshair_on" "Heavy" "required" +criterion "IsOnPyro" "crosshair_on" "Pyro" "required" +criterion "IsOnSpy" "crosshair_on" "Spy" "required" +criterion "IsOnEngineer" "crosshair_on" "Engineer" "required" + +// Custom not on Heavy +criterion "IsNotOnHeavy" "crosshair_on" "!=Heavy" "required" + +criterion "IsDominated" "domination" "dominated" "required" +criterion "IsRevenge" "domination" "revenge" "required" +criterion "IsHeadShot" "customdeath" "headshot" "required" + + + +criterion "ConceptKilledPlayer" "Concept" "TLK_KILLED_PLAYER" required +criterion "KilledPlayerDelay" "worldDontKilledPlayer" "!=1" "required" + +criterion "IsScout" "playerclass" "Scout" "required" +criterion "IsSniper" "playerclass" "Sniper" "required" +criterion "IsSoldier" "playerclass" "Soldier" "required" +criterion "IsDemoman" "playerclass" "Demoman" "required" +criterion "IsMedic" "playerclass" "Medic" "required" +criterion "IsHeavy" "playerclass" "Heavy" "required" +criterion "IsPyro" "playerclass" "Pyro" "required" +criterion "IsSpy" "playerclass" "Spy" "required" +criterion "IsEngineer" "playerclass" "Engineer" "required" + +criterion "IsNotScout" "playerclass" "!=Scout" "required" +criterion "IsNotSniper" "playerclass" "!=Sniper" "required" +criterion "IsNotSoldier" "playerclass" "!=Soldier" "required" +criterion "IsNotDemoman" "playerclass" "!=Demoman" "required" +criterion "IsNotMedic" "playerclass" "!=Medic" "required" +criterion "IsNotHeavy" "playerclass" "!=Heavy" "required" +criterion "IsNotPyro" "playerclass" "!=Pyro" "required" +criterion "IsNotSpy" "playerclass" "!=Spy" "required" +criterion "IsNotEngineer" "playerclass" "!=Engineer" "required" + + +criterion "IsVictimScout" "victimclass" "Scout" "required" weight 0 +criterion "IsVictimSniper" "victimclass" "Sniper" "required" weight 0 +criterion "IsVictimSoldier" "victimclass" "Soldier" "required" weight 0 +criterion "IsVictimDemoman" "victimclass" "Demoman" "required" weight 0 +criterion "IsVictimMedic" "victimclass" "Medic" "required" weight 0 +criterion "IsVictimHeavy" "victimclass" "Heavy" "required" weight 0 +criterion "IsVictimPyro" "victimclass" "Pyro" "required" weight 0 +criterion "IsVictimSpy" "victimclass" "Spy" "required" weight 0 +criterion "IsVictimEngineer" "victimclass" "Engineer" "required" weight 0 + +criterion "IsNotVictimScout" "victimclass" "!=Scout" "required" weight 0 +criterion "IsNotVictimSniper" "victimclass" "!=Sniper" "required" weight 0 +criterion "IsNotVictimSoldier" "victimclass" "!=Soldier" "required" weight 0 +criterion "IsNotVictimDemoman" "victimclass" "!=Demoman" "required" weight 0 +criterion "IsNotVictimMedic" "victimclass" "!=Medic" "required" weight 0 +criterion "IsNotVictimHeavy" "victimclass" "!=Heavy" "required" weight 0 +criterion "IsNotVictimPyro" "victimclass" "!=Pyro" "required" weight 0 +criterion "IsNotVictimSpy" "victimclass" "!=Spy" "required" weight 0 +criterion "IsNotVictimEngineer" "victimclass" "!=Engineer" "required" weight 0 + + + +criterion "2PercentChance" "randomnum" "=>98" required +criterion "5PercentChance" "randomnum" "=>95" required +criterion "10PercentChance" "randomnum" ">90" required +criterion "20PercentChance" "randomnum" ">80" required +criterion "30PercentChance" "randomnum" ">70" required +criterion "40PercentChance" "randomnum" ">60" required +criterion "50PercentChance" "randomnum" ">50" required +criterion "75PercentChance" "randomnum" ">25" required +criterion "100PercentChance" "randomnum" ">0" required weight 100 +criterion "IsARecentKill" "recentkills" ">0" required +criterion "IsManyRecentKills" "recentkills" ">1" required +criterion "IsVeryManyRecentKills" "recentkills" ">3" required +criterion "IsInvulnerable" "invulnerable" "1" required weight 10 + +criterion "IsOnFriendlyControlPoint" "OnFriendlyControlPoint" "1" required +criterion "IsOnCappableControlPoint" "OnCappableControlPoint" "1" required + +criterion "WeaponIsLaserPointer" "playerweapon" "tf_weapon_laser_pointer" "required" +criterion "WeaponIsMinigun" "playerweapon" "tf_weapon_minigun" "required" +criterion "WeaponIsShotgun" "playerweapon" "tf_weapon_shotgun_secondary" "required" +criterion "WeaponIsShotgunSoldier" "playerweapon" "tf_weapon_shotgun_soldier" "required" +criterion "WeaponIsShotgunHwg" "playerweapon" "tf_weapon_shotgun_hwg" "required" +criterion "WeaponIsShotgunPyro" "playerweapon" "tf_weapon_shotgun_pyro" "required" +criterion "WeaponIsFists" "playerweapon" "tf_weapon_fists" "required" +criterion "WeaponIsFlamethrower" "playerweapon" "tf_weapon_flamethrower" "required" +criterion "WeaponIsAxe" "playerweapon" "tf_weapon_fireaxe" "required" +criterion "WeaponIsSyringe" "playerweapon" "tf_weapon_syringegun_medic" "required" +criterion "WeaponIsHeal" "playerweapon" "tf_weapon_medigun" "required" +criterion "WeaponIsBonesaw" "playerweapon" "tf_weapon_bonesaw" "required" +criterion "WeaponIsShotgunPrimary" "playerweapon" "tf_weapon_shotgun_primary" "required" +criterion "WeaponIsPistol" "playerweapon" "tf_weapon_pistol" "required" +criterion "WeaponIsBuild" "playerweapon" "tf_weapon_builder" "required" +criterion "WeaponIsWrench" "playerweapon" "tf_weapon_wrench" "required" +criterion "WeaponIsScattergun" "playerweapon" "tf_weapon_scattergun" "required" +criterion "WeaponIsScattergunDouble" "item_name" "The Force-a-Nature" "required" weight 10 +criterion "WeaponIsScattergunDoubleFestive" "item_name" "Festive Force-a-Nature" "required" weight 10 +criterion "WeaponIsPistolScout" "playerweapon" "tf_weapon_pistol_scout" "required" +criterion "WeaponIsBat" "playerweapon" "tf_weapon_bat" "required" +criterion "WeaponIsWoodBat" "playerweapon" "tf_weapon_bat_wood" "required" +criterion "WeaponIsSniperrifle" "playerweapon" "tf_weapon_sniperrifle" "required" +criterion "WeaponIsSMG" "playerweapon" "tf_weapon_smg" "required" +criterion "WeaponIsChargedSMG" "playerweapon" "tf_weapon_charged_smg" "required" +criterion "WeaponIsSMGScout" "playerweapon" "tf_weapon_smg_scout" "required" +criterion "WeaponIsClub" "playerweapon" "tf_weapon_club" "required" +criterion "WeaponIsRevolver" "playerweapon" "tf_weapon_revolver" "required" +criterion "WeaponIsKnife" "playerweapon" "tf_weapon_knife" "required" +criterion "WeaponIsPipebomb" "playerweapon" "tf_weapon_pipebomblauncher" "required" +criterion "WeaponIsGrenade" "playerweapon" "tf_weapon_grenadelauncher" "required" +criterion "WeaponIsBottle" "playerweapon" "tf_weapon_bottle" "required" +criterion "WeaponIsSpyPDA" "playerweapon" "tf_weapon_pda_spy" "required" +criterion "WeaponIsRocket" "playerweapon" "tf_weapon_rocketlauncher" "required" +criterion "WeaponIsShovel" "playerweapon" "tf_weapon_shovel" "required" +criterion "WeaponIsFlaregun" "playerweapon" "tf_weapon_flaregun" "required" +// Lunchbox modified to fire for Sandvich only, so we don't share lines. +criterion "WeaponIsSandvich" "item_name" "The Sandvich" "required" weight 5 +criterion "WeaponIsRobotSandvich" "item_name" "The Robo-Sandvich" "required" weight 5 +criterion "WeaponIsFestiveSandvich" "item_name" "Festive Sandvich" "required" weight 5 +criterion "WeaponIsLunchboxDrink" "playerweapon" "tf_weapon_lunchbox_drink" "required" +criterion "WeaponIsLunchbox" "playerweapon" "tf_weapon_lunchbox" "required" +criterion "WeaponIsGloves" "item_type_name" "#TF_Weapon_Gloves" "required" weight 10 +criterion "WeaponIsKritzkrieg" "item_name" "The Kritzkrieg" "required" weight 10 +criterion "WeaponIsBow" "item_type_name" "#TF_Weapon_CompoundBow" "required" weight 10 +criterion "WeaponIsEqualizer" "item_name" "The Equalizer" "required" weight 10 +criterion "WeaponIsEscapePlan" "item_name" "The Escape Plan" "required" weight 10 +criterion "WeaponIsDirectHit" "item_name" "The Direct Hit" "required" weight 10 +criterion "WeaponIsBeggarsBazooka" "item_name" "The Beggar's Bazooka" "required" weight 10 +criterion "WeaponIsBanner" "item_name" "The Buff Banner" "required" weight 10 +criterion "WeaponIsFestiveBanner" "item_name" "Festive Buff Banner" "required" weight 10 +// Former "sword is Eyelander" equivalency +//criterion "WeaponIsSword" "item_name" "The Eyelander" "required" weight 10 +// If valve add a new sword (and it uses the same tf_weapon_sword class) it will inherit the Eyelander taunt by default +criterion "WeaponIsSword" "playerweapon" "tf_weapon_sword" "required" weight 10 +criterion "WeaponIsDefender" "item_name" "The Scottish Resistance" "required" weight 10 +criterion "WeaponIsUbersaw" "item_name" "The Ubersaw" "required" weight 10 +criterion "WeaponIsFestiveUbersaw" "item_name" "Festive Ubersaw" "required" weight 10 +criterion "WeaponIsFrontierJustice" "item_name" "The Frontier Justice" "required" weight 10 +criterion "WeaponIsFestiveFrontierJustice" "item_name" "Festive Frontier Justice" "required" weight 10 +criterion "WeaponIsRobotArm" "item_name" "The Gunslinger" "required" weight 10 +criterion "WeaponIsGoldenWrench" "item_name" "Golden Wrench" "required" weight 10 +criterion "WeaponIsGoldenFryingPan" "item_name" "Gold Frying Pan" "required" weight 10 +criterion "WeaponIsShortstop" "item_name" "The Shortstop" "required" weight 10 +criterion "WeaponIsMadMilk" "item_name" "Mad Milk" "required" weight 10 +criterion "WeaponIsSDCleaver" "playerweapon" "tf_weapon_cleaver" "required" weight 10 +criterion "WeaponIsHolyMackerel" "item_name" "The Holy Mackerel" "required" weight 10 +criterion "WeaponIsFestiveHolyMackerel" "item_name" "Festive Holy Mackerel" "required" weight 10 +criterion "WeaponIsUnarmedCombat" "item_name" "Unarmed Combat" "required" weight 10 +criterion "WeaponIsKatana" "playerweapon" "tf_weapon_katana" "required" weight 10 +criterion "WeaponIsSashimono" "item_name" "The Concheror" "required" weight 10 +criterion "WeaponIsSaxxy" "item_name" "Saxxy" "required" weight 10 +// Custom added criterion +criterion "WeaponIsBenja" "item_name" "The Dalokohs Bar" "required" weight 10 +criterion "WeaponIsFishcake" "item_name" "Fishcake" "required" weight 10 +criterion "WeaponIsSteak" "item_name" "The Buffalo Steak Sandvich" "required" weight 10 // Not actually used for the auto-eat response. Used for distinction in the taunts. +criterion "WeaponIsPainTrain" "item_name" "The Pain Train" "required" weight 10 +criterion "WeaponIsNotPainTrain" "item_name" "!=The Pain Train" "required" weight 10 +criterion "WeaponIsFryingPan" "item_name" "Frying Pan" "required" weight 10 +criterion "WeaponIsNotFryingPan" "item_name" "!=Frying Pan" "required" weight 10 +criterion "WeaponIsNotScattergunDouble" "item_name" "!=The Force-a-Nature" "required" weight 10 +criterion "WeaponIsNotAxe" "item_name" "!=The Scotsman's Skullcutter" "required" weight 10 // Exclude the Skullcutter - has horrible clipping issues with the Eyelander taunt. Maybe give it a different taunt later. +criterion "WeaponClassIsNotAxe" "playerweapon" "!=tf_weapon_sword" "required" weight 10 +criterion "WeaponIsCaber" "playerweapon" "tf_weapon_stickbomb" "required" weight 10 +criterion "WeaponIsMetalFists" "item_name" "Fists of Steel" "required" weight 10 +// BUG: These loadout criterions are read in from the Steam Cloud +// As such, if the server loses connection to Steam, the responses bug out a bit. +criterion "WeaponIsNotVanillaPrimary" "loadout_slot_primary" "" "required" weight 10 +criterion "WeaponIsNotVanillaSecondary" "loadout_slot_secondary" "" "required" weight 10 +criterion "WeaponIsNotVanillaMelee" "loadout_slot_melee" "" "required" weight 10 +criterion "LoadoutIsDrink" "loadout_slot_secondary" "!=Crit-a-Cola" "required" weight 10 +criterion "LoadoutIsCritDrink" "loadout_slot_secondary" "Crit-a-Cola" "required" weight 10 +criterion "LoadoutIsNotRobotArm" "loadout_slot_melee" "!=The Gunslinger" "required" weight 10 +criterion "WeaponIsJarate" "item_name" "Jarate" "required" weight 10 +criterion "WeaponIsBasher" "item_name" "The Boston basher" "required" weight 10 +criterion "WeaponIsCandy" "item_name" "The Candy Cane" "required" weight 10 +criterion "WeaponIsMace" "item_name" "Sun-on-a-Stick" "required" weight 10 +criterion "WeaponIsNotBasher" "item_name" "!=The Boston basher" "required" weight 10 +criterion "WeaponIsNotCandy" "item_name" "!=The Candy Cane" "required" weight 10 +criterion "WeaponIsNotMace" "item_name" "!=Sun-on-a-Stick" "required" weight 10 +criterion "WeaponIsNotFish" "item_name" "!=The Holy Mackerel" "required" weight 10 +criterion "WeaponIsNotGunbai" "item_name" "!=The Fan O'War" "required" weight 10 +criterion "WeaponIsShiv" "item_name" "The Tribalman's Shiv" "required" weight 10 +criterion "WeaponIsGunbai" "item_name" "The Fan O'War" "required" weight 10 +criterion "WeaponIsNotMediGun" "playerweapon" "!=tf_weapon_medigun" "required" weight 10 +criterion "WeaponIsSodaPopper" "item_name" "The Soda Popper" "required" weight 10 +criterion "WeaponIsAtomizer" "item_name" "The Atomizer" "required" weight 10 +criterion "WeaponIsBazaarBargain" "item_name" "The Bazaar Bargain" "required" weight 10 +criterion "WeaponIsCowMangler" "item_name" "The Cow Mangler 5000" "required" weight 10 +criterion "WeaponIsNotTaggedMinigun" "item_name" "!=Upgradeable TF_WEAPON_MINIGUN" "required" weight 10 +criterion "WeaponIsNotTaggedRifle" "item_name" "!=Upgradeable TF_WEAPON_SNIPERRIFLE" "required" weight 10 +criterion "WeaponIsNotTaggedSMG" "item_name" "!=Upgradeable TF_WEAPON_SMG" "required" weight 10 +criterion "WeaponIsNotTaggedKukri" "item_name" "!=Upgradeable TF_WEAPON_CLUB" "required" weight 10 +criterion "WeaponIsNotTaggedMedigun" "item_name" "!=Upgradeable TF_WEAPON_MEDIGUN" "required" weight 10 +criterion "WeaponIsNotSaxxy" "item_name" "!=Saxxy" "required" weight 10 +criterion "WeaponIsTRBlade" "item_name" "Three-Rune Blade" "required" weight 10 +criterion "WeaponIsNotTRBlade" "item_name" "!=Three-Rune Blade" "required" weight 10 +criterion "WeaponIsBackup" "item_name" "The Battalion's Backup" "required" weight 10 +criterion "WeaponIsHealArrow" "playerweapon" "tf_weapon_crossbow" "required" weight 10 +criterion "WeaponIsNotTomislav" "item_name" "!=Tomislav" "required" weight 10 +criterion "WeaponIsNotRobotArm" "item_name" "!=The Gunslinger" "required" weight 10 +criterion "WeaponIsRayGun" "item_name" "The Righteous Bison" "required" weight 10 +criterion "WeaponIsHippocrates" "item_name" "The Solemn Vow" "required" weight 10 +criterion "WeaponIsSharpDresser" "item_name" "The Sharp Dresser" "required" weight 10 +criterion "WeaponIsEurekaEffect" "item_name" "The Eureka Effect" "required" weight 10 +criterion "WeaponIsThirdDegree" "item_name" "The Third Degree" "required" weight 10 +criterion "WeaponIsPomson" "item_name" "The Pomson 6000" "required" weight 10 +criterion "WeaponIsManmelter" "item_name" "The Manmelter" "required" weight 10 +criterion "WeaponIsWrapAssassin" "item_name" "The Wrap Assassin" "required" weight 10 +criterion "WeaponIsSpycicle" "item_name" "The Spy-cicle" "required" weight 10 +criterion "WeaponIsRainblower" "item_name" "The Rainblower" "required" weight 10 +criterion "WeaponIsScorchShot" "item_name" "The Scorch Shot" "required" weight 10 +criterion "WeaponIsLollichop" "item_name" "The Lollichop" "required" weight 10 +criterion "WeaponIsPEPBrawlerBlaster" "playerweapon" "tf_weapon_pep_brawler_blaster" "required" weight 10 +criterion "WeaponIsHandgunScoutSecondary" "playerweapon" "tf_weapon_handgun_scout_secondary" "required" weight 10 +criterion "WeaponIsAnnihilator" "item_name" "The Neon Annihilator" "required" weight 10 +criterion "WeaponIsPromoAnnihilator" "item_name" "Promo Neon Annihilator" "required" weight 10 +criterion "WeaponIsLooseCannon" "item_name" "The Loose Cannon" "required" weight 10 +criterion "WeaponIsRescueRanger" "item_name" "The Rescue Ranger" "required" weight 10 +criterion "WeaponIsShortCircuit" "item_name" "The Short Circuit" "required" weight 10 +criterion "WeaponIsScotsmansSkullcutter" "item_name" "The Scotsman's Skullcutter" "required" weight 10 +criterion "WeaponIsClassicSniperrifle" "playerweapon" "tf_weapon_sniperrifle_classic" "required" +criterion "WeaponIsRocketLauncherAirStrike" "playerweapon" "tf_weapon_rocketlauncher_airstrike" "required" +criterion "WeaponIsMutatedMilk" "item_name" "Mutated Milk" "required" weight 10 +criterion "WeaponIsDragonsFury" "item_name" "The Dragon's Fury" "required" weight 10 +criterion "WeaponIsGasCan" "item_name" "The Gas Passer" "required" weight 10 +criterion "WeaponIsSlap" "item_name" "The Hot Hand" "required" weight 10 + +//Custom healed concept and critical hit +criterion "IsBeingHealed" "beinghealed" "1" "required" +criterion "IsNotBeingHealed" "beinghealed" "!=1" "required" +criterion "IsCritical" "damagecritical" "1" "required" +criterion "IsNotDominating" "IsDominating" "!=1" "required" weight 0 + + +criterion "IsCrossHairEnemy" "crosshair_enemy" "Yes" "required" +criterion "IsNotCrossHairEnemy" "crosshair_enemy" "!=Yes" "required" + +criterion "WeaponIsMiniSentrygun" "customdeath" "minisentrygun" "required" +// Custom criterion to stop yeehaw lines when swinging with Gunslinger + getting a mini sentry kill at the same-ish time. +criterion "WeaponIsNotMiniSentrygun" "customdeath" "!=minisentrygun" "required" +criterion "WeaponIsSentrygun" "customdeath" "sentrygun" "required" +criterion "WeaponIsNotSentrygun" "customdeath" "" "required" +criterion "WeaponIsNotSentry" "customdeath" "none" "required" + +// Custom criterion to check if not scoped in, we do not want the lines to mix +criterion "Unzoomed" "sniperzoomed" "!=1" "required" +criterion "DeployedContext" "sniperzoomed" "1" "required" +criterion "ConceptFireWeapon" "Concept" "TLK_FIREWEAPON" required +criterion "ConceptFireMinigun" "Concept" "TLK_FIREMINIGUN" required +criterion "ConceptWindMinigun" "Concept" "TLK_WINDMINIGUN" required +criterion "LowHealthContext" "playerhealthfrac" "<0.25" required +// Custom stuff +criterion "CaberHealthContext" "playerhealthfrac" ">0.429" required +criterion "BonkHealthContext" "playerhealthfrac" "<0.641" required +criterion "NotLowHealth" "playerhealthfrac" ">0.5" required +// End custom +criterion "SuperHighHealthContext" "playerhealthfrac" ">1.400" required +criterion "GameRulesInWinState" "GameRound" "5" required +criterion "PlayerLostPreviousRound" "LostRound" "1" required +criterion "PlayerWonPreviousRound" "LostRound" "0" required +criterion "PlayerOnWinningTeam" "OnWinningTeam" "1" required +criterion "PlayerOnLosingTeam" "OnWinningTeam" "0" required +criterion "PreviousRoundWasTie" "PrevRoundWasTie" "1" required +criterion "PreviousRoundWasNotTie" "PrevRoundWasTie" "0" required + +criterion "IsRedTeam" "OnRedTeam" "1" required +criterion "IsBlueTeam" "OnRedTeam" "0" required + +criterion "IsFiringMinigun" "minigunfiretime" ">0.0" required +criterion "TimeFiringMinigunShort" "minigunfiretime" ">4.0,<=8.0" required +criterion "TimeFiringMinigunLong" "minigunfiretime" ">8.0,<=15.0" required +criterion "TimeFiringMinigunReallyLong" "minigunfiretime" ">15.0" required +criterion "ConceptFireMinigunTalk" "Concept" "TLK_MINIGUN_FIREWEAPON" "required" +Criterion "NotDefendOnThePointSpeech" "worldDefendOnThePointSpeech" "!=1" "required" weight 0 + +criterion "IsAprilFoolsTaunt" "IsAprilFoolsTaunt" "1" "required" weight 100 +criterion "IsHalloweenTaunt" "IsHalloweenTaunt" "1" "required" weight 100 +criterion "IsRobotCostume" "IsRobotCostume" "1" "required" weight 100 +criterion "IsFairyHeavy" "IsFairyHeavy" "1" "required" weight 100 +criterion "IsDemowolf" "IsDemowolf" "1" "required" weight 100 +criterion "IsFrankenHeavy" "IsFrankenHeavy" "1" "required" weight 100 + +criterion "IsMedicDoubleFace" "IsMedicDoubleFace" "1" "required" weight 100 +criterion "IsMedicBirdHead" "IsMedicBirdHead" "1" "required" weight 100 +criterion "IsHeavyBirdHead" "IsHeavyBirdHead" "1" "required" weight 100 +criterion "IsSoldierBirdHead" "IsSoldierBirdHead" "1" "required" weight 100 +criterion "IsSniperBirdHead" "IsSniperBirdHead" "1" "required" weight 100 +criterion "IsSoldierMaggotHat" "IsSoldierMaggotHat" "1" "required" weight 100 +criterion "IsSoldierWizardHat" "IsSoldierWizardHat" "1" "required" weight 100 +criterion "IsUnicornHead" "IsUnicornHead" "1" "required" weight 100 +criterion "IsMedicZombieBird" "IsMedicZombieBird" "1" "required" weight 100 +criterion "IsHauntedHat" "IsHauntedHat" "1" "required" weight 100 + +criterion "HasTaunt2Item_TauntEnablerTest" "loadout_slot_action" "Taunt Enabler Test" "required" + + +criterion "ConceptRequestDuel" "Concept" "TLK_REQUEST_DUEL" required +criterion "ConceptDuelRejected" "Concept" "TLK_DUEL_WAS_REJECTED" required +criterion "ConceptIAcceptDuel" "Concept" "TLK_ACCEPT_DUEL" required +criterion "ConceptDuelAccepted" "Concept" "TLK_DUEL_WAS_ACCEPTED" required + + + + +criterion "DuelTargetIsScout" "dueltargetclass" "Scout" required +criterion "DuelTargetIsSniper" "dueltargetclass" "Sniper" required +criterion "DuelTargetIsSoldier" "dueltargetclass" "Soldier" required +criterion "DuelTargetIsDemoman" "dueltargetclass" "Demoman" required +criterion "DuelTargetIsMedic" "dueltargetclass" "Medic" required +criterion "DuelTargetIsHeavy" "dueltargetclass" "Heavy" required +criterion "DuelTargetIsPyro" "dueltargetclass" "Pyro" required +criterion "DuelTargetIsSpy" "dueltargetclass" "Spy" required +criterion "DuelTargetIsEngineer" "dueltargetclass" "Engineer" required + + +criterion "ConceptRocketDestroyed" "Concept" "TLK_ROCKET_DESTOYED" required + +criterion "ConceptComboKilled" "Concept" "TLK_COMBO_KILLED" required + +// MvM criterion +criterion "IsMvMDefender" "IsMvMDefender" "1" required +criterion "ConceptMvMBombDropped" "Concept" "TLK_MVM_BOMB_DROPPED" required +criterion "ConceptMvMBombCarrierUpgrade1" "Concept" "TLK_MVM_BOMB_CARRIER_UPGRADE1" required +criterion "ConceptMvMBombCarrierUpgrade2" "Concept" "TLK_MVM_BOMB_CARRIER_UPGRADE2" required +criterion "ConceptMvMBombCarrierUpgrade3" "Concept" "TLK_MVM_BOMB_CARRIER_UPGRADE3" required +criterion "ConceptMvMDefenderDied" "Concept" "TLK_MVM_DEFENDER_DIED" required +criterion "ConceptMvMFirstBombPickup" "Concept" "TLK_MVM_FIRST_BOMB_PICKUP" required +criterion "ConceptMvMBombPickup" "Concept" "TLK_MVM_BOMB_PICKUP" required +criterion "ConceptMvMSentryBuster" "Concept" "TLK_MVM_SENTRY_BUSTER" required +criterion "ConceptMvMSentryBusterDown" "Concept" "TLK_MVM_SENTRY_BUSTER_DOWN" required +criterion "ConceptMvMSniperCallout" "Concept" "TLK_MVM_SNIPER_CALLOUT" required +criterion "ConceptMvMLastManStanding" "Concept" "TLK_MVM_LAST_MAN_STANDING" required +criterion "ConceptMvMEncourageMoney" "Concept" "TLK_MVM_ENCOURAGE_MONEY" required +criterion "ConceptMvMMoneyPickup" "Concept" "TLK_MVM_MONEY_PICKUP" required +criterion "ConceptMvMEncourageUpgrade" "Concept" "TLK_MVM_ENCOURAGE_UPGRADE" required +criterion "ConceptMvMUpgradeComplete" "Concept" "TLK_MVM_UPGRADE_COMPLETE" required +criterion "ConceptMvMGiantCallout" "Concept" "TLK_MVM_GIANT_CALLOUT" required +criterion "ConceptMvMGiantHasBomb" "Concept" "TLK_MVM_GIANT_HAS_BOMB" required +criterion "ConceptMvMGiantKilled" "Concept" "TLK_MVM_GIANT_KILLED" required +criterion "ConceptMvMGiantKilledTeammate" "Concept" "TLK_MVM_GIANT_KILLED_TEAMMATE" required +criterion "ConceptMvMSappedRobot" "Concept" "TLK_MVM_SAPPED_ROBOT" required +criterion "ConceptMvMCloseCall" "Concept" "TLK_MVM_CLOSE_CALL" required +criterion "ConceptMvMTankCallout" "Concept" "TLK_MVM_TANK_CALLOUT" required +criterion "ConceptMvMTankDead" "Concept" "TLK_MVM_TANK_DEAD" required +criterion "ConceptMvMTankDeploying" "Concept" "TLK_MVM_TANK_DEPLOYING" required +criterion "ConceptMvMAttackTheTank" "Concept" "TLK_MVM_ATTACK_THE_TANK" required +criterion "ConceptMvMTaunt" "Concept" "TLK_MVM_TAUNT" required +criterion "ConceptMvMWaveStart" "Concept" "TLK_MVM_WAVE_START" required +criterion "ConceptMvMWaveWin" "Concept" "TLK_MVM_WAVE_WIN" required +criterion "ConceptMvMWaveLose" "Concept" "TLK_MVM_WAVE_LOSE" required +criterion "ConceptMvMDeployRage" "Concept" "TLK_MVM_DEPLOY_RAGE" required + +//A Tale of Two Cities Update +criterion "ConceptMannhattanGateAttack" "Concept" "TLK_MANNHATTAN_GATE_ATK" required +criterion "ConceptMannhattanGateTake" "Concept" "TLK_MANNHATTAN_GATE_TAKE" required +criterion "ConceptMvMResurrected" "Concept" "TLK_RESURRECTED" required +criterion "ConceptMvMMedicShield" "Concept" "TLK_MEDIC_HEAL_SHIELD" required +criterion "ConceptMvMLootCommon" "Concept" "TLK_MVM_LOOT_COMMON" required +criterion "ConceptMvMLootRare" "Concept" "TLK_MVM_LOOT_RARE" required +criterion "ConceptMvMLootUltraRare" "Concept" "TLK_MVM_LOOT_ULTRARARE" required + +// Halloween 2013 +criterion "ConceptPlayerCastFireball" "Concept" "TLK_PLAYER_CAST_FIREBALL" required +criterion "ConceptPlayerCastMerasmusZap" "Concept" "TLK_PLAYER_CAST_MERASMUS_ZAP" required +criterion "ConceptPlayerCastSelfHeal" "Concept" "TLK_PLAYER_CAST_SELF_HEAL" required +criterion "ConceptPlayerCastMirv" "Concept" "TLK_PLAYER_CAST_MIRV" required +criterion "ConceptPlayerCastBlastJump" "Concept" "TLK_PLAYER_CAST_BLAST_JUMP" required +criterion "ConceptPlayerCastStealth" "Concept" "TLK_PLAYER_CAST_STEALTH" required +criterion "ConceptPlayerCastTeleport" "Concept" "TLK_PLAYER_CAST_TELEPORT" required +criterion "ConceptPlayerCastBombHeadCurse" "Concept" "TLK_PLAYER_CAST_BOMB_HEAD_CURSE" required +criterion "ConceptPlayerCastLightningBall" "Concept" "TLK_PLAYER_CAST_LIGHTNING_BALL" required +criterion "ConceptPlayerCastMovementBuff" "Concept" "TLK_PLAYER_CAST_MOVEMENT_BUFF" required +criterion "ConceptPlayerCastMonoculous" "Concept" "TLK_PLAYER_CAST_MONOCULOUS" required +criterion "ConceptPlayerCastMeteorSwarm" "Concept" "TLK_PLAYER_CAST_METEOR_SWARM" required +criterion "ConceptPlayerCastSkeletonHorde" "Concept" "TLK_PLAYER_CAST_SKELETON_HORDE" required + +criterion "ConceptPlayerSpellFireball" "Concept" "TLK_PLAYER_SPELL_FIREBALL" required +criterion "ConceptPlayerSpellMerasmusZap" "Concept" "TLK_PLAYER_SPELL_MERASMUS_ZAP" required +criterion "ConceptPlayerSpellSelfHeal" "Concept" "TLK_PLAYER_SPELL_SELF_HEAL" required +criterion "ConceptPlayerSpellMirv" "Concept" "TLK_PLAYER_SPELL_MIRV" required +criterion "ConceptPlayerSpellBlastJump" "Concept" "TLK_PLAYER_SPELL_BLAST_JUMP" required +criterion "ConceptPlayerSpellStealth" "Concept" "TLK_PLAYER_SPELL_STEALTH" required +criterion "ConceptPlayerSpellTeleport" "Concept" "TLK_PLAYER_SPELL_TELEPORT" required +criterion "ConceptPlayerSpellLightningBall" "Concept" "TLK_PLAYER_SPELL_LIGHTNING_BALL" required +criterion "ConceptPlayerSpellMovementBuff" "Concept" "TLK_PLAYER_SPELL_MOVEMENT_BUFF" required +criterion "ConceptPlayerSpellMonoculous" "Concept" "TLK_PLAYER_SPELL_MONOCULOUS" required +criterion "ConceptPlayerSpellMeteorSwarm" "Concept" "TLK_PLAYER_SPELL_METEOR_SWARM" required +criterion "ConceptPlayerSpellSkeletonHorde" "Concept" "TLK_PLAYER_SPELL_SKELETON_HORDE" required + +criterion "ConceptPlayerSpellPickupCommon" "Concept" "TLK_PLAYER_SPELL_PICKUP_COMMON" required +criterion "ConceptPlayerSpellPickupRare" "Concept" "TLK_PLAYER_SPELL_PICKUP_RARE" required +criterion "ConceptPlayerHelltowerMidnight" "Concept" "TLK_PLAYER_HELLTOWER_MIDNIGHT" required +criterion "ConceptPlayerSkeletonKingAppear" "Concept" "TLK_PLAYER_SKELETON_KING_APPEAR" required + +criterion "IsMapHelltower" "map" "plr_hightower_event" required +criterion "IsInHell" "IsInHell" "1" required +criterion "IsNotInHell" "IsInHell" "0" required + +criterion "IsFirstRound" "RoundsPlayed" "<1" required +criterion "IsNotFirstRound" "RoundsPlayed" ">0" required +criterion "IsComp6v6" "IsComp6v6" "1" required +criterion "IsNotComp6v6" "IsComp6v6" "0" required +criterion "IsCompWinner" "IsCompWinner" "1" required + +criterion "ConceptPlayerGameOverComp" "Concept" "TLK_GAME_OVER_COMP" required +criterion "ConceptPlayerMatchOverComp" "Concept" "TLK_MATCH_OVER_COMP" required + +// Test rules +#include "talker/tf.txt" +#include "talker/Heavy.txt" +#include "talker/Scout.txt" +#include "talker/Engineer.txt" +#include "talker/Sniper.txt" +#include "talker/Soldier.txt" +#include "talker/Demoman.txt" +#include "talker/Medic.txt" +#include "talker/Pyro.txt" +#include "talker/Spy.txt" +#include "talker/events.txt" +#include "talker/Heavy_auto.txt" +#include "talker/Scout_auto.txt" +#include "talker/Engineer_auto.txt" +#include "talker/Sniper_auto.txt" +#include "talker/Soldier_auto.txt" +#include "talker/Demoman_auto.txt" +#include "talker/Medic_auto.txt" +#include "talker/Pyro_auto.txt" +#include "talker/Spy_auto.txt" + diff --git a/game/tc2/scripts/talker/scout.txt b/game/tc2/scripts/talker/scout.txt new file mode 100644 index 00000000000..11ea74363be --- /dev/null +++ b/game/tc2/scripts/talker/scout.txt @@ -0,0 +1,1896 @@ +//-------------------------------------------------------------------------------------------------------------- +// Scout Response Rule File +//-------------------------------------------------------------------------------------------------------------- + +Criterion "ScoutIsKillSpeechObject" "ScoutKillSpeechObject" "1" "required" weight 0 +Criterion "ScoutIsNotStillonFire" "ScoutOnFire" "!=1" "required" weight 0 +Criterion "ScoutIsStillonFire" "ScoutOnFire" "1" "required" weight 0 +Criterion "ScoutNotKillSpeech" "ScoutKillSpeech" "!=1" "required" weight 0 +Criterion "ScoutNotKillSpeechMelee" "ScoutKillSpeechMelee" "!=1" "required" weight 0 +Criterion "ScoutNotKillSpeechMeleeFat" "ScoutKillSpeechMeleeFat" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Criterion "ScoutNotSaidHealThanks" "ScoutSaidHealThanks" "!=1" "required" +Criterion "IsHelpCapScout" "ScoutHelpCap" "1" "required" weight 0 +Criterion "NotSaidScoutHitBallSpeech" "ScoutHitBallSpeech" "!=1" "required" +Criterion "NotScoutGrabbedIntelligence" "ScoutGrabbedIntelligence" "!=1" "required" +Criterion "ScoutIsNotInvuln" "ScoutInvuln" "!=1" "required" +//Custom stuff +Criterion "ScoutNotInvulnerableSpeech" "ScoutInvulnerableSpeech" "!=1" "required" weight 0 +Criterion "ScoutNotAssistSpeech" "ScoutAssistSpeech" "!=1" "required" weight 0 +Criterion "ScoutNotDoubleJumpSpeech" "ScoutDoubleJumpSpeech" "!=1" "required" weight 0 +Criterion "ScoutNotAwardSpeech" "ScoutAwardSpeech" "!=1" "required" weight 0 +Criterion "ScoutNotDrinkReadySpeech" "ScoutDrinkReadySpeech" "!=1" "required" weight 0 +Criterion "ScoutIsNotCrit" "ScoutIsCrit" "1" "required" weight 0 +Criterion "ScoutHasFired" "ScoutFired" "1" "required" weight 0 + +Response PlayerCloakedSpyDemomanScout +{ + scene "scenes/Player/Scout/low/386.vcd" +} +Rule PlayerCloakedSpyDemomanScout +{ + criteria ConceptPlayerCloakedSpy IsScout IsOnDemoman + Response PlayerCloakedSpyDemomanScout +} + +Response PlayerCloakedSpyEngineerScout +{ + scene "scenes/Player/Scout/low/389.vcd" +} +Rule PlayerCloakedSpyEngineerScout +{ + criteria ConceptPlayerCloakedSpy IsScout IsOnEngineer + Response PlayerCloakedSpyEngineerScout +} + +Response PlayerCloakedSpyHeavyScout +{ + scene "scenes/Player/Scout/low/384.vcd" +} +Rule PlayerCloakedSpyHeavyScout +{ + criteria ConceptPlayerCloakedSpy IsScout IsOnHeavy + Response PlayerCloakedSpyHeavyScout +} + +Response PlayerCloakedSpyMedicScout +{ + scene "scenes/Player/Scout/low/388.vcd" +} +Rule PlayerCloakedSpyMedicScout +{ + criteria ConceptPlayerCloakedSpy IsScout IsOnMedic + Response PlayerCloakedSpyMedicScout +} + +Response PlayerCloakedSpyPyroScout +{ + scene "scenes/Player/Scout/low/385.vcd" +} +Rule PlayerCloakedSpyPyroScout +{ + criteria ConceptPlayerCloakedSpy IsScout IsOnPyro + Response PlayerCloakedSpyPyroScout +} + +Response PlayerCloakedSpyScoutScout +{ + scene "scenes/Player/Scout/low/382.vcd" +} +Rule PlayerCloakedSpyScoutScout +{ + criteria ConceptPlayerCloakedSpy IsScout IsOnScout + Response PlayerCloakedSpyScoutScout +} + +Response PlayerCloakedSpySniperScout +{ + scene "scenes/Player/Scout/low/390.vcd" +} +Rule PlayerCloakedSpySniperScout +{ + criteria ConceptPlayerCloakedSpy IsScout IsOnSniper + Response PlayerCloakedSpySniperScout +} + +Response PlayerCloakedSpySoldierScout +{ + scene "scenes/Player/Scout/low/383.vcd" +} +Rule PlayerCloakedSpySoldierScout +{ + criteria ConceptPlayerCloakedSpy IsScout IsOnSoldier + Response PlayerCloakedSpySoldierScout +} + +Response PlayerCloakedSpySpyScout +{ + scene "scenes/Player/Scout/low/387.vcd" +} +Rule PlayerCloakedSpySpyScout +{ + criteria ConceptPlayerCloakedSpy IsScout IsOnSpy + Response PlayerCloakedSpySpyScout +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech +//-------------------------------------------------------------------------------------------------------------- + +// Custom achievement stuff +Response AwardScout +{ + scene "scenes/Player/Scout/low/2501.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2502.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2503.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2504.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2505.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2507.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2509.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2510.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2511.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2681.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2682.vcd" predelay "2.5" +} +Rule AwardScout +{ + criteria ConceptAchievementAward IsScout ScoutNotAwardSpeech + ApplyContext "ScoutAwardSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response AwardScout +} +//End custom achievement + +Response HealThanksScout +{ + scene "scenes/Player/Scout/low/510.vcd" + scene "scenes/Player/Scout/low/511.vcd" + scene "scenes/Player/Scout/low/512.vcd" +} +Rule HealThanksScout +{ + criteria ConceptMedicChargeStopped IsScout SuperHighHealthContext ScoutNotSaidHealThanks 50PercentChance + ApplyContext "ScoutSaidHealThanks:1:20" + Response HealThanksScout +} + +Response PlayerRoundStartScout +{ + scene "scenes/Player/Scout/low/367.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/369.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/370.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/371.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/368.vcd" predelay "1.0, 5.0" +} +Rule PlayerRoundStartScout +{ + criteria ConceptPlayerRoundStart IsScout + Response PlayerRoundStartScout +} + +Response PlayerCappedIntelligenceScout +{ + scene "scenes/Player/Scout/low/359.vcd" + scene "scenes/Player/Scout/low/360.vcd" + scene "scenes/Player/Scout/low/361.vcd" + scene "scenes/Player/Scout/low/1289.vcd" +} +Rule PlayerCappedIntelligenceScout +{ + criteria ConceptPlayerCapturedIntelligence IsScout + Response PlayerCappedIntelligenceScout +} + +Response PlayerCapturedPointScout +{ + scene "scenes/Player/Scout/low/356.vcd" + scene "scenes/Player/Scout/low/1280.vcd" + scene "scenes/Player/Scout/low/357.vcd" + scene "scenes/Player/Scout/low/358.vcd" +} +Rule PlayerCapturedPointScout +{ + criteria ConceptPlayerCapturedPoint IsScout + Response PlayerCapturedPointScout +} + +Response PlayerGrabbedIntelligenceScout +{ + scene "scenes/Player/Scout/low/480.vcd" +} +Rule PlayerGrabbedIntelligenceScout +{ + criteria ConceptPlayerGrabbedIntelligence IsScout NotScoutGrabbedIntelligence 10PercentChance + ApplyContext "ScoutGrabbedIntelligence:1:30" + Response PlayerGrabbedIntelligenceScout +} + +Response PlayerSuddenDeathScout +{ + scene "scenes/Player/Scout/low/419.vcd" + scene "scenes/Player/Scout/low/420.vcd" + scene "scenes/Player/Scout/low/421.vcd" + scene "scenes/Player/Scout/low/422.vcd" + scene "scenes/Player/Scout/low/423.vcd" + scene "scenes/Player/Scout/low/424.vcd" + scene "scenes/Player/Scout/low/425.vcd" + scene "scenes/Player/Scout/low/426.vcd" + scene "scenes/Player/Scout/low/427.vcd" + scene "scenes/Player/Scout/low/428.vcd" + scene "scenes/Player/Scout/low/430.vcd" +} +Rule PlayerSuddenDeathScout +{ + criteria ConceptPlayerSuddenDeathStart IsScout + Response PlayerSuddenDeathScout +} + +Response PlayerStalemateScout +{ + scene "scenes/Player/Scout/low/362.vcd" + scene "scenes/Player/Scout/low/1281.vcd" + scene "scenes/Player/Scout/low/363.vcd" + scene "scenes/Player/Scout/low/364.vcd" +} +Rule PlayerStalemateScout +{ + criteria ConceptPlayerStalemate IsScout + Response PlayerStalemateScout +} + +Response PlayerTeleporterThanksScout +{ + scene "scenes/Player/Scout/low/513.vcd" + scene "scenes/Player/Scout/low/514.vcd" + scene "scenes/Player/Scout/low/515.vcd" +} +Rule PlayerTeleporterThanksScout +{ + criteria ConceptTeleported IsNotEngineer IsScout 30PercentChance + Response PlayerTeleporterThanksScout +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Cart +//-------------------------------------------------------------------------------------------------------------- +Response CartMovingBackwardsDefenseScout +{ + scene "scenes/Player/Scout/low/2513.vcd" + scene "scenes/Player/Scout/low/2514.vcd" + scene "scenes/Player/Scout/low/2512.vcd" + scene "scenes/Player/Scout/low/2515.vcd" + scene "scenes/Player/Scout/low/2516.vcd" + scene "scenes/Player/Scout/low/2517.vcd" +} +Rule CartMovingBackwardsDefenseScout +{ + criteria ConceptCartMovingBackward IsOnDefense IsScout ScoutNotSaidCartMovingBackwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardD:1:20" + Response CartMovingBackwardsDefenseScout +} + +Response CartMovingBackwardsOffenseScout +{ + scene "scenes/Player/Scout/low/2518.vcd" + scene "scenes/Player/Scout/low/2519.vcd" + scene "scenes/Player/Scout/low/2520.vcd" + scene "scenes/Player/Scout/low/2522.vcd" + scene "scenes/Player/Scout/low/2524.vcd" + scene "scenes/Player/Scout/low/2709.vcd" + scene "scenes/Player/Scout/low/2521.vcd" + scene "scenes/Player/Scout/low/2523.vcd" +} +Rule CartMovingBackwardsOffenseScout +{ + criteria ConceptCartMovingBackward IsOnOffense IsScout ScoutNotSaidCartMovingBackwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardO:1:20" + Response CartMovingBackwardsOffenseScout +} + +Response CartMovingForwardDefenseScout +{ + scene "scenes/Player/Scout/low/2525.vcd" + scene "scenes/Player/Scout/low/2526.vcd" + scene "scenes/Player/Scout/low/2527.vcd" + scene "scenes/Player/Scout/low/2528.vcd" + scene "scenes/Player/Scout/low/2529.vcd" + scene "scenes/Player/Scout/low/2530.vcd" +} +Rule CartMovingForwardDefenseScout +{ + criteria ConceptCartMovingForward IsOnDefense IsScout ScoutNotSaidCartMovingForwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardD:1:20" + Response CartMovingForwardDefenseScout +} + +Response CartMovingForwardOffenseScout +{ + scene "scenes/Player/Scout/low/2532.vcd" + scene "scenes/Player/Scout/low/2533.vcd" + scene "scenes/Player/Scout/low/2534.vcd" + scene "scenes/Player/Scout/low/2535.vcd" + scene "scenes/Player/Scout/low/2537.vcd" + scene "scenes/Player/Scout/low/2536.vcd" + scene "scenes/Player/Scout/low/2538.vcd" + scene "scenes/Player/Scout/low/2540.vcd" + scene "scenes/Player/Scout/low/2541.vcd" + scene "scenes/Player/Scout/low/2539.vcd" + scene "scenes/Player/Scout/low/2542.vcd" + scene "scenes/Player/Scout/low/2543.vcd" +} +Rule CartMovingForwardOffenseScout +{ + criteria ConceptCartMovingForward IsOnOffense IsScout ScoutNotSaidCartMovingForwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardO:1:20" + Response CartMovingForwardOffenseScout +} + +Response CartMovingStoppedDefenseScout +{ + scene "scenes/Player/Scout/low/2544.vcd" + scene "scenes/Player/Scout/low/2545.vcd" + scene "scenes/Player/Scout/low/2546.vcd" +} +Rule CartMovingStoppedDefenseScout +{ + criteria ConceptCartMovingStopped IsOnDefense IsScout ScoutNotSaidCartMovingStoppedD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedD:1:20" + Response CartMovingStoppedDefenseScout +} + +Response CartMovingStoppedOffenseScout +{ + scene "scenes/Player/Scout/low/2548.vcd" + scene "scenes/Player/Scout/low/2549.vcd" + scene "scenes/Player/Scout/low/2550.vcd" +} +Rule CartMovingStoppedOffenseScout +{ + criteria ConceptCartMovingStopped IsOnOffense IsScout ScoutNotSaidCartMovingStoppedO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedO:1:20" + Response CartMovingStoppedOffenseScout +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Combat +//-------------------------------------------------------------------------------------------------------------- +Response DefendOnThePointScout +{ + scene "scenes/Player/Scout/low/489.vcd" + scene "scenes/Player/Scout/low/1305.vcd" +} +Rule DefendOnThePointScout +{ + criteria ConceptFireWeapon IsScout IsOnFriendlyControlPoint NotDefendOnThePointSpeech + ApplyContext "DefendOnThePointSpeech:1:30" + applycontexttoworld + Response DefendOnThePointScout +} + +// Custom stuff +Response InvulnerableSpeechScout +{ + scene "scenes/Player/Scout/low/486.vcd" + scene "scenes/Player/Scout/low/491.vcd" + scene "scenes/Player/Scout/low/2505.vcd" + scene "scenes/Player/Scout/low/499.vcd" +} +Rule InvulnerableSpeechScout +{ + criteria ConceptFireWeapon IsScout IsInvulnerable ScoutNotInvulnerableSpeech + ApplyContext "ScoutInvulnerableSpeech:1:30" + Response InvulnerableSpeechScout +} + +Response KilledPlayerAssistAutoScout +{ + scene "scenes/Player/Scout/low/487.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/488.vcd" predelay "2.5" +} +Rule KilledPlayerAssistAutoScout +{ + criteria ConceptKilledPlayer IsScout IsBeingHealed IsManyRecentKills KilledPlayerDelay 20PercentChance ScoutNotAssistSpeech + ApplyContext "ScoutAssistSpeech:1:20" + Response KilledPlayerAssistAutoScout +} +// End custom stuff + + +Response KilledPlayerManyScout +{ + scene "scenes/Player/Scout/low/396.vcd" + scene "scenes/Player/Scout/low/1297.vcd" + scene "scenes/Player/Scout/low/432.vcd" + scene "scenes/Player/Scout/low/433.vcd" + scene "scenes/Player/Scout/low/1295.vcd" + scene "scenes/Player/Scout/low/1296.vcd" + scene "scenes/Player/Scout/low/434.vcd" + scene "scenes/Player/Scout/low/435.vcd" + scene "scenes/Player/Scout/low/493.vcd" + scene "scenes/Player/Scout/low/506.vcd" +} +Rule KilledPlayerManyScout +{ + criteria ConceptKilledPlayer IsManyRecentKills 30PercentChance IsWeaponPrimary KilledPlayerDelay ScoutNotKillSpeech IsScout + ApplyContext "ScoutKillSpeech:1:5" + Response KilledPlayerManyScout +} + +// Custom modified stuff +// Modified to split into groups +// Baseball bats use generic and bat lines +// Candy, Basher, Fish and Mace will use their own lines in addition to the generic lines + +Response KilledPlayerMeleeBatScout +{ + scene "scenes/Player/Scout/low/479.vcd" + scene "scenes/Player/Scout/low/482.vcd" + scene "scenes/Player/Scout/low/481.vcd" + scene "scenes/Player/Scout/low/483.vcd" + scene "scenes/Player/Scout/low/501.vcd" +} + +Response KilledPlayerMeleeGenericScout +{ + scene "scenes/Player/Scout/low/476.vcd" + scene "scenes/Player/Scout/low/477.vcd" + scene "scenes/Player/Scout/low/484.vcd" + scene "scenes/Player/Scout/low/498.vcd" +} + +// This rule excludes all weapons that are not the Sandman or vanilla bat + +Rule KilledPlayerMeleeBatScout +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee WeaponIsNotCandy WeaponIsNotBasher WeaponIsNotGunbai WeaponIsNotMace WeaponIsNotFish WeaponIsNotTRBlade WeaponIsNotSaxxy ScoutNotKillSpeechMelee IsScout + ApplyContext "ScoutKillSpeechMelee:1:10" + Response KilledPlayerMeleeBatScout + Response KilledPlayerMeleeGenericScout +} + +Response KilledPlayerMeleeBasherScout +{ + scene "scenes/player/Scout/low/2586.vcd" + scene "scenes/player/Scout/low/2643.vcd" +} + +Rule KilledPlayerMeleeBasherScout +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee WeaponIsBasher ScoutNotKillSpeechMelee IsScout + ApplyContext "ScoutKillSpeechMelee:1:10" + Response KilledPlayerMeleeBasherScout + Response KilledPlayerMeleeGenericScout +} + +Response KilledPlayerMeleeCandyScout +{ + scene "scenes/player/Scout/low/377.vcd" + scene "scenes/player/Scout/low/503.vcd" + scene "scenes/player/Scout/low/505.vcd" +} + +Rule KilledPlayerMeleeCandyScout +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee WeaponIsCandy ScoutNotKillSpeechMelee IsScout + ApplyContext "ScoutKillSpeechMelee:1:10" + Response KilledPlayerMeleeCandyScout + Response KilledPlayerMeleeGenericScout +} + +Response KilledPlayerMeleeMaceScout +{ + scene "scenes/player/Scout/low/2560.vcd" + scene "scenes/player/Scout/low/1289.vcd" + scene "scenes/player/Scout/low/2706.vcd" +} + +Rule KilledPlayerMeleeMaceScout +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee WeaponIsMace ScoutNotKillSpeechMelee IsScout + ApplyContext "ScoutKillSpeechMelee:1:10" + Response KilledPlayerMeleeMaceScout + Response KilledPlayerMeleeGenericScout +} + +Response KilledPlayerMeleeFishScout +{ + scene "scenes/player/Scout/low/433.vcd" + scene "scenes/player/Scout/low/435.vcd" + scene "scenes/player/Scout/low/1308.vcd" + scene "scenes/player/Scout/low/2554.vcd" +} + +Rule KilledPlayerMeleeFishScout +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee WeaponIsHolyMackerel ScoutNotKillSpeechMelee IsScout + ApplyContext "ScoutKillSpeechMelee:1:10" + Response KilledPlayerMeleeFishScout + Response KilledPlayerMeleeGenericScout +} + +Rule KilledPlayerMeleeFestiveFishScout +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee WeaponIsFestiveHolyMackerel ScoutNotKillSpeechMelee IsScout + ApplyContext "ScoutKillSpeechMelee:1:10" + Response KilledPlayerMeleeFishScout + Response KilledPlayerMeleeGenericScout +} + +// A rule for the Scout Gunbai +// it will share with the Fish as getting killed by this must be very humiliating +// even moreso than the Fish +Rule KilledPlayerMeleeGunbaiScout +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee WeaponIsGunbai ScoutNotKillSpeechMelee IsScout + ApplyContext "ScoutKillSpeechMelee:1:10" + Response KilledPlayerMeleeFishScout + Response KilledPlayerMeleeGenericScout +} + +Rule KilledPlayerMeleeSwordScout +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee WeaponIsTRBlade ScoutNotKillSpeechMelee IsScout + ApplyContext "ScoutKillSpeechMelee:1:10" + Response KilledPlayerMeleeMaceScout + Response KilledPlayerMeleeGenericScout +} + + +Rule KilledPlayerMeleeSaxxyScout +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee WeaponIsSaxxy ScoutNotKillSpeechMelee IsScout + ApplyContext "ScoutKillSpeechMelee:1:10" + Response KilledPlayerMeleeFishScout + Response KilledPlayerMeleeGenericScout +} + +Response KilledPlayerMeleeScoutFatScout +{ + scene "scenes/Player/Scout/low/475.vcd" +} +Rule KilledPlayerMeleeScoutFatScout +{ + criteria ConceptKilledPlayer KilledPlayerDelay 75PercentChance IsWeaponMelee ScoutNotKillSpeechMeleeFat IsScout IsVictimHeavy + ApplyContext "ScoutKillSpeechMeleeFat:1:10" + Response KilledPlayerMeleeScoutFatScout +} + +Response MedicFollowScout +{ + scene "scenes/Player/Scout/low/2574.vcd" predelay ".25" + scene "scenes/Player/Scout/low/2575.vcd" predelay ".25" + scene "scenes/Player/Scout/low/2577.vcd" predelay ".25" + scene "scenes/Player/Scout/low/2578.vcd" predelay ".25" +} +Rule MedicFollowScout +{ + criteria ConceptPlayerMedic IsOnMedic IsScout IsNotCrossHairEnemy NotLowHealth ScoutIsNotStillonFire + ApplyContext "ScoutKillSpeech:1:10" + Response MedicFollowScout +} + +Response ScoutJarateHit +{ + scene "scenes/Player/Scout/low/364.vcd" + scene "scenes/Player/Scout/low/426.vcd" + scene "scenes/Player/Scout/low/450.vcd" + scene "scenes/Player/Scout/low/451.vcd" +} +Rule ScoutJarateHit +{ + criteria ConceptJarateHit IsScout 50PercentChance + Response ScoutJarateHit +} + +Response PlayerBeingShotInvincibleScout +{ + scene "scenes/Player/Scout/low/2632.vcd" + scene "scenes/Player/Scout/low/2631.vcd" + scene "scenes/Player/Scout/low/2636.vcd" + scene "scenes/Player/Scout/low/2629.vcd" + scene "scenes/Player/Scout/low/2690.vcd" + scene "scenes/Player/Scout/low/2638.vcd" + scene "scenes/Player/Scout/low/2630.vcd" + scene "scenes/Player/Scout/low/2634.vcd" + scene "scenes/Player/Scout/low/2635.vcd" + scene "scenes/Player/Scout/low/2637.vcd" + scene "scenes/Player/Scout/low/2737.vcd" + scene "scenes/Player/Scout/low/2738.vcd" + scene "scenes/Player/Scout/low/2739.vcd" + scene "scenes/Player/Scout/low/2740.vcd" + scene "scenes/Player/Scout/low/2741.vcd" + scene "scenes/Player/Scout/low/2742.vcd" + scene "scenes/Player/Scout/low/2743.vcd" + scene "scenes/Player/Scout/low/2744.vcd" + scene "scenes/Player/Scout/low/2745.vcd" + scene "scenes/Player/Scout/low/2746.vcd" + scene "scenes/Player/Scout/low/2747.vcd" + scene "scenes/Player/Scout/low/2748.vcd" + scene "scenes/Player/Scout/low/2749.vcd" + scene "scenes/Player/Scout/low/2750.vcd" + scene "scenes/Player/Scout/low/2751.vcd" + scene "scenes/Player/Scout/low/2752.vcd" + scene "scenes/Player/Scout/low/2753.vcd" + scene "scenes/Player/Scout/low/2754.vcd" + scene "scenes/Player/Scout/low/2755.vcd" + scene "scenes/Player/Scout/low/2756.vcd" + scene "scenes/Player/Scout/low/2757.vcd" + scene "scenes/Player/Scout/low/2758.vcd" + scene "scenes/Player/Scout/low/2759.vcd" + scene "scenes/Player/Scout/low/2760.vcd" + scene "scenes/Player/Scout/low/2761.vcd" + scene "scenes/Player/Scout/low/2762.vcd" + scene "scenes/Player/Scout/low/2728.vcd" + scene "scenes/Player/Scout/low/2771.vcd" + scene "scenes/Player/Scout/low/2729.vcd" + scene "scenes/Player/Scout/low/2730.vcd" +} +Rule PlayerBeingShotInvincibleScout +{ + criteria ConceptDodgeShot IsScout LoadoutIsDrink // Exclude Crit-a-Cola + Response PlayerBeingShotInvincibleScout +} + +Response PlayerDodgingScout +{ + scene "scenes/Player/Scout/low/2505.vcd" predelay "2,3" + scene "scenes/Player/Scout/low/2615.vcd" predelay "2,3" + scene "scenes/Player/Scout/low/2616.vcd" predelay "2,3" + scene "scenes/Player/Scout/low/2628.vcd" predelay "2,3" + scene "scenes/Player/Scout/low/2621.vcd" predelay "2,3" +} +Rule PlayerDodgingScout +{ + criteria ConceptDodging IsScout ScoutIsNotInvuln LoadoutIsDrink // Exclude Crit-a-Cola + ApplyContext "ScoutInvuln:1:20" + Response PlayerDodgingScout +} + +// Custom Stuff +Response PlayerDoubleJumpScout +{ + scene "scenes/Player/Scout/low/2608.vcd" + scene "scenes/Player/Scout/low/2610.vcd" + scene "scenes/Player/Scout/low/2609.vcd" + scene "scenes/Player/Scout/low/2611.vcd" +} +Rule PlayerDoubleJumpScout +{ + criteria ConceptFireWeapon IsScout IsDoubleJumping WeaponIsScattergunDouble 20PercentChance + Response PlayerDoubleJumpScout +} +Rule PlayerDoubleJumpScoutFestive +{ + criteria ConceptFireWeapon IsScout IsDoubleJumping WeaponIsScattergunDoubleFestive 20PercentChance + Response PlayerDoubleJumpScout +} + +// Double jump response +Response DoubleJumpScout +{ + scene "scenes/Player/Scout/low/2624.vcd" + scene "scenes/Player/Scout/low/2625.vcd" + scene "scenes/Player/Scout/low/2627.vcd" + scene "scenes/Player/Scout/low/2685.vcd" + scene "scenes/Player/Scout/low/2689.vcd" +} +Rule DoubleJumpScout +{ + criteria ConceptDoubleJump IsScout IsARecentKill IsNotDoubleJumping WeaponIsNotScattergunDouble ScoutHasFired ScoutNotDoubleJumpSpeech 2PercentChance + ApplyContext "ScoutDoubleJumpSpeech:1:90" + Response DoubleJumpScout +} + +// Invincible not ready +Response DrinkNotReady +{ + scene "scenes/player/Scout/low/2732.vcd" + scene "scenes/player/Scout/low/2733.vcd" + scene "scenes/player/Scout/low/2734.vcd" + scene "scenes/player/Scout/low/2774.vcd" + scene "scenes/player/Scout/low/2775.vcd" + scene "scenes/player/Scout/low/2776.vcd" +} +Rule DrinkNotReady +{ + criteria ConceptPain IsScout WeaponIsLunchboxDrink BonkHealthContext ScoutNotDrinkReadySpeech LoadoutIsDrink // Exclude Crit-a-Cola + ApplyContext "ScoutDrinkReadySpeech:1:5" + Response DrinkNotReady +} + +// Crit-a-Cola lines +// +// Explanation: +// +// When the player drinks the cola, a context called ScoutIsCrit is set to 1 for 3-ish seconds in tf.txt (saves having the rule duped here) +// This is then picked up by the Rule PlayerCritColaVocalScout, which checks if the player has fired their weapon. +// If they have fired, then the rule checks the ScoutIsNotCrit, which has just been set to 1 during the drinking +// of the cola. Therefore, if the player fires during this period, they will say the response. +// +// We then changed the PostTired response for the cola for teh lulz. +// +// This is a tricky workaround, but necessary as we cannot 'layer' vcds (i.e. play one vcd on top of the other) + +// These are the reesponses we play when firing under the effects. +Response PlayerCritColaVocalScout +{ + scene "scenes/player/Scout/low/507.vcd" + scene "scenes/player/Scout/low/2510.vcd" + scene "scenes/player/Scout/low/396.vcd" +} +Rule PlayerCritColaVocalScout +{ + criteria ConceptFireWeapon IsScout LoadoutIsCritDrink ScoutIsNotCrit // The crit context is read in here via this criterion, which is set at the top of the file + Response PlayerCritColaVocalScout +} + +// Here we alter what he says after the effects finish. +// Note this is 50PercentChance, so he has 50% chance of just doing the normal tired breathing. +Response PostCritScout +{ + scene "scenes/player/Scout/low/2734.vcd" + scene "scenes/player/Scout/low/2774.vcd" + scene "scenes/player/Scout/low/2775.vcd" + scene "scenes/player/Scout/low/2776.vcd" +} + +Rule PostCritScout +{ + criteria ConceptTired IsScout 50PercentChance LoadoutIsCritDrink + Response PostCritScout +} + +// Milk toss +Response MilkLaunchScout +{ + scene "scenes/player/Scout/low/504.vcd" + scene "scenes/player/Scout/low/2705.vcd" + scene "scenes/player/Scout/low/2604.vcd" +} +Rule MilkLaunchScout +{ + criteria ConceptJarateLaunch IsScout 50PercentChance + Response MilkLaunchScout +} + +// End custom + +Response PlayerKilledCapperScout +{ + scene "scenes/Player/Scout/low/359.vcd" + scene "scenes/Player/Scout/low/372.vcd" + scene "scenes/Player/Scout/low/373.vcd" + scene "scenes/Player/Scout/low/454.vcd" + scene "scenes/Player/Scout/low/488.vcd" + scene "scenes/Player/Scout/low/491.vcd" + scene "scenes/Player/Scout/low/499.vcd" + scene "scenes/Player/Scout/low/1308.vcd" +} +Rule PlayerKilledCapperScout +{ + criteria ConceptCapBlocked IsScout + ApplyContext "ScoutKillSpeech:1:10" + Response PlayerKilledCapperScout +} + +// Custom stuff +// The other 2 unimplemented dominations do not have respective vcds. +// Will build them sometime later. +Response PlayerKilledDominatingScout +{ + scene "scenes/Player/Scout/low/2551.vcd" predelay "2.5" + scene "scenes/player/Scout/low/2687.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2764.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2765.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingScout +{ + criteria ConceptKilledPlayer IsScout IsDominated 30PercentChance + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingScout +} + +Response PlayerKilledDominatingBatScout +{ + scene "scenes/player/scout/low/2648.vcd" predelay "2.5" + scene "scenes/player/scout/low/2643.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingBatScout +{ + criteria ConceptKilledPlayer IsScout IsDominated IsWeaponMelee + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingBatScout +} +//End custom + +Response PlayerKilledDominatingDemomanScout +{ + scene "scenes/Player/Scout/low/2763.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2649.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2564.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2565.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2679.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2680.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2678.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingDemomanScout +{ + criteria ConceptKilledPlayer IsScout IsDominated IsVictimDemoman + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingDemomanScout +} + +Response PlayerKilledDominatingEngineerScout +{ + scene "scenes/Player/Scout/low/2766.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2556.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2675.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2676.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2677.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2710.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2711.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingEngineerScout +{ + criteria ConceptKilledPlayer IsScout IsDominated IsVictimEngineer + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingEngineerScout +} + +Response PlayerKilledDominatingHeavyScout +{ + scene "scenes/Player/Scout/low/2553.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2646.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2647.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2557.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2558.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2655.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2656.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2657.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2659.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2660.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2693.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2712.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2713.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2642.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingHeavyScout +{ + criteria ConceptKilledPlayer IsScout IsDominated IsVictimHeavy + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingHeavyScout +} + +Response PlayerKilledDominatingMedicScout +{ + scene "scenes/Player/Scout/low/2714.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2715.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2716.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2736.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2665.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2559.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2641.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingMedicScout +{ + criteria ConceptKilledPlayer IsScout IsDominated IsVictimMedic + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingMedicScout +} + +Response PlayerKilledDominatingPyroScout +{ + scene "scenes/player/Scout/low/2688.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2644.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2560.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2673.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2674.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2725.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2726.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2718.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingPyroScout +{ + criteria ConceptKilledPlayer IsScout IsDominated IsVictimPyro + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingPyroScout +} + +Response PlayerKilledDominatingScoutScout +{ + scene "scenes/Player/Scout/low/2555.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2645.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2691.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2719.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2554.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2654.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2768.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2566.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2666.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2667.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingScoutScout +{ + criteria ConceptKilledPlayer IsScout IsDominated IsVictimScout + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingScoutScout +} + +Response PlayerKilledDominatingSniperScout +{ + scene "scenes/Player/Scout/low/2686.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2567.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2668.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2672.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2769.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2770.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSniperScout +{ + criteria ConceptKilledPlayer IsScout IsDominated IsVictimSniper + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSniperScout +} + +Response PlayerKilledDominatingSoldierScout +{ + scene "scenes/Player/Scout/low/2562.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2669.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2670.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2671.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2720.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2721.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSoldierScout +{ + criteria ConceptKilledPlayer IsScout IsDominated IsVictimSoldier + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSoldierScout +} + +Response PlayerKilledDominatingSpyScout +{ + scene "scenes/Player/Scout/low/2682.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2552.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2563.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2661.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2662.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2663.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSpyScout +{ + criteria ConceptKilledPlayer IsScout IsDominated IsVictimSpy + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSpyScout +} + +Response PlayerKilledForRevengeScout +{ + scene "scenes/Player/Scout/low/2681.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/374.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2641.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2706.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/453.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2586.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2587.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2588.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2589.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2590.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2591.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2592.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2593.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/2594.vcd" predelay "2.5" + scene "scenes/Player/Scout/low/486.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeScout +{ + criteria ConceptKilledPlayer IsScout IsRevenge + ApplyContext "ScoutKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeScout +} + +Response PlayerKilledObjectScout +{ + scene "scenes/Player/Scout/low/485.vcd" +} +Rule PlayerKilledObjectScout +{ + criteria ConceptKilledObject IsScout 30PercentChance IsARecentKill + ApplyContext "ScoutKillSpeechObject:1:30" + Response PlayerKilledObjectScout +} + +Response PlayerStunBallHitScout +{ + scene "scenes/Player/Scout/low/2767.vcd" + scene "scenes/Player/Scout/low/2597.vcd" + scene "scenes/Player/Scout/low/2598.vcd" + scene "scenes/Player/Scout/low/2599.vcd" + scene "scenes/Player/Scout/low/2600.vcd" + scene "scenes/Player/Scout/low/2601.vcd" + scene "scenes/Player/Scout/low/2602.vcd" + scene "scenes/Player/Scout/low/2684.vcd" + scene "scenes/Player/Scout/low/2694.vcd" + scene "scenes/Player/Scout/low/2695.vcd" + scene "scenes/Player/Scout/low/2700.vcd" + scene "scenes/Player/Scout/low/2702.vcd" + scene "scenes/Player/Scout/low/2705.vcd" + scene "scenes/Player/Scout/low/2707.vcd" + scene "scenes/Player/Scout/low/2697.vcd" + scene "scenes/Player/Scout/low/2701.vcd" +} +Rule PlayerStunBallHitScout +{ + criteria ConceptStunnedTarget IsScout NotSaidScoutHitBallSpeech 50PercentChance + Response PlayerStunBallHitScout +} + +Response PlayerStunBallHittingItScout +{ + scene "scenes/Player/Scout/low/2606.vcd" + scene "scenes/Player/Scout/low/2604.vcd" + scene "scenes/Player/Scout/low/2651.vcd" + scene "scenes/Player/Scout/low/2703.vcd" +} +Rule PlayerStunBallHittingItScout +{ + criteria ConceptFireWeapon IsScout WeaponIsWoodBat 10PercentChance + ApplyContext "ScoutHitBallSpeech:1:10" + Response PlayerStunBallHittingItScout +} + +Response PlayerStunBallPickUpScout +{ + scene "scenes/Player/Scout/low/2722.vcd" + scene "scenes/Player/Scout/low/2723.vcd" + scene "scenes/Player/Scout/low/2724.vcd" + scene "scenes/Player/Scout/low/2772.vcd" + scene "scenes/Player/Scout/low/2773.vcd" +} +Rule PlayerStunBallPickUpScout +{ + criteria ConceptScoutBallGrab IsScout 50PercentChance + Response PlayerStunBallPickUpScout +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Pain +//-------------------------------------------------------------------------------------------------------------- +Response PlayerAttackerPainScout +{ + scene "scenes/Player/Scout/low/461.vcd" + scene "scenes/Player/Scout/low/462.vcd" + scene "scenes/Player/Scout/low/463.vcd" + scene "scenes/Player/Scout/low/1361.vcd" + scene "scenes/Player/Scout/low/1362.vcd" + scene "scenes/Player/Scout/low/1363.vcd" +} +Rule PlayerAttackerPainScout +{ + criteria ConceptAttackerPain IsScout IsNotDominating + Response PlayerAttackerPainScout +} + +Response PlayerOnFireScout +{ + scene "scenes/Player/Scout/low/365.vcd" +} +Rule PlayerOnFireScout +{ + criteria ConceptFire IsScout ScoutIsNotStillonFire IsNotDominating + ApplyContext "ScoutOnFire:1:7" + Response PlayerOnFireScout +} + +Response PlayerOnFireRareScout +{ + scene "scenes/Player/Scout/low/366.vcd" +} +Rule PlayerOnFireRareScout +{ + criteria ConceptFire IsScout 10PercentChance ScoutIsNotStillonFire IsNotDominating + ApplyContext "ScoutOnFire:1:7" + Response PlayerOnFireRareScout +} + +Response PlayerPainScout +{ + scene "scenes/Player/Scout/low/464.vcd" + scene "scenes/Player/Scout/low/465.vcd" + scene "scenes/Player/Scout/low/466.vcd" + scene "scenes/Player/Scout/low/1364.vcd" + scene "scenes/Player/Scout/low/1365.vcd" + scene "scenes/Player/Scout/low/1366.vcd" + scene "scenes/Player/Scout/low/1367.vcd" + scene "scenes/Player/Scout/low/1368.vcd" +} +Rule PlayerPainScout +{ + criteria ConceptPain IsScout IsNotDominating + Response PlayerPainScout +} + +Response PlayerStillOnFireScout +{ + scene "scenes/Player/Scout/low/1932.vcd" +} +Rule PlayerStillOnFireScout +{ + criteria ConceptFire IsScout ScoutIsStillonFire IsNotDominating + ApplyContext "ScoutOnFire:1:7" + Response PlayerStillOnFireScout +} + + +//-------------------------------------------------------------------------------------------------------------- +// Duel Speech +//-------------------------------------------------------------------------------------------------------------- +Response AcceptedDuelScout +{ + scene "scenes/Player/Scout/low/377.vcd" + scene "scenes/Player/Scout/low/491.vcd" + scene "scenes/Player/Scout/low/494.vcd" + scene "scenes/Player/Scout/low/496.vcd" + scene "scenes/Player/Scout/low/516.vcd" +} +Rule AcceptedDuelScout +{ + criteria ConceptIAcceptDuel IsScout + Response AcceptedDuelScout +} + +Response MeleeDareScout +{ + scene "scenes/Player/Scout/low/2579.vcd" + scene "scenes/Player/Scout/low/2580.vcd" + scene "scenes/Player/Scout/low/2582.vcd" + scene "scenes/Player/Scout/low/2583.vcd" + scene "scenes/Player/Scout/low/2581.vcd" +} +Rule MeleeDareScout +{ + criteria ConceptRequestDuel IsScout + Response MeleeDareScout +} + +Response RejectedDuelScout +{ + scene "scenes/Player/Scout/low/362.vcd" + scene "scenes/Player/Scout/low/1281.vcd" + scene "scenes/Player/Scout/low/363.vcd" + scene "scenes/Player/Scout/low/364.vcd" + scene "scenes/Player/Scout/low/2554.vcd" + scene "scenes/Player/Scout/low/2768.vcd" + scene "scenes/Player/Scout/low/419.vcd" + scene "scenes/Player/Scout/low/421.vcd" + scene "scenes/Player/Scout/low/2706.vcd" +} +Rule RejectedDuelScout +{ + criteria ConceptDuelRejected IsScout + Response RejectedDuelScout +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 1 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerGoScout +{ + scene "scenes/Player/Scout/low/393.vcd" + scene "scenes/Player/Scout/low/1286.vcd" + scene "scenes/Player/Scout/low/392.vcd" + scene "scenes/Player/Scout/low/394.vcd" +} +Rule PlayerGoScout +{ + criteria ConceptPlayerGo IsScout + Response PlayerGoScout +} + +Response PlayerHeadLeftScout +{ + scene "scenes/Player/Scout/low/398.vcd" + scene "scenes/Player/Scout/low/399.vcd" + scene "scenes/Player/Scout/low/400.vcd" +} +Rule PlayerHeadLeftScout +{ + criteria ConceptPlayerLeft IsScout + Response PlayerHeadLeftScout +} + +Response PlayerHeadRightScout +{ + scene "scenes/Player/Scout/low/401.vcd" + scene "scenes/Player/Scout/low/402.vcd" + scene "scenes/Player/Scout/low/403.vcd" +} +Rule PlayerHeadRightScout +{ + criteria ConceptPlayerRight IsScout + Response PlayerHeadRightScout +} + +Response PlayerHelpScout +{ + scene "scenes/Player/Scout/low/404.vcd" + scene "scenes/Player/Scout/low/1290.vcd" + scene "scenes/Player/Scout/low/405.vcd" + scene "scenes/Player/Scout/low/406.vcd" +} +Rule PlayerHelpScout +{ + criteria ConceptPlayerHelp IsScout + Response PlayerHelpScout +} + +Response PlayerHelpCaptureScout +{ + scene "scenes/Player/Scout/low/407.vcd" + scene "scenes/Player/Scout/low/408.vcd" + scene "scenes/Player/Scout/low/409.vcd" +} +Rule PlayerHelpCaptureScout +{ + criteria ConceptPlayerHelp IsScout IsOnCappableControlPoint + ApplyContext "ScoutHelpCap:1:10" + Response PlayerHelpCaptureScout +} + +Response PlayerHelpCapture2Scout +{ + scene "scenes/Player/Scout/low/489.vcd" + scene "scenes/Player/Scout/low/1304.vcd" + scene "scenes/Player/Scout/low/1305.vcd" + scene "scenes/Player/Scout/low/1306.vcd" + scene "scenes/Player/Scout/low/1307.vcd" +} +Rule PlayerHelpCapture2Scout +{ + criteria ConceptPlayerHelp IsScout IsOnCappableControlPoint IsHelpCapScout + Response PlayerHelpCapture2Scout +} + +// Custom stuff +// Response for when the Scout is fighting on a cappable point +Response PlayerGetOnPointScout +{ + scene "scenes/Player/Scout/low/2568.vcd" + scene "scenes/Player/Scout/low/2569.vcd" + scene "scenes/Player/Scout/low/2570.vcd" + scene "scenes/Player/Scout/low/2572.vcd" +} + +Rule PlayerGetOnPointScout +{ + criterion ConceptFireWeapon IsScout IsOnCappableControlPoint NotDefendOnThePointSpeech + ApplyContext "DefendOnThePointSpeech:1:15" + applycontexttoworld + Response PlayerGetOnPointScout +} +// End custom + +Response PlayerHelpDefendScout +{ + scene "scenes/Player/Scout/low/410.vcd" + scene "scenes/Player/Scout/low/411.vcd" + scene "scenes/Player/Scout/low/412.vcd" +} +Rule PlayerHelpDefendScout +{ + criteria ConceptPlayerHelp IsScout IsOnFriendlyControlPoint + Response PlayerHelpDefendScout +} + +Response PlayerMedicScout +{ + scene "scenes/Player/Scout/low/438.vcd" + scene "scenes/Player/Scout/low/439.vcd" + scene "scenes/Player/Scout/low/440.vcd" +} +Rule PlayerMedicScout +{ + criteria ConceptPlayerMedic IsScout + Response PlayerMedicScout +} + +Response PlayerAskForBallScout +{ +} +Rule PlayerAskForBallScout +{ + criteria ConceptPlayerAskForBall IsScout + Response PlayerAskForBallScout +} + +Response PlayerMoveUpScout +{ + scene "scenes/Player/Scout/low/441.vcd" + scene "scenes/Player/Scout/low/442.vcd" + scene "scenes/Player/Scout/low/443.vcd" +} +Rule PlayerMoveUpScout +{ + criteria ConceptPlayerMoveUp IsScout + Response PlayerMoveUpScout +} + +Response PlayerNoScout +{ + scene "scenes/Player/Scout/low/455.vcd" + scene "scenes/Player/Scout/low/456.vcd" + scene "scenes/Player/Scout/low/457.vcd" +} +Rule PlayerNoScout +{ + criteria ConceptPlayerNo IsScout + Response PlayerNoScout +} + +Response PlayerThanksScout +{ + scene "scenes/Player/Scout/low/508.vcd" + scene "scenes/Player/Scout/low/509.vcd" +} +Rule PlayerThanksScout +{ + criteria ConceptPlayerThanks IsScout + Response PlayerThanksScout +} + +// Custom Assist kill response +// As there is no actual concept for assist kills, this is the second best method. +// Say thanks after you kill more than one person. + +Response KilledPlayerAssistScout +{ + scene "scenes/Player/Scout/low/487.vcd" + scene "scenes/Player/Scout/low/488.vcd" +} +Rule KilledPlayerAssistScout +{ + criteria ConceptPlayerThanks IsScout IsARecentKill KilledPlayerDelay ScoutNotAssistSpeech + ApplyContext "ScoutAssistSpeech:1:20" + Response KilledPlayerAssistScout +} +// End custom + +Response PlayerYesScout +{ + scene "scenes/Player/Scout/low/516.vcd" + scene "scenes/Player/Scout/low/517.vcd" + scene "scenes/Player/Scout/low/518.vcd" +} +Rule PlayerYesScout +{ + criteria ConceptPlayerYes IsScout + Response PlayerYesScout +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 2 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerActivateChargeScout +{ + scene "scenes/Player/Scout/low/353.vcd" + scene "scenes/Player/Scout/low/354.vcd" + scene "scenes/Player/Scout/low/355.vcd" +} +Rule PlayerActivateChargeScout +{ + criteria ConceptPlayerActivateCharge IsScout + Response PlayerActivateChargeScout +} + +Response PlayerCloakedSpyScout +{ + scene "scenes/Player/Scout/low/380.vcd" + scene "scenes/Player/Scout/low/379.vcd" + scene "scenes/Player/Scout/low/1285.vcd" + scene "scenes/Player/Scout/low/381.vcd" +} +Rule PlayerCloakedSpyScout +{ + criteria ConceptPlayerCloakedSpy IsScout + Response PlayerCloakedSpyScout +} + +Response PlayerDispenserHereScout +{ + scene "scenes/Player/Scout/low/444.vcd" +} +Rule PlayerDispenserHereScout +{ + criteria ConceptPlayerDispenserHere IsScout + Response PlayerDispenserHereScout +} + +Response PlayerIncomingScout +{ + scene "scenes/Player/Scout/low/413.vcd" + scene "scenes/Player/Scout/low/414.vcd" + scene "scenes/Player/Scout/low/415.vcd" +} +Rule PlayerIncomingScout +{ + criteria ConceptPlayerIncoming IsScout + Response PlayerIncomingScout +} + +Response PlayerSentryAheadScout +{ + scene "scenes/Player/Scout/low/472.vcd" + scene "scenes/Player/Scout/low/473.vcd" + scene "scenes/Player/Scout/low/474.vcd" +} +Rule PlayerSentryAheadScout +{ + criteria ConceptPlayerSentryAhead IsScout + Response PlayerSentryAheadScout +} + +Response PlayerSentryHereScout +{ + scene "scenes/Player/Scout/low/445.vcd" +} +Rule PlayerSentryHereScout +{ + criteria ConceptPlayerSentryHere IsScout + Response PlayerSentryHereScout +} + +Response PlayerTeleporterHereScout +{ + scene "scenes/Player/Scout/low/446.vcd" +} +Rule PlayerTeleporterHereScout +{ + criteria ConceptPlayerTeleporterHere IsScout + Response PlayerTeleporterHereScout +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 3 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerBattleCryScout +{ + scene "scenes/Player/Scout/low/367.vcd" + scene "scenes/Player/Scout/low/369.vcd" + scene "scenes/Player/Scout/low/370.vcd" + scene "scenes/Player/Scout/low/371.vcd" + scene "scenes/Player/Scout/low/368.vcd" +} +Rule PlayerBattleCryScout +{ + criteria ConceptPlayerBattleCry IsScout + Response PlayerBattleCryScout +} + +// Custom stuff - melee dare +// Look at enemy, then do battle cry voice command while holding a melee weapon. +Response MeleeDareCombatScout +{ + scene "scenes/Player/Scout/low/2584.vcd" + scene "scenes/Player/Scout/low/2579.vcd" + scene "scenes/Player/Scout/low/2580.vcd" + scene "scenes/Player/Scout/low/2582.vcd" + scene "scenes/Player/Scout/low/2583.vcd" + scene "scenes/Player/Scout/low/2581.vcd" + scene "scenes/Player/Scout/low/2642.vcd" + scene "scenes/Player/Scout/low/500.vcd" + scene "scenes/Player/Scout/low/494.vcd" + scene "scenes/Player/Scout/low/496.vcd" +} +Rule MeleeDareCombatScout +{ + criteria ConceptPlayerBattleCry IsWeaponMelee IsScout IsCrosshairEnemy + Response MeleeDareCombatScout +} +//End custom + +Response PlayerCheersScout +{ + scene "scenes/Player/Scout/low/372.vcd" + scene "scenes/Player/Scout/low/374.vcd" + scene "scenes/Player/Scout/low/375.vcd" + scene "scenes/Player/Scout/low/377.vcd" + scene "scenes/Player/Scout/low/376.vcd" + scene "scenes/Player/Scout/low/373.vcd" +} +Rule PlayerCheersScout +{ + criteria ConceptPlayerCheers IsScout + Response PlayerCheersScout +} + +Response PlayerGoodJobScout +{ + scene "scenes/Player/Scout/low/395.vcd" + scene "scenes/Player/Scout/low/396.vcd" + scene "scenes/Player/Scout/low/397.vcd" + scene "scenes/Player/Scout/low/1288.vcd" +} +Rule PlayerGoodJobScout +{ + criteria ConceptPlayerGoodJob IsScout + Response PlayerGoodJobScout +} + +Response PlayerJeersScout +{ + scene "scenes/Player/Scout/low/419.vcd" + scene "scenes/Player/Scout/low/420.vcd" + scene "scenes/Player/Scout/low/421.vcd" + scene "scenes/Player/Scout/low/422.vcd" + scene "scenes/Player/Scout/low/423.vcd" + scene "scenes/Player/Scout/low/424.vcd" + scene "scenes/Player/Scout/low/425.vcd" + scene "scenes/Player/Scout/low/426.vcd" + scene "scenes/Player/Scout/low/427.vcd" + scene "scenes/Player/Scout/low/428.vcd" + scene "scenes/Player/Scout/low/430.vcd" +} +Rule PlayerJeersScout +{ + criteria ConceptPlayerJeers IsScout + Response PlayerJeersScout +} + +Response PlayerLostPointScout +{ + scene "scenes/Player/Scout/low/451.vcd" + scene "scenes/Player/Scout/low/447.vcd" + scene "scenes/Player/Scout/low/449.vcd" + scene "scenes/Player/Scout/low/450.vcd" + scene "scenes/Player/Scout/low/448.vcd" +} +Rule PlayerLostPointScout +{ + criteria ConceptPlayerLostPoint IsScout + Response PlayerLostPointScout +} + +Response PlayerNegativeScout +{ + scene "scenes/Player/Scout/low/451.vcd" + scene "scenes/Player/Scout/low/447.vcd" + scene "scenes/Player/Scout/low/449.vcd" + scene "scenes/Player/Scout/low/450.vcd" + scene "scenes/Player/Scout/low/448.vcd" +} +Rule PlayerNegativeScout +{ + criteria ConceptPlayerNegative IsScout + Response PlayerNegativeScout +} + +Response PlayerNiceShotScout +{ + scene "scenes/Player/Scout/low/452.vcd" + scene "scenes/Player/Scout/low/453.vcd" + scene "scenes/Player/Scout/low/454.vcd" +} +Rule PlayerNiceShotScout +{ + criteria ConceptPlayerNiceShot IsScout + Response PlayerNiceShotScout +} + +Response PlayerPositiveScout +{ + scene "scenes/Player/Scout/low/1302.vcd" + scene "scenes/Player/Scout/low/467.vcd" + scene "scenes/Player/Scout/low/469.vcd" + scene "scenes/Player/Scout/low/470.vcd" + scene "scenes/Player/Scout/low/471.vcd" +} + +Response PlayerTauntsScout +{ + scene "scenes/Player/Scout/low/1298.vcd" + scene "scenes/Player/Scout/low/436.vcd" + scene "scenes/Player/Scout/low/437.vcd" + scene "scenes/Player/Scout/low/1299.vcd" + scene "scenes/Player/Scout/low/1300.vcd" + scene "scenes/Player/Scout/low/1301.vcd" +} +Rule PlayerPositiveScout +{ + criteria ConceptPlayerPositive IsScout + Response PlayerPositiveScout + Response PlayerTauntsScout +} + +//-------------------------------------------------------------------------------------------------------------- +// Begin Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- +Response PlayerFirstRoundStartCompScout +{ + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_11.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_12.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_13.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_14.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_15.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_16.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_17.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_18.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_11.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_12.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_13.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_14.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_15.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_16.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_17.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_18.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_19.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_20.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_21.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_rare_03.vcd" predelay "1.0, 5.0" +} +Rule PlayerFirstRoundStartCompScout +{ + criteria ConceptPlayerRoundStartComp IsScout IsFirstRound IsNotComp6v6 40PercentChance + Response PlayerFirstRoundStartCompScout +} + +Response PlayerFirstRoundStartComp6sScout +{ + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_11.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_12.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_13.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_14.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_15.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_16.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_17.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_18.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_11.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_12.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_13.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_14.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_15.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_16.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_17.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_18.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_19.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_20.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_21.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_rare_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_comp_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_6s_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_6s_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_6s_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_6s_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_6s_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamefirst_6s_rare_01.vcd" predelay "1.0, 5.0" +} +Rule PlayerFirstRoundStartComp6sScout +{ + criteria ConceptPlayerRoundStartComp IsScout IsFirstRound IsComp6v6 40PercentChance + Response PlayerFirstRoundStartComp6sScout +} + +Response PlayerWonPrevRoundCompScout +{ + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_11.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_12.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_rare_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_comp_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_comp_rare_02.vcd" predelay "1.0, 5.0" +} +Rule PlayerWonPrevRoundCompScout +{ + criteria ConceptPlayerRoundStartComp IsScout IsNotFirstRound IsNotComp6v6 PlayerWonPreviousRound 40PercentChance + Response PlayerWonPrevRoundCompScout +} + +Response PlayerWonPrevRoundComp6sScout +{ + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_11.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_12.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_rare_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_comp_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_comp_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_6s_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamewonlast_6s_02.vcd" predelay "1.0, 5.0" +} +Rule PlayerWonPrevRoundComp6sScout +{ + criteria ConceptPlayerRoundStartComp IsScout IsNotFirstRound IsComp6v6 PlayerWonPreviousRound 40PercentChance + Response PlayerWonPrevRoundComp6sScout +} + +Response PlayerLostPrevRoundCompScout +{ + scene "scenes/Player/Scout/low/cm_scout_pregamelostlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamelostlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamelostlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamelostlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamelostlast_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamelostlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamelostlast_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamelostlast_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamelostlast_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregamelostlast_rare_03.vcd" predelay "1.0, 5.0" +} +Rule PlayerLostPrevRoundCompScout +{ + criteria ConceptPlayerRoundStartComp IsScout IsNotFirstRound PlayerLostPreviousRound PreviousRoundWasNotTie 40PercentChance + Response PlayerLostPrevRoundCompScout +} + +Response PlayerTiedPrevRoundCompScout +{ + scene "scenes/Player/Scout/low/cm_scout_pregametie_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregametie_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregametie_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregametie_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregametie_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregametie_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_pregametie_07.vcd" predelay "1.0, 5.0" +} +Rule PlayerTiedPrevRoundCompScout +{ + criteria ConceptPlayerRoundStartComp IsScout IsNotFirstRound PreviousRoundWasTie 40PercentChance + Response PlayerTiedPrevRoundCompScout +} + +Response PlayerGameWinCompScout +{ + scene "scenes/Player/Scout/low/cm_scout_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_07.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_08.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_09.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_10.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_11.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_12.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_13.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_14.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_15.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_rare_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Scout/low/cm_scout_gamewon_rare_02.vcd" predelay "2.0, 5.0" +} +Rule PlayerGameWinCompScout +{ + criteria ConceptPlayerGameOverComp PlayerOnWinningTeam IsScout 40PercentChance + Response PlayerGameWinCompScout +} + +Response PlayerMatchWinCompScout +{ + scene "scenes/Player/Scout/low/cm_scout_matchwon_01.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Scout/low/cm_scout_matchwon_02.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Scout/low/cm_scout_matchwon_03.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Scout/low/cm_scout_matchwon_04.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Scout/low/cm_scout_matchwon_05.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Scout/low/cm_scout_matchwon_06.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Scout/low/cm_scout_matchwon_07.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Scout/low/cm_scout_matchwon_08.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Scout/low/cm_scout_matchwon_09.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Scout/low/cm_scout_matchwon_10.vcd" predelay "1.0, 2.0" +} +Rule PlayerMatchWinCompScout +{ + criteria ConceptPlayerMatchOverComp PlayerOnWinningTeam IsScout 40PercentChance + Response PlayerMatchWinCompScout +} +//-------------------------------------------------------------------------------------------------------------- +// End Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/game/tc2/scripts/talker/sniper.txt b/game/tc2/scripts/talker/sniper.txt new file mode 100644 index 00000000000..5581264e3dd --- /dev/null +++ b/game/tc2/scripts/talker/sniper.txt @@ -0,0 +1,2120 @@ +//-------------------------------------------------------------------------------------------------------------- +// Sniper Response Rule File +//-------------------------------------------------------------------------------------------------------------- + +Criterion "SniperIsNotStillonFire" "SniperOnFire" "!=1" "required" weight 0 +Criterion "SniperIsStillonFire" "SniperOnFire" "1" "required" weight 0 +Criterion "SniperNotKillSpeech" "SniperKillSpeech" "!=1" "required" weight 0 +Criterion "SniperNotKillSpeechMelee" "SniperKillSpeechMelee" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 +Criterion "SniperNotSaidHealThanks" "SniperSaidHealThanks" "!=1" "required" +Criterion "IsHelpCapSniper" "SniperHelpCap" "1" "required" weight 0 +// Custom stuff +Criterion "SniperNotInvulnerableSpeech" "SniperInvulnerableSpeech" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Criterion "SniperNotAwardSpeech" "SniperAwardSpeech" "!=1" "required" weight 0 +Criterion "SniperNotAssistSpeech" "SniperAssistSpeech" "!=1" "required" weight 0 +Criterion "SniperNotHoldStill" "SniperHoldStill" "!=1" "required" weight 0 + + +Response PlayerCloakedSpyDemomanSniper +{ + scene "scenes/Player/Sniper/low/1633.vcd" +} +Rule PlayerCloakedSpyDemomanSniper +{ + criteria ConceptPlayerCloakedSpy IsSniper IsOnDemoman + Response PlayerCloakedSpyDemomanSniper +} + +Response PlayerCloakedSpyEngineerSniper +{ + scene "scenes/Player/Sniper/low/1636.vcd" +} +Rule PlayerCloakedSpyEngineerSniper +{ + criteria ConceptPlayerCloakedSpy IsSniper IsOnEngineer + Response PlayerCloakedSpyEngineerSniper +} + +Response PlayerCloakedSpyHeavySniper +{ + scene "scenes/Player/Sniper/low/1631.vcd" +} +Rule PlayerCloakedSpyHeavySniper +{ + criteria ConceptPlayerCloakedSpy IsSniper IsOnHeavy + Response PlayerCloakedSpyHeavySniper +} + +Response PlayerCloakedSpyMedicSniper +{ + scene "scenes/Player/Sniper/low/1635.vcd" +} +Rule PlayerCloakedSpyMedicSniper +{ + criteria ConceptPlayerCloakedSpy IsSniper IsOnMedic + Response PlayerCloakedSpyMedicSniper +} + +Response PlayerCloakedSpyPyroSniper +{ + scene "scenes/Player/Sniper/low/1632.vcd" +} +Rule PlayerCloakedSpyPyroSniper +{ + criteria ConceptPlayerCloakedSpy IsSniper IsOnPyro + Response PlayerCloakedSpyPyroSniper +} + +Response PlayerCloakedSpyScoutSniper +{ + scene "scenes/Player/Sniper/low/1629.vcd" +} +Rule PlayerCloakedSpyScoutSniper +{ + criteria ConceptPlayerCloakedSpy IsSniper IsOnScout + Response PlayerCloakedSpyScoutSniper +} + +Response PlayerCloakedSpySniperSniper +{ + scene "scenes/Player/Sniper/low/1637.vcd" +} +Rule PlayerCloakedSpySniperSniper +{ + criteria ConceptPlayerCloakedSpy IsSniper IsOnSniper + Response PlayerCloakedSpySniperSniper +} + +Response PlayerCloakedSpySoldierSniper +{ + scene "scenes/Player/Sniper/low/1630.vcd" +} +Rule PlayerCloakedSpySoldierSniper +{ + criteria ConceptPlayerCloakedSpy IsSniper IsOnSoldier + Response PlayerCloakedSpySoldierSniper +} + +Response PlayerCloakedSpySpySniper +{ + scene "scenes/Player/Sniper/low/1634.vcd" +} +Rule PlayerCloakedSpySpySniper +{ + criteria ConceptPlayerCloakedSpy IsSniper IsOnSpy + Response PlayerCloakedSpySpySniper +} + + +// Modified to only have whisper lines when headshot with rifle. +// Other lines for when you get a kill with rifle/bow against a Soldier. +Response SniperKillSoldier +{ + scene "scenes/Player/Sniper/low/1719.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1727.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1731.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1757.vcd" predelay "1" +} +Rule SniperKillSoldier +{ + criteria ConceptKilledPlayer IsSniper WeaponIsSniperRifle 50PercentChance IsVictimSoldier SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKillSoldier +} +Rule SniperKillSoldierClassic +{ + criteria ConceptKilledPlayer IsSniper WeaponIsClassicSniperrifle 50PercentChance IsVictimSoldier SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKillSoldier +} +Rule SniperKillSoldierBow +{ + criteria ConceptKilledPlayer IsSniper WeaponIsBow 50PercentChance IsVictimSoldier SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKillSoldier +} + +Response SniperHeadShotKillSoldier +{ + scene "scenes/Player/Sniper/low/1725.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1807.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1803.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1831.vcd" predelay "1.75" +} +Rule SniperHeadShotKillSoldier +{ + criteria ConceptKilledPlayer IsSniper WeaponIsSniperrifle IsHeadShot 50PercentChance IsVictimSoldier SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperHeadShotKillSoldier +} +Rule SniperHeadShotKillSoldierClassic +{ + criteria ConceptKilledPlayer IsSniper WeaponIsClassicSniperrifle IsHeadShot 50PercentChance IsVictimSoldier SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperHeadShotKillSoldier +} + +// Same for the Heavy + +Response SniperKillHeavy +{ + scene "scenes/Player/Sniper/low/1758.vcd" predelay "1" +} +Rule SniperKillHeavy +{ + criteria ConceptKilledPlayer IsSniper WeaponIsSniperRifle 50PercentChance IsVictimHeavy SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKillHeavy +} +Rule SniperKillHeavyClassic +{ + criteria ConceptKilledPlayer IsSniper WeaponIsClassicSniperrifle 50PercentChance IsVictimHeavy SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKillHeavy +} +Rule SniperKillHeavyBow +{ + criteria ConceptKilledPlayer IsSniper WeaponIsBow 50PercentChance IsVictimHeavy SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKillHeavy +} + +Response SniperHeadShotKillHeavy +{ + scene "scenes/Player/Sniper/low/1832.vcd" predelay "1.75" +} +Rule SniperHeadShotKillHeavy +{ + criteria ConceptKilledPlayer IsSniper WeaponIsSniperrifle IsHeadShot 50PercentChance IsVictimHeavy SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperHeadShotKillHeavy +} +Rule SniperHeadShotKillHeavyClassic +{ + criteria ConceptKilledPlayer IsSniper WeaponIsClassicSniperrifle IsHeadShot 50PercentChance IsVictimHeavy SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperHeadShotKillHeavy +} + +// Modified to only have whisper lines when headshot with rifle. +// Other lines for when you get a kill with any weapon against a Spy. +Response SniperKillSpy +{ + scene "scenes/Player/Sniper/low/1712.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1723.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1729.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1732.vcd" predelay "1" +} +Rule SniperKillSpy +{ + criteria ConceptKilledPlayer IsSniper 50PercentChance IsVictimSpy SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKillSpy +} + +Response SniperHeadShotKillSpy +{ + scene "scenes/Player/Sniper/low/1805.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1806.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1808.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1798.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1799.vcd" predelay "1.75" +} +Rule SniperHeadShotKillSpy +{ + criteria ConceptKilledPlayer IsSniper WeaponIsSniperrifle IsHeadShot 50PercentChance IsVictimSpy SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperHeadShotKillSpy +} +Rule SniperHeadShotKillSpyClassic +{ + criteria ConceptKilledPlayer IsSniper WeaponIsClassicSniperrifle IsHeadShot 50PercentChance IsVictimSpy SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperHeadShotKillSpy +} + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech +//-------------------------------------------------------------------------------------------------------------- +Response HealThanksSniper +{ + scene "scenes/Player/Sniper/low/1761.vcd" + scene "scenes/Player/Sniper/low/1762.vcd" + scene "scenes/Player/Sniper/low/1763.vcd" +} +Rule HealThanksSniper +{ + criteria ConceptMedicChargeStopped IsSniper SuperHighHealthContext SniperNotSaidHealThanks 50PercentChance + ApplyContext "SniperSaidHealThanks:1:20" + Response HealThanksSniper +} + +// Custom achievement stuff +Response AwardSniper +{ + scene "scenes/Player/Sniper/low/2298.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2299.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2339.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2340.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2341.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2343.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2344.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2346.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2347.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2350.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2351.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2423.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2436.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2453.vcd" predelay "2.5" +} +Rule AwardSniper +{ + criteria ConceptAchievementAward IsSniper SniperNotAwardSpeech + ApplyContext "SniperAwardSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response AwardSniper +} +//End custom achievement + +Response PlayerRoundStartSniper +{ + scene "scenes/Player/Sniper/low/1612.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/1613.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/1614.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/1615.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/1616.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/1617.vcd" predelay "1.0, 5.0" +} +Rule PlayerRoundStartSniper +{ + criteria ConceptPlayerRoundStart IsSniper + Response PlayerRoundStartSniper +} + +Response PlayerCappedIntelligenceSniper +{ + scene "scenes/Player/Sniper/low/1603.vcd" + scene "scenes/Player/Sniper/low/1604.vcd" + scene "scenes/Player/Sniper/low/1605.vcd" + scene "scenes/Player/Sniper/low/1771.vcd" + scene "scenes/Player/Sniper/low/1772.vcd" +} +Rule PlayerCappedIntelligenceSniper +{ + criteria ConceptPlayerCapturedIntelligence IsSniper + Response PlayerCappedIntelligenceSniper +} + +Response PlayerCapturedPointSniper +{ + scene "scenes/Player/Sniper/low/1600.vcd" + scene "scenes/Player/Sniper/low/1601.vcd" + scene "scenes/Player/Sniper/low/1602.vcd" +} +Rule PlayerCapturedPointSniper +{ + criteria ConceptPlayerCapturedPoint IsSniper + Response PlayerCapturedPointSniper +} + +Response PlayerSuddenDeathSniper +{ + scene "scenes/Player/Sniper/low/1662.vcd" + scene "scenes/Player/Sniper/low/1663.vcd" + scene "scenes/Player/Sniper/low/1664.vcd" + scene "scenes/Player/Sniper/low/1665.vcd" + scene "scenes/Player/Sniper/low/1666.vcd" + scene "scenes/Player/Sniper/low/1667.vcd" + scene "scenes/Player/Sniper/low/1668.vcd" + scene "scenes/Player/Sniper/low/1669.vcd" +} +Rule PlayerSuddenDeathSniper +{ + criteria ConceptPlayerSuddenDeathStart IsSniper + Response PlayerSuddenDeathSniper +} + +Response PlayerStalemateSniper +{ + scene "scenes/Player/Sniper/low/1606.vcd" + scene "scenes/Player/Sniper/low/1607.vcd" + scene "scenes/Player/Sniper/low/1608.vcd" +} +Rule PlayerStalemateSniper +{ + criteria ConceptPlayerStalemate IsSniper + Response PlayerStalemateSniper +} + +Response PlayerTeleporterThanksSniper +{ + scene "scenes/Player/Sniper/low/1764.vcd" + scene "scenes/Player/Sniper/low/1765.vcd" + scene "scenes/Player/Sniper/low/1766.vcd" +} +Rule PlayerTeleporterThanksSniper +{ + criteria ConceptTeleported IsNotEngineer IsSniper 30PercentChance + Response PlayerTeleporterThanksSniper +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Cart +//-------------------------------------------------------------------------------------------------------------- +Response CartMovingBackwardsDefenseSniper +{ + scene "scenes/Player/Sniper/low/2334.vcd" + scene "scenes/Player/Sniper/low/2335.vcd" + scene "scenes/Player/Sniper/low/2336.vcd" + scene "scenes/Player/Sniper/low/2352.vcd" + scene "scenes/Player/Sniper/low/2431.vcd" + scene "scenes/Player/Sniper/low/2432.vcd" + scene "scenes/Player/Sniper/low/2444.vcd" + scene "scenes/Player/Sniper/low/2445.vcd" +} +Rule CartMovingBackwardsDefenseSniper +{ + criteria ConceptCartMovingBackward IsOnDefense IsSniper Unzoomed SniperNotSaidCartMovingBackwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardD:1:20" + Response CartMovingBackwardsDefenseSniper +} + +// Custom added stuff +// We fire this response if the Sniper is scoped, these are softer versions of the normal lines. +Response CartMovingBackwardsDefenseScopedSniper +{ + scene "scenes/Player/Sniper/low/2518.vcd" + scene "scenes/Player/Sniper/low/2519.vcd" + scene "scenes/Player/Sniper/low/2520.vcd" + scene "scenes/Player/Sniper/low/2521.vcd" + scene "scenes/Player/Sniper/low/2540.vcd" + scene "scenes/Player/Sniper/low/2541.vcd" + scene "scenes/Player/Sniper/low/2542.vcd" + scene "scenes/Player/Sniper/low/2543.vcd" +} +Rule CartMovingBackwardsDefenseScopedSniper +{ + criteria ConceptCartMovingBackward IsOnDefense IsSniper DeployedContext SniperNotSaidCartMovingBackwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardD:1:20" + Response CartMovingBackwardsDefenseScopedSniper +} + +// Offense backwards +Response CartMovingBackwardsOffenseSniper +{ + scene "scenes/Player/Sniper/low/2331.vcd" + scene "scenes/Player/Sniper/low/2332.vcd" + scene "scenes/Player/Sniper/low/2333.vcd" + scene "scenes/Player/Sniper/low/2353.vcd" + scene "scenes/Player/Sniper/low/2354.vcd" + scene "scenes/Player/Sniper/low/2429.vcd" + scene "scenes/Player/Sniper/low/2430.vcd" +} +Rule CartMovingBackwardsOffenseSniper +{ + criteria ConceptCartMovingBackward IsOnOffense IsSniper Unzoomed SniperNotSaidCartMovingBackwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardO:1:20" + Response CartMovingBackwardsOffenseSniper +} + +Response CartMovingBackwardsOffenseScopedSniper +{ + scene "scenes/Player/Sniper/low/2515.vcd" + scene "scenes/Player/Sniper/low/2516.vcd" + scene "scenes/Player/Sniper/low/2517.vcd" + scene "scenes/Player/Sniper/low/2522.vcd" + scene "scenes/Player/Sniper/low/2523.vcd" + scene "scenes/Player/Sniper/low/2538.vcd" + scene "scenes/Player/Sniper/low/2539.vcd" +} +Rule CartMovingBackwardsOffenseScopedSniper +{ + criteria ConceptCartMovingBackward IsOnOffense IsSniper DeployedContext SniperNotSaidCartMovingBackwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardO:1:20" + Response CartMovingBackwardsOffenseScopedSniper +} + +// Defense forward +Response CartMovingForwardDefenseSniper +{ + scene "scenes/Player/Sniper/low/2328.vcd" + scene "scenes/Player/Sniper/low/2329.vcd" + scene "scenes/Player/Sniper/low/2330.vcd" + scene "scenes/Player/Sniper/low/2355.vcd" + scene "scenes/Player/Sniper/low/2446.vcd" + scene "scenes/Player/Sniper/low/2447.vcd" +} +Rule CartMovingForwardDefenseSniper +{ + criteria ConceptCartMovingForward IsOnDefense IsSniper Unzoomed SniperNotSaidCartMovingForwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardD:1:20" + Response CartMovingForwardDefenseSniper +} + +Response CartMovingForwardDefenseScopedSniper +{ + scene "scenes/Player/Sniper/low/2512.vcd" + scene "scenes/Player/Sniper/low/2513.vcd" + scene "scenes/Player/Sniper/low/2514.vcd" + scene "scenes/Player/Sniper/low/2524.vcd" + scene "scenes/Player/Sniper/low/2544.vcd" + scene "scenes/Player/Sniper/low/2545.vcd" +} +Rule CartMovingForwardDefenseSniper +{ + criteria ConceptCartMovingForward IsOnDefense IsSniper DeployedContext SniperNotSaidCartMovingForwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardD:1:20" + Response CartMovingForwardDefenseScopedSniper +} + +// Offense forward + +Response CartMovingForwardOffenseSniper +{ + scene "scenes/Player/Sniper/low/2307.vcd" + scene "scenes/Player/Sniper/low/2308.vcd" + scene "scenes/Player/Sniper/low/2309.vcd" + scene "scenes/Player/Sniper/low/2402.vcd" + scene "scenes/Player/Sniper/low/2403.vcd" + scene "scenes/Player/Sniper/low/2404.vcd" + scene "scenes/Player/Sniper/low/2406.vcd" + scene "scenes/Player/Sniper/low/2407.vcd" + scene "scenes/Player/Sniper/low/2408.vcd" + scene "scenes/Player/Sniper/low/2409.vcd" + scene "scenes/Player/Sniper/low/2301.vcd" + scene "scenes/Player/Sniper/low/2302.vcd" + scene "scenes/Player/Sniper/low/2303.vcd" + scene "scenes/Player/Sniper/low/2416.vcd" + scene "scenes/Player/Sniper/low/2424.vcd" + scene "scenes/Player/Sniper/low/2425.vcd" + scene "scenes/Player/Sniper/low/2454.vcd" +} +Rule CartMovingForwardOffenseSniper +{ + criteria ConceptCartMovingForward IsOnOffense IsSniper Unzoomed SniperNotSaidCartMovingForwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardO:1:20" + Response CartMovingForwardOffenseSniper +} + +Response CartMovingForwardOffenseScopedSniper +{ + scene "scenes/Player/Sniper/low/2506.vcd" + scene "scenes/Player/Sniper/low/2507.vcd" + scene "scenes/Player/Sniper/low/2508.vcd" + scene "scenes/Player/Sniper/low/2525.vcd" + scene "scenes/Player/Sniper/low/2526.vcd" + scene "scenes/Player/Sniper/low/2527.vcd" + scene "scenes/Player/Sniper/low/2529.vcd" + scene "scenes/Player/Sniper/low/2530.vcd" + scene "scenes/Player/Sniper/low/2531.vcd" + scene "scenes/Player/Sniper/low/2532.vcd" + scene "scenes/Player/Sniper/low/2500.vcd" + scene "scenes/Player/Sniper/low/2501.vcd" + scene "scenes/Player/Sniper/low/2502.vcd" + scene "scenes/Player/Sniper/low/2535.vcd" + scene "scenes/Player/Sniper/low/2536.vcd" + scene "scenes/Player/Sniper/low/2537.vcd" + scene "scenes/Player/Sniper/low/2546.vcd" +} +Rule CartMovingForwardOffenseScopedSniper +{ + criteria ConceptCartMovingForward IsOnOffense IsSniper DeployedContext SniperNotSaidCartMovingForwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardO:1:20" + Response CartMovingForwardOffenseScopedSniper +} +// Cart stopped Defense + +Response CartMovingStoppedDefenseSniper +{ + scene "scenes/Player/Sniper/low/2310.vcd" + scene "scenes/Player/Sniper/low/2311.vcd" + scene "scenes/Player/Sniper/low/2312.vcd" + scene "scenes/Player/Sniper/low/2414.vcd" + scene "scenes/Player/Sniper/low/2455.vcd" + scene "scenes/Player/Sniper/low/2456.vcd" +} +Rule CartMovingStoppedDefenseSniper +{ + criteria ConceptCartMovingStopped IsOnDefense IsSniper Unzoomed SniperNotSaidCartMovingStoppedD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedD:1:20" + Response CartMovingStoppedDefenseSniper +} + +Response CartMovingStoppedDefenseScopedSniper +{ + scene "scenes/Player/Sniper/low/2509.vcd" + scene "scenes/Player/Sniper/low/2510.vcd" + scene "scenes/Player/Sniper/low/2511.vcd" + scene "scenes/Player/Sniper/low/2533.vcd" + scene "scenes/Player/Sniper/low/2558.vcd" +} +Rule CartMovingStoppedDefenseScopedSniper +{ + criteria ConceptCartMovingStopped IsOnDefense IsSniper DeployedContext SniperNotSaidCartMovingStoppedD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedD:1:20" + Response CartMovingStoppedDefenseScopedSniper +} + +// Cart stopped Offense + +Response CartMovingStoppedOffenseSniper +{ + scene "scenes/Player/Sniper/low/2304.vcd" + scene "scenes/Player/Sniper/low/2305.vcd" + scene "scenes/Player/Sniper/low/2306.vcd" + scene "scenes/Player/Sniper/low/2415.vcd" + scene "scenes/Player/Sniper/low/2457.vcd" +} +Rule CartMovingStoppedOffenseSniper +{ + criteria ConceptCartMovingStopped IsOnOffense IsSniper Unzoomed SniperNotSaidCartMovingStoppedO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedO:1:20" + Response CartMovingStoppedOffenseSniper +} + +Response CartMovingStoppedOffenseScopedSniper +{ + scene "scenes/Player/Sniper/low/2503.vcd" + scene "scenes/Player/Sniper/low/2504.vcd" + scene "scenes/Player/Sniper/low/2505.vcd" + scene "scenes/Player/Sniper/low/2534.vcd" + scene "scenes/Player/Sniper/low/2549.vcd" +} +Rule CartMovingStoppedOffenseScopedSniper +{ + criteria ConceptCartMovingStopped IsOnOffense IsSniper DeployedContext SniperNotSaidCartMovingStoppedO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedO:1:20" + Response CartMovingStoppedOffenseScopedSniper +} +// End custom + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Combat +//-------------------------------------------------------------------------------------------------------------- +Response DefendOnThePointSniper +{ + scene "scenes/Player/Sniper/low/1736.vcd" + scene "scenes/Player/Sniper/low/1737.vcd" +} +Rule DefendOnThePointSniper +{ + criteria ConceptFireWeapon IsSniper IsOnFriendlyControlPoint NotDefendOnThePointSpeech + ApplyContext "DefendOnThePointSpeech:1:30" + applycontexttoworld + Response DefendOnThePointSniper +} + +// Custom stuff + +Response InvulnerableSpeechSniper +{ + scene "scenes/Player/Sniper/low/1750.vcd" + scene "scenes/Player/Sniper/low/1751.vcd" + scene "scenes/Player/Sniper/low/1754.vcd" + scene "scenes/Player/Sniper/low/1756.vcd" +} +Rule InvulnerableSpeechSniper +{ + criteria ConceptFireWeapon IsSniper IsInvulnerable SniperNotInvulnerableSpeech + ApplyContext "SniperInvulnerableSpeech:1:30" + Response InvulnerableSpeechSniper +} + +// End custom + +Response KilledPlayerManySniper +{ + scene "scenes/Player/Sniper/low/1670.vcd" + scene "scenes/Player/Sniper/low/1671.vcd" + scene "scenes/Player/Sniper/low/1672.vcd" + scene "scenes/Player/Sniper/low/1673.vcd" + scene "scenes/Player/Sniper/low/1674.vcd" + scene "scenes/Player/Sniper/low/1675.vcd" + scene "scenes/Player/Sniper/low/1715.vcd" + scene "scenes/Player/Sniper/low/1726.vcd" + scene "scenes/Player/Sniper/low/1810.vcd" +} +Rule KilledPlayerManySniper +{ + criteria ConceptKilledPlayer IsManyRecentKills 30PercentChance IsWeaponPrimary KilledPlayerDelay SniperNotKillSpeech IsSniper + ApplyContext "SniperKillSpeech:1:10" + Response KilledPlayerManySniper +} + +// Custom stuff +// Allow the Huntsman to use the above response group +Rule KilledPlayerManySniperBow +{ + criteria ConceptKilledPlayer IsManyRecentKills 30PercentChance WeaponIsBow KilledPlayerDelay SniperNotKillSpeech IsSniper + ApplyContext "SniperKillSpeech:1:10" + Response KilledPlayerManySniper +} + +// End custom + +Response KilledPlayerMeleeSniper +{ + scene "scenes/Player/Sniper/low/1717.vcd" + scene "scenes/Player/Sniper/low/1720.vcd" +} +Rule KilledPlayerMeleeSniper +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee SniperNotKillSpeechMelee WeaponIsNotSaxxy IsSniper + ApplyContext "SniperKillSpeechMelee:1:10" + Response KilledPlayerMeleeSniper +} + +Response KilledPlayerSaxxySniper +{ + scene "scenes/Player/Sniper/low/1718.vcd" + scene "scenes/Player/Sniper/low/1675.vcd" + scene "scenes/Player/Sniper/low/1670.vcd" + scene "scenes/Player/Sniper/low/1671.vcd" + scene "scenes/Player/Sniper/low/1674.vcd" +} +Rule KilledPlayerSaxxySniper +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance WeaponIsSaxxy SniperNotKillSpeechMelee IsSniper + ApplyContext "SniperKillSpeechMelee:1:10" + Response KilledPlayerSaxxySniper +} + +// Custom stuff +// Shiv kill + +Response KilledPlayerShivSniper +{ + scene "scenes/Player/Sniper/low/2387.vcd" +} +Rule KilledPlayerShivSniper +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee WeaponIsShiv SniperNotKillSpeechMelee IsSniper + ApplyContext "SniperKillSpeechMelee:1:10" + Response KilledPlayerShivSniper + Response KilledPlayerMeleeSniper +} + +// End custom + +Response KilledPlayerVeryManySniper +{ + scene "scenes/Player/Sniper/low/1714.vcd" + scene "scenes/Player/Sniper/low/1718.vcd" + scene "scenes/Player/Sniper/low/1721.vcd" + scene "scenes/Player/Sniper/low/1742.vcd" + scene "scenes/Player/Sniper/low/1743.vcd" + scene "scenes/Player/Sniper/low/1744.vcd" + scene "scenes/Player/Sniper/low/1748.vcd" + scene "scenes/Player/Sniper/low/1755.vcd" +} +Rule KilledPlayerVeryManySniper +{ + criteria ConceptKilledPlayer IsVeryManyRecentKills 50PercentChance IsWeaponPrimary KilledPlayerDelay SniperNotKillSpeech IsSniper + ApplyContext "SniperKillSpeech:1:10" + Response KilledPlayerVeryManySniper +} + +// Custom stuff +// Allow the Huntsman to use the above response group +Rule KilledPlayerVeryManySniperBow +{ + criteria ConceptKilledPlayer IsVeryManyRecentKills 50PercentChance WeaponIsBow KilledPlayerDelay SniperNotKillSpeech IsSniper + ApplyContext "SniperKillSpeech:1:10" + Response KilledPlayerVeryManySniper +} + +Response MedicFollowSniper +{ + scene "scenes/Player/Sniper/low/2277.vcd" predelay ".25" + scene "scenes/Player/Sniper/low/2278.vcd" predelay ".25" + scene "scenes/Player/Sniper/low/2279.vcd" predelay ".25" + scene "scenes/Player/Sniper/low/2280.vcd" predelay ".25" + scene "scenes/Player/Sniper/low/2281.vcd" predelay ".25" +} +Rule MedicFollowSniper +{ + criteria ConceptPlayerMedic IsOnMedic IsSniper IsNotCrossHairEnemy NotLowHealth SniperIsNotStillonFire + ApplyContext "SniperKillSpeech:1:10" + Response MedicFollowSniper +} + +// Custom stuff +Response SniperJarateHit +{ + scene "scenes/Player/Sniper/low/1608.vcd" + scene "scenes/Player/Sniper/low/1688.vcd" + scene "scenes/Player/Sniper/low/1689.vcd" +} +Rule SniperJarateHit +{ + criteria ConceptJarateHit IsSniper 50PercentChance + Response SniperJarateHit +} + +Response SniperJarateHitScoped +{ + scene "scenes/Player/Sniper/low/1780.vcd" + scene "scenes/Player/Sniper/low/1690.vcd" + scene "scenes/Player/Sniper/low/1778.vcd" +} +Rule SniperJarateHitScoped +{ + criteria ConceptJarateHit IsSniper DeployedContext + Response SniperJarateHitScoped +} +// End custom + +Response PlayerJarateToss +{ + scene "scenes/Player/Sniper/low/3131.vcd" + scene "scenes/Player/Sniper/low/3132.vcd" + scene "scenes/Player/Sniper/low/3133.vcd" +} +Rule PlayerJarateToss +{ + criteria ConceptJarateLaunch IsSniper + Response PlayerJarateToss +} + +Response PlayerKilledCapperSniper +{ + scene "scenes/Player/Sniper/low/1614.vcd" + scene "scenes/Player/Sniper/low/1619.vcd" + scene "scenes/Player/Sniper/low/1620.vcd" + scene "scenes/Player/Sniper/low/1710.vcd" + scene "scenes/Player/Sniper/low/1733.vcd" +} +Rule PlayerKilledCapperSniper +{ + criteria ConceptCapBlocked IsSniper + ApplyContext "SniperKillSpeech:1:10" + Response PlayerKilledCapperSniper +} + +// Custom stuff +Response KilledPlayerAssistAutoSniper +{ + scene "scenes/Player/Sniper/low/1734.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/1735.vcd" predelay "2.5" +} +Rule KilledPlayerAssistAutoSniper +{ + criteria ConceptKilledPlayer IsSniper IsBeingHealed IsARecentKill KilledPlayerDelay 20PercentChance SniperNotAssistSpeech + ApplyContext "SniperAssistSpeech:1:20" + Response KilledPlayerAssistAutoSniper +} +// End custom + +Response KilledPlayerSMGSniper +{ + scene "scenes/Player/Sniper/low/2461.vcd" +} +Rule KilledPlayerSMGSniper +{ + criterion ConceptKilledPlayer KilledPlayerDelay 5PercentChance IsSniper WeaponIsSMG SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response KilledPlayerSMGSniper +} + +Response KilledPlayerDominatingSniper +{ + scene "scenes/Player/Sniper/low/2292.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2293.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2294.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2356.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2357.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2358.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2360.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2362.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2363.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2364.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2365.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2366.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2367.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2385.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2397.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2417.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2434.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2458.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2459.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2460.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2462.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2463.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2464.vcd" predelay "2.5" + +} +Rule KilledPlayerDominatingSniper +{ + criterion ConceptKilledPlayer IsSniper DeployedContext 50PercentChance IsDominated + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response KilledPlayerDominatingSniper +} +// End custom + +Response PlayerKilledDominatingDemomanSniper +{ + scene "scenes/Player/Sniper/low/3080.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3081.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3082.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3083.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3084.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingDemomanSniper +{ + criteria ConceptKilledPlayer IsSniper IsDominated IsVictimDemoman + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingDemomanSniper +} + +Response PlayerKilledDominatingEngineerSniper +{ + scene "scenes/Player/Sniper/low/3085.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3086.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3087.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3088.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3089.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3090.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingEngineerSniper +{ + criteria ConceptKilledPlayer IsSniper IsDominated IsVictimEngineer + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingEngineerSniper +} + +Response PlayerKilledDominatingHeavySniper +{ + scene "scenes/Player/Sniper/low/3091.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3092.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3093.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3094.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3095.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3096.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3097.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingHeavySniper +{ + criteria ConceptKilledPlayer IsSniper IsDominated IsVictimHeavy + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingHeavySniper +} + +Response PlayerKilledDominatingMedicSniper +{ + scene "scenes/Player/Sniper/low/3098.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3099.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3100.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3101.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3102.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingMedicSniper +{ + criteria ConceptKilledPlayer IsSniper IsDominated IsVictimMedic + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingMedicSniper +} + +Response PlayerKilledDominatingPyroSniper +{ + scene "scenes/Player/Sniper/low/3103.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3104.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3105.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3106.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3107.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingPyroSniper +{ + criteria ConceptKilledPlayer IsSniper IsDominated IsVictimPyro + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingPyroSniper +} + +Response PlayerKilledDominatingScoutSniper +{ + scene "scenes/Player/Sniper/low/3108.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3109.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3110.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3111.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3112.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingScoutSniper +{ + criteria ConceptKilledPlayer IsSniper IsDominated IsVictimScout + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingScoutSniper +} + +Response PlayerKilledDominatingSniperSniper +{ + scene "scenes/Player/Sniper/low/2366.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2397.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2417.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2434.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3113.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3114.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3115.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3116.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3117.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSniperSniper +{ + criteria ConceptKilledPlayer IsSniper IsDominated IsVictimSniper + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSniperSniper +} + +Response PlayerKilledDominatingSoldierSniper +{ + scene "scenes/Player/Sniper/low/3118.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3119.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3120.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3121.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3122.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3123.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSoldierSniper +{ + criteria ConceptKilledPlayer IsSniper IsDominated IsVictimSoldier + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSoldierSniper +} + +Response PlayerKilledDominatingSpySniper +{ + scene "scenes/Player/Sniper/low/3124.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3125.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3126.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3127.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3128.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3129.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/3130.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSpySniper +{ + criteria ConceptKilledPlayer IsSniper IsDominated IsVictimSpy + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSpySniper +} + +// Custom stuff +// Directed revenge lines +Response PlayerKilledForRevengeSniperSniper +{ + scene "scenes/Player/Sniper/low/2466.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2468.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2469.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2473.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeSniperSniper +{ + criterion ConceptKilledPlayer IsSniper IsRevenge IsVictimSniper + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeSniperSniper +} + +Response PlayerKilledForRevengeSpySniper +{ + scene "scenes/Player/Sniper/low/2381.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2383.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2384.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2391.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2325.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeSpySniper +{ + criterion ConceptKilledPlayer IsSniper IsRevenge IsVictimSpy + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeSpySniper +} + +Response PlayerKilledForRevengeScoutSniper +{ + scene "scenes/Player/Sniper/low/2296.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2394.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2475.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeScoutSniper +{ + criterion ConceptKilledPlayer IsSniper IsRevenge IsVictimScout + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeScoutSniper +} + +Response PlayerKilledForRevengeDemomanSniper +{ + scene "scenes/Player/Sniper/low/2295.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2386.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeDemomanSniper +{ + criterion ConceptKilledPlayer IsSniper IsRevenge IsVictimDemoman + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeDemomanSniper +} + +Response PlayerKilledForRevengeEngineerSniper +{ + scene "scenes/Player/Sniper/low/2393.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeEngineerSniper +{ + criterion ConceptKilledPlayer IsSniper IsRevenge IsVictimEngineer + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeEngineerSniper +} + +Response PlayerKilledForRevengeSoldierSniper +{ + scene "scenes/Player/Sniper/low/2390.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2472.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeSoldierSniper +{ + criterion ConceptKilledPlayer IsSniper IsRevenge IsVictimSoldier + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeSoldierSniper +} + +Response PlayerKilledForRevengeMedicSniper +{ + scene "scenes/Player/Sniper/low/2474.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeMedicSniper +{ + criterion ConceptKilledPlayer IsSniper IsRevenge IsVictimMedic + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeMedicSniper +} + +Response PlayerKilledForRevengePyroSniper +{ + scene "scenes/Player/Sniper/low/2392.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2395.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2467.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengePyroSniper +{ + criterion ConceptKilledPlayer IsSniper IsRevenge IsVictimPyro + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengePyroSniper +} + +Response PlayerKilledForRevengeHeavySniper +{ + scene "scenes/Player/Sniper/low/2465.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2471.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/2465.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeHeavySniper +{ + criterion ConceptKilledPlayer IsSniper IsRevenge IsVictimHeavy + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeHeavySniper +} + +// End directed revenge lines + +Response PlayerKilledForRevengeSniper +{ + scene "scenes/Player/Sniper/low/1622.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/1641.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/1708.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/1709.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/1741.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/1740.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/1752.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/1753.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeSniper +{ + criteria ConceptKilledPlayer IsSniper IsRevenge 50PercentChance + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeSniper +} + +// Scoped revenge lines, whispers +Response PlayerKilledForRevengeSoftSniper +{ + scene "scenes/Player/Sniper/low/1814.vcd" predelay "2.5" + scene "scenes/Player/Sniper/low/1815.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeSoftSniper +{ + criteria ConceptKilledPlayer IsSniper IsRevenge DeployedContext 50PercentChance + ApplyContext "SniperKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeSoftSniper + Response PlayerKilledForRevengeSniper +} + +// Here we have normal kills, normal scoped kills and headshots +// Scoped kills are whisper lines, normal kills are not +// So Huntsman kills shouldn't be whispers +// Only headshot kills use all three response groups, to spice things up + +Response SniperKill +{ + scene "scenes/Player/Sniper/low/1724.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1834.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1759.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1745.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1746.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1747.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1750.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1751.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1754.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1756.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1739.vcd" predelay "1" +} + +Response SniperKillSoft +{ + scene "scenes/Player/Sniper/low/1809.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1813.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1826.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1827.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1828.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1816.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1817.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1818.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1819.vcd" predelay "1" + scene "scenes/Player/Sniper/low/1820.vcd" predelay "1" +} + +Rule SniperKill +{ + criteria ConceptKilledPlayer IsSniper WeaponIsSniperrifle 20PercentChance SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKill +} +Rule SniperKillClassic +{ + criteria ConceptKilledPlayer IsSniper WeaponIsClassicSniperrifle 20PercentChance SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKill +} + +Rule SniperKillSoft +{ + criteria ConceptKilledPlayer IsSniper WeaponIsSniperrifle DeployedContext 20PercentChance SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKillSoft +} +Rule SniperKillSoftClassic +{ + criteria ConceptKilledPlayer IsSniper WeaponIsClassicSniperrifle DeployedContext 20PercentChance SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKillSoft +} + +Rule SniperKillBow +{ + criteria ConceptKilledPlayer IsSniper WeaponIsBow 20PercentChance SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:10" + Response SniperKill +} + +Response SniperHeadShotKill +{ + scene "scenes/Player/Sniper/low/1790.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1795.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1801.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1802.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1713.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1728.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1789.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1791.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1792.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1800.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1811.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1738.vcd" predelay "1.75" + scene "scenes/Player/Sniper/low/1812.vcd" predelay "1.75" +} +Rule SniperHeadShotKill +{ + criteria ConceptKilledPlayer IsSniper WeaponIsSniperrifle IsHeadShot SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:20" + Response SniperHeadShotKill + Response SniperKillSoft + Response SniperKill +} +Rule SniperHeadShotKillClassic +{ + criteria ConceptKilledPlayer IsSniper WeaponIsClassicSniperrifle IsHeadShot SniperNotKillSpeech + ApplyContext "SniperKillSpeech:1:20" + Response SniperHeadShotKill + Response SniperKillSoft + Response SniperKill +} + +// Response to play when looking at enemy in scope + +Response SniperHoldStill +{ + scene "scenes/Player/Sniper/low/1835.vcd" + scene "scenes/Player/Sniper/low/1804.vcd" + scene "scenes/Player/Sniper/low/1833.vcd" + scene "scenes/Player/Sniper/low/1829.vcd" + scene "scenes/Player/Sniper/low/1830.vcd" + scene "scenes/Player/Sniper/low/1821.vcd" + scene "scenes/Player/Sniper/low/1822.vcd" + scene "scenes/Player/Sniper/low/1823.vcd" + scene "scenes/Player/Sniper/low/1824.vcd" + scene "scenes/Player/Sniper/low/1825.vcd" +} +Rule SniperHoldStill +{ + criteria ConceptPlayerExpression IsSniper IsCrosshairEnemy DeployedContext SniperNotHoldStill + ApplyContext "SniperHoldStill:1:10" + Response SniperHoldStill +} + +// End custom + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Pain +//-------------------------------------------------------------------------------------------------------------- +Response PlayerAttackerPainSniper +{ + scene "scenes/Player/Sniper/low/1700.vcd" + scene "scenes/Player/Sniper/low/1701.vcd" + scene "scenes/Player/Sniper/low/1702.vcd" + scene "scenes/Player/Sniper/low/1838.vcd" +} +Rule PlayerAttackerPainSniper +{ + criteria ConceptAttackerPain IsSniper IsNotDominating + Response PlayerAttackerPainSniper +} + +Response PlayerOnFireSniper +{ + scene "scenes/Player/Sniper/low/1609.vcd" + scene "scenes/Player/Sniper/low/1610.vcd" + scene "scenes/Player/Sniper/low/1611.vcd" +} +Rule PlayerOnFireSniper +{ + criteria ConceptFire IsSniper SniperIsNotStillonFire IsNotDominating + ApplyContext "SniperOnFire:1:7" + Response PlayerOnFireSniper +} + +Response PlayerPainSniper +{ + scene "scenes/Player/Sniper/low/1705.vcd" + scene "scenes/Player/Sniper/low/1704.vcd" + scene "scenes/Player/Sniper/low/1703.vcd" + scene "scenes/Player/Sniper/low/1837.vcd" +} +Rule PlayerPainSniper +{ + criteria ConceptPain IsSniper IsNotDominating + Response PlayerPainSniper +} + +Response PlayerStillOnFireSniper +{ + scene "scenes/Player/Sniper/low/1929.vcd" +} +Rule PlayerStillOnFireSniper +{ + criteria ConceptFire IsSniper SniperIsStillonFire IsNotDominating + ApplyContext "SniperOnFire:1:7" + Response PlayerStillOnFireSniper +} + + +//-------------------------------------------------------------------------------------------------------------- +// Duel Speech +//-------------------------------------------------------------------------------------------------------------- +Response AcceptedDuelSniper +{ + scene "scenes/Player/Sniper/low/2340.vcd" + scene "scenes/Player/Sniper/low/2341.vcd" + scene "scenes/Player/Sniper/low/2351.vcd" + scene "scenes/Player/Sniper/low/1613.vcd" + scene "scenes/Player/Sniper/low/1614.vcd" + scene "scenes/Player/Sniper/low/2321.vcd" + scene "scenes/Player/Sniper/low/2389.vcd" + scene "scenes/Player/Sniper/low/1749.vcd" + scene "scenes/Player/Sniper/low/1768.vcd" + scene "scenes/Player/Sniper/low/1769.vcd" +} +Rule AcceptedDuelSniper +{ + criteria ConceptIAcceptDuel IsSniper + Response AcceptedDuelSniper +} + +Response MeleeDareSniper +{ + scene "scenes/Player/Sniper/low/2320.vcd" + scene "scenes/Player/Sniper/low/2369.vcd" + scene "scenes/Player/Sniper/low/2372.vcd" + scene "scenes/Player/Sniper/low/2373.vcd" +} +Rule MeleeDareSniper +{ + criteria ConceptRequestDuel IsSniper + Response MeleeDareSniper +} + +Response RejectedDuelSniper +{ + scene "scenes/Player/Sniper/low/1606.vcd" + scene "scenes/Player/Sniper/low/1607.vcd" + scene "scenes/Player/Sniper/low/1608.vcd" + scene "scenes/Player/Sniper/low/3100.vcd" + scene "scenes/Player/Sniper/low/1663.vcd" + scene "scenes/Player/Sniper/low/1686.vcd" + scene "scenes/Player/Sniper/low/1687.vcd" + scene "scenes/Player/Sniper/low/1716.vcd" + scene "scenes/Player/Sniper/low/1722.vcd" +} +Rule RejectedDuelSniper +{ + criteria ConceptDuelRejected IsSniper + Response RejectedDuelSniper +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 1 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerGoSniper +{ + scene "scenes/Player/Sniper/low/1640.vcd" + scene "scenes/Player/Sniper/low/1639.vcd" + scene "scenes/Player/Sniper/low/1638.vcd" +} +Rule PlayerGoSniper +{ + criteria ConceptPlayerGo IsSniper + Response PlayerGoSniper +} + +Response PlayerHeadLeftSniper +{ + scene "scenes/Player/Sniper/low/1644.vcd" + scene "scenes/Player/Sniper/low/1645.vcd" + scene "scenes/Player/Sniper/low/1646.vcd" +} +Rule PlayerHeadLeftSniper +{ + criteria ConceptPlayerLeft IsSniper + Response PlayerHeadLeftSniper +} + +Response PlayerHeadRightSniper +{ + scene "scenes/Player/Sniper/low/1647.vcd" + scene "scenes/Player/Sniper/low/1648.vcd" + scene "scenes/Player/Sniper/low/1649.vcd" +} +Rule PlayerHeadRightSniper +{ + criteria ConceptPlayerRight IsSniper + Response PlayerHeadRightSniper +} + +Response PlayerHelpSniper +{ + scene "scenes/Player/Sniper/low/1650.vcd" + scene "scenes/Player/Sniper/low/1651.vcd" + scene "scenes/Player/Sniper/low/1652.vcd" +} +Rule PlayerHelpSniper +{ + criteria ConceptPlayerHelp IsSniper + Response PlayerHelpSniper +} + +Response PlayerHelpCaptureSniper +{ + scene "scenes/Player/Sniper/low/1653.vcd" + scene "scenes/Player/Sniper/low/1654.vcd" + scene "scenes/Player/Sniper/low/1655.vcd" +} +Rule PlayerHelpCaptureSniper +{ + criteria ConceptPlayerHelp IsSniper IsOnCappableControlPoint + ApplyContext "SniperHelpCap:1:10" + Response PlayerHelpCaptureSniper +} + +Response PlayerHelpCapture2Sniper +{ + scene "scenes/Player/Sniper/low/1736.vcd" + scene "scenes/Player/Sniper/low/1737.vcd" +} +Rule PlayerHelpCapture2Sniper +{ + criteria ConceptPlayerHelp IsSniper IsOnCappableControlPoint IsHelpCapSniper + Response PlayerHelpCapture2Sniper +} + +// Custom stuff +// Response for when the Sniper is fighting on a cappable point +Response PlayerGetOnPointSniper +{ + scene "scenes/Player/Sniper/low/2289.vcd" + scene "scenes/Player/Sniper/low/2290.vcd" + scene "scenes/Player/Sniper/low/2291.vcd" + scene "scenes/Player/Sniper/low/2418.vcd" + scene "scenes/Player/Sniper/low/2419.vcd" + scene "scenes/Player/Sniper/low/2420.vcd" +} + +Rule PlayerGetOnPointSniper +{ + criterion ConceptFireWeapon IsSniper IsOnCappableControlPoint NotDefendOnThePointSpeech + ApplyContext "DefendOnThePointSpeech:1:15" + applycontexttoworld + Response PlayerGetOnPointSniper +} +// End custom + +Response PlayerHelpDefendSniper +{ + scene "scenes/Player/Sniper/low/1656.vcd" + scene "scenes/Player/Sniper/low/1657.vcd" + scene "scenes/Player/Sniper/low/1658.vcd" +} +Rule PlayerHelpDefendSniper +{ + criteria ConceptPlayerHelp IsSniper IsOnFriendlyControlPoint + Response PlayerHelpDefendSniper +} + +Response PlayerMedicSniper +{ + scene "scenes/Player/Sniper/low/1678.vcd" + scene "scenes/Player/Sniper/low/1679.vcd" +} +Rule PlayerMedicSniper +{ + criteria ConceptPlayerMedic IsSniper + Response PlayerMedicSniper +} + +Response PlayerAskForBallSniper +{ +} +Rule PlayerAskForBallSniper +{ + criteria ConceptPlayerAskForBall IsSniper + Response PlayerAskForBallSniper +} + +Response PlayerMoveUpSniper +{ + scene "scenes/Player/Sniper/low/1681.vcd" + scene "scenes/Player/Sniper/low/1682.vcd" +} +Rule PlayerMoveUpSniper +{ + criteria ConceptPlayerMoveUp IsSniper + Response PlayerMoveUpSniper +} + +Response PlayerNoSniper +{ + scene "scenes/Player/Sniper/low/1694.vcd" + scene "scenes/Player/Sniper/low/1695.vcd" + scene "scenes/Player/Sniper/low/1696.vcd" + scene "scenes/Player/Sniper/low/1782.vcd" +} +Rule PlayerNoSniper +{ + criteria ConceptPlayerNo IsSniper + Response PlayerNoSniper +} + +Response PlayerThanksSniper +{ + scene "scenes/Player/Sniper/low/1760.vcd" + scene "scenes/Player/Sniper/low/1836.vcd" +} +Rule PlayerThanksSniper +{ + criteria ConceptPlayerThanks IsSniper + Response PlayerThanksSniper +} + +// Custom Assist kill response +// As there is no actual concept for assist kills, this is the second best method. +// Say thanks after you kill more than one person. + +Response KilledPlayerAssistSniper +{ + scene "scenes/Player/Sniper/low/1734.vcd" + scene "scenes/Player/Sniper/low/1735.vcd" +} +Rule KilledPlayerAssistSniper +{ + criteria ConceptPlayerThanks IsSniper IsARecentKill KilledPlayerDelay SniperNotAssistSpeech + ApplyContext "SniperAssistSpeech:1:20" + Response KilledPlayerAssistSniper +} +// End custom + +Response PlayerYesSniper +{ + scene "scenes/Player/Sniper/low/1767.vcd" + scene "scenes/Player/Sniper/low/1768.vcd" + scene "scenes/Player/Sniper/low/1769.vcd" +} +Rule PlayerYesSniper +{ + criteria ConceptPlayerYes IsSniper + Response PlayerYesSniper +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 2 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerActivateChargeSniper +{ + scene "scenes/Player/Sniper/low/1597.vcd" + scene "scenes/Player/Sniper/low/1599.vcd" + scene "scenes/Player/Sniper/low/1598.vcd" + scene "scenes/Player/Sniper/low/1770.vcd" +} +Rule PlayerActivateChargeSniper +{ + criteria ConceptPlayerActivateCharge IsSniper + Response PlayerActivateChargeSniper +} + +Response PlayerCloakedSpySniper +{ + scene "scenes/Player/Sniper/low/1626.vcd" + scene "scenes/Player/Sniper/low/1627.vcd" + scene "scenes/Player/Sniper/low/1628.vcd" +} +Rule PlayerCloakedSpySniper +{ + criteria ConceptPlayerCloakedSpy IsSniper + Response PlayerCloakedSpySniper +} + +Response PlayerDispenserHereSniper +{ + scene "scenes/Player/Sniper/low/1683.vcd" +} +Rule PlayerDispenserHereSniper +{ + criteria ConceptPlayerDispenserHere IsSniper + Response PlayerDispenserHereSniper +} + +Response PlayerIncomingSniper +{ + scene "scenes/Player/Sniper/low/1659.vcd" + scene "scenes/Player/Sniper/low/1660.vcd" + scene "scenes/Player/Sniper/low/1661.vcd" + scene "scenes/Player/Sniper/low/1773.vcd" +} +Rule PlayerIncomingSniper +{ + criteria ConceptPlayerIncoming IsSniper + Response PlayerIncomingSniper +} + +Response PlayerSentryAheadSniper +{ + scene "scenes/Player/Sniper/low/1711.vcd" +} +Rule PlayerSentryAheadSniper +{ + criteria ConceptPlayerSentryAhead IsSniper + Response PlayerSentryAheadSniper +} + +Response PlayerSentryHereSniper +{ + scene "scenes/Player/Sniper/low/1684.vcd" +} +Rule PlayerSentryHereSniper +{ + criteria ConceptPlayerSentryHere IsSniper + Response PlayerSentryHereSniper +} + +Response PlayerTeleporterHereSniper +{ + scene "scenes/Player/Sniper/low/1685.vcd" +} +Rule PlayerTeleporterHereSniper +{ + criteria ConceptPlayerTeleporterHere IsSniper + Response PlayerTeleporterHereSniper +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 3 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerBattleCrySniper +{ + scene "scenes/Player/Sniper/low/1612.vcd" + scene "scenes/Player/Sniper/low/1613.vcd" + scene "scenes/Player/Sniper/low/1614.vcd" + scene "scenes/Player/Sniper/low/1615.vcd" + scene "scenes/Player/Sniper/low/1616.vcd" + scene "scenes/Player/Sniper/low/1617.vcd" +} +Rule PlayerBattleCrySniper +{ + criteria ConceptPlayerBattleCry IsSniper + Response PlayerBattleCrySniper +} + +// Custom stuff - melee dare +// Look at enemy, then do battle cry voice command while holding a melee weapon. +Response MeleeDareCombatSniper +{ + scene "scenes/Player/Sniper/low/2319.vcd" + scene "scenes/Player/Sniper/low/2320.vcd" + scene "scenes/Player/Sniper/low/2321.vcd" + scene "scenes/Player/Sniper/low/2369.vcd" + scene "scenes/Player/Sniper/low/2372.vcd" + scene "scenes/Player/Sniper/low/2373.vcd" + scene "scenes/Player/Sniper/low/2374.vcd" + scene "scenes/Player/Sniper/low/2388.vcd" + scene "scenes/Player/Sniper/low/2389.vcd" +} +Rule MeleeDareCombatSniper +{ + criteria ConceptPlayerBattleCry IsWeaponMelee IsSniper IsCrosshairEnemy + Response MeleeDareCombatSniper +} + +// New wepaon lines + +Response PlayerShinyCrySniper +{ + scene "scenes/Player/Sniper/low/2284.vcd" + scene "scenes/Player/Sniper/low/2285.vcd" + scene "scenes/Player/Sniper/low/2286.vcd" + scene "scenes/Player/Sniper/low/2287.vcd" + scene "scenes/Player/Sniper/low/2288.vcd" + scene "scenes/Player/Sniper/low/2421.vcd" + scene "scenes/Player/Sniper/low/2422.vcd" + scene "scenes/Player/Sniper/low/2433.vcd" + scene "scenes/Player/Sniper/low/2477.vcd" +} +Rule PlayerShinyCrySniper +{ + criteria ConceptPlayerBattleCry IsSniper 30PercentChance IsWeaponPrimary WeaponIsNotVanillaPrimary WeaponIsNotTaggedRifle + Response PlayerShinyCrySniper +} + +Rule PlayerShinyCrySniperBow +{ + criteria ConceptPlayerBattleCry IsSniper 30PercentChance WeaponIsBow WeaponIsNotVanillaPrimary + Response PlayerShinyCrySniper +} + +// This rule is here for future-proofing + +Rule PlayerShinyCrySniperSecondary +{ + criteria ConceptPlayerBattleCry IsSniper 30PercentChance IsWeaponSecondary WeaponIsNotVanillaSecondary WeaponIsNotTaggedSMG + Response PlayerShinyCrySniper +} + +// Some achievement weapons seem to use the item1 etc weapon mode, so we use a hard rule for Jarate or Bow +Rule PlayerShinyCrySniperJarate +{ + criteria ConceptPlayerBattleCry IsSniper 30PercentChance WeaponIsJarate WeaponIsNotVanillaSecondary + Response PlayerShinyCrySniper +} + +Rule PlayerShinyCrySniperMelee +{ + criteria ConceptPlayerBattleCry IsSniper 30PercentChance IsWeaponMelee IsNotCrossHairEnemy WeaponIsNotVanillaMelee WeaponIsNotTaggedKukri + Response PlayerShinyCrySniper +} + +//End custom + +Response PlayerCheersSniper +{ + scene "scenes/Player/Sniper/low/1618.vcd" + scene "scenes/Player/Sniper/low/1619.vcd" + scene "scenes/Player/Sniper/low/1620.vcd" + scene "scenes/Player/Sniper/low/1621.vcd" + scene "scenes/Player/Sniper/low/1622.vcd" + scene "scenes/Player/Sniper/low/1623.vcd" + scene "scenes/Player/Sniper/low/1624.vcd" + scene "scenes/Player/Sniper/low/1625.vcd" +} +Rule PlayerCheersSniper +{ + criteria ConceptPlayerCheers IsSniper + Response PlayerCheersSniper +} + +Response PlayerGoodJobSniper +{ + scene "scenes/Player/Sniper/low/1641.vcd" + scene "scenes/Player/Sniper/low/1642.vcd" + scene "scenes/Player/Sniper/low/1643.vcd" +} +Rule PlayerGoodJobSniper +{ + criteria ConceptPlayerGoodJob IsSniper + Response PlayerGoodJobSniper +} + +Response PlayerJeersSniper +{ + scene "scenes/Player/Sniper/low/1662.vcd" + scene "scenes/Player/Sniper/low/1663.vcd" + scene "scenes/Player/Sniper/low/1664.vcd" + scene "scenes/Player/Sniper/low/1665.vcd" + scene "scenes/Player/Sniper/low/1666.vcd" + scene "scenes/Player/Sniper/low/1667.vcd" + scene "scenes/Player/Sniper/low/1668.vcd" + scene "scenes/Player/Sniper/low/1669.vcd" +} +Rule PlayerJeersSniper +{ + criteria ConceptPlayerJeers IsSniper + Response PlayerJeersSniper +} + +Response PlayerLostPointSniper +{ + scene "scenes/Player/Sniper/low/1686.vcd" + scene "scenes/Player/Sniper/low/1687.vcd" + scene "scenes/Player/Sniper/low/1688.vcd" + scene "scenes/Player/Sniper/low/1689.vcd" + scene "scenes/Player/Sniper/low/1690.vcd" + scene "scenes/Player/Sniper/low/1778.vcd" + scene "scenes/Player/Sniper/low/1779.vcd" + scene "scenes/Player/Sniper/low/1780.vcd" + scene "scenes/Player/Sniper/low/1781.vcd" +} +Rule PlayerLostPointSniper +{ + criteria ConceptPlayerLostPoint IsSniper + Response PlayerLostPointSniper +} + +Response PlayerNegativeSniper +{ + scene "scenes/Player/Sniper/low/1686.vcd" + scene "scenes/Player/Sniper/low/1687.vcd" + scene "scenes/Player/Sniper/low/1688.vcd" + scene "scenes/Player/Sniper/low/1689.vcd" + scene "scenes/Player/Sniper/low/1690.vcd" + scene "scenes/Player/Sniper/low/1778.vcd" + scene "scenes/Player/Sniper/low/1779.vcd" + scene "scenes/Player/Sniper/low/1780.vcd" + scene "scenes/Player/Sniper/low/1781.vcd" +} +Rule PlayerNegativeSniper +{ + criteria ConceptPlayerNegative IsSniper + Response PlayerNegativeSniper +} + +Response PlayerNiceShotSniper +{ + scene "scenes/Player/Sniper/low/1691.vcd" + scene "scenes/Player/Sniper/low/1692.vcd" + scene "scenes/Player/Sniper/low/1693.vcd" +} +Rule PlayerNiceShotSniper +{ + criteria ConceptPlayerNiceShot IsSniper + Response PlayerNiceShotSniper +} + +Response PlayerPositiveSniper +{ + scene "scenes/Player/Sniper/low/1706.vcd" + scene "scenes/Player/Sniper/low/1707.vcd" + scene "scenes/Player/Sniper/low/1708.vcd" + scene "scenes/Player/Sniper/low/1709.vcd" + scene "scenes/Player/Sniper/low/1710.vcd" + scene "scenes/Player/Sniper/low/1783.vcd" + scene "scenes/Player/Sniper/low/1784.vcd" + scene "scenes/Player/Sniper/low/1785.vcd" + scene "scenes/Player/Sniper/low/1786.vcd" + scene "scenes/Player/Sniper/low/1787.vcd" +} + +Response PlayerTauntsSniper +{ + scene "scenes/Player/Sniper/low/1774.vcd" + scene "scenes/Player/Sniper/low/1676.vcd" + scene "scenes/Player/Sniper/low/1677.vcd" + scene "scenes/Player/Sniper/low/1775.vcd" + scene "scenes/Player/Sniper/low/1776.vcd" + scene "scenes/Player/Sniper/low/1777.vcd" +} +Rule PlayerPositiveSniper +{ + criteria ConceptPlayerPositive IsSniper + Response PlayerPositiveSniper + Response PlayerTauntsSniper +} + +//-------------------------------------------------------------------------------------------------------------- +// Begin Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- +Response PlayerFirstRoundStartCompSniper +{ + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_11.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_14.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_15.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_16.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_17.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_rare_04.vcd" predelay "1.0, 5.0" +} +Rule PlayerFirstRoundStartCompSniper +{ + criteria ConceptPlayerRoundStartComp IsSniper IsFirstRound IsNotComp6v6 40PercentChance + Response PlayerFirstRoundStartCompSniper +} + +Response PlayerFirstRoundStartComp6sSniper +{ + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_11.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_14.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_15.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_16.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_17.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_comp_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_rare_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_6s_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_6s_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_6s_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_6s_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamefirst_6s_05.vcd" predelay "1.0, 5.0" +} +Rule PlayerFirstRoundStartComp6sSniper +{ + criteria ConceptPlayerRoundStartComp IsSniper IsFirstRound IsComp6v6 40PercentChance + Response PlayerFirstRoundStartComp6sSniper +} + +Response PlayerWonPrevRoundCompSniper +{ + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamewonlast_rare_01.vcd" predelay "1.0, 5.0" +} +Rule PlayerWonPrevRoundCompSniper +{ + criteria ConceptPlayerRoundStartComp IsSniper IsNotFirstRound PlayerWonPreviousRound 40PercentChance + Response PlayerWonPrevRoundCompSniper +} + +Response PlayerLostPrevRoundCompSniper +{ + scene "scenes/Player/Sniper/low/cm_sniper_pregamelostlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamelostlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamelostlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamelostlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamelostlast_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamelostlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamelostlast_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregamelostlast_rare_02.vcd" predelay "1.0, 5.0" +} +Rule PlayerLostPrevRoundCompSniper +{ + criteria ConceptPlayerRoundStartComp IsSniper IsNotFirstRound PlayerLostPreviousRound PreviousRoundWasNotTie 40PercentChance + Response PlayerLostPrevRoundCompSniper +} + +Response PlayerTiedPrevRoundCompSniper +{ + scene "scenes/Player/Sniper/low/cm_sniper_pregametie_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregametie_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregametie_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregametie_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregametie_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregametie_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_pregametie_rare_01.vcd" predelay "1.0, 5.0" +} +Rule PlayerTiedPrevRoundCompSniper +{ + criteria ConceptPlayerRoundStartComp IsSniper IsNotFirstRound PreviousRoundWasTie 40PercentChance + Response PlayerTiedPrevRoundCompSniper +} + +Response PlayerGameWinCompSniper +{ + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_07.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_08.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_09.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_10.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_07.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_08.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_09.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_10.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_06.vcd" predelay "2.0, 5.0" +} +Rule PlayerGameWinCompSniper +{ + criteria ConceptPlayerGameOverComp PlayerOnWinningTeam IsNotComp6v6 IsSniper 40PercentChance + Response PlayerGameWinCompSniper +} + +Response PlayerGameWinComp6sSniper +{ + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_07.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_08.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_09.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_10.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_07.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_08.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_09.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_10.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_comp_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_6s_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Sniper/low/cm_sniper_gamewon_6s_02.vcd" predelay "2.0, 5.0" +} +Rule PlayerGameWinComp6sSniper +{ + criteria ConceptPlayerGameOverComp PlayerOnWinningTeam IsComp6v6 IsSniper 40PercentChance + Response PlayerGameWinComp6sSniper +} + +Response PlayerMatchWinCompSniper +{ + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_01.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_02.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_03.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_04.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_05.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_06.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_07.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_08.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_09.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_10.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_11.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_12.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_13.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_14.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_15.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Sniper/low/cm_sniper_matchwon_16.vcd" predelay "1.0, 2.0" +} +Rule PlayerMatchWinCompSniper +{ + criteria ConceptPlayerMatchOverComp PlayerOnWinningTeam IsSniper 40PercentChance + Response PlayerMatchWinCompSniper +} +//-------------------------------------------------------------------------------------------------------------- +// End Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/game/tc2/scripts/talker/soldier.txt b/game/tc2/scripts/talker/soldier.txt new file mode 100644 index 00000000000..46a15213526 --- /dev/null +++ b/game/tc2/scripts/talker/soldier.txt @@ -0,0 +1,1845 @@ +//-------------------------------------------------------------------------------------------------------------- +// Soldier Response Rule File +//-------------------------------------------------------------------------------------------------------------- + +Criterion "SoldierIsKillSpeechObject" "SoldierKillSpeechObject" "1" "required" weight 0 +Criterion "SoldierIsNotStillonFire" "SoldierOnFire" "!=1" "required" weight 0 +Criterion "SoldierIsStillonFire" "SoldierOnFire" "1" "required" weight 0 +Criterion "SoldierNotKillSpeech" "SoldierKillSpeech" "!=1" "required" weight 0 +Criterion "SoldierNotKillSpeechMelee" "SoldierKillSpeechMelee" "!=1" "required" weight 0 +Criterion "SoldierNotSaidHealThanks" "SoldierSaidHealThanks" "!=1" "required" +Criterion "SoldierNotRobotNoises" "SoldierRobotNoises" "!=1" "required" weight 0 +Criterion "IsHelpCapSoldier" "SoldierHelpCap" "1" "required" weight 0 +// Custom criterion +Criterion "SoldierNotAssistSpeech" "SoldierAssistSpeech" "!=1" "required" weight 0 +Criterion "SoldierNotInvulnerableSpeech" "SoldierInvulnerableSpeech" "!=1" "required" weight 0 +Criterion "SoldierNotAwardSpeech" "SoldierAwardSpeech" "!=1" "required" weight 0 + +Response PlayerCloakedSpyDemomanSoldier +{ + scene "scenes/Player/Soldier/low/1082.vcd" +} +Rule PlayerCloakedSpyDemomanSoldier +{ + criteria ConceptPlayerCloakedSpy IsSoldier IsOnDemoman + Response PlayerCloakedSpyDemomanSoldier +} + +Response PlayerCloakedSpyEngineerSoldier +{ + scene "scenes/Player/Soldier/low/1087.vcd" +} +Rule PlayerCloakedSpyEngineerSoldier +{ + criteria ConceptPlayerCloakedSpy IsSoldier IsOnEngineer + Response PlayerCloakedSpyEngineerSoldier +} + +Response PlayerCloakedSpyHeavySoldier +{ + scene "scenes/Player/Soldier/low/1077.vcd" +} +Rule PlayerCloakedSpyHeavySoldier +{ + criteria ConceptPlayerCloakedSpy IsSoldier IsOnHeavy + Response PlayerCloakedSpyHeavySoldier +} + +Response PlayerCloakedSpyMedicSoldier +{ + scene "scenes/Player/Soldier/low/1085.vcd" +} +Rule PlayerCloakedSpyMedicSoldier +{ + criteria ConceptPlayerCloakedSpy IsSoldier IsOnMedic + Response PlayerCloakedSpyMedicSoldier +} + +Response PlayerCloakedSpyPyroSoldier +{ + scene "scenes/Player/Soldier/low/1080.vcd" +} +Rule PlayerCloakedSpyPyroSoldier +{ + criteria ConceptPlayerCloakedSpy IsSoldier IsOnPyro + Response PlayerCloakedSpyPyroSoldier +} + +Response PlayerCloakedSpyScoutSoldier +{ + scene "scenes/Player/Soldier/low/1074.vcd" +} +Rule PlayerCloakedSpyScoutSoldier +{ + criteria ConceptPlayerCloakedSpy IsSoldier IsOnScout + Response PlayerCloakedSpyScoutSoldier +} + +Response PlayerCloakedSpySniperSoldier +{ + scene "scenes/Player/Soldier/low/1090.vcd" +} +Rule PlayerCloakedSpySniperSoldier +{ + criteria ConceptPlayerCloakedSpy IsSoldier IsOnSniper + Response PlayerCloakedSpySniperSoldier +} + +Response PlayerCloakedSpySoldierSoldier +{ + scene "scenes/Player/Soldier/low/1075.vcd" +} +Rule PlayerCloakedSpySoldierSoldier +{ + criteria ConceptPlayerCloakedSpy IsSoldier IsOnSoldier + Response PlayerCloakedSpySoldierSoldier +} + +Response PlayerCloakedSpySpySoldier +{ + scene "scenes/Player/Soldier/low/1083.vcd" +} +Rule PlayerCloakedSpySpySoldier +{ + criteria ConceptPlayerCloakedSpy IsSoldier IsOnSpy + Response PlayerCloakedSpySpySoldier +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech +//-------------------------------------------------------------------------------------------------------------- +Response HealThanksSoldier +{ + scene "scenes/Player/Soldier/low/1213.vcd" + scene "scenes/Player/Soldier/low/1214.vcd" + scene "scenes/Player/Soldier/low/1215.vcd" +} +Rule HealThanksSoldier +{ + criteria ConceptMedicChargeStopped IsSoldier SuperHighHealthContext SoldierNotSaidHealThanks 50PercentChance + ApplyContext "SoldierSaidHealThanks:1:20" + Response HealThanksSoldier +} + +// Custom achievement stuff +Response AwardSoldier +{ + scene "scenes/Player/Soldier/low/1043.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1048.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1135.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1347.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1182.vcd" predelay "2.5" +} +Rule AwardSoldier +{ + criteria ConceptAchievementAward IsSoldier SoldierNotAwardSpeech + ApplyContext "SoldierAwardSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response AwardSoldier +} +//End custom achievement + +Response PlayerRoundStartSoldier +{ + scene "scenes/Player/Soldier/low/1055.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/1057.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/1058.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/1059.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/1056.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/1060.vcd" predelay "1.0, 5.0" +} +Rule PlayerRoundStartSoldier +{ + criteria ConceptPlayerRoundStart IsSoldier + Response PlayerRoundStartSoldier +} + +Response PlayerCappedIntelligenceSoldier +{ + scene "scenes/Player/Soldier/low/1046.vcd" + scene "scenes/Player/Soldier/low/1048.vcd" + scene "scenes/Player/Soldier/low/1047.vcd" +} +Rule PlayerCappedIntelligenceSoldier +{ + criteria ConceptPlayerCapturedIntelligence IsSoldier + Response PlayerCappedIntelligenceSoldier +} + +Response PlayerCapturedPointSoldier +{ + scene "scenes/Player/Soldier/low/1043.vcd" + scene "scenes/Player/Soldier/low/1044.vcd" + scene "scenes/Player/Soldier/low/1045.vcd" +} +Rule PlayerCapturedPointSoldier +{ + criteria ConceptPlayerCapturedPoint IsSoldier + Response PlayerCapturedPointSoldier +} + +Response PlayerSuddenDeathSoldier +{ + scene "scenes/Player/Soldier/low/1120.vcd" + scene "scenes/Player/Soldier/low/1121.vcd" + scene "scenes/Player/Soldier/low/1122.vcd" + scene "scenes/Player/Soldier/low/1123.vcd" + scene "scenes/Player/Soldier/low/1124.vcd" + scene "scenes/Player/Soldier/low/1125.vcd" + scene "scenes/Player/Soldier/low/1126.vcd" + scene "scenes/Player/Soldier/low/1127.vcd" + scene "scenes/Player/Soldier/low/1128.vcd" + scene "scenes/Player/Soldier/low/1129.vcd" + scene "scenes/Player/Soldier/low/1130.vcd" + scene "scenes/Player/Soldier/low/1131.vcd" +} +Rule PlayerSuddenDeathSoldier +{ + criteria ConceptPlayerSuddenDeathStart IsSoldier + Response PlayerSuddenDeathSoldier +} + +Response PlayerStalemateSoldier +{ + scene "scenes/Player/Soldier/low/1049.vcd" + scene "scenes/Player/Soldier/low/1050.vcd" + scene "scenes/Player/Soldier/low/1051.vcd" +} +Rule PlayerStalemateSoldier +{ + criteria ConceptPlayerStalemate IsSoldier + Response PlayerStalemateSoldier +} + +Response PlayerTeleporterThanksSoldier +{ + scene "scenes/Player/Soldier/low/1216.vcd" + scene "scenes/Player/Soldier/low/1217.vcd" + scene "scenes/Player/Soldier/low/1218.vcd" +} +Rule PlayerTeleporterThanksSoldier +{ + criteria ConceptTeleported IsNotEngineer IsSoldier 30PercentChance + Response PlayerTeleporterThanksSoldier +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Combat +//-------------------------------------------------------------------------------------------------------------- +Response DefendOnThePointSoldier +{ + scene "scenes/Player/Soldier/low/1187.vcd" + scene "scenes/Player/Soldier/low/1354.vcd" + scene "scenes/Player/Soldier/low/1355.vcd" +} +Rule DefendOnThePointSoldier +{ + criteria ConceptFireWeapon IsSoldier IsOnFriendlyControlPoint NotDefendOnThePointSpeech + ApplyContext "DefendOnThePointSpeech:1:30" + applycontexttoworld + Response DefendOnThePointSoldier +} + +Response KilledPlayerManySoldier +{ + scene "scenes/Player/Soldier/low/1181.vcd" + scene "scenes/Player/Soldier/low/1356.vcd" + scene "scenes/Player/Soldier/low/1197.vcd" + scene "scenes/Player/Soldier/low/1199.vcd" +} +Rule KilledPlayerManySoldier +{ + criteria ConceptKilledPlayer IsManyRecentKills 30PercentChance IsWeaponPrimary KilledPlayerDelay SoldierNotKillSpeech IsSoldier + ApplyContext "SoldierKillSpeech:1:10" + Response KilledPlayerManySoldier +} + +Response KilledDemomanSoldier +{ + scene "scenes/Player/Soldier/low/3486.vcd" + scene "scenes/Player/Soldier/low/3487.vcd" + scene "scenes/Player/Soldier/low/3488.vcd" + scene "scenes/Player/Soldier/low/3489.vcd" + scene "scenes/Player/Soldier/low/3490.vcd" + scene "scenes/Player/Soldier/low/3491.vcd" +} +Rule KilledDemomanSoldier +{ + criterion ConceptKilledPlayer KilledPlayerDelay IsVictimDemoman 10PercentChance SoldierNotKillSpeech IsSoldier + ApplyContext "SoldierKillSpeech:1:10" + Response KilledDemomanSoldier +} + +Response KilledPlayerAssistAutoSoldier +{ + scene "scenes/Player/Soldier/low/1186.vcd" predelay "2.5" +} +Rule KilledPlayerAssistAutoSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsBeingHealed IsManyRecentKills KilledPlayerDelay 20PercentChance SoldierNotAssistSpeech + ApplyContext "SoldierAssistSpeech:1:20" + Response KilledPlayerAssistAutoSoldier +} + +// A custom rule for when you're on a pocket Soldier killing spree. +Response SpreeMedicSoldier +{ + scene "scenes/Player/Soldier/low/3492.vcd" + scene "scenes/Player/Soldier/low/3493.vcd" + scene "scenes/Player/Soldier/low/3494.vcd" +} +Rule SpreeMedicSoldier +{ + criteria ConceptKilledPlayer KilledPlayerDelay IsSoldier IsBeingHealed SoldierNotKillSpeech IsVeryManyRecentKills IsWeaponPrimary + ApplyContext "SoldierKillSpeech:1:20" + Response SpreeMedicSoldier +} + +// Custom Medic follow - because Soldier needs it more than most classes. +Response MedicFollowSoldier +{ + scene "scenes/Player/Soldier/low/3495.vcd" predelay ".25" + scene "scenes/Player/Soldier/low/3496.vcd" predelay ".25" + scene "scenes/Player/Soldier/low/3497.vcd" predelay ".25" + scene "scenes/Player/Soldier/low/3499.vcd" predelay ".25" +} +Rule MedicFollowSoldier +{ + criteria ConceptPlayerMedic IsOnMedic IsSoldier IsNotCrossHairEnemy NotLowHealth SoldierIsNotStillonFire + ApplyContext "ScoutKillSpeech:1:10" + Response MedicFollowSoldier +} + +Response SoldierJarateHit +{ + scene "scenes/Player/Soldier/low/1051.vcd" + scene "scenes/Player/Soldier/low/1155.vcd" + scene "scenes/Player/Soldier/low/1353.vcd" + scene "scenes/Player/Soldier/low/1152.vcd" +} +Rule SoldierJarateHit +{ + criteria ConceptJarateHit IsSoldier 50PercentChance + Response SoldierJarateHit +} + +// Invulnerable lines +Response InvulnerableSpeechSoldier +{ + scene "scenes/Player/Soldier/low/1191.vcd" + scene "scenes/Player/Soldier/low/1194.vcd" + scene "scenes/Player/Soldier/low/1200.vcd" + scene "scenes/Player/Soldier/low/1204.vcd" + scene "scenes/Player/Soldier/low/1192.vcd" + scene "scenes/Player/Soldier/low/1189.vcd" + scene "scenes/Player/Soldier/low/1201.vcd" +} +Rule InvulnerableSpeechSoldier +{ + criterion ConceptFireWeapon IsSoldier IsInvulnerable SoldierNotInvulnerableSpeech + ApplyContext "SoldierInvulnerableSpeech:1:30" + Response InvulnerableSpeechSoldier +} + +// End custom stuff + +// Added the unused Direct Hit screams here, as they can't be added to the taunt. +Response KilledPlayerMeleeSoldier +{ + scene "scenes/Player/Soldier/low/1185.vcd" + scene "scenes/Player/Soldier/low/3403.vcd" + scene "scenes/Player/Soldier/low/3405.vcd" + scene "scenes/Player/Soldier/low/3406.vcd" +} +Rule KilledPlayerMeleeSoldier +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee SoldierNotKillSpeechMelee IsSoldier + ApplyContext "SoldierKillSpeechMelee:1:10" + Response KilledPlayerMeleeSoldier +} + +Response KilledPlayerVeryManySoldier +{ + scene "scenes/Player/Soldier/low/1206.vcd" + scene "scenes/Player/Soldier/low/1188.vcd" +} +Rule KilledPlayerVeryManySoldier +{ + criteria ConceptKilledPlayer IsVeryManyRecentKills 50PercentChance IsWeaponPrimary KilledPlayerDelay SoldierNotKillSpeech IsSoldier + ApplyContext "SoldierKillSpeech:1:10" + Response KilledPlayerVeryManySoldier +} + +Response PlayerKilledCapperSoldier +{ + scene "scenes/Player/Soldier/low/1064.vcd" + scene "scenes/Player/Soldier/low/1062.vcd" + scene "scenes/Player/Soldier/low/1063.vcd" +} +Rule PlayerKilledCapperSoldier +{ + criteria ConceptCapBlocked IsSoldier + ApplyContext "SoldierKillSpeech:1:10" + Response PlayerKilledCapperSoldier +} + +Response PlayerKilledDominatingSoldier +{ + scene "scenes/Player/Soldier/low/1132.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1346.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1348.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1133.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1134.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1347.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1135.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1349.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1195.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1202.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsDominated + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSoldier +} + +Response PlayerKilledDominatingDemomanSoldier +{ + scene "scenes/Player/Soldier/low/3407.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3408.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3409.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3410.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3411.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3412.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingDemomanSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsDominated IsVictimDemoman + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingDemomanSoldier +} + +Response PlayerKilledDominatingEngineerSoldier +{ + scene "scenes/Player/Soldier/low/3418.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3419.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3420.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3421.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3422.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3423.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingEngineerSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsDominated IsVictimEngineer + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingEngineerSoldier +} + +Response PlayerKilledDominatingHeavySoldier +{ + scene "scenes/Player/Soldier/low/3424.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3425.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3426.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3427.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3428.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3429.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3430.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingHeavySoldier +{ + criteria ConceptKilledPlayer IsSoldier IsDominated IsVictimHeavy + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingHeavySoldier +} + +Response PlayerKilledDominatingMedicSoldier +{ + scene "scenes/Player/Soldier/low/3431.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3432.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3433.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3434.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3435.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3436.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3437.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingMedicSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsDominated IsVictimMedic + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingMedicSoldier +} + +Response PlayerKilledDominatingPyroSoldier +{ + scene "scenes/Player/Soldier/low/3438.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3439.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3440.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3441.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3442.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3443.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3444.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3445.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3446.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingPyroSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsDominated IsVictimPyro + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingPyroSoldier +} + +Response PlayerKilledDominatingScoutSoldier +{ + scene "scenes/Player/Soldier/low/3447.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3448.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3449.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3450.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3451.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3452.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3453.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3454.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3455.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3456.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3457.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingScoutSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsDominated IsVictimScout + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingScoutSoldier +} + +Response PlayerKilledDominatingSniperSoldier +{ + scene "scenes/Player/Soldier/low/3458.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3459.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3460.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3461.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3462.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3463.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3464.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3465.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3466.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3467.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3468.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3469.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3470.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3471.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSniperSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsDominated IsVictimSniper + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSniperSoldier +} + +Response PlayerKilledDominatingSoldierSoldier +{ + scene "scenes/Player/Soldier/low/3472.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3473.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3474.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3475.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3476.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3477.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSoldierSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsDominated IsVictimSoldier + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSoldierSoldier +} + +Response PlayerKilledDominatingSpySoldier +{ + scene "scenes/Player/Soldier/low/3478.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3479.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3480.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3481.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3482.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3483.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3484.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/3485.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSpySoldier +{ + criteria ConceptKilledPlayer IsSoldier IsDominated IsVictimSpy + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSpySoldier +} + +Response PlayerKilledForRevengeSoldier +{ + scene "scenes/Player/Soldier/low/1060.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1065.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1096.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsRevenge + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeSoldier +} + +Response PlayerKilledObjectSoldier +{ + scene "scenes/Player/Soldier/low/1055.vcd" + scene "scenes/Player/Soldier/low/1345.vcd" + scene "scenes/Player/Soldier/low/1172.vcd" + scene "scenes/Player/Soldier/low/1175.vcd" + scene "scenes/Player/Soldier/low/1182.vcd" +} +Rule PlayerKilledObjectSoldier +{ + criteria ConceptKilledObject IsSoldier 30PercentChance IsARecentKill + ApplyContext "SoldierKillSpeechObject:1:30" + Response PlayerKilledObjectSoldier +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Pain +//-------------------------------------------------------------------------------------------------------------- +Response PlayerAttackerPainSoldier +{ + scene "scenes/Player/Soldier/low/1165.vcd" + scene "scenes/Player/Soldier/low/1166.vcd" + scene "scenes/Player/Soldier/low/1167.vcd" + scene "scenes/Player/Soldier/low/1371.vcd" + scene "scenes/Player/Soldier/low/1372.vcd" + scene "scenes/Player/Soldier/low/1373.vcd" +} +Rule PlayerAttackerPainSoldier +{ + criteria ConceptAttackerPain IsSoldier IsNotDominating + Response PlayerAttackerPainSoldier +} + +Response PlayerOnFireSoldier +{ + scene "scenes/Player/Soldier/low/1052.vcd" +} +Rule PlayerOnFireSoldier +{ + criteria ConceptFire IsSoldier SoldierIsNotStillonFire IsNotDominating + ApplyContext "SoldierOnFire:1:7" + Response PlayerOnFireSoldier +} + +Response PlayerOnFireRareSoldier +{ + scene "scenes/Player/Soldier/low/1053.vcd" + scene "scenes/Player/Soldier/low/1054.vcd" +} +Rule PlayerOnFireRareSoldier +{ + criteria ConceptFire IsSoldier 10PercentChance SoldierIsNotStillonFire IsNotDominating + ApplyContext "SoldierOnFire:1:7" + Response PlayerOnFireRareSoldier +} + +Response PlayerPainSoldier +{ + scene "scenes/Player/Soldier/low/1168.vcd" + scene "scenes/Player/Soldier/low/1169.vcd" + scene "scenes/Player/Soldier/low/1170.vcd" + scene "scenes/Player/Soldier/low/1374.vcd" + scene "scenes/Player/Soldier/low/1375.vcd" + scene "scenes/Player/Soldier/low/1376.vcd" + scene "scenes/Player/Soldier/low/1377.vcd" + scene "scenes/Player/Soldier/low/1378.vcd" +} +Rule PlayerPainSoldier +{ + criteria ConceptPain IsSoldier IsNotDominating + Response PlayerPainSoldier +} + +Response PlayerStillOnFireSoldier +{ + scene "scenes/Player/Soldier/low/1926.vcd" +} +Rule PlayerStillOnFireSoldier +{ + criteria ConceptFire IsSoldier SoldierIsStillonFire IsNotDominating + ApplyContext "SoldierOnFire:1:7" + Response PlayerStillOnFireSoldier +} + + +//-------------------------------------------------------------------------------------------------------------- +// Duel Speech +//-------------------------------------------------------------------------------------------------------------- +Response AcceptedDuelSoldier +{ + scene "scenes/Player/Soldier/low/1062.vcd" + scene "scenes/Player/Soldier/low/1172.vcd" + scene "scenes/Player/Soldier/low/1175.vcd" + scene "scenes/Player/Soldier/low/1174.vcd" + scene "scenes/Player/Soldier/low/1190.vcd" + scene "scenes/Player/Soldier/low/1221.vcd" +} +Rule AcceptedDuelSoldier +{ + criteria ConceptIAcceptDuel IsSoldier + Response AcceptedDuelSoldier +} + +Response MeleeDareSoldier +{ + scene "scenes/Player/Soldier/low/1094.vcd" + scene "scenes/Player/Soldier/low/1188.vcd" + scene "scenes/Player/Soldier/low/1195.vcd" + scene "scenes/Player/Soldier/low/1196.vcd" + scene "scenes/Player/Soldier/low/1202.vcd" + scene "scenes/Player/Soldier/low/1210.vcd" +} +Rule MeleeDareSoldier +{ + criteria ConceptRequestDuel IsSoldier + Response MeleeDareSoldier +} + +Response RejectedDuelSoldier +{ + scene "scenes/Player/Soldier/low/3487.vcd" + scene "scenes/Player/Soldier/low/1120.vcd" + scene "scenes/Player/Soldier/low/1207.vcd" +} +Rule RejectedDuelSoldier +{ + criteria ConceptDuelRejected IsSoldier + Response RejectedDuelSoldier +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 1 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerGoSoldier +{ + scene "scenes/Player/Soldier/low/1092.vcd" + scene "scenes/Player/Soldier/low/1093.vcd" + scene "scenes/Player/Soldier/low/1094.vcd" // Restored +} +Rule PlayerGoSoldier +{ + criteria ConceptPlayerGo IsSoldier + Response PlayerGoSoldier +} + +Response PlayerHeadLeftSoldier +{ + scene "scenes/Player/Soldier/low/1098.vcd" + scene "scenes/Player/Soldier/low/1100.vcd" + scene "scenes/Player/Soldier/low/1099.vcd" +} +Rule PlayerHeadLeftSoldier +{ + criteria ConceptPlayerLeft IsSoldier + Response PlayerHeadLeftSoldier +} + +Response PlayerHeadRightSoldier +{ + scene "scenes/Player/Soldier/low/1103.vcd" + scene "scenes/Player/Soldier/low/1101.vcd" + scene "scenes/Player/Soldier/low/1102.vcd" +} +Rule PlayerHeadRightSoldier +{ + criteria ConceptPlayerRight IsSoldier + Response PlayerHeadRightSoldier +} + +Response PlayerHelpSoldier +{ + scene "scenes/Player/Soldier/low/1104.vcd" + scene "scenes/Player/Soldier/low/1105.vcd" + scene "scenes/Player/Soldier/low/1106.vcd" +} +Rule PlayerHelpSoldier +{ + criteria ConceptPlayerHelp IsSoldier + Response PlayerHelpSoldier +} + +Response PlayerHelpCaptureSoldier +{ + scene "scenes/Player/Soldier/low/1109.vcd" + scene "scenes/Player/Soldier/low/1107.vcd" + scene "scenes/Player/Soldier/low/1108.vcd" +} +Rule PlayerHelpCaptureSoldier +{ + criteria ConceptPlayerHelp IsSoldier IsOnCappableControlPoint + ApplyContext "SoldierHelpCap:1:10" + Response PlayerHelpCaptureSoldier +} + +Response PlayerHelpCapture2Soldier +{ + scene "scenes/Player/Soldier/low/1187.vcd" + scene "scenes/Player/Soldier/low/1354.vcd" + scene "scenes/Player/Soldier/low/1355.vcd" +} +Rule PlayerHelpCapture2Soldier +{ + criteria ConceptPlayerHelp IsSoldier IsOnCappableControlPoint IsHelpCapSoldier + Response PlayerHelpCapture2Soldier +} + +Response PlayerHelpDefendSoldier +{ + scene "scenes/Player/Soldier/low/1110.vcd" + scene "scenes/Player/Soldier/low/1111.vcd" + scene "scenes/Player/Soldier/low/1112.vcd" + scene "scenes/Player/Soldier/low/1113.vcd" +} +Rule PlayerHelpDefendSoldier +{ + criteria ConceptPlayerHelp IsSoldier IsOnFriendlyControlPoint + Response PlayerHelpDefendSoldier +} + +Response PlayerMedicSoldier +{ + scene "scenes/Player/Soldier/low/1139.vcd" + scene "scenes/Player/Soldier/low/1140.vcd" + scene "scenes/Player/Soldier/low/1141.vcd" +} +Rule PlayerMedicSoldier +{ + criteria ConceptPlayerMedic IsSoldier + Response PlayerMedicSoldier +} + +Response PlayerAskForBallSoldier +{ +} +Rule PlayerAskForBallSoldier +{ + criteria ConceptPlayerAskForBall IsSoldier + Response PlayerAskForBallSoldier +} + +Response PlayerMoveUpSoldier +{ + scene "scenes/Player/Soldier/low/1142.vcd" + scene "scenes/Player/Soldier/low/1143.vcd" + scene "scenes/Player/Soldier/low/1144.vcd" +} +Rule PlayerMoveUpSoldier +{ + criteria ConceptPlayerMoveUp IsSoldier + Response PlayerMoveUpSoldier +} + +Response PlayerNoSoldier +{ + scene "scenes/Player/Soldier/low/1159.vcd" + scene "scenes/Player/Soldier/low/1161.vcd" + scene "scenes/Player/Soldier/low/1160.vcd" +} +Rule PlayerNoSoldier +{ + criteria ConceptPlayerNo IsSoldier + Response PlayerNoSoldier +} + +Response PlayerThanksSoldier +{ + scene "scenes/Player/Soldier/low/1211.vcd" + scene "scenes/Player/Soldier/low/1212.vcd" +} +Rule PlayerThanksSoldier +{ + criteria ConceptPlayerThanks IsSoldier + Response PlayerThanksSoldier +} + +// Custom Assist kill response +// As there is no actual concept for assist kills, this is the second best method. +// Say thanks after you kill more than one person. + +Response KilledPlayerAssistSoldier +{ + scene "scenes/Player/Soldier/low/1186.vcd" +} +Rule KilledPlayerAssistSoldier +{ + criteria ConceptPlayerThanks IsSoldier IsARecentKill KilledPlayerDelay SoldierNotAssistSpeech + ApplyContext "SoldierAssistSpeech:1:20" + Response KilledPlayerAssistSoldier +} +// End custom + +Response PlayerYesSoldier +{ + scene "scenes/Player/Soldier/low/1350.vcd" + scene "scenes/Player/Soldier/low/1220.vcd" + scene "scenes/Player/Soldier/low/1221.vcd" + scene "scenes/Player/Soldier/low/1219.vcd" +} +Rule PlayerYesSoldier +{ + criteria ConceptPlayerYes IsSoldier + Response PlayerYesSoldier +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 2 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerActivateChargeSoldier +{ + scene "scenes/Player/Soldier/low/1040.vcd" + scene "scenes/Player/Soldier/low/1041.vcd" + scene "scenes/Player/Soldier/low/1042.vcd" +} +Rule PlayerActivateChargeSoldier +{ + criteria ConceptPlayerActivateCharge IsSoldier + Response PlayerActivateChargeSoldier +} + +Response PlayerCloakedSpySoldier +{ + scene "scenes/Player/Soldier/low/1071.vcd" + scene "scenes/Player/Soldier/low/1072.vcd" + scene "scenes/Player/Soldier/low/1070.vcd" +} +Rule PlayerCloakedSpySoldier +{ + criteria ConceptPlayerCloakedSpy IsSoldier + Response PlayerCloakedSpySoldier +} + +Response PlayerDispenserHereSoldier +{ + scene "scenes/Player/Soldier/low/1146.vcd" +} +Rule PlayerDispenserHereSoldier +{ + criteria ConceptPlayerDispenserHere IsSoldier + Response PlayerDispenserHereSoldier +} + +Response PlayerIncomingSoldier +{ + scene "scenes/Player/Soldier/low/1114.vcd" +} +Rule PlayerIncomingSoldier +{ + criteria ConceptPlayerIncoming IsSoldier + Response PlayerIncomingSoldier +} + +Response PlayerSentryAheadSoldier +{ + scene "scenes/Player/Soldier/low/1177.vcd" + scene "scenes/Player/Soldier/low/1178.vcd" + scene "scenes/Player/Soldier/low/1176.vcd" +} +Rule PlayerSentryAheadSoldier +{ + criteria ConceptPlayerSentryAhead IsSoldier + Response PlayerSentryAheadSoldier +} + +Response PlayerSentryHereSoldier +{ + scene "scenes/Player/Soldier/low/1148.vcd" +} +Rule PlayerSentryHereSoldier +{ + criteria ConceptPlayerSentryHere IsSoldier + Response PlayerSentryHereSoldier +} + +Response PlayerTeleporterHereSoldier +{ + scene "scenes/Player/Soldier/low/1150.vcd" +} +Rule PlayerTeleporterHereSoldier +{ + criteria ConceptPlayerTeleporterHere IsSoldier + Response PlayerTeleporterHereSoldier +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 3 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerBattleCrySoldier +{ + scene "scenes/Player/Soldier/low/1055.vcd" + scene "scenes/Player/Soldier/low/1057.vcd" + scene "scenes/Player/Soldier/low/1058.vcd" + scene "scenes/Player/Soldier/low/1059.vcd" + scene "scenes/Player/Soldier/low/1056.vcd" + scene "scenes/Player/Soldier/low/1060.vcd" +} +Rule PlayerBattleCrySoldier +{ + criteria ConceptPlayerBattleCry IsSoldier + Response PlayerBattleCrySoldier +} + +// Custom stuff - melee dare +// Look at enemy, then do battle cry voice command while holding a melee weapon. +Response MeleeDareCombatSoldier +{ + scene "scenes/Player/Soldier/low/1196.vcd" + scene "scenes/Player/Soldier/low/1210.vcd" + scene "scenes/Player/Soldier/low/1205.vcd" + scene "scenes/Player/Soldier/low/1208.vcd" + scene "scenes/Player/Soldier/low/1203.vcd" + scene "scenes/Player/Soldier/low/1190.vcd" +} +Rule MeleeDareCombatSoldier +{ + criteria ConceptPlayerBattleCry IsWeaponMelee IsSoldier IsCrosshairEnemy + Response MeleeDareCombatSoldier +} +//End custom + +Response PlayerCheersSoldier +{ + scene "scenes/Player/Soldier/low/1065.vcd" + scene "scenes/Player/Soldier/low/1068.vcd" + scene "scenes/Player/Soldier/low/1066.vcd" + scene "scenes/Player/Soldier/low/1064.vcd" + scene "scenes/Player/Soldier/low/1062.vcd" + scene "scenes/Player/Soldier/low/1063.vcd" +} +Rule PlayerCheersSoldier +{ + criteria ConceptPlayerCheers IsSoldier + Response PlayerCheersSoldier +} + +Response PlayerGoodJobSoldier +{ + scene "scenes/Player/Soldier/low/1095.vcd" + scene "scenes/Player/Soldier/low/1096.vcd" + scene "scenes/Player/Soldier/low/1097.vcd" +} +Rule PlayerGoodJobSoldier +{ + criteria ConceptPlayerGoodJob IsSoldier + Response PlayerGoodJobSoldier +} + +Response PlayerJeersSoldier +{ + scene "scenes/Player/Soldier/low/1120.vcd" + scene "scenes/Player/Soldier/low/1121.vcd" + scene "scenes/Player/Soldier/low/1122.vcd" + scene "scenes/Player/Soldier/low/1123.vcd" + scene "scenes/Player/Soldier/low/1124.vcd" + scene "scenes/Player/Soldier/low/1125.vcd" + scene "scenes/Player/Soldier/low/1126.vcd" + scene "scenes/Player/Soldier/low/1127.vcd" + scene "scenes/Player/Soldier/low/1128.vcd" + scene "scenes/Player/Soldier/low/1129.vcd" + scene "scenes/Player/Soldier/low/1130.vcd" + scene "scenes/Player/Soldier/low/1131.vcd" +} +Rule PlayerJeersSoldier +{ + criteria ConceptPlayerJeers IsSoldier + Response PlayerJeersSoldier +} + +Response PlayerLostPointSoldier +{ + scene "scenes/Player/Soldier/low/1151.vcd" + scene "scenes/Player/Soldier/low/1152.vcd" + scene "scenes/Player/Soldier/low/1153.vcd" + scene "scenes/Player/Soldier/low/1154.vcd" + scene "scenes/Player/Soldier/low/1155.vcd" + scene "scenes/Player/Soldier/low/1353.vcd" +} +Rule PlayerLostPointSoldier +{ + criteria ConceptPlayerLostPoint IsSoldier + Response PlayerLostPointSoldier +} + +Response PlayerNegativeSoldier +{ + scene "scenes/Player/Soldier/low/1151.vcd" + scene "scenes/Player/Soldier/low/1152.vcd" + scene "scenes/Player/Soldier/low/1153.vcd" + scene "scenes/Player/Soldier/low/1154.vcd" + scene "scenes/Player/Soldier/low/1155.vcd" + scene "scenes/Player/Soldier/low/1353.vcd" +} +Rule PlayerNegativeSoldier +{ + criteria ConceptPlayerNegative IsSoldier + Response PlayerNegativeSoldier +} + +Response PlayerNiceShotSoldier +{ + scene "scenes/Player/Soldier/low/1156.vcd" + scene "scenes/Player/Soldier/low/1157.vcd" + scene "scenes/Player/Soldier/low/1158.vcd" +} +Rule PlayerNiceShotSoldier +{ + criteria ConceptPlayerNiceShot IsSoldier + Response PlayerNiceShotSoldier +} + +Response PlayerPositiveSoldier +{ + scene "scenes/Player/Soldier/low/1345.vcd" + scene "scenes/Player/Soldier/low/1172.vcd" + scene "scenes/Player/Soldier/low/1175.vcd" + scene "scenes/Player/Soldier/low/1174.vcd" + scene "scenes/Player/Soldier/low/1171.vcd" +} + +Response PlayerTauntsSoldier +{ + scene "scenes/Player/Soldier/low/1136.vcd" + scene "scenes/Player/Soldier/low/1137.vcd" + scene "scenes/Player/Soldier/low/1138.vcd" + scene "scenes/Player/Soldier/low/1351.vcd" + scene "scenes/Player/Soldier/low/1352.vcd" +} +Rule PlayerPositiveSoldier +{ + criteria ConceptPlayerPositive IsSoldier + Response PlayerPositiveSoldier + Response PlayerTauntsSoldier +} + +Response PlayerRobotNoisesSoldier +{ + scene "scenes/Player/Soldier/low/robot01.vcd" + scene "scenes/Player/Soldier/low/robot02.vcd" + scene "scenes/Player/Soldier/low/robot03.vcd" + scene "scenes/Player/Soldier/low/robot04.vcd" + scene "scenes/Player/Soldier/low/robot05.vcd" + scene "scenes/Player/Soldier/low/robot06.vcd" + scene "scenes/Player/Soldier/low/robot07.vcd" +} +Rule PlayerRobotNoisesSoldier +{ + criteria ConceptFireWeapon IsSoldier IsRobotCostume SoldierNotRobotNoises 50PercentChance + ApplyContext "SoldierRobotNoises:1:30" + Response PlayerRobotNoisesSoldier +} + +Response PlayerBattleCryRobotSoldier +{ + scene "scenes/Player/Soldier/low/robot08.vcd" + scene "scenes/Player/Soldier/low/robot09.vcd" +} +Rule PlayerBattleCryRobotSoldier +{ + criteria ConceptPlayerBattleCry IsSoldier IsRobotCostume + Response PlayerBattleCryRobotSoldier +} + +Response KilledPlayerRobotSoldier +{ + scene "scenes/Player/Soldier/low/robot10.vcd" + scene "scenes/Player/Soldier/low/robot11.vcd" + scene "scenes/Player/Soldier/low/robot12.vcd" + scene "scenes/Player/Soldier/low/robot13.vcd" + scene "scenes/Player/Soldier/low/robot14.vcd" +} +Rule KilledPlayerRobotSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsRobotCostume SoldierNotKillSpeech 50PercentChance + ApplyContext "SoldierKillSpeech:1:10" + Response KilledPlayerRobotSoldier +} + +Response KilledPlayerManyRobotSoldier +{ + scene "scenes/Player/Soldier/low/robot15.vcd" + scene "scenes/Player/Soldier/low/robot16.vcd" + scene "scenes/Player/Soldier/low/robot17.vcd" + scene "scenes/Player/Soldier/low/robot18.vcd" + scene "scenes/Player/Soldier/low/robot19.vcd" +} +Rule KilledPlayerManyRobotSoldier +{ + criteria ConceptKilledPlayer IsManyRecentKills 30PercentChance IsWeaponPrimary KilledPlayerDelay SoldierNotKillSpeech IsSoldier IsRobotCostume + ApplyContext "SoldierKillSpeech:1:10" + Response KilledPlayerManyRobotSoldier +} + +Response PlayerKilledForRevengeRobotSoldier +{ + scene "scenes/Player/Soldier/low/robot20.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1060.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/1065.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeRobotSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsRevenge IsRobotCostume + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeRobotSoldier +} + +Response PlayerKilledDominatingRobotSoldier +{ + scene "scenes/Player/Soldier/low/robot21.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/robot22.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/robot23.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/robot24.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/robot25.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/robot26.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/robot27.vcd" predelay "2.5" + scene "scenes/Player/Soldier/low/robot28.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingRobotSoldier +{ + criteria ConceptKilledPlayer IsSoldier IsDominated IsRobotCostume + ApplyContext "SoldierKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingRobotSoldier +} + +//-------------------------------------------------------------------------------------------------------------- +// MvM Speech +//-------------------------------------------------------------------------------------------------------------- +Response MvMBombDroppedSoldier +{ + scene "scenes/Player/Soldier/low/4284.vcd" + scene "scenes/Player/Soldier/low/4285.vcd" +} +Rule MvMBombDroppedSoldier +{ + criteria ConceptMvMBombDropped 5PercentChance IsMvMDefender IsSoldier + Response MvMBombDroppedSoldier +} + +Response MvMBombCarrierUpgrade1Soldier +{ + scene "scenes/Player/Soldier/low/4280.vcd" +} +Rule MvMBombCarrierUpgrade1Soldier +{ + criteria ConceptMvMBombCarrierUpgrade1 5PercentChance IsMvMDefender IsSoldier + Response MvMBombCarrierUpgrade1Soldier +} + +Response MvMBombCarrierUpgrade2Soldier +{ + scene "scenes/Player/Soldier/low/4281.vcd" +} +Rule MvMBombCarrierUpgrade2Soldier +{ + criteria ConceptMvMBombCarrierUpgrade2 5PercentChance IsMvMDefender IsSoldier + Response MvMBombCarrierUpgrade2Soldier +} + +Response MvMBombCarrierUpgrade3Soldier +{ + scene "scenes/Player/Soldier/low/4282.vcd" +} +Rule MvMBombCarrierUpgrade3Soldier +{ + criteria ConceptMvMBombCarrierUpgrade3 5PercentChance IsMvMDefender IsSoldier + Response MvMBombCarrierUpgrade3Soldier +} + +Response MvMDefenderDiedScoutSoldier +{ + scene "scenes/Player/Soldier/low/4246.vcd" +} +Rule MvMDefenderDiedScoutSoldier +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimScout IsSoldier + Response MvMDefenderDiedScoutSoldier +} + +Response MvMDefenderDiedSpySoldier +{ + scene "scenes/Player/Soldier/low/4247.vcd" +} +Rule MvMDefenderDiedSpySoldier +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimSpy IsSoldier + Response MvMDefenderDiedSpySoldier +} + +Response MvMDefenderDiedHeavySoldier +{ + scene "scenes/Player/Soldier/low/4248.vcd" +} +Rule MvMDefenderDiedHeavySoldier +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimHeavy IsSoldier + Response MvMDefenderDiedHeavySoldier +} + +Response MvMDefenderDiedSoldierSoldier +{ + scene "scenes/Player/Soldier/low/4249.vcd" +} +Rule MvMDefenderDiedSoldierSoldier +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimSoldier IsSoldier + Response MvMDefenderDiedSoldierSoldier +} + +Response MvMDefenderDiedMedicSoldier +{ + scene "scenes/Player/Soldier/low/4250.vcd" +} +Rule MvMDefenderDiedMedicSoldier +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimMedic IsSoldier + Response MvMDefenderDiedMedicSoldier +} + +Response MvMDefenderDiedDemomanSoldier +{ + scene "scenes/Player/Soldier/low/4251.vcd" +} +Rule MvMDefenderDiedDemomanSoldier +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimDemoman IsSoldier + Response MvMDefenderDiedDemomanSoldier +} + +Response MvMDefenderDiedPyroSoldier +{ + scene "scenes/Player/Soldier/low/4252.vcd" +} +Rule MvMDefenderDiedPyroSoldier +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimPyro IsSoldier + Response MvMDefenderDiedPyroSoldier +} + +Response MvMDefenderDiedSniperSoldier +{ + scene "scenes/Player/Soldier/low/4253.vcd" +} +Rule MvMDefenderDiedSniperSoldier +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimSniper IsSoldier + Response MvMDefenderDiedSniperSoldier +} + +Response MvMDefenderDiedEngineerSoldier +{ + scene "scenes/Player/Soldier/low/4254.vcd" +} +Rule MvMDefenderDiedEngineerSoldier +{ + criteria ConceptMvMDefenderDied 50PercentChance IsMvMDefender IsVictimEngineer IsSoldier + Response MvMDefenderDiedEngineerSoldier +} + +Response MvMFirstBombPickupSoldier +{ + scene "scenes/Player/Soldier/low/4277.vcd" + scene "scenes/Player/Soldier/low/4279.vcd" +} +Rule MvMFirstBombPickupSoldier +{ + criteria ConceptMvMFirstBombPickup 5PercentChance IsMvMDefender IsSoldier + Response MvMFirstBombPickupSoldier +} + +Response MvMBombPickupSoldier +{ + scene "scenes/Player/Soldier/low/4276.vcd" +} +Rule MvMBombPickupSoldier +{ + criteria ConceptMvMBombPickup 5PercentChance IsMvMDefender IsSoldier + Response MvMBombPickupSoldier +} + +Response MvMSniperCalloutSoldier +{ + scene "scenes/Player/Soldier/low/4258.vcd" +} +Rule MvMSniperCalloutSoldier +{ + criteria ConceptMvMSniperCallout 50PercentChance IsMvMDefender IsSoldier + Response MvMSniperCalloutSoldier +} + +Response MvMSentryBusterSoldier +{ + scene "scenes/Player/Soldier/low/4295.vcd" +} +Rule MvMSentryBusterSoldier +{ + criteria ConceptMvMSentryBuster 50PercentChance IsMvMDefender IsSoldier + Response MvMSentryBusterSoldier +} + +Response MvMSentryBusterDownSoldier +{ + scene "scenes/Player/Soldier/low/4296.vcd" +} +Rule MvMSentryBusterDownSoldier +{ + criteria ConceptMvMSentryBusterDown 20PercentChance IsMvMDefender IsSoldier + Response MvMSentryBusterDownSoldier +} + +Response MvMLastManStandingSoldier +{ + scene "scenes/Player/Soldier/low/4255.vcd" + scene "scenes/Player/Soldier/low/4257.vcd" +} +Rule MvMLastManStandingSoldier +{ + criteria ConceptMvMLastManStanding 20PercentChance IsMvMDefender IsSoldier + Response MvMLastManStandingSoldier +} + +Response MvMEncourageMoneySoldier +{ + scene "scenes/Player/Soldier/low/4270.vcd" +} +Rule MvMEncourageMoneySoldier +{ + criteria ConceptMvMEncourageMoney 50PercentChance IsMvMDefender IsSoldier + Response MvMEncourageMoneySoldier +} + +Response MvMEncourageUpgradeSoldier +{ + scene "scenes/Player/Soldier/low/4274.vcd" +} +Rule MvMEncourageUpgradeSoldier +{ + criteria ConceptMvMEncourageUpgrade 50PercentChance IsMvMDefender IsSoldier + Response MvMEncourageUpgradeSoldier +} + +Response MvMUpgradeCompleteSoldier +{ + scene "scenes/Player/Soldier/low/4271.vcd" + scene "scenes/Player/Soldier/low/4272.vcd" + scene "scenes/Player/Soldier/low/4273.vcd" +} +Rule MvMUpgradeCompleteSoldier +{ + criteria ConceptMvMUpgradeComplete 5PercentChance IsMvMDefender IsSoldier + Response MvMUpgradeCompleteSoldier +} + +Response MvMGiantCalloutSoldier +{ + scene "scenes/Player/Soldier/low/4297.vcd" + scene "scenes/Player/Soldier/low/4301.vcd" +} +Rule MvMGiantCalloutSoldier +{ + criteria ConceptMvMGiantCallout 20PercentChance IsMvMDefender IsSoldier + Response MvMGiantCalloutSoldier +} + +Response MvMGiantHasBombSoldier +{ + scene "scenes/Player/Soldier/low/4302.vcd" + scene "scenes/Player/Soldier/low/4303.vcd" +} +Rule MvMGiantHasBombSoldier +{ + criteria ConceptMvMGiantHasBomb 20PercentChance IsMvMDefender IsSoldier + Response MvMGiantHasBombSoldier +} + +Response MvMSappedRobotSoldier +{ + scene "scenes/Player/Soldier/low/4259.vcd" + scene "scenes/Player/Soldier/low/4260.vcd" +} +Rule MvMSappedRobotSoldier +{ + criteria ConceptMvMSappedRobot 50PercentChance IsMvMDefender IsSoldier + Response MvMSappedRobotSoldier +} + +Response MvMCloseCallSoldier +{ + scene "scenes/Player/Soldier/low/4283.vcd" +} +Rule MvMCloseCallSoldier +{ + criteria ConceptMvMCloseCall 50PercentChance IsMvMDefender IsSoldier + Response MvMCloseCallSoldier +} + +Response MvMTankCalloutSoldier +{ + scene "scenes/Player/Soldier/low/4287.vcd" + scene "scenes/Player/Soldier/low/4288.vcd" +} +Rule MvMTankCalloutSoldier +{ + criteria ConceptMvMTankCallout 50PercentChance IsMvMDefender IsSoldier + Response MvMTankCalloutSoldier +} + +Response MvMTankDeadSoldier +{ + scene "scenes/Player/Soldier/low/4293.vcd" + scene "scenes/Player/Soldier/low/4294.vcd" +} +Rule MvMTankDeadSoldier +{ + criteria ConceptMvMTankDead 50PercentChance IsMvMDefender IsSoldier + Response MvMTankDeadSoldier +} + +Response MvMTankDeployingSoldier +{ + scene "scenes/Player/Soldier/low/4292.vcd" +} +Rule MvMTankDeployingSoldier +{ + criteria ConceptMvMTankDeploying 50PercentChance IsMvMDefender IsSoldier + Response MvMTankDeployingSoldier +} + +Response MvMAttackTheTankSoldier +{ + scene "scenes/Player/Soldier/low/4289.vcd" + scene "scenes/Player/Soldier/low/4290.vcd" + scene "scenes/Player/Soldier/low/4291.vcd" +} +Rule MvMAttackTheTankSoldier +{ + criteria ConceptMvMAttackTheTank 50PercentChance IsMvMDefender IsSoldier + Response MvMAttackTheTankSoldier +} + +Response MvMTauntSoldier +{ + scene "scenes/Player/Soldier/low/4262.vcd" + scene "scenes/Player/Soldier/low/4263.vcd" + scene "scenes/Player/Soldier/low/4264.vcd" + scene "scenes/Player/Soldier/low/4265.vcd" + scene "scenes/Player/Soldier/low/4266.vcd" + scene "scenes/Player/Soldier/low/4267.vcd" +} +Rule MvMTauntSoldier +{ + criteria ConceptMvMTaunt 50PercentChance IsMvMDefender IsSoldier + Response MvMTauntSoldier +} + +Response MvMWaveWinSoldier +{ + scene "scenes/Player/Soldier/low/4231.vcd" + scene "scenes/Player/Soldier/low/4232.vcd" + scene "scenes/Player/Soldier/low/4233.vcd" + scene "scenes/Player/Soldier/low/4234.vcd" + scene "scenes/Player/Soldier/low/4235.vcd" +} +Rule MvMWaveWinSoldier +{ + criteria ConceptMvMWaveWin 50PercentChance IsMvMDefender IsSoldier + Response MvMWaveWinSoldier +} + +Response MvMWaveLoseSoldier +{ + scene "scenes/Player/Soldier/low/4236.vcd" + scene "scenes/Player/Soldier/low/4237.vcd" + scene "scenes/Player/Soldier/low/4238.vcd" + scene "scenes/Player/Soldier/low/4239.vcd" + scene "scenes/Player/Soldier/low/4240.vcd" +} +Rule MvMWaveLoseSoldier +{ + criteria ConceptMvMWaveLose 50PercentChance IsMvMDefender IsSoldier + Response MvMWaveLoseSoldier +} + +Response MvMMoneyPickupSoldier +{ + scene "scenes/Player/Soldier/low/4269.vcd" +} +Rule MvMMoneyPickupSoldier +{ + criteria ConceptMvMMoneyPickup 5PercentChance IsMvMDefender IsSoldier + Response MvMMoneyPickupSoldier +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Cart +//-------------------------------------------------------------------------------------------------------------- +Criterion "SoldierNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 +Criterion "SoldierNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 +Criterion "SoldierNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 +Criterion "SoldierNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 +Criterion "SoldierNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 +Criterion "SoldierNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Response CartMovingBackwardsDefenseSoldier +{ + scene "scenes/Player/Soldier/low/7371.vcd" + scene "scenes/Player/Soldier/low/7375.vcd" +} +Rule CartMovingBackwardsDefenseSoldier +{ + criteria ConceptCartMovingBackward IsOnDefense IsSoldier SoldierNotSaidCartMovingBackwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardD:1:20" + Response CartMovingBackwardsDefenseSoldier +} +Response CartMovingBackwardsOffenseSoldier +{ + scene "scenes/Player/Soldier/low/7363.vcd" + scene "scenes/Player/Soldier/low/7365.vcd" +} +Rule CartMovingBackwardsOffenseSoldier +{ + criteria ConceptCartMovingBackward IsOnOffense IsSoldier SoldierNotSaidCartMovingBackwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingBackwardO:1:20" + Response CartMovingBackwardsOffenseSoldier +} +Response CartMovingForwardDefenseSoldier +{ + scene "scenes/Player/Soldier/low/7368.vcd" + scene "scenes/Player/Soldier/low/7369.vcd" + scene "scenes/Player/Soldier/low/8559.vcd" +} +Rule CartMovingForwardDefenseSoldier +{ + criteria ConceptCartMovingForward IsOnDefense IsSoldier SoldierNotSaidCartMovingForwardD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardD:1:20" + Response CartMovingForwardDefenseSoldier +} +Response CartMovingForwardOffenseSoldier +{ + scene "scenes/Player/Soldier/low/7345.vcd" + scene "scenes/Player/Soldier/low/7346.vcd" + scene "scenes/Player/Soldier/low/7347.vcd" + scene "scenes/Player/Soldier/low/7350.vcd" + scene "scenes/Player/Soldier/low/7351.vcd" + scene "scenes/Player/Soldier/low/7352.vcd" + scene "scenes/Player/Soldier/low/7353.vcd" + scene "scenes/Player/Soldier/low/7356.vcd" + scene "scenes/Player/Soldier/low/7355.vcd" + scene "scenes/Player/Soldier/low/7359.vcd" + scene "scenes/Player/Soldier/low/7362.vcd" + scene "scenes/Player/Soldier/low/7357.vcd" + scene "scenes/Player/Soldier/low/7349.vcd" + scene "scenes/Player/Soldier/low/7348.vcd" + scene "scenes/Player/Soldier/low/7354.vcd" + scene "scenes/Player/Soldier/low/7377.vcd" + scene "scenes/Player/Soldier/low/7378.vcd" + scene "scenes/Player/Soldier/low/7379.vcd" + scene "scenes/Player/Soldier/low/7382.vcd" + scene "scenes/Player/Soldier/low/7383.vcd" + scene "scenes/Player/Soldier/low/7385.vcd" +} +Rule CartMovingForwardOffenseSoldier +{ + criteria ConceptCartMovingForward IsOnOffense IsSoldier SoldierNotSaidCartMovingForwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardO:1:20" + Response CartMovingForwardOffenseSoldier +} +Response CartMovingStoppedDefenseSoldier +{ + scene "scenes/Player/Soldier/low/7396.vcd" + scene "scenes/Player/Soldier/low/7398.vcd" + scene "scenes/Player/Soldier/low/7400.vcd" +} +Rule CartMovingStoppedDefenseSoldier +{ + criteria ConceptCartMovingStopped IsOnDefense IsSoldier SoldierNotSaidCartMovingStoppedD IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedD:1:20" + Response CartMovingStoppedDefenseSoldier +} +Response CartMovingStoppedOffenseSoldier +{ + scene "scenes/Player/Soldier/low/7389.vcd" + scene "scenes/Player/Soldier/low/7390.vcd" + scene "scenes/Player/Soldier/low/7388.vcd" +} +Rule CartMovingStoppedOffenseSoldier +{ + criteria ConceptCartMovingStopped IsOnOffense IsSoldier SoldierNotSaidCartMovingStoppedO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingStoppedO:1:20" + Response CartMovingStoppedOffenseSoldier +} +//-------------------------------------------------------------------------------------------------------------- +// END OF Auto Speech Cart +//-------------------------------------------------------------------------------------------------------------- + +//-------------------------------------------------------------------------------------------------------------- +// Begin Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- +Response PlayerFirstRoundStartCompSoldier +{ + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_11.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_12.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_13.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_comp_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_comp_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_comp_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_comp_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_comp_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_comp_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_rare_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_rare_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamefirst_rare_06.vcd" predelay "1.0, 5.0" +} +Rule PlayerFirstRoundStartCompSoldier +{ + criteria ConceptPlayerRoundStartComp IsSoldier IsFirstRound 40PercentChance + Response PlayerFirstRoundStartCompSoldier +} + +Response PlayerWonPrevRoundCompSoldier +{ + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamewonlast_rare_04.vcd" predelay "1.0, 5.0" +} +Rule PlayerWonPrevRoundCompSoldier +{ + criteria ConceptPlayerRoundStartComp IsSoldier IsNotFirstRound PlayerWonPreviousRound 40PercentChance + Response PlayerWonPrevRoundCompSoldier +} + +Response PlayerLostPrevRoundCompSoldier +{ + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_rare_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregamelostlast_rare_05.vcd" predelay "1.0, 5.0" +} +Rule PlayerLostPrevRoundCompSoldier +{ + criteria ConceptPlayerRoundStartComp IsSoldier IsNotFirstRound PlayerLostPreviousRound PreviousRoundWasNotTie 40PercentChance + Response PlayerLostPrevRoundCompSoldier +} + +Response PlayerTiedPrevRoundCompSoldier +{ + scene "scenes/Player/Soldier/low/cm_soldier_pregametie_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregametie_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregametie_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregametie_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregametie_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_pregametie_06.vcd" predelay "1.0, 5.0" +} +Rule PlayerTiedPrevRoundCompSoldier +{ + criteria ConceptPlayerRoundStartComp IsSoldier IsNotFirstRound PreviousRoundWasTie 40PercentChance + Response PlayerTiedPrevRoundCompSoldier +} + +Response PlayerGameWinCompSoldier +{ + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_07.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_08.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_07.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_08.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_rare_09.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_rare_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_rare_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_rare_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_rare_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_rare_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_rare_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_rare_07.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Soldier/low/cm_soldier_gamewon_rare_08.vcd" predelay "2.0, 5.0" +} +Rule PlayerGameWinCompSoldier +{ + criteria ConceptPlayerGameOverComp PlayerOnWinningTeam IsSoldier 40PercentChance + Response PlayerGameWinCompSoldier +} + +Response PlayerMatchWinCompSoldier +{ + scene "scenes/Player/Soldier/low/cm_soldier_matchwon_01.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Soldier/low/cm_soldier_matchwon_02.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Soldier/low/cm_soldier_matchwon_03.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Soldier/low/cm_soldier_matchwon_04.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Soldier/low/cm_soldier_matchwon_05.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Soldier/low/cm_soldier_matchwon_06.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Soldier/low/cm_soldier_matchwon_07.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Soldier/low/cm_soldier_matchwon_08.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Soldier/low/cm_soldier_matchwon_09.vcd" predelay "1.0, 2.0" +} +Rule PlayerMatchWinCompSoldier +{ + criteria ConceptPlayerMatchOverComp PlayerOnWinningTeam IsSoldier 40PercentChance + Response PlayerMatchWinCompSoldier +} +//-------------------------------------------------------------------------------------------------------------- +// End Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- \ No newline at end of file diff --git a/game/tc2/scripts/talker/spy.txt b/game/tc2/scripts/talker/spy.txt new file mode 100644 index 00000000000..8513125dd55 --- /dev/null +++ b/game/tc2/scripts/talker/spy.txt @@ -0,0 +1,1364 @@ +//-------------------------------------------------------------------------------------------------------------- +// Spy Response Rule File +//-------------------------------------------------------------------------------------------------------------- + +Criterion "SpyIsNotStillonFire" "SpyOnFire" "!=1" "required" weight 0 +Criterion "SpyIsStillonFire" "SpyOnFire" "1" "required" weight 0 +Criterion "SpyNotKillSpeech" "SpyKillSpeech" "!=1" "required" weight 0 +Criterion "SpyNotKillSpeechMelee" "SpyKillSpeechMelee" "!=1" "required" weight 0 +Criterion "SpyNotSaidHealThanks" "SpySaidHealThanks" "!=1" "required" +Criterion "IsHelpCapSpy" "SpyHelpCap" "1" "required" weight 0 +// Custom stuff +Criterion "EngineerWasKilled" "EngyKilled" "1" "required" weight 0 +Criterion "SapperDestroyed" "LostSapper" "1" "required" weight 0 +Criterion "ToysMurdered" "ObjectDestroyed" "1" "required" weight 0 +Criterion "NotSapSpeech" "SapKillSpeech" "!=1" "required" weight 0 +Criterion "NotSapperLostSpeech" "SpySapperLostSpeech" "!=1" "required" weight 0 +Criterion "SpyNotAssistSpeech" "SpyAssistSpeech" "!=1" "required" weight 0 +Criterion "SpyNotInvulnerableSpeech" "SpyInvulnerableSpeech" "!=1" "required" weight 0 + + +Response PlayerCloakedSpyDemomanSpy +{ + scene "scenes/Player/Spy/low/729.vcd" +} +Rule PlayerCloakedSpyDemomanSpy +{ + criteria ConceptPlayerCloakedSpy IsSpy IsOnDemoman + Response PlayerCloakedSpyDemomanSpy +} + +Response PlayerCloakedSpyEngineerSpy +{ + scene "scenes/Player/Spy/low/735.vcd" +} +Rule PlayerCloakedSpyEngineerSpy +{ + criteria ConceptPlayerCloakedSpy IsSpy IsOnEngineer + Response PlayerCloakedSpyEngineerSpy +} + +Response PlayerCloakedSpyHeavySpy +{ + scene "scenes/Player/Spy/low/725.vcd" +} +Rule PlayerCloakedSpyHeavySpy +{ + criteria ConceptPlayerCloakedSpy IsSpy IsOnHeavy + Response PlayerCloakedSpyHeavySpy +} + +Response PlayerCloakedSpyMedicSpy +{ + scene "scenes/Player/Spy/low/733.vcd" +} +Rule PlayerCloakedSpyMedicSpy +{ + criteria ConceptPlayerCloakedSpy IsSpy IsOnMedic + Response PlayerCloakedSpyMedicSpy +} + +Response PlayerCloakedSpyPyroSpy +{ + scene "scenes/Player/Spy/low/727.vcd" +} +Rule PlayerCloakedSpyPyroSpy +{ + criteria ConceptPlayerCloakedSpy IsSpy IsOnPyro + Response PlayerCloakedSpyPyroSpy +} + +Response PlayerCloakedSpyScoutSpy +{ + scene "scenes/Player/Spy/low/721.vcd" +} +Rule PlayerCloakedSpyScoutSpy +{ + criteria ConceptPlayerCloakedSpy IsSpy IsOnScout + Response PlayerCloakedSpyScoutSpy +} + +Response PlayerCloakedSpySniperSpy +{ + scene "scenes/Player/Spy/low/737.vcd" +} +Rule PlayerCloakedSpySniperSpy +{ + criteria ConceptPlayerCloakedSpy IsSpy IsOnSniper + Response PlayerCloakedSpySniperSpy +} + +Response PlayerCloakedSpySoldierSpy +{ + scene "scenes/Player/Spy/low/723.vcd" +} +Rule PlayerCloakedSpySoldierSpy +{ + criteria ConceptPlayerCloakedSpy IsSpy IsOnSoldier + Response PlayerCloakedSpySoldierSpy +} + +Response PlayerCloakedSpySpySpy +{ + scene "scenes/Player/Spy/low/731.vcd" + scene "scenes/Player/Spy/low/732.vcd" +} +Rule PlayerCloakedSpySpySpy +{ + criteria ConceptPlayerCloakedSpy IsSpy IsOnSpy + Response PlayerCloakedSpySpySpy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech +//-------------------------------------------------------------------------------------------------------------- +Response HealThanksSpy +{ + scene "scenes/Player/Spy/low/851.vcd" + scene "scenes/Player/Spy/low/852.vcd" + scene "scenes/Player/Spy/low/853.vcd" +} +Rule HealThanksSpy +{ + criteria ConceptMedicChargeStopped IsSpy SuperHighHealthContext SpyNotSaidHealThanks 50PercentChance + ApplyContext "SpySaidHealThanks:1:20" + Response HealThanksSpy +} + +Response PlayerRoundStartSpy +{ + scene "scenes/Player/Spy/low/708.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/709.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/1309.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/707.vcd" predelay "1.0, 5.0" +} +Rule PlayerRoundStartSpy +{ + criteria ConceptPlayerRoundStart IsSpy + Response PlayerRoundStartSpy +} + +Response PlayerCappedIntelligenceSpy +{ + scene "scenes/Player/Spy/low/698.vcd" + scene "scenes/Player/Spy/low/699.vcd" + scene "scenes/Player/Spy/low/700.vcd" +} +Rule PlayerCappedIntelligenceSpy +{ + criteria ConceptPlayerCapturedIntelligence IsSpy + Response PlayerCappedIntelligenceSpy +} + +Response PlayerCapturedPointSpy +{ + scene "scenes/Player/Spy/low/695.vcd" + scene "scenes/Player/Spy/low/696.vcd" + scene "scenes/Player/Spy/low/697.vcd" +} +Rule PlayerCapturedPointSpy +{ + criteria ConceptPlayerCapturedPoint IsSpy + Response PlayerCapturedPointSpy +} + +Response PlayerSuddenDeathSpy +{ + scene "scenes/Player/Spy/low/766.vcd" + scene "scenes/Player/Spy/low/767.vcd" + scene "scenes/Player/Spy/low/768.vcd" + scene "scenes/Player/Spy/low/769.vcd" + scene "scenes/Player/Spy/low/771.vcd" + scene "scenes/Player/Spy/low/770.vcd" +} +Rule PlayerSuddenDeathSpy +{ + criteria ConceptPlayerSuddenDeathStart IsSpy + Response PlayerSuddenDeathSpy +} + +Response PlayerStalemateSpy +{ + scene "scenes/Player/Spy/low/701.vcd" + scene "scenes/Player/Spy/low/702.vcd" + scene "scenes/Player/Spy/low/703.vcd" +} +Rule PlayerStalemateSpy +{ + criteria ConceptPlayerStalemate IsSpy + Response PlayerStalemateSpy +} + +Response PlayerTeleporterThanksSpy +{ + scene "scenes/Player/Spy/low/854.vcd" + scene "scenes/Player/Spy/low/855.vcd" + scene "scenes/Player/Spy/low/856.vcd" +} +Rule PlayerTeleporterThanksSpy +{ + criteria ConceptTeleported IsNotEngineer IsSpy 30PercentChance + Response PlayerTeleporterThanksSpy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Combat +//-------------------------------------------------------------------------------------------------------------- +Response DefendOnThePointSpy +{ + scene "scenes/Player/Spy/low/830.vcd" + scene "scenes/Player/Spy/low/1323.vcd" + scene "scenes/Player/Spy/low/1324.vcd" + scene "scenes/Player/Spy/low/1325.vcd" +} +Rule DefendOnThePointSpy +{ + criteria ConceptFireWeapon IsSpy IsOnFriendlyControlPoint NotDefendOnThePointSpeech + ApplyContext "DefendOnThePointSpeech:1:30" + applycontexttoworld + Response DefendOnThePointSpy +} + +// Custom stuff +Response InvulnerableSpeechSpy +{ + scene "scenes/Player/Spy/low/836.vcd" + scene "scenes/Player/Spy/low/848.vcd" + scene "scenes/Player/Spy/low/843.vcd" +} +Rule InvulnerableSpeechSpy +{ + criteria ConceptFireWeapon IsSpy IsInvulnerable SpyNotInvulnerableSpeech + ApplyContext "SpyInvulnerableSpeech:1:30" + Response InvulnerableSpeechSpy +} + +// auto assist + +Response KilledPlayerAssistAutoSpy +{ + scene "scenes/Player/Spy/low/828.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/829.vcd" predelay "2.5" +} +Rule KilledPlayerAssistAutoSpy +{ + criteria ConceptKilledPlayer IsSpy IsBeingHealed IsARecentKill KilledPlayerDelay 20PercentChance SpyNotAssistSpeech + ApplyContext "SpyAssistSpeech:1:20" + Response KilledPlayerAssistAutoSpy +} + +// End custom + +Response KilledPlayerManySpy +{ + scene "scenes/Player/Spy/low/772.vcd" + scene "scenes/Player/Spy/low/1312.vcd" + scene "scenes/Player/Spy/low/773.vcd" + scene "scenes/Player/Spy/low/774.vcd" + scene "scenes/Player/Spy/low/1313.vcd" + scene "scenes/Player/Spy/low/775.vcd" + scene "scenes/Player/Spy/low/1322.vcd" + scene "scenes/Player/Spy/low/824.vcd" + scene "scenes/Player/Spy/low/825.vcd" +} +Rule KilledPlayerManySpy +{ + criteria ConceptKilledPlayer IsManyRecentKills 30PercentChance IsWeaponSecondary KilledPlayerDelay SpyNotKillSpeech IsSpy + ApplyContext "SpyKillSpeech:1:10" + Response KilledPlayerManySpy +} + +// Custom stuff +// If a Sapper has been removed in the past 10 seconds and the Spy gets a kill on an Engineer these can play +Response PlayerSapperKillSpy +{ + scene "scenes/Player/Spy/low/840.vcd" + scene "scenes/Player/Spy/low/839.vcd" +} +Rule PlayerSapperKillSpy +{ + criteria ConceptKilledPlayer IsSpy IsVictimEngineer 50PercentChance SapperDestroyed NotSapperLostSpeech + ApplyContext "SpyKillSpeechMelee:1:10" + ApplyContext "SpySapperLostSpeech:1:10" + Response PlayerSapperKillSpy +} + +Rule SapperLost +{ + criteria ConceptLostObject IsSpy + ApplyContext "LostSapper:1:10" + Response PlayerExpressionAttackSpy +} + +// This rule is for sapping after you kill an Engy +// It checks if you have already said the line in the past 10 seconds and fails if you have +// It checks if you have killed an Engineer in the past 10 seconds and fails if you have not +// +// Stab and Sap +Response PlayerKilledObjectSpy +{ + scene "scenes/Player/Spy/low/821.vcd" +} +Rule PlayerKilledObjectSpy +{ + criteria ConceptKilledObject IsSpy 50PercentChance EngineerWasKilled NotSapSpeech + ApplyContext "ObjectDestroyed:1:5" + Response PlayerKilledObjectSpy +} + +// This simply checks if you have killed an Engineer in the past 10 seconds +Rule EngineerKilled +{ + criteria ConceptKilledPlayer IsSpy IsVictimEngineer + ApplyContext "EngyKilled:1:10" + Response PlayerExpressionAttackSpy // Seems to require a response for the context to actually set +} + +// This checks if you have destroyed a building in the past five seconds +// Sap and Stab +Rule PlayerKilledObjectSpyContext +{ + criteria ConceptKilledObject IsSpy + ApplyContext "ObjectDestroyed:1:5" + Response PlayerExpressionAttackSpy +} + +// If you have then this checks if you have killed an Engineer in the past ten seconds +// If you have then the line plays +// So essentially we accommodate both stab and sap and sap and stab +Rule EngineerKilledAfterSap +{ + criteria ConceptKilledPlayer IsSpy IsVictimEngineer ToysMurdered + ApplyContext "SapKillSpeech:1:10" + Response PlayerKilledObjectSpy +} +// End custom + +Response KilledPlayerMeleeSpy +{ + scene "scenes/Player/Spy/low/817.vcd" + scene "scenes/Player/Spy/low/818.vcd" + scene "scenes/Player/Spy/low/826.vcd" +} + +Rule KilledPlayerMeleeSpy +{ + criteria ConceptKilledPlayer KilledPlayerDelay 30PercentChance IsWeaponMelee SpyNotKillSpeechMelee IsSpy + ApplyContext "SpyKillSpeechMelee:1:5" + Response KilledPlayerMeleeSpy +} + +// Custom stuff +Response KilledPlayerMeleeDisguisedSpy +{ + scene "scenes/Player/Spy/low/816.vcd" predelay "0.75" + scene "scenes/Player/Spy/low/823.vcd" predelay "0.75" + scene "scenes/Player/Spy/low/827.vcd" predelay "0.75" + scene "scenes/Player/Spy/low/838.vcd" predelay "0.75" + scene "scenes/Player/Spy/low/819.vcd" predelay "0.75" + scene "scenes/Player/Spy/low/820.vcd" predelay "0.75" + scene "scenes/Player/Spy/low/822.vcd" predelay "0.75" +} +Rule KilledPlayerMeleeDisguisedSpy +{ + criteria ConceptKilledPlayer KilledPlayerDelay IsDisguised 30PercentChance IsWeaponMelee SpyNotKillSpeechMelee IsSpy + ApplyContext "SpyKillSpeechMelee:1:5" + Response KilledPlayerMeleeDisguisedSpy + Response KilledPlayerMeleeSpy +} +// End custom + +Response MedicFollowSpy +{ + scene "scenes/Player/Spy/low/3030.vcd" predelay ".25" + scene "scenes/Player/Spy/low/3015.vcd" predelay ".25" +} +Rule MedicFollowSpy +{ + criteria ConceptPlayerMedic IsOnMedic IsSpy IsNotCrossHairEnemy NotLowHealth SpyIsNotStillonFire + ApplyContext "SpyKillSpeech:1:10" + Response MedicFollowSpy +} + +Response PlayerJarateHit +{ + scene "scenes/Player/Spy/low/3073.vcd" + scene "scenes/Player/Spy/low/3074.vcd" + scene "scenes/Player/Spy/low/3075.vcd" + scene "scenes/Player/Spy/low/3076.vcd" + scene "scenes/Player/Spy/low/3078.vcd" + scene "scenes/Player/Spy/low/3072.vcd" +} +Rule PlayerJarateHit +{ + criteria ConceptJarateHit IsSpy + Response PlayerJarateHit +} + +Response PlayerKilledCapperSpy +{ + scene "scenes/Player/Spy/low/713.vcd" + scene "scenes/Player/Spy/low/716.vcd" + scene "scenes/Player/Spy/low/809.vcd" + scene "scenes/Player/Spy/low/810.vcd" + scene "scenes/Player/Spy/low/811.vcd" +} +Rule PlayerKilledCapperSpy +{ + criteria ConceptCapBlocked IsSpy + ApplyContext "SpyKillSpeech:1:10" + Response PlayerKilledCapperSpy +} + +Response PlayerKilledDominatingDemomanSpy +{ + scene "scenes/Player/Spy/low/3008.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3025.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3065.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3066.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3067.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3068.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingDemomanSpy +{ + criteria ConceptKilledPlayer IsSpy IsDominated IsVictimDemoman + ApplyContext "SpyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingDemomanSpy +} + +Response PlayerKilledDominatingEngineerSpy +{ + scene "scenes/Player/Spy/low/3009.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3037.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3062.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3063.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3064.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3070.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingEngineerSpy +{ + criteria ConceptKilledPlayer IsSpy IsDominated IsVictimEngineer + ApplyContext "SpyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingEngineerSpy +} + +Response PlayerKilledDominatingHeavySpy +{ + scene "scenes/Player/Spy/low/3019.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3024.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3031.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3056.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3057.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3058.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3069.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3055.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingHeavySpy +{ + criteria ConceptKilledPlayer IsSpy IsDominated IsVictimHeavy + ApplyContext "SpyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingHeavySpy +} + +Response PlayerKilledDominatingMedicSpy +{ + scene "scenes/Player/Spy/low/3026.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3027.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3028.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3029.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3040.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3071.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingMedicSpy +{ + criteria ConceptKilledPlayer IsSpy IsDominated IsVictimMedic + ApplyContext "SpyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingMedicSpy +} + +Response PlayerKilledDominatingPyroSpy +{ + scene "scenes/Player/Spy/low/3010.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3022.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3041.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3042.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3032.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingPyroSpy +{ + criteria ConceptKilledPlayer IsSpy IsDominated IsVictimPyro + ApplyContext "SpyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingPyroSpy +} + +Response PlayerKilledDominatingScoutSpy +{ + scene "scenes/Player/Spy/low/3011.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3043.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3044.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3045.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3046.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3047.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3048.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3049.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingScoutSpy +{ + criteria ConceptKilledPlayer IsSpy IsDominated IsVictimScout + ApplyContext "SpyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingScoutSpy +} + +Response PlayerKilledDominatingSniperSpy +{ + scene "scenes/Player/Spy/low/3012.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/831.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3020.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3033.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3050.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3036.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3052.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3051.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSniperSpy +{ + criteria ConceptKilledPlayer IsSpy IsDominated IsVictimSniper + ApplyContext "SpyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSniperSpy +} + +Response PlayerKilledDominatingSoldierSpy +{ + scene "scenes/Player/Spy/low/3013.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3034.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3053.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3054.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3061.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSoldierSpy +{ + criteria ConceptKilledPlayer IsSpy IsDominated IsVictimSoldier + ApplyContext "SpyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSoldierSpy +} + +Response PlayerKilledDominatingSpySpy +{ + scene "scenes/Player/Spy/low/3014.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3021.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3059.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3077.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3060.vcd" predelay "2.5" +} +Rule PlayerKilledDominatingSpySpy +{ + criteria ConceptKilledPlayer IsSpy IsDominated IsVictimSpy + ApplyContext "SpyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledDominatingSpySpy +} + +Response PlayerKilledForRevengeSpy +{ + scene "scenes/Player/Spy/low/710.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/715.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/743.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/812.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/813.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/841.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3017.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3038.vcd" predelay "2.5" + scene "scenes/Player/Spy/low/3039.vcd" predelay "2.5" +} +Rule PlayerKilledForRevengeSpy +{ + criteria ConceptKilledPlayer IsSpy IsRevenge + ApplyContext "SpyKillSpeech:1:10" + ApplyContext "IsDominating:1:10" + Response PlayerKilledForRevengeSpy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Pain +//-------------------------------------------------------------------------------------------------------------- +Response PlayerAttackerPainSpy +{ + scene "scenes/Player/Spy/low/803.vcd" + scene "scenes/Player/Spy/low/804.vcd" + scene "scenes/Player/Spy/low/805.vcd" + scene "scenes/Player/Spy/low/1387.vcd" + scene "scenes/Player/Spy/low/1388.vcd" +} +Rule PlayerAttackerPainSpy +{ + criteria ConceptAttackerPain IsSpy IsNotDominating + Response PlayerAttackerPainSpy +} + +Response PlayerOnFireSpy +{ + scene "scenes/Player/Spy/low/704.vcd" +} +Rule PlayerOnFireSpy +{ + criteria ConceptFire IsSpy SpyIsNotStillonFire IsNotDominating + ApplyContext "SpyOnFire:1:7" + Response PlayerOnFireSpy +} + +Response PlayerOnFireRareSpy +{ + scene "scenes/Player/Spy/low/705.vcd" + scene "scenes/Player/Spy/low/706.vcd" +} +Rule PlayerOnFireRareSpy +{ + criteria ConceptFire IsSpy 10PercentChance SpyIsNotStillonFire IsNotDominating + ApplyContext "SpyOnFire:1:7" + Response PlayerOnFireRareSpy +} + +Response PlayerPainSpy +{ + scene "scenes/Player/Spy/low/806.vcd" + scene "scenes/Player/Spy/low/807.vcd" + scene "scenes/Player/Spy/low/808.vcd" + scene "scenes/Player/Spy/low/1381.vcd" +} +Rule PlayerPainSpy +{ + criteria ConceptPain IsSpy IsNotDominating + Response PlayerPainSpy +} + +Response PlayerStillOnFireSpy +{ + scene "scenes/Player/Spy/low/1928.vcd" +} +Rule PlayerStillOnFireSpy +{ + criteria ConceptFire IsSpy SpyIsStillonFire IsNotDominating + ApplyContext "SpyOnFire:1:7" + Response PlayerStillOnFireSpy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Duel Speech +//-------------------------------------------------------------------------------------------------------------- +Response AcceptedDuelSpy +{ + scene "scenes/Player/Spy/low/709.vcd" + scene "scenes/Player/Spy/low/834.vcd" + scene "scenes/Player/Spy/low/833.vcd" + scene "scenes/Player/Spy/low/845.vcd" + scene "scenes/Player/Spy/low/847.vcd" + scene "scenes/Player/Spy/low/858.vcd" + scene "scenes/Player/Spy/low/859.vcd" +} +Rule AcceptedDuelSpy +{ + criteria ConceptIAcceptDuel IsSpy + Response AcceptedDuelSpy +} + +Response MeleeDareSpy +{ + scene "scenes/Player/Spy/low/3016.vcd" + scene "scenes/Player/Spy/low/3023.vcd" +} +Rule MeleeDareSpy +{ + criteria ConceptRequestDuel IsSpy + Response MeleeDareSpy +} + +Response RejectedDuelSpy +{ + scene "scenes/Player/Spy/low/703.vcd" + scene "scenes/Player/Spy/low/790.vcd" + scene "scenes/Player/Spy/low/791.vcd" + scene "scenes/Player/Spy/low/824.vcd" + scene "scenes/Player/Spy/low/825.vcd" + scene "scenes/Player/Spy/low/831.vcd" +} +Rule RejectedDuelSpy +{ + criteria ConceptDuelRejected IsSpy + Response RejectedDuelSpy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 1 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerGoSpy +{ + scene "scenes/Player/Spy/low/740.vcd" + scene "scenes/Player/Spy/low/741.vcd" + scene "scenes/Player/Spy/low/742.vcd" +} +Rule PlayerGoSpy +{ + criteria ConceptPlayerGo IsSpy + Response PlayerGoSpy +} + +Response PlayerHeadLeftSpy +{ + scene "scenes/Player/Spy/low/746.vcd" + scene "scenes/Player/Spy/low/747.vcd" + scene "scenes/Player/Spy/low/748.vcd" +} +Rule PlayerHeadLeftSpy +{ + criteria ConceptPlayerLeft IsSpy + Response PlayerHeadLeftSpy +} + +Response PlayerHeadRightSpy +{ + scene "scenes/Player/Spy/low/749.vcd" + scene "scenes/Player/Spy/low/750.vcd" + scene "scenes/Player/Spy/low/751.vcd" +} +Rule PlayerHeadRightSpy +{ + criteria ConceptPlayerRight IsSpy + Response PlayerHeadRightSpy +} + +Response PlayerHelpSpy +{ + scene "scenes/Player/Spy/low/752.vcd" + scene "scenes/Player/Spy/low/753.vcd" + scene "scenes/Player/Spy/low/754.vcd" +} +Rule PlayerHelpSpy +{ + criteria ConceptPlayerHelp IsSpy + Response PlayerHelpSpy +} + +Response PlayerHelpCaptureSpy +{ + scene "scenes/Player/Spy/low/755.vcd" + scene "scenes/Player/Spy/low/756.vcd" + scene "scenes/Player/Spy/low/757.vcd" +} +Rule PlayerHelpCaptureSpy +{ + criteria ConceptPlayerHelp IsSpy IsOnCappableControlPoint + ApplyContext "SpyHelpCap:1:10" + Response PlayerHelpCaptureSpy +} + +Response PlayerHelpCapture2Spy +{ + scene "scenes/Player/Spy/low/830.vcd" + scene "scenes/Player/Spy/low/1323.vcd" + scene "scenes/Player/Spy/low/1324.vcd" + scene "scenes/Player/Spy/low/1325.vcd" +} +Rule PlayerHelpCapture2Spy +{ + criteria ConceptPlayerHelp IsSpy IsOnCappableControlPoint IsHelpCapSpy + Response PlayerHelpCapture2Spy +} + +Response PlayerHelpDefendSpy +{ + scene "scenes/Player/Spy/low/758.vcd" + scene "scenes/Player/Spy/low/759.vcd" + scene "scenes/Player/Spy/low/760.vcd" +} +Rule PlayerHelpDefendSpy +{ + criteria ConceptPlayerHelp IsSpy IsOnFriendlyControlPoint + Response PlayerHelpDefendSpy +} + +Response PlayerMedicSpy +{ + scene "scenes/Player/Spy/low/779.vcd" + scene "scenes/Player/Spy/low/780.vcd" + scene "scenes/Player/Spy/low/781.vcd" +} +Rule PlayerMedicSpy +{ + criteria ConceptPlayerMedic IsSpy + Response PlayerMedicSpy +} + +Response PlayerAskForBallSpy +{ +} +Rule PlayerAskForBallSpy +{ + criteria ConceptPlayerAskForBall IsSpy + Response PlayerAskForBallSpy +} + +Response PlayerMoveUpSpy +{ + scene "scenes/Player/Spy/low/782.vcd" + scene "scenes/Player/Spy/low/1317.vcd" +} +Rule PlayerMoveUpSpy +{ + criteria ConceptPlayerMoveUp IsSpy + Response PlayerMoveUpSpy +} + +Response PlayerNoSpy +{ + scene "scenes/Player/Spy/low/797.vcd" + scene "scenes/Player/Spy/low/798.vcd" + scene "scenes/Player/Spy/low/799.vcd" +} +Rule PlayerNoSpy +{ + criteria ConceptPlayerNo IsSpy + Response PlayerNoSpy +} + +Response PlayerThanksSpy +{ + scene "scenes/Player/Spy/low/849.vcd" + scene "scenes/Player/Spy/low/850.vcd" + scene "scenes/Player/Spy/low/1326.vcd" +} +Rule PlayerThanksSpy +{ + criteria ConceptPlayerThanks IsSpy + Response PlayerThanksSpy +} + +// Custom Assist kill response +// As there is no actual concept for assist kills, this is the second best method. +// Say thanks after you kill more than one person. + +Response KilledPlayerAssistSpy +{ + scene "scenes/Player/Spy/low/828.vcd" + scene "scenes/Player/Spy/low/829.vcd" +} +Rule KilledPlayerAssistSpy +{ + criteria ConceptPlayerThanks IsSpy IsARecentKill KilledPlayerDelay SpyNotAssistSpeech + ApplyContext "SpyAssistSpeech:1:20" + Response KilledPlayerAssistSpy +} +// End custom + +Response PlayerYesSpy +{ + scene "scenes/Player/Spy/low/857.vcd" + scene "scenes/Player/Spy/low/858.vcd" + scene "scenes/Player/Spy/low/859.vcd" +} +Rule PlayerYesSpy +{ + criteria ConceptPlayerYes IsSpy + Response PlayerYesSpy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 2 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerActivateChargeSpy +{ + scene "scenes/Player/Spy/low/692.vcd" + scene "scenes/Player/Spy/low/693.vcd" + scene "scenes/Player/Spy/low/694.vcd" +} +Rule PlayerActivateChargeSpy +{ + criteria ConceptPlayerActivateCharge IsSpy + Response PlayerActivateChargeSpy +} + +Response PlayerCloakedSpySpy +{ + scene "scenes/Player/Spy/low/718.vcd" + scene "scenes/Player/Spy/low/719.vcd" + scene "scenes/Player/Spy/low/720.vcd" + scene "scenes/Player/Spy/low/1310.vcd" +} +Rule PlayerCloakedSpySpy +{ + criteria ConceptPlayerCloakedSpy IsSpy + Response PlayerCloakedSpySpy +} + +Response PlayerDispenserHereSpy +{ + scene "scenes/Player/Spy/low/783.vcd" +} +Rule PlayerDispenserHereSpy +{ + criteria ConceptPlayerDispenserHere IsSpy + Response PlayerDispenserHereSpy +} + +Response PlayerIncomingSpy +{ + scene "scenes/Player/Spy/low/761.vcd" + scene "scenes/Player/Spy/low/762.vcd" + scene "scenes/Player/Spy/low/763.vcd" +} +Rule PlayerIncomingSpy +{ + criteria ConceptPlayerIncoming IsSpy + Response PlayerIncomingSpy +} + +Response PlayerSentryAheadSpy +{ + scene "scenes/Player/Spy/low/815.vcd" + scene "scenes/Player/Spy/low/814.vcd" +} +Rule PlayerSentryAheadSpy +{ + criteria ConceptPlayerSentryAhead IsSpy + Response PlayerSentryAheadSpy +} + +Response PlayerSentryHereSpy +{ + scene "scenes/Player/Spy/low/786.vcd" +} +Rule PlayerSentryHereSpy +{ + criteria ConceptPlayerSentryHere IsSpy + Response PlayerSentryHereSpy +} + +Response PlayerTeleporterHereSpy +{ + scene "scenes/Player/Spy/low/788.vcd" +} +Rule PlayerTeleporterHereSpy +{ + criteria ConceptPlayerTeleporterHere IsSpy + Response PlayerTeleporterHereSpy +} + + +//-------------------------------------------------------------------------------------------------------------- +// Speech Menu 3 +//-------------------------------------------------------------------------------------------------------------- +Response PlayerBattleCrySpy +{ + scene "scenes/Player/Spy/low/708.vcd" + scene "scenes/Player/Spy/low/709.vcd" + scene "scenes/Player/Spy/low/1309.vcd" + scene "scenes/Player/Spy/low/707.vcd" +} +Rule PlayerBattleCrySpy +{ + criteria ConceptPlayerBattleCry IsSpy + Response PlayerBattleCrySpy +} + +// Custom stuff - melee dare +// Look at enemy, then do battle cry voice command while holding a melee weapon. +Response MeleeDareCombatSpy +{ + scene "scenes/Player/Spy/low/3016.vcd" + scene "scenes/Player/Spy/low/3023.vcd" + scene "scenes/Player/Spy/low/834.vcd" + scene "scenes/Player/Spy/low/845.vcd" + scene "scenes/Player/Spy/low/847.vcd" + scene "scenes/Player/Spy/low/846.vcd" + scene "scenes/Player/Spy/low/824.vcd" +} +Rule MeleeDareCombatSpy +{ + criteria ConceptPlayerBattleCry IsWeaponMelee IsSpy IsCrosshairEnemy + Response MeleeDareCombatSpy +} + +Response PlayerCheersSpy +{ + scene "scenes/Player/Spy/low/710.vcd" + scene "scenes/Player/Spy/low/711.vcd" + scene "scenes/Player/Spy/low/712.vcd" + scene "scenes/Player/Spy/low/713.vcd" + scene "scenes/Player/Spy/low/714.vcd" + scene "scenes/Player/Spy/low/715.vcd" + scene "scenes/Player/Spy/low/716.vcd" + scene "scenes/Player/Spy/low/717.vcd" +} +Rule PlayerCheersSpy +{ + criteria ConceptPlayerCheers IsSpy + Response PlayerCheersSpy +} + +Response PlayerGoodJobSpy +{ + scene "scenes/Player/Spy/low/743.vcd" + scene "scenes/Player/Spy/low/744.vcd" + scene "scenes/Player/Spy/low/745.vcd" +} +Rule PlayerGoodJobSpy +{ + criteria ConceptPlayerGoodJob IsSpy + Response PlayerGoodJobSpy +} + +Response PlayerJeersSpy +{ + scene "scenes/Player/Spy/low/766.vcd" + scene "scenes/Player/Spy/low/767.vcd" + scene "scenes/Player/Spy/low/768.vcd" + scene "scenes/Player/Spy/low/769.vcd" + scene "scenes/Player/Spy/low/771.vcd" + scene "scenes/Player/Spy/low/770.vcd" +} +Rule PlayerJeersSpy +{ + criteria ConceptPlayerJeers IsSpy + Response PlayerJeersSpy +} + +Response PlayerLostPointSpy +{ + scene "scenes/Player/Spy/low/792.vcd" + scene "scenes/Player/Spy/low/793.vcd" + scene "scenes/Player/Spy/low/790.vcd" + scene "scenes/Player/Spy/low/791.vcd" + scene "scenes/Player/Spy/low/789.vcd" + scene "scenes/Player/Spy/low/1318.vcd" + scene "scenes/Player/Spy/low/1319.vcd" + scene "scenes/Player/Spy/low/1320.vcd" + scene "scenes/Player/Spy/low/1321.vcd" +} +Rule PlayerLostPointSpy +{ + criteria ConceptPlayerLostPoint IsSpy + Response PlayerLostPointSpy +} + +Response PlayerNegativeSpy +{ + scene "scenes/Player/Spy/low/792.vcd" + scene "scenes/Player/Spy/low/793.vcd" + scene "scenes/Player/Spy/low/790.vcd" + scene "scenes/Player/Spy/low/791.vcd" + scene "scenes/Player/Spy/low/789.vcd" + scene "scenes/Player/Spy/low/1318.vcd" + scene "scenes/Player/Spy/low/1319.vcd" + scene "scenes/Player/Spy/low/1320.vcd" + scene "scenes/Player/Spy/low/1321.vcd" +} +Rule PlayerNegativeSpy +{ + criteria ConceptPlayerNegative IsSpy + Response PlayerNegativeSpy +} + +Response PlayerNiceShotSpy +{ + scene "scenes/Player/Spy/low/794.vcd" + scene "scenes/Player/Spy/low/795.vcd" + scene "scenes/Player/Spy/low/796.vcd" +} +Rule PlayerNiceShotSpy +{ + criteria ConceptPlayerNiceShot IsSpy + Response PlayerNiceShotSpy +} + +Response PlayerPositiveSpy +{ + scene "scenes/Player/Spy/low/809.vcd" + scene "scenes/Player/Spy/low/837.vcd" + scene "scenes/Player/Spy/low/810.vcd" + scene "scenes/Player/Spy/low/811.vcd" + scene "scenes/Player/Spy/low/812.vcd" + scene "scenes/Player/Spy/low/813.vcd" +} + +Response PlayerTauntsSpy +{ + scene "scenes/Player/Spy/low/777.vcd" + scene "scenes/Player/Spy/low/778.vcd" + scene "scenes/Player/Spy/low/1314.vcd" + scene "scenes/Player/Spy/low/1315.vcd" + scene "scenes/Player/Spy/low/1316.vcd" +} +Rule PlayerPositiveSpy +{ + criteria ConceptPlayerPositive IsSpy + Response PlayerPositiveSpy + Response PlayerTauntsSpy +} + +//-------------------------------------------------------------------------------------------------------------- +// Auto Speech Cart +//-------------------------------------------------------------------------------------------------------------- +Criterion "SpyNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 +Criterion "SpyNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 +Criterion "SpyNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 +Criterion "SpyNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 +Criterion "SpyNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 +Criterion "SpyNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Response CartMovingBackwardsDefenseSpy +{ + scene "scenes/Player/Spy/low/7588.vcd" + scene "scenes/Player/Spy/low/7589.vcd" +} +Rule CartMovingBackwardsDefenseSpy +{ + criteria ConceptCartMovingBackward IsOnDefense IsSpy SpyNotSaidCartMovingBackwardD IsNotDisguised IsNotCloaked 75PercentChance + ApplyContext "SaidCartMovingBackwardD:1:20" + Response CartMovingBackwardsDefenseSpy +} +Response CartMovingBackwardsOffenseSpy +{ + scene "scenes/Player/Spy/low/7582.vcd" + scene "scenes/Player/Spy/low/7583.vcd" +} +Rule CartMovingBackwardsOffenseSpy +{ + criteria ConceptCartMovingBackward IsOnOffense IsSpy SpyNotSaidCartMovingBackwardO IsNotDisguised IsNotCloaked 75PercentChance + ApplyContext "SaidCartMovingBackwardO:1:20" + Response CartMovingBackwardsOffenseSpy +} +Response CartMovingForwardDefenseSpy +{ + scene "scenes/Player/Spy/low/7584.vcd" + scene "scenes/Player/Spy/low/7585.vcd" + scene "scenes/Player/Spy/low/7587.vcd" + scene "scenes/Player/Spy/low/7586.vcd" +} +Rule CartMovingForwardDefenseSpy +{ + criteria ConceptCartMovingForward IsOnDefense IsSpy SpyNotSaidCartMovingForwardD IsNotDisguised IsNotCloaked 75PercentChance + ApplyContext "SaidCartMovingForwardD:1:20" + Response CartMovingForwardDefenseSpy +} +Response CartMovingForwardOffenseSpy +{ + scene "scenes/Player/Spy/low/8553.vcd" + scene "scenes/Player/Spy/low/7573.vcd" + scene "scenes/Player/Spy/low/7574.vcd" + scene "scenes/Player/Spy/low/7575.vcd" + scene "scenes/Player/Spy/low/7576.vcd" + scene "scenes/Player/Spy/low/7577.vcd" + scene "scenes/Player/Spy/low/7578.vcd" + scene "scenes/Player/Spy/low/7581.vcd" + scene "scenes/Player/Spy/low/7591.vcd" + scene "scenes/Player/Spy/low/7592.vcd" + scene "scenes/Player/Spy/low/7593.vcd" + scene "scenes/Player/Spy/low/7595.vcd" +} +Rule CartMovingForwardOffenseSpy +{ + criteria ConceptCartMovingForward IsOnOffense IsSpy SpyNotSaidCartMovingForwardO IsNotDisguised IsNotCloaked 75PercentChance + ApplyContext "SaidCartMovingForwardO:1:20" + Response CartMovingForwardOffenseSpy +} +Response CartMovingStoppedDefenseSpy +{ + scene "scenes/Player/Spy/low/7600.vcd" + scene "scenes/Player/Spy/low/7601.vcd" + scene "scenes/Player/Spy/low/7602.vcd" + scene "scenes/Player/Spy/low/7603.vcd" +} +Rule CartMovingStoppedDefenseSpy +{ + criteria ConceptCartMovingStopped IsOnDefense IsSpy SpyNotSaidCartMovingStoppedD IsNotDisguised IsNotCloaked 75PercentChance + ApplyContext "SaidCartMovingStoppedD:1:20" + Response CartMovingStoppedDefenseSpy +} +Response CartMovingStoppedOffenseSpy +{ + scene "scenes/Player/Spy/low/7596.vcd" + scene "scenes/Player/Spy/low/7598.vcd" + scene "scenes/Player/Spy/low/7599.vcd" +} +Rule CartMovingStoppedOffenseSpy +{ + criteria ConceptCartMovingStopped IsOnOffense IsSpy SpyNotSaidCartMovingStoppedO IsNotDisguised IsNotCloaked 75PercentChance + ApplyContext "SaidCartMovingStoppedO:1:20" + Response CartMovingStoppedOffenseSpy +} +//-------------------------------------------------------------------------------------------------------------- +// END OF Auto Speech Cart +//-------------------------------------------------------------------------------------------------------------- + +//-------------------------------------------------------------------------------------------------------------- +// Begin Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- +Response PlayerFirstRoundStartCompSpy +{ + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_11.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_12.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_comp_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_comp_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_comp_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_rare_03.vcd" predelay "1.0, 5.0" +} +Rule PlayerFirstRoundStartCompSpy +{ + criteria ConceptPlayerRoundStartComp IsSpy IsFirstRound IsNotComp6v6 40PercentChance + Response PlayerFirstRoundStartCompSpy +} + +Response PlayerFirstRoundStartComp6sSpy +{ + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_11.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_12.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_comp_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_comp_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_comp_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_rare_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_rare_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_rare_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_6s_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_6s_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_6s_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_6s_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_6s_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_6s_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamefirst_6s_07.vcd" predelay "1.0, 5.0" +} +Rule PlayerFirstRoundStartComp6sSpy +{ + criteria ConceptPlayerRoundStartComp IsSpy IsFirstRound IsComp6v6 40PercentChance + Response PlayerFirstRoundStartComp6sSpy +} + +Response PlayerWonPrevRoundCompSpy +{ + scene "scenes/Player/Spy/low/cm_spy_pregamewonlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamewonlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamewonlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamewonlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamewonlast_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamewonlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamewonlast_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamewonlast_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamewonlast_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamewonlast_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamewonlast_11.vcd" predelay "1.0, 5.0" +} +Rule PlayerWonPrevRoundCompSpy +{ + criteria ConceptPlayerRoundStartComp IsSpy IsNotFirstRound PlayerWonPreviousRound 40PercentChance + Response PlayerWonPrevRoundCompSpy +} + +Response PlayerLostPrevRoundCompSpy +{ + scene "scenes/Player/Spy/low/cm_spy_pregamelostlast_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamelostlast_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamelostlast_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamelostlast_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamelostlast_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamelostlast_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamelostlast_07.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamelostlast_08.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamelostlast_09.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamelostlast_10.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregamelostlast_11.vcd" predelay "1.0, 5.0" +} +Rule PlayerLostPrevRoundCompSpy +{ + criteria ConceptPlayerRoundStartComp IsSpy IsNotFirstRound PlayerLostPreviousRound PreviousRoundWasNotTie 40PercentChance + Response PlayerLostPrevRoundCompSpy +} + +Response PlayerTiedPrevRoundCompSpy +{ + scene "scenes/Player/Spy/low/cm_spy_pregametie_01.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregametie_02.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregametie_03.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregametie_04.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregametie_05.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregametie_06.vcd" predelay "1.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_pregametie_rare_01.vcd" predelay "1.0, 5.0" +} +Rule PlayerTiedPrevRoundCompSpy +{ + criteria ConceptPlayerRoundStartComp IsSpy IsNotFirstRound PreviousRoundWasTie 40PercentChance + Response PlayerTiedPrevRoundCompSpy +} + +Response PlayerGameWinCompSpy +{ + scene "scenes/Player/Spy/low/cm_spy_gamewon_01.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_gamewon_02.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_gamewon_03.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_gamewon_04.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_gamewon_05.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_gamewon_06.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_gamewon_07.vcd" predelay "2.0, 5.0" + scene "scenes/Player/Spy/low/cm_spy_gamewon_08.vcd" predelay "2.0, 5.0" +} +Rule PlayerGameWinCompSpy +{ + criteria ConceptPlayerGameOverComp PlayerOnWinningTeam IsSpy 40PercentChance + Response PlayerGameWinCompSpy +} + +Response PlayerMatchWinCompSpy +{ + scene "scenes/Player/Spy/low/cm_spy_matchwon_01.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Spy/low/cm_spy_matchwon_02.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Spy/low/cm_spy_matchwon_03.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Spy/low/cm_spy_matchwon_04.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Spy/low/cm_spy_matchwon_05.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Spy/low/cm_spy_matchwon_06.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Spy/low/cm_spy_matchwon_07.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Spy/low/cm_spy_matchwon_08.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Spy/low/cm_spy_matchwon_09.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Spy/low/cm_spy_matchwon_10.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Spy/low/cm_spy_matchwon_11.vcd" predelay "1.0, 2.0" + scene "scenes/Player/Spy/low/cm_spy_matchwon_12.vcd" predelay "1.0, 2.0" +} +Rule PlayerMatchWinCompSpy +{ + criteria ConceptPlayerMatchOverComp PlayerOnWinningTeam IsSpy 40PercentChance + Response PlayerMatchWinCompSpy +} +//-------------------------------------------------------------------------------------------------------------- +// End Competitive Mode VO +//-------------------------------------------------------------------------------------------------------------- \ No newline at end of file From 1eb4dc1462378f8ebe89bfe8634eb0f12dc10125 Mon Sep 17 00:00:00 2001 From: Ashetf2 Date: Mon, 10 Mar 2025 00:42:16 -0500 Subject: [PATCH 3/4] oops forgot these files --- src/game/shared/mp_shareddefs.cpp | 1 + src/game/shared/mp_shareddefs.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/game/shared/mp_shareddefs.cpp b/src/game/shared/mp_shareddefs.cpp index 8face935c48..f09bab914a9 100644 --- a/src/game/shared/mp_shareddefs.cpp +++ b/src/game/shared/mp_shareddefs.cpp @@ -69,6 +69,7 @@ const char *g_pszMPConcepts[] = "TLK_DIED", // MP_CONCEPT_DIED "TLK_PLAYER_THANKS", // MP_CONCEPT_PLAYER_THANKS "TLK_CART_MOVING_FORWARD", // MP_CONCEPT_CART_MOVING_FORWARD + "TLK_CART_PUSHING", // TC2: MP_CONCEPT_CART_PUSHING "TLK_CART_MOVING_BACKWARD", // MP_CONCEPT_CART_MOVING_BACKWARD "TLK_CART_STOP", // MP_CONCEPT_CART_STOP "TLK_ATE_FOOD", // MP_CONCEPT_ATE_FOOD diff --git a/src/game/shared/mp_shareddefs.h b/src/game/shared/mp_shareddefs.h index a5a0765c4a6..72149fee7ae 100644 --- a/src/game/shared/mp_shareddefs.h +++ b/src/game/shared/mp_shareddefs.h @@ -78,6 +78,7 @@ enum MP_CONCEPT_DIED, // "TLK_DIED" MP_CONCEPT_PLAYER_THANKS, // "TLK_PLAYER_THANKS" MP_CONCEPT_CART_MOVING_FORWARD, // "TLK_CART_MOVING_FORWARD" + MP_CONCEPT_CART_PUSHING, // TC2: "TLK_CART_PUSHING" MP_CONCEPT_CART_MOVING_BACKWARD, // "TLK_CART_MOVING_BACKWARD" MP_CONCEPT_CART_STOP, // "TLK_CART_STOP" MP_CONCEPT_ATE_FOOD, // "TLK_ATE_FOOD" From d4b69fc982fac284cb7902701c06478f39a17853 Mon Sep 17 00:00:00 2001 From: Ashetf2 Date: Mon, 10 Mar 2025 00:47:20 -0500 Subject: [PATCH 4/4] Update the scripts to adapt them to the changes Adds the cartpushingclass response. Also, now the "stay close" only plays if the player is not touching the cart. Also, organized the files a bit Also also, moved some scene lines because some of them don't fit the actual response (e.g. scout cart moving forward defense voicelines) Lastly, some scout responses don't play, so we use a simple fix --- game/tc2/scripts/talker/demoman.txt | 46 +++++++- game/tc2/scripts/talker/heavy.txt | 80 +++++++++++--- game/tc2/scripts/talker/medic.txt | 52 +++++++-- game/tc2/scripts/talker/response_rules.txt | 3 + game/tc2/scripts/talker/scout.txt | 73 +++++++++---- game/tc2/scripts/talker/sniper.txt | 117 ++++++++++++++++----- game/tc2/scripts/talker/soldier.txt | 67 ++++++++++-- game/tc2/scripts/talker/spy.txt | 54 ++++++++-- 8 files changed, 402 insertions(+), 90 deletions(-) diff --git a/game/tc2/scripts/talker/demoman.txt b/game/tc2/scripts/talker/demoman.txt index 8b9b6f6f0d1..ef39494ae8b 100644 --- a/game/tc2/scripts/talker/demoman.txt +++ b/game/tc2/scripts/talker/demoman.txt @@ -1225,6 +1225,10 @@ Criterion "DemomanNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "req Criterion "DemomanNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 Criterion "DemomanNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 Criterion "DemomanNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Criterion "DemomanNotSaidCartPushing" "SaidCartPushing" "!=1" "required" weight 0 + +// backward // + Response CartMovingBackwardsDefenseDemoman { scene "scenes/Player/Demoman/low/7718.vcd" @@ -1237,6 +1241,7 @@ Rule CartMovingBackwardsDefenseDemoman ApplyContext "SaidCartMovingBackwardD:1:20" Response CartMovingBackwardsDefenseDemoman } + Response CartMovingBackwardsOffenseDemoman { scene "scenes/Player/Demoman/low/7714.vcd" @@ -1250,6 +1255,9 @@ Rule CartMovingBackwardsOffenseDemoman ApplyContext "SaidCartMovingBackwardO:1:20" Response CartMovingBackwardsOffenseDemoman } + +// forward // + Response CartMovingForwardDefenseDemoman { scene "scenes/Player/Demoman/low/7716.vcd" @@ -1261,13 +1269,14 @@ Rule CartMovingForwardDefenseDemoman ApplyContext "SaidCartMovingForwardD:1:20" Response CartMovingForwardDefenseDemoman } + Response CartMovingForwardOffenseDemoman { - scene "scenes/Player/Demoman/low/7704.vcd" - scene "scenes/Player/Demoman/low/7705.vcd" - scene "scenes/Player/Demoman/low/7706.vcd" - scene "scenes/Player/Demoman/low/7707.vcd" - scene "scenes/Player/Demoman/low/7711.vcd" + //scene "scenes/Player/Demoman/low/7704.vcd" + //scene "scenes/Player/Demoman/low/7705.vcd" + //scene "scenes/Player/Demoman/low/7706.vcd" + //scene "scenes/Player/Demoman/low/7707.vcd" + //scene "scenes/Player/Demoman/low/7711.vcd" scene "scenes/Player/Demoman/low/7721.vcd" scene "scenes/Player/Demoman/low/7723.vcd" scene "scenes/Player/Demoman/low/7724.vcd" @@ -1278,8 +1287,33 @@ Rule CartMovingForwardOffenseDemoman ApplyContext "SaidCartMovingForwardO:1:20" Response CartMovingForwardOffenseDemoman } + +// player is pushing // + +Response CartPushingDemoman +{ + scene "scenes/Player/Demoman/low/7704.vcd" + scene "scenes/Player/Demoman/low/7705.vcd" + scene "scenes/Player/Demoman/low/7706.vcd" + scene "scenes/Player/Demoman/low/7707.vcd" + scene "scenes/Player/Demoman/low/7711.vcd" + //scene "scenes/Player/Demoman/low/7721.vcd" + //scene "scenes/Player/Demoman/low/7723.vcd" + //scene "scenes/Player/Demoman/low/7724.vcd" +} +Rule CartPushingDemoman +{ + criteria ConceptCartPushing IsOnOffense IsDemoman DemomanNotSaidCartPushing IsNotDisguised 75PercentChance + ApplyContext "SaidCartPushing:1:20" + Response CartPushingDemoman +} + +// stopped // + Response CartMovingStoppedDefenseDemoman { + scene "scenes/Player/Demoman/low/7716.vcd" //new, temporary just to have smth + scene "scenes/Player/Demoman/low/7717.vcd" //new } Rule CartMovingStoppedDefenseDemoman { @@ -1287,6 +1321,7 @@ Rule CartMovingStoppedDefenseDemoman ApplyContext "SaidCartMovingStoppedD:1:20" Response CartMovingStoppedDefenseDemoman } + Response CartMovingStoppedOffenseDemoman { scene "scenes/Player/Demoman/low/7726.vcd" @@ -1299,6 +1334,7 @@ Rule CartMovingStoppedOffenseDemoman ApplyContext "SaidCartMovingStoppedO:1:20" Response CartMovingStoppedOffenseDemoman } + //-------------------------------------------------------------------------------------------------------------- // END OF Auto Speech Cart //-------------------------------------------------------------------------------------------------------------- diff --git a/game/tc2/scripts/talker/heavy.txt b/game/tc2/scripts/talker/heavy.txt index d124fd97e13..5c2b6b24a50 100644 --- a/game/tc2/scripts/talker/heavy.txt +++ b/game/tc2/scripts/talker/heavy.txt @@ -8,12 +8,6 @@ Criterion "HeavyIsStillonFire" "HeavyOnFire" "1" "required" weight 0 Criterion "HeavyNotInvulnerableSpeech" "HeavyInvulnerableSpeech" "!=1" "required" weight 0 Criterion "HeavyNotKillSpeech" "HeavyKillSpeech" "!=1" "required" weight 0 Criterion "HeavyNotKillSpeechMelee" "HeavyKillSpeechMelee" "!=1" "required" weight 0 -Criterion "HeavyNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 -Criterion "HeavyNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 -Criterion "HeavyNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 -Criterion "HeavyNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 -Criterion "HeavyNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 -Criterion "HeavyNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 Criterion "HeavyNotSaidHealThanks" "HeavySaidHealThanks" "!=1" "required" Criterion "IsHelpCapHeavy" "HeavyHelpCap" "1" "required" weight 0 // Custom stuff @@ -253,6 +247,16 @@ Rule PlayerTeleporterThanksHeavy //-------------------------------------------------------------------------------------------------------------- // Auto Speech Cart //-------------------------------------------------------------------------------------------------------------- +Criterion "HeavyNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Criterion "HeavyNotSaidCartPushing" "SaidCartPushing" "!=1" "required" weight 0 + +// backward // + Response CartMovingBackwardsDefenseHeavy { scene "scenes/Player/Heavy/low/1990.vcd" @@ -280,6 +284,8 @@ Response CartMovingBackwardsOffenseHeavy scene "scenes/Player/Heavy/low/2072.vcd" scene "scenes/Player/Heavy/low/2206.vcd" scene "scenes/Player/Heavy/low/2207.vcd" + scene "scenes/Player/Heavy/low/2073.vcd" //new + scene "scenes/Player/Heavy/low/2270.vcd" //new } Rule CartMovingBackwardsOffenseHeavy { @@ -288,14 +294,16 @@ Rule CartMovingBackwardsOffenseHeavy Response CartMovingBackwardsOffenseHeavy } +// forward // + Response CartMovingForwardDefenseHeavy { scene "scenes/Player/Heavy/low/1984.vcd" scene "scenes/Player/Heavy/low/1985.vcd" scene "scenes/Player/Heavy/low/2269.vcd" scene "scenes/Player/Heavy/low/1986.vcd" - scene "scenes/Player/Heavy/low/2073.vcd" - scene "scenes/Player/Heavy/low/2270.vcd" + // scene "scenes/Player/Heavy/low/2073.vcd" + // scene "scenes/Player/Heavy/low/2270.vcd" scene "scenes/Player/Heavy/low/2263.vcd" } Rule CartMovingForwardDefenseHeavy @@ -306,6 +314,45 @@ Rule CartMovingForwardDefenseHeavy } Response CartMovingForwardOffenseHeavy +{ + // scene "scenes/Player/Heavy/low/1963.vcd" + // scene "scenes/Player/Heavy/low/1964.vcd" + // scene "scenes/Player/Heavy/low/1965.vcd" + // scene "scenes/Player/Heavy/low/2179.vcd" + // scene "scenes/Player/Heavy/low/2180.vcd" + // scene "scenes/Player/Heavy/low/2181.vcd" + // scene "scenes/Player/Heavy/low/2182.vcd" + // scene "scenes/Player/Heavy/low/2183.vcd" + // scene "scenes/Player/Heavy/low/2184.vcd" + // scene "scenes/Player/Heavy/low/2271.vcd" + // scene "scenes/Player/Heavy/low/2185.vcd" + // scene "scenes/Player/Heavy/low/2186.vcd" + // scene "scenes/Player/Heavy/low/2187.vcd" + // scene "scenes/Player/Heavy/low/2188.vcd" + // scene "scenes/Player/Heavy/low/2189.vcd" + // scene "scenes/Player/Heavy/low/2190.vcd" + // scene "scenes/Player/Heavy/low/2203.vcd" + // scene "scenes/Player/Heavy/low/1957.vcd" + scene "scenes/Player/Heavy/low/1958.vcd" + scene "scenes/Player/Heavy/low/1959.vcd" + scene "scenes/Player/Heavy/low/2202.vcd" + // scene "scenes/Player/Heavy/low/2201.vcd" + // scene "scenes/Player/Heavy/low/2193.vcd" + // scene "scenes/Player/Heavy/low/2066.vcd" + // scene "scenes/Player/Heavy/low/2261.vcd" + // scene "scenes/Player/Heavy/low/2260.vcd" + // scene "scenes/Player/Heavy/low/2262.vcd" +} +Rule CartMovingForwardOffenseHeavy +{ + criteria ConceptCartMovingForward IsOnOffense IsHeavy HeavyNotSaidCartMovingForwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardO:1:20" + Response CartMovingForwardOffenseHeavy +} + +// player is pushing // + +Response CartPushingHeavy { scene "scenes/Player/Heavy/low/1963.vcd" scene "scenes/Player/Heavy/low/1964.vcd" @@ -325,9 +372,9 @@ Response CartMovingForwardOffenseHeavy scene "scenes/Player/Heavy/low/2190.vcd" scene "scenes/Player/Heavy/low/2203.vcd" scene "scenes/Player/Heavy/low/1957.vcd" - scene "scenes/Player/Heavy/low/1958.vcd" - scene "scenes/Player/Heavy/low/1959.vcd" - scene "scenes/Player/Heavy/low/2202.vcd" + // scene "scenes/Player/Heavy/low/1958.vcd" + // scene "scenes/Player/Heavy/low/1959.vcd" + // scene "scenes/Player/Heavy/low/2202.vcd" scene "scenes/Player/Heavy/low/2201.vcd" scene "scenes/Player/Heavy/low/2193.vcd" scene "scenes/Player/Heavy/low/2066.vcd" @@ -335,13 +382,15 @@ Response CartMovingForwardOffenseHeavy scene "scenes/Player/Heavy/low/2260.vcd" scene "scenes/Player/Heavy/low/2262.vcd" } -Rule CartMovingForwardOffenseHeavy +Rule CartPushingHeavy { - criteria ConceptCartMovingForward IsOnOffense IsHeavy HeavyNotSaidCartMovingForwardO IsNotDisguised 75PercentChance - ApplyContext "SaidCartMovingForwardO:1:20" - Response CartMovingForwardOffenseHeavy + criteria ConceptCartPushing IsOnOffense IsHeavy HeavyNotSaidCartPushing IsNotDisguised 75PercentChance + ApplyContext "SaidCartPushing:1:20" + Response CartPushingHeavy } +// stopped // + Response CartMovingStoppedDefenseHeavy { scene "scenes/Player/Heavy/low/1966.vcd" @@ -370,7 +419,6 @@ Rule CartMovingStoppedOffenseHeavy Response CartMovingStoppedOffenseHeavy } - //-------------------------------------------------------------------------------------------------------------- // Auto Speech Combat //-------------------------------------------------------------------------------------------------------------- diff --git a/game/tc2/scripts/talker/medic.txt b/game/tc2/scripts/talker/medic.txt index 1dbb478b87d..7c7149fd354 100644 --- a/game/tc2/scripts/talker/medic.txt +++ b/game/tc2/scripts/talker/medic.txt @@ -1324,8 +1324,13 @@ Criterion "MedicNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "requi Criterion "MedicNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 Criterion "MedicNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 Criterion "MedicNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Criterion "MedicNotSaidCartPushing" "SaidCartPushing" "!=1" "required" weight 0 + +// backward // + Response CartMovingBackwardsDefenseMedic { + } Rule CartMovingBackwardsDefenseMedic { @@ -1333,6 +1338,7 @@ Rule CartMovingBackwardsDefenseMedic ApplyContext "SaidCartMovingBackwardD:1:20" Response CartMovingBackwardsDefenseMedic } + Response CartMovingBackwardsOffenseMedic { scene "scenes/Player/Medic/low/6763.vcd" @@ -1344,6 +1350,9 @@ Rule CartMovingBackwardsOffenseMedic ApplyContext "SaidCartMovingBackwardO:1:20" Response CartMovingBackwardsOffenseMedic } + +// forward // + Response CartMovingForwardDefenseMedic { scene "scenes/Player/Medic/low/6767.vcd" @@ -1355,7 +1364,31 @@ Rule CartMovingForwardDefenseMedic ApplyContext "SaidCartMovingForwardD:1:20" Response CartMovingForwardDefenseMedic } + Response CartMovingForwardOffenseMedic +{ + // scene "scenes/Player/Medic/low/6752.vcd" + // scene "scenes/Player/Medic/low/6753.vcd" + // scene "scenes/Player/Medic/low/6754.vcd" + // scene "scenes/Player/Medic/low/6755.vcd" + // scene "scenes/Player/Medic/low/6756.vcd" + // scene "scenes/Player/Medic/low/6758.vcd" + // scene "scenes/Player/Medic/low/6760.vcd" + // scene "scenes/Player/Medic/low/6761.vcd" + scene "scenes/Player/Medic/low/6770.vcd" + scene "scenes/Player/Medic/low/6774.vcd" + scene "scenes/Player/Medic/low/6775.vcd" +} +Rule CartMovingForwardOffenseMedic +{ + criteria ConceptCartMovingForward IsOnOffense IsMedic MedicNotSaidCartMovingForwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardO:1:20" + Response CartMovingForwardOffenseMedic +} + +// player is pushing // + +Response CartPushingMedic { scene "scenes/Player/Medic/low/6752.vcd" scene "scenes/Player/Medic/low/6753.vcd" @@ -1365,16 +1398,19 @@ Response CartMovingForwardOffenseMedic scene "scenes/Player/Medic/low/6758.vcd" scene "scenes/Player/Medic/low/6760.vcd" scene "scenes/Player/Medic/low/6761.vcd" - scene "scenes/Player/Medic/low/6770.vcd" - scene "scenes/Player/Medic/low/6774.vcd" - scene "scenes/Player/Medic/low/6775.vcd" + // scene "scenes/Player/Medic/low/6770.vcd" + // scene "scenes/Player/Medic/low/6774.vcd" + // scene "scenes/Player/Medic/low/6775.vcd" } -Rule CartMovingForwardOffenseMedic +Rule CartPushingMedic { - criteria ConceptCartMovingForward IsOnOffense IsMedic MedicNotSaidCartMovingForwardO IsNotDisguised 75PercentChance - ApplyContext "SaidCartMovingForwardO:1:20" - Response CartMovingForwardOffenseMedic + criteria ConceptCartPushing IsOnOffense IsMedic MedicNotSaidCartPushing IsNotDisguised 75PercentChance + ApplyContext "SaidCartPushing:1:20" + Response CartPushingMedic } + +// stopped // + Response CartMovingStoppedDefenseMedic { scene "scenes/Player/Medic/low/6786.vcd" @@ -1385,6 +1421,7 @@ Rule CartMovingStoppedDefenseMedic ApplyContext "SaidCartMovingStoppedD:1:20" Response CartMovingStoppedDefenseMedic } + Response CartMovingStoppedOffenseMedic { scene "scenes/Player/Medic/low/6776.vcd" @@ -1398,6 +1435,7 @@ Rule CartMovingStoppedOffenseMedic ApplyContext "SaidCartMovingStoppedO:1:20" Response CartMovingStoppedOffenseMedic } + //-------------------------------------------------------------------------------------------------------------- // END OF Auto Speech Cart //-------------------------------------------------------------------------------------------------------------- diff --git a/game/tc2/scripts/talker/response_rules.txt b/game/tc2/scripts/talker/response_rules.txt index bc3a823199f..0c1984f294f 100644 --- a/game/tc2/scripts/talker/response_rules.txt +++ b/game/tc2/scripts/talker/response_rules.txt @@ -219,6 +219,9 @@ criterion "ConceptCartMovingForward" "Concept" "TLK_CART_MOVING_FORWARD" require criterion "ConceptCartMovingStopped" "Concept" "TLK_CART_STOP" required criterion "ConceptCartMovingBackward" "Concept" "TLK_CART_MOVING_BACKWARD" required +//tc2 new criterion +criterion "ConceptCartPushing" "Concept" "TLK_CART_PUSHING" required + criterion "ConceptAteFood" "Concept" "TLK_ATE_FOOD" required //scout pack diff --git a/game/tc2/scripts/talker/scout.txt b/game/tc2/scripts/talker/scout.txt index 11ea74363be..0384ed5eebf 100644 --- a/game/tc2/scripts/talker/scout.txt +++ b/game/tc2/scripts/talker/scout.txt @@ -8,12 +8,6 @@ Criterion "ScoutIsStillonFire" "ScoutOnFire" "1" "required" weight 0 Criterion "ScoutNotKillSpeech" "ScoutKillSpeech" "!=1" "required" weight 0 Criterion "ScoutNotKillSpeechMelee" "ScoutKillSpeechMelee" "!=1" "required" weight 0 Criterion "ScoutNotKillSpeechMeleeFat" "ScoutKillSpeechMeleeFat" "!=1" "required" weight 0 -Criterion "ScoutNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 -Criterion "ScoutNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 -Criterion "ScoutNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 -Criterion "ScoutNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 -Criterion "ScoutNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 -Criterion "ScoutNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 Criterion "ScoutNotSaidHealThanks" "ScoutSaidHealThanks" "!=1" "required" Criterion "IsHelpCapScout" "ScoutHelpCap" "1" "required" weight 0 Criterion "NotSaidScoutHitBallSpeech" "ScoutHitBallSpeech" "!=1" "required" @@ -260,6 +254,16 @@ Rule PlayerTeleporterThanksScout //-------------------------------------------------------------------------------------------------------------- // Auto Speech Cart //-------------------------------------------------------------------------------------------------------------- +Criterion "ScoutNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 +Criterion "ScoutNotSaidCartPushing" "SaidCartPushing" "!=1" "required" weight 0 + +// backward // + Response CartMovingBackwardsDefenseScout { scene "scenes/Player/Scout/low/2513.vcd" @@ -294,14 +298,16 @@ Rule CartMovingBackwardsOffenseScout Response CartMovingBackwardsOffenseScout } +// forward // + Response CartMovingForwardDefenseScout { scene "scenes/Player/Scout/low/2525.vcd" scene "scenes/Player/Scout/low/2526.vcd" scene "scenes/Player/Scout/low/2527.vcd" - scene "scenes/Player/Scout/low/2528.vcd" - scene "scenes/Player/Scout/low/2529.vcd" - scene "scenes/Player/Scout/low/2530.vcd" + //scene "scenes/Player/Scout/low/2528.vcd" + //scene "scenes/Player/Scout/low/2529.vcd" + //scene "scenes/Player/Scout/low/2530.vcd" } Rule CartMovingForwardDefenseScout { @@ -312,18 +318,21 @@ Rule CartMovingForwardDefenseScout Response CartMovingForwardOffenseScout { - scene "scenes/Player/Scout/low/2532.vcd" - scene "scenes/Player/Scout/low/2533.vcd" + //scene "scenes/Player/Scout/low/2532.vcd" + //scene "scenes/Player/Scout/low/2533.vcd" scene "scenes/Player/Scout/low/2534.vcd" - scene "scenes/Player/Scout/low/2535.vcd" + //scene "scenes/Player/Scout/low/2535.vcd" scene "scenes/Player/Scout/low/2537.vcd" - scene "scenes/Player/Scout/low/2536.vcd" + //scene "scenes/Player/Scout/low/2536.vcd" scene "scenes/Player/Scout/low/2538.vcd" - scene "scenes/Player/Scout/low/2540.vcd" + //scene "scenes/Player/Scout/low/2540.vcd" scene "scenes/Player/Scout/low/2541.vcd" - scene "scenes/Player/Scout/low/2539.vcd" + //scene "scenes/Player/Scout/low/2539.vcd" scene "scenes/Player/Scout/low/2542.vcd" - scene "scenes/Player/Scout/low/2543.vcd" + //scene "scenes/Player/Scout/low/2543.vcd" + scene "scenes/Player/Scout/low/2528.vcd" //new + scene "scenes/Player/Scout/low/2529.vcd" //new + scene "scenes/Player/Scout/low/2530.vcd" //new } Rule CartMovingForwardOffenseScout { @@ -332,6 +341,34 @@ Rule CartMovingForwardOffenseScout Response CartMovingForwardOffenseScout } +// player is pushing // + +Response CartPushingScout +{ + scene "scenes/Player/Scout/low/2532.vcd" + scene "scenes/Player/Scout/low/2533.vcd" + //scene "scenes/Player/Scout/low/2534.vcd" + scene "scenes/Player/Scout/low/2535.vcd" + //scene "scenes/Player/Scout/low/2537.vcd" + scene "scenes/Player/Scout/low/2536.vcd" + //scene "scenes/Player/Scout/low/2538.vcd" + ////scene "scenes/Player/Scout/low/2540.vcd" //doesn't work + speak "Scout.CartStayCloseOffense02" //fix + //scene "scenes/Player/Scout/low/2541.vcd" + ////scene "scenes/Player/Scout/low/2539.vcd" //doesnt' work + speak "Scout.CartStayCloseOffense04" // fix + //scene "scenes/Player/Scout/low/2542.vcd" + scene "scenes/Player/Scout/low/2543.vcd" +} +Rule CartPushingScout +{ + criteria ConceptCartPushing IsOnOffense IsScout ScoutNotSaidCartPushing IsNotDisguised 75PercentChance + ApplyContext "SaidCartPushing:1:20" + Response CartPushingScout +} + +// stopped // + Response CartMovingStoppedDefenseScout { scene "scenes/Player/Scout/low/2544.vcd" @@ -349,7 +386,8 @@ Response CartMovingStoppedOffenseScout { scene "scenes/Player/Scout/low/2548.vcd" scene "scenes/Player/Scout/low/2549.vcd" - scene "scenes/Player/Scout/low/2550.vcd" + ////scene "scenes/Player/Scout/low/2550.vcd" //doesn't work + speak "Scout.CartStoppedOffense03" //fix } Rule CartMovingStoppedOffenseScout { @@ -358,7 +396,6 @@ Rule CartMovingStoppedOffenseScout Response CartMovingStoppedOffenseScout } - //-------------------------------------------------------------------------------------------------------------- // Auto Speech Combat //-------------------------------------------------------------------------------------------------------------- diff --git a/game/tc2/scripts/talker/sniper.txt b/game/tc2/scripts/talker/sniper.txt index 5581264e3dd..bb83ab19a13 100644 --- a/game/tc2/scripts/talker/sniper.txt +++ b/game/tc2/scripts/talker/sniper.txt @@ -6,16 +6,10 @@ Criterion "SniperIsNotStillonFire" "SniperOnFire" "!=1" "required" weight 0 Criterion "SniperIsStillonFire" "SniperOnFire" "1" "required" weight 0 Criterion "SniperNotKillSpeech" "SniperKillSpeech" "!=1" "required" weight 0 Criterion "SniperNotKillSpeechMelee" "SniperKillSpeechMelee" "!=1" "required" weight 0 -Criterion "SniperNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 Criterion "SniperNotSaidHealThanks" "SniperSaidHealThanks" "!=1" "required" Criterion "IsHelpCapSniper" "SniperHelpCap" "1" "required" weight 0 // Custom stuff Criterion "SniperNotInvulnerableSpeech" "SniperInvulnerableSpeech" "!=1" "required" weight 0 -Criterion "SniperNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 -Criterion "SniperNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 -Criterion "SniperNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 -Criterion "SniperNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 -Criterion "SniperNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 Criterion "SniperNotAwardSpeech" "SniperAwardSpeech" "!=1" "required" weight 0 Criterion "SniperNotAssistSpeech" "SniperAssistSpeech" "!=1" "required" weight 0 Criterion "SniperNotHoldStill" "SniperHoldStill" "!=1" "required" weight 0 @@ -368,6 +362,16 @@ Rule PlayerTeleporterThanksSniper //-------------------------------------------------------------------------------------------------------------- // Auto Speech Cart //-------------------------------------------------------------------------------------------------------------- +Criterion "SniperNotSaidCartMovingBackwardD" "SaidCartMovingBackwardD" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartMovingBackwardO" "SaidCartMovingBackwardO" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Criterion "SniperNotSaidCartPushing" "SaidCartPushing" "!=1" "required" weight 0 + +// backward // + Response CartMovingBackwardsDefenseSniper { scene "scenes/Player/Sniper/low/2334.vcd" @@ -441,6 +445,8 @@ Rule CartMovingBackwardsOffenseScopedSniper Response CartMovingBackwardsOffenseScopedSniper } +// forward // + // Defense forward Response CartMovingForwardDefenseSniper { @@ -478,16 +484,16 @@ Rule CartMovingForwardDefenseSniper Response CartMovingForwardOffenseSniper { - scene "scenes/Player/Sniper/low/2307.vcd" - scene "scenes/Player/Sniper/low/2308.vcd" - scene "scenes/Player/Sniper/low/2309.vcd" - scene "scenes/Player/Sniper/low/2402.vcd" - scene "scenes/Player/Sniper/low/2403.vcd" - scene "scenes/Player/Sniper/low/2404.vcd" - scene "scenes/Player/Sniper/low/2406.vcd" - scene "scenes/Player/Sniper/low/2407.vcd" - scene "scenes/Player/Sniper/low/2408.vcd" - scene "scenes/Player/Sniper/low/2409.vcd" + // scene "scenes/Player/Sniper/low/2307.vcd" + // scene "scenes/Player/Sniper/low/2308.vcd" + // scene "scenes/Player/Sniper/low/2309.vcd" + // scene "scenes/Player/Sniper/low/2402.vcd" + // scene "scenes/Player/Sniper/low/2403.vcd" + // scene "scenes/Player/Sniper/low/2404.vcd" + // scene "scenes/Player/Sniper/low/2406.vcd" + // scene "scenes/Player/Sniper/low/2407.vcd" + // scene "scenes/Player/Sniper/low/2408.vcd" + // scene "scenes/Player/Sniper/low/2409.vcd" scene "scenes/Player/Sniper/low/2301.vcd" scene "scenes/Player/Sniper/low/2302.vcd" scene "scenes/Player/Sniper/low/2303.vcd" @@ -505,16 +511,16 @@ Rule CartMovingForwardOffenseSniper Response CartMovingForwardOffenseScopedSniper { - scene "scenes/Player/Sniper/low/2506.vcd" - scene "scenes/Player/Sniper/low/2507.vcd" - scene "scenes/Player/Sniper/low/2508.vcd" - scene "scenes/Player/Sniper/low/2525.vcd" - scene "scenes/Player/Sniper/low/2526.vcd" - scene "scenes/Player/Sniper/low/2527.vcd" - scene "scenes/Player/Sniper/low/2529.vcd" - scene "scenes/Player/Sniper/low/2530.vcd" - scene "scenes/Player/Sniper/low/2531.vcd" - scene "scenes/Player/Sniper/low/2532.vcd" + // scene "scenes/Player/Sniper/low/2506.vcd" + // scene "scenes/Player/Sniper/low/2507.vcd" + // scene "scenes/Player/Sniper/low/2508.vcd" + // scene "scenes/Player/Sniper/low/2525.vcd" + // scene "scenes/Player/Sniper/low/2526.vcd" + // scene "scenes/Player/Sniper/low/2527.vcd" + // scene "scenes/Player/Sniper/low/2529.vcd" + // scene "scenes/Player/Sniper/low/2530.vcd" + // scene "scenes/Player/Sniper/low/2531.vcd" + // scene "scenes/Player/Sniper/low/2532.vcd" scene "scenes/Player/Sniper/low/2500.vcd" scene "scenes/Player/Sniper/low/2501.vcd" scene "scenes/Player/Sniper/low/2502.vcd" @@ -529,6 +535,65 @@ Rule CartMovingForwardOffenseScopedSniper ApplyContext "SaidCartMovingForwardO:1:20" Response CartMovingForwardOffenseScopedSniper } + +// player is pushing // + +Response CartPushingSniper +{ + scene "scenes/Player/Sniper/low/2307.vcd" + scene "scenes/Player/Sniper/low/2308.vcd" + scene "scenes/Player/Sniper/low/2309.vcd" + scene "scenes/Player/Sniper/low/2402.vcd" + scene "scenes/Player/Sniper/low/2403.vcd" + scene "scenes/Player/Sniper/low/2404.vcd" + scene "scenes/Player/Sniper/low/2406.vcd" + scene "scenes/Player/Sniper/low/2407.vcd" + scene "scenes/Player/Sniper/low/2408.vcd" + scene "scenes/Player/Sniper/low/2409.vcd" + // scene "scenes/Player/Sniper/low/2301.vcd" + // scene "scenes/Player/Sniper/low/2302.vcd" + // scene "scenes/Player/Sniper/low/2303.vcd" + // scene "scenes/Player/Sniper/low/2416.vcd" + // scene "scenes/Player/Sniper/low/2424.vcd" + // scene "scenes/Player/Sniper/low/2425.vcd" + // scene "scenes/Player/Sniper/low/2454.vcd" +} +Rule CartPushingSniper +{ + criteria ConceptCartPushing IsOnOffense IsSniper Unzoomed SniperNotSaidCartPushing IsNotDisguised 75PercentChance + ApplyContext "SaidCartPushing:1:20" + Response CartPushingSniper +} + +Response CartPushingScopedSniper +{ + scene "scenes/Player/Sniper/low/2506.vcd" + scene "scenes/Player/Sniper/low/2507.vcd" + scene "scenes/Player/Sniper/low/2508.vcd" + scene "scenes/Player/Sniper/low/2525.vcd" + scene "scenes/Player/Sniper/low/2526.vcd" + scene "scenes/Player/Sniper/low/2527.vcd" + scene "scenes/Player/Sniper/low/2529.vcd" + scene "scenes/Player/Sniper/low/2530.vcd" + scene "scenes/Player/Sniper/low/2531.vcd" + scene "scenes/Player/Sniper/low/2532.vcd" + // scene "scenes/Player/Sniper/low/2500.vcd" + // scene "scenes/Player/Sniper/low/2501.vcd" + // scene "scenes/Player/Sniper/low/2502.vcd" + // scene "scenes/Player/Sniper/low/2535.vcd" + // scene "scenes/Player/Sniper/low/2536.vcd" + // scene "scenes/Player/Sniper/low/2537.vcd" + // scene "scenes/Player/Sniper/low/2546.vcd" +} +Rule CartPushingScopedSniper +{ + criteria ConceptCartPushing IsOnOffense IsSniper DeployedContext SniperNotSaidCartPushing IsNotDisguised 75PercentChance + ApplyContext "SaidCartPushing:1:20" + Response CartPushingScopedSniper +} + +// stopped // + // Cart stopped Defense Response CartMovingStoppedDefenseSniper diff --git a/game/tc2/scripts/talker/soldier.txt b/game/tc2/scripts/talker/soldier.txt index 46a15213526..c37a4c95949 100644 --- a/game/tc2/scripts/talker/soldier.txt +++ b/game/tc2/scripts/talker/soldier.txt @@ -1599,6 +1599,10 @@ Criterion "SoldierNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "req Criterion "SoldierNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 Criterion "SoldierNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 Criterion "SoldierNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Criterion "SoldierNotSaidCartPushing" "SaidCartPushing" "!=1" "required" weight 0 + +// backward // + Response CartMovingBackwardsDefenseSoldier { scene "scenes/Player/Soldier/low/7371.vcd" @@ -1610,6 +1614,7 @@ Rule CartMovingBackwardsDefenseSoldier ApplyContext "SaidCartMovingBackwardD:1:20" Response CartMovingBackwardsDefenseSoldier } + Response CartMovingBackwardsOffenseSoldier { scene "scenes/Player/Soldier/low/7363.vcd" @@ -1621,6 +1626,9 @@ Rule CartMovingBackwardsOffenseSoldier ApplyContext "SaidCartMovingBackwardO:1:20" Response CartMovingBackwardsOffenseSoldier } + +// forward // + Response CartMovingForwardDefenseSoldier { scene "scenes/Player/Soldier/low/7368.vcd" @@ -1633,7 +1641,41 @@ Rule CartMovingForwardDefenseSoldier ApplyContext "SaidCartMovingForwardD:1:20" Response CartMovingForwardDefenseSoldier } + Response CartMovingForwardOffenseSoldier +{ + //scene "scenes/Player/Soldier/low/7345.vcd" + //scene "scenes/Player/Soldier/low/7346.vcd" + //scene "scenes/Player/Soldier/low/7347.vcd" + //scene "scenes/Player/Soldier/low/7350.vcd" + //scene "scenes/Player/Soldier/low/7351.vcd" + //scene "scenes/Player/Soldier/low/7352.vcd" + //scene "scenes/Player/Soldier/low/7353.vcd" + //scene "scenes/Player/Soldier/low/7356.vcd" + //scene "scenes/Player/Soldier/low/7355.vcd" + //scene "scenes/Player/Soldier/low/7359.vcd" + //scene "scenes/Player/Soldier/low/7362.vcd" + //scene "scenes/Player/Soldier/low/7357.vcd" + //scene "scenes/Player/Soldier/low/7349.vcd" + //scene "scenes/Player/Soldier/low/7348.vcd" + //scene "scenes/Player/Soldier/low/7354.vcd" + scene "scenes/Player/Soldier/low/7377.vcd" + scene "scenes/Player/Soldier/low/7378.vcd" + scene "scenes/Player/Soldier/low/7379.vcd" + scene "scenes/Player/Soldier/low/7382.vcd" + scene "scenes/Player/Soldier/low/7383.vcd" + scene "scenes/Player/Soldier/low/7385.vcd" +} +Rule CartMovingForwardOffenseSoldier +{ + criteria ConceptCartMovingForward IsOnOffense IsSoldier SoldierNotSaidCartMovingForwardO IsNotDisguised 75PercentChance + ApplyContext "SaidCartMovingForwardO:1:20" + Response CartMovingForwardOffenseSoldier +} + +// player is pushing // + +Response CartPushingSoldier { scene "scenes/Player/Soldier/low/7345.vcd" scene "scenes/Player/Soldier/low/7346.vcd" @@ -1650,19 +1692,22 @@ Response CartMovingForwardOffenseSoldier scene "scenes/Player/Soldier/low/7349.vcd" scene "scenes/Player/Soldier/low/7348.vcd" scene "scenes/Player/Soldier/low/7354.vcd" - scene "scenes/Player/Soldier/low/7377.vcd" - scene "scenes/Player/Soldier/low/7378.vcd" - scene "scenes/Player/Soldier/low/7379.vcd" - scene "scenes/Player/Soldier/low/7382.vcd" - scene "scenes/Player/Soldier/low/7383.vcd" - scene "scenes/Player/Soldier/low/7385.vcd" + //scene "scenes/Player/Soldier/low/7377.vcd" + //scene "scenes/Player/Soldier/low/7378.vcd" + //scene "scenes/Player/Soldier/low/7379.vcd" + //scene "scenes/Player/Soldier/low/7382.vcd" + //scene "scenes/Player/Soldier/low/7383.vcd" + //scene "scenes/Player/Soldier/low/7385.vcd" } -Rule CartMovingForwardOffenseSoldier +Rule CartPushingSoldier { - criteria ConceptCartMovingForward IsOnOffense IsSoldier SoldierNotSaidCartMovingForwardO IsNotDisguised 75PercentChance - ApplyContext "SaidCartMovingForwardO:1:20" - Response CartMovingForwardOffenseSoldier + criteria ConceptCartPushing IsOnOffense IsSoldier SoldierNotSaidCartPushing IsNotDisguised 75PercentChance + ApplyContext "SaidCartPushing:1:20" + Response CartPushingSoldier } + +// stopped // + Response CartMovingStoppedDefenseSoldier { scene "scenes/Player/Soldier/low/7396.vcd" @@ -1675,6 +1720,7 @@ Rule CartMovingStoppedDefenseSoldier ApplyContext "SaidCartMovingStoppedD:1:20" Response CartMovingStoppedDefenseSoldier } + Response CartMovingStoppedOffenseSoldier { scene "scenes/Player/Soldier/low/7389.vcd" @@ -1687,6 +1733,7 @@ Rule CartMovingStoppedOffenseSoldier ApplyContext "SaidCartMovingStoppedO:1:20" Response CartMovingStoppedOffenseSoldier } + //-------------------------------------------------------------------------------------------------------------- // END OF Auto Speech Cart //-------------------------------------------------------------------------------------------------------------- diff --git a/game/tc2/scripts/talker/spy.txt b/game/tc2/scripts/talker/spy.txt index 8513125dd55..9868f931cfd 100644 --- a/game/tc2/scripts/talker/spy.txt +++ b/game/tc2/scripts/talker/spy.txt @@ -1117,6 +1117,10 @@ Criterion "SpyNotSaidCartMovingForwardD" "SaidCartMovingForwardD" "!=1" "require Criterion "SpyNotSaidCartMovingForwardO" "SaidCartMovingForwardO" "!=1" "required" weight 0 Criterion "SpyNotSaidCartMovingStoppedD" "SaidCartMovingStoppedD" "!=1" "required" weight 0 Criterion "SpyNotSaidCartMovingStoppedO" "SaidCartMovingStoppedO" "!=1" "required" weight 0 +Criterion "SpyNotSaidCartPushing" "SaidCartPushing" "!=1" "required" weight 0 + +// backward // + Response CartMovingBackwardsDefenseSpy { scene "scenes/Player/Spy/low/7588.vcd" @@ -1128,6 +1132,7 @@ Rule CartMovingBackwardsDefenseSpy ApplyContext "SaidCartMovingBackwardD:1:20" Response CartMovingBackwardsDefenseSpy } + Response CartMovingBackwardsOffenseSpy { scene "scenes/Player/Spy/low/7582.vcd" @@ -1139,6 +1144,9 @@ Rule CartMovingBackwardsOffenseSpy ApplyContext "SaidCartMovingBackwardO:1:20" Response CartMovingBackwardsOffenseSpy } + +// forward // + Response CartMovingForwardDefenseSpy { scene "scenes/Player/Spy/low/7584.vcd" @@ -1152,16 +1160,17 @@ Rule CartMovingForwardDefenseSpy ApplyContext "SaidCartMovingForwardD:1:20" Response CartMovingForwardDefenseSpy } + Response CartMovingForwardOffenseSpy { - scene "scenes/Player/Spy/low/8553.vcd" - scene "scenes/Player/Spy/low/7573.vcd" - scene "scenes/Player/Spy/low/7574.vcd" - scene "scenes/Player/Spy/low/7575.vcd" - scene "scenes/Player/Spy/low/7576.vcd" - scene "scenes/Player/Spy/low/7577.vcd" - scene "scenes/Player/Spy/low/7578.vcd" - scene "scenes/Player/Spy/low/7581.vcd" + // scene "scenes/Player/Spy/low/8553.vcd" + // scene "scenes/Player/Spy/low/7573.vcd" + // scene "scenes/Player/Spy/low/7574.vcd" + // scene "scenes/Player/Spy/low/7575.vcd" + // scene "scenes/Player/Spy/low/7576.vcd" + // scene "scenes/Player/Spy/low/7577.vcd" + // scene "scenes/Player/Spy/low/7578.vcd" + // scene "scenes/Player/Spy/low/7581.vcd" scene "scenes/Player/Spy/low/7591.vcd" scene "scenes/Player/Spy/low/7592.vcd" scene "scenes/Player/Spy/low/7593.vcd" @@ -1173,6 +1182,33 @@ Rule CartMovingForwardOffenseSpy ApplyContext "SaidCartMovingForwardO:1:20" Response CartMovingForwardOffenseSpy } + +// player is pushing // + +Response CartPushingSpy +{ + scene "scenes/Player/Spy/low/8553.vcd" + scene "scenes/Player/Spy/low/7573.vcd" + scene "scenes/Player/Spy/low/7574.vcd" + scene "scenes/Player/Spy/low/7575.vcd" + scene "scenes/Player/Spy/low/7576.vcd" + scene "scenes/Player/Spy/low/7577.vcd" + scene "scenes/Player/Spy/low/7578.vcd" + scene "scenes/Player/Spy/low/7581.vcd" + // scene "scenes/Player/Spy/low/7591.vcd" + // scene "scenes/Player/Spy/low/7592.vcd" + // scene "scenes/Player/Spy/low/7593.vcd" + // scene "scenes/Player/Spy/low/7595.vcd" +} +Rule CartPushingSpy +{ + criteria ConceptCartPushing IsOnOffense IsSpy SpyNotSaidCartPushing IsNotDisguised IsNotCloaked 75PercentChance + ApplyContext "SaidCartPushing:1:20" + Response CartPushingSpy +} + +// stopped // + Response CartMovingStoppedDefenseSpy { scene "scenes/Player/Spy/low/7600.vcd" @@ -1186,6 +1222,7 @@ Rule CartMovingStoppedDefenseSpy ApplyContext "SaidCartMovingStoppedD:1:20" Response CartMovingStoppedDefenseSpy } + Response CartMovingStoppedOffenseSpy { scene "scenes/Player/Spy/low/7596.vcd" @@ -1198,6 +1235,7 @@ Rule CartMovingStoppedOffenseSpy ApplyContext "SaidCartMovingStoppedO:1:20" Response CartMovingStoppedOffenseSpy } + //-------------------------------------------------------------------------------------------------------------- // END OF Auto Speech Cart //--------------------------------------------------------------------------------------------------------------