diff --git a/game/mod_tf/scripts/talker/demoman.txt b/game/mod_tf/scripts/talker/demoman.txt new file mode 100644 index 000000000..8b9b6f6f0 --- /dev/null +++ b/game/mod_tf/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/mod_tf/scripts/talker/heavy.txt b/game/mod_tf/scripts/talker/heavy.txt new file mode 100644 index 000000000..d124fd97e --- /dev/null +++ b/game/mod_tf/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/mod_tf/scripts/talker/medic.txt b/game/mod_tf/scripts/talker/medic.txt new file mode 100644 index 000000000..1dbb478b8 --- /dev/null +++ b/game/mod_tf/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/mod_tf/scripts/talker/response_rules.txt b/game/mod_tf/scripts/talker/response_rules.txt new file mode 100644 index 000000000..bc3a82319 --- /dev/null +++ b/game/mod_tf/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/mod_tf/scripts/talker/scout.txt b/game/mod_tf/scripts/talker/scout.txt new file mode 100644 index 000000000..11ea74363 --- /dev/null +++ b/game/mod_tf/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/mod_tf/scripts/talker/sniper.txt b/game/mod_tf/scripts/talker/sniper.txt new file mode 100644 index 000000000..5581264e3 --- /dev/null +++ b/game/mod_tf/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/mod_tf/scripts/talker/soldier.txt b/game/mod_tf/scripts/talker/soldier.txt new file mode 100644 index 000000000..46a152135 --- /dev/null +++ b/game/mod_tf/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/mod_tf/scripts/talker/spy.txt b/game/mod_tf/scripts/talker/spy.txt new file mode 100644 index 000000000..8513125dd --- /dev/null +++ b/game/mod_tf/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