criterion "ConceptThrowMedAttractNag" "Concept" "TLK_ALYX_OUTLAND_08_THROWMED" required criterion "ConceptTakeDownChopper" "Concept" "TLK_ALYX_OUTLAND_08_TAKEDOWNCHOP" required criterion "ConceptNagGoWithMag" "Concept" "TLK_NAG_OUTLAND_11_GOWITHMAG" required criterion "ConceptNag06aFindRadio" "Concept" "TLK_LETS_FIND_RADIO_NAG" required criterion "ConceptNag06aNotPowered" "Concept" "TLK_RADIO_NOT_POWERED_NAG" required criterion "ConceptNag06aUseRadio" "Concept" "TLK_LETS_USE_RADIO_NAG" required criterion "IsLookingForRadio" "06a_looking_for_radio" "1" required criterion "NotUsedLookForRadio" "UsedLookForRadio" "!=1" "required" weight 0 criterion "IsLookingForPower" "06a_looking_for_power" "1" required criterion "NotUsedLookForPower" "UsedLookForPower" "!=1" "required" weight 0 criterion "ConceptNagFollowGeneric" "Concept" "TLK_NAG_ALYX_FOLLOW_GENERIC" required criterion "ConceptNagJoinAlyx04" "Concept" "TLK_JOIN_ALYX_IN_ELEVATOR_NAG" required criterion "IsMoveToThumper" "movetothumper_05" "1" required criterion "PlayerWeaponIsShotGun" "enemy" "weapon_shotgun" required criterion "IsplayerAlyxInInn" "playerAlyxInInn" "1" required criterion "PostTransmission" "post_transmission01" "1" "required" weight 1 //============================================================================================================ // Alyx Plus Use Fun //============================================================================================================ response AlyxUseEverywhere { scene "scenes/npc/alyx/al_affirm01.vcd" scene "scenes/npc/alyx/al_affirm03.vcd" scene "scenes/npc/alyx/al_affirm05.vcd" scene "scenes/npc/alyx/al_playerstare01-vocal.vcd" scene "scenes/npc/alyx/al_playerstare02.vcd" scene "scenes/npc/alyx/al_lead_start05.vcd" scene "scenes/npc/alyx/al_lead_start06.vcd" } rule AlyxUseEverywhere { criteria IsAlyx ConceptTalkUse NotUsedAlyxResponse NotInCombat applycontext "UsedAlyxResponse:1:20" response AlyxUseEverywhere } // response AlyxTalkUse01Post { SEQUENTIAL NOREPEAT scene "scenes/npc/alyx/al_plususe_gettowhiteforest.vcd" scene "scenes/npc/alyx/al_plususe_getmovingneedus.vcd" scene "scenes/outland_01/al_rbed_giveupnow.vcd" } rule AlyxTalkUse01Post { criteria IsAlyx ConceptTalkUse IsMap_ep2_outland_01 NotUsedAlyxResponse NotInCombat PostTransmission applycontext "UsedAlyxResponse:1:20" response AlyxTalkUse01Post } response AlyxTalkUse01Pre { SEQUENTIAL NOREPEAT scene "scenes/outland_01/al_rbed_plususe04.vcd" scene "scenes/outland_01/al_rbed_plususe03.vcd" scene "scenes/outland_01/al_rbed_plususe01.vcd" } rule AlyxTalkUse01Pre { criteria IsAlyx ConceptTalkUse IsMap_ep2_outland_01 NotUsedAlyxResponse NotInCombat applycontext "UsedAlyxResponse:1:20" response AlyxTalkUse01Pre } criterion "IsplayerPostCannon" "POSTCANNON" "1" required response AlyxTalkUse09PostCannon { SEQUENTIAL NOREPEAT scene "scenes/npc/alyx/al_plususe_gettowhiteforest.vcd" scene "scenes/npc/alyx/al_plususe_getmovingneedus.vcd" } rule AlyxTalkUse09PostCannon { criteria IsAlyx ConceptTalkUse IsMap_ep2_outland_09 NotUsedAlyxResponse NotInCombat IsplayerPostCannon applycontext "UsedAlyxResponse:1:20" response AlyxTalkUse09PostCannon } //============================================================================================================ // Alyx In 10a Nag to get car //============================================================================================================ criterion "ConceptNagGetCar10a" "Concept" "TLK_OUTLAND_10a_BRINGCAR" required response AlyxNagGetCar10a { SEQUENTIAL NOREPEAT scene "scenes/outland_10/al_str_carnag02.vcd" scene "scenes/outland_10/al_str_carnag03.vcd" } rule AlyxNagGetCar10a { criteria IsAlyx ConceptNagGetCar10a response AlyxNagGetCar10a } response AlyxNagToWhiteForest10a { NOREPEAT scene "scenes/outland_10/al_silo_dontgiveup.vcd" scene "scenes/outland_10/al_silo_seedad.vcd" respeakdelay 20 scene "scenes/outland_10/al_silo_seemag.vcd" respeakdelay 30 } rule AlyxNagToWhiteForest10a { criteria IsAlyx ConceptLeadRetrieve IsMap_ep2_outland_10a response AlyxNagToWhiteForest10a } //============================================================================================================ // Alyx In 04. Nag to get on elevator //============================================================================================================ response NagJoinAlyx04 { SEQUENTIAL NOREPEAT scene "scenes/outland_02/al_junc_notwithoutyou.vcd" scene "scenes/outland_02/al_junc_gettowhiteforest.vcd" scene "scenes/outland_02/al_junc_nexttome.vcd" } rule NagJoinAlyx04 { criteria IsAlyx ConceptNagJoinAlyx04 response NagJoinAlyx04 } //============================================================================================================ // Alyx In 05. Adding grimness and removing some energy from the recently healed alyx //============================================================================================================ //commented out the praise, still feels odd. response PlayerKilledNPC05 { NOREPEAT // scene "scenes/npc/Alyx/al_combat_grim_niceshot.vcd" // scene "scenes/npc/Alyx/al_combat_niceshot02.vcd" } rule PlayerKilledNPC05 { criteria IsAlyx ConceptPlayerKilledNPC IsAlyx ConceptPlayerKilledNPC IsMap_ep2_outland_05 PlayerNear AlyxNotPraised applycontext "AlyxPraised:1:30" response PlayerKilledNPC05 } //this talk danger is specific for this level as it speaks to many enemies and is called when the acid lion spits. response AlyxTalkDanger05 { NOREPEAT scene "scenes/npc/alyx/al_combat_sudden01.vcd" scene "scenes/npc/alyx/al_combat_panic02.vcd" scene "scenes/npc/alyx/al_combat_sudden12.vcd" } rule AlyxTalkDanger05 { criteria IsAlyx ConceptTalkDanger IsMap_ep2_outland_05 response AlyxTalkDanger05 } criterion IsNotAlyxThumper05PU "AlyxThumper05PU" "!=1" required response AlyxMoveToThumper05PU { SEQUENTIAL NOREPEAT scene "scenes/outland_05/al_hatethesethings.vcd" scene "scenes/outland_05/al_canyon_walkonmyown04.vcd" scene "scenes/outland_05/al_junc_soweak03.vcd" } rule AlyxMoveToThumper05PU { criterion IsAlyx IsMoveToThumper ConceptTalkUse IsMap_ep2_outland_05 IsNotAlyxThumper05PU applycontext "AlyxThumper05PU:1:20" response AlyxMoveToThumper05PU } response BuryPlusUse05 { } rule BuryPlusUse05 { criterion IsAlyx ConceptTalkUse IsMap_ep2_outland_05 response BuryPlusUse05 } criterion IsNotAlyxThumper05 "AlyxThumper05" "!=1" required response AlyxMoveToThumper05 { scene "scenes/outland_05/al_continue_nag01.vcd" scene "scenes/outland_05/al_continue_nag02.vcd" scene "scenes/outland_05/al_continue_nag03.vcd" scene "scenes/outland_05/al_continue_nag04.vcd" scene "scenes/outland_05/al_continue_nag05.vcd" scene "scenes/outland_05/al_continue_nag06.vcd" } rule AlyxMoveToThumper05 { criterion IsAlyx IsMoveToThumper ConceptTalkLook PlayerNear IsMap_ep2_outland_05 IsNotAlyxThumper05 applycontext "AlyxThumper05:1:20" response AlyxMoveToThumper05 } //========================= // Alyx 09 //======================= criterion "ConceptGetInCar09" "Concept" "TLK_OUTLAND_09_GETINCAR" required response Alyx_GetInCar09 { SEQUENTIAL NOREPEAT scene "scenes/npc/alyx/al_vehicle_combat_playernotincar_nag01.vcd" scene "scenes/npc/alyx/al_vehicle_combat_playernotincar_nag02.vcd" scene "scenes/npc/alyx/al_vehicle_combat_playernotincar_nag03.vcd" scene "scenes/npc/alyx/al_vehicle_combat_playernotincar_nag04.vcd" } rule Alyx_GetInCar09 { criteria IsAlyx ConceptGetInCar09 response Alyx_GetInCar09 } criterion "ConceptAlyxGetInGarage09" "Concept" "TLK_ALYX_09_LEADTOGARAGE" "required" response "AlyxGetInGarage09" { SEQUENTIAL scene "scenes/outland_09/al_chop_backinsidenag01.vcd" weapondelay 5 } rule AlyxGetInGarage09 { criteria IsAlyx ConceptGetInGarage09 response AlyxGetInGarage09 } //========RADAR CACHES================== criterion "ConceptZombieStuff" "Concept" "TLK_ZOMBIESTUFF" required response "AlyxZombieStuff" { SEQUENTIAL NOREPEAT scene "scenes/outland_09/al_shack_zombies.vcd" } rule AlyxZombieStuff { criteria IsAlyx ConceptZombieStuff response AlyxZombieStuff } criterion "PlayerPlusUseAlyxCaches" "ContextCache_PlusUse" "1" required response "PlusUseAlyxCaches" { SEQUENTIAL NOREPEAT scene "scenes/outland_09/al_radar_plususe02.vcd" RESPEAKDELAY 10 scene "scenes/outland_09/al_radar_plususe01.vcd" RESPEAKDELAY 10 } rule PlusUseAlyxCaches { criteria IsAlyx ConceptTalkUse PlayerPlusUseAlyxCaches response PlusUseAlyxCaches } //============================================================================================================ // Alyx Generic nags for the player to follow her (close) //============================================================================================================ response Alyx_GenericFollow_Nag_Close { scene "scenes/npc/alyx/al_genericfollow_nag_close_01.vcd" scene "scenes/npc/alyx/al_genericfollow_nag_close_02.vcd" scene "scenes/npc/alyx/al_genericfollow_nag_close_03.vcd" scene "scenes/npc/alyx/al_genericfollow_nag_close_04.vcd" } rule Alyx_GenericFollow_Nag_Close { criteria IsAlyx PlayerWithin800 ConceptNagFollowGeneric response Alyx_GenericFollow_Nag_Close } //============================================================================================================ // Alyx Generic nags for the player to follow her (far) //============================================================================================================ response Alyx_GenericFollow_Nag_Far { scene "scenes/npc/alyx/al_genericfollow_nag_far_01.vcd" scene "scenes/npc/alyx/al_genericfollow_nag_far_02.vcd" scene "scenes/npc/alyx/al_genericfollow_nag_far_03.vcd" } rule Alyx_GenericFollow_Nag_Far { criteria IsAlyx PlayerNotWithin800 ConceptNagFollowGeneric response Alyx_GenericFollow_Nag_Far } ///////combat in 07 response Alyx_PlayerKilled07 { scene "scenes/npc/Alyx/al_combat_grim_niceshot.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_grim_niceshooting.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_grim_nice.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_grim_yeah.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_grim_greatshot.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_grim_goodshot.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_niceshooting02.vcd" respeakdelay 30 } rule Alyx_PlayerKilled07 { criteria IsAlyx ConceptPlayerKilledNPC IsMap_ep2_outland_07 PlayerNotUsingPhysCannon EnemyIsNotClose IsNotInVehicle response Alyx_PlayerKilled07 } //// ADDED FOR 10 // ep_01.al_gotyourback player push //removed for now, should work it back in //criterion "ConceptVehicleStarted" "Concept" "TLK_PASSENGER_VEHICLE_STARTED" required //criterion "NotAlyxSaidAlyxVehicleStarted" "AlyxSaidAlyxVehicleStarted" "!=1" "required" weight 0 //response Alyx_InnFirstCarEnter //{ // scene "scenes/npc/alyx/al_vehicle_player_entered.vcd" //} //rule Alyx_InnFirstCarEnter //{ // criteria IsAlyx ConceptVehicleStarted IsMap_ep2_outland_10 NotAlyxSaidAlyxVehicleStarted // applycontext "AlyxSaidAlyxVehicleStarted:1:0" // response Alyx_InnFirstCarEnter //} // Being fired by level //response Alyx_KillHunter //{ // SEQUENTIAL // scene "scenes/npc/alyx/al_combat_whoanice02.vcd" // scene "scenes/npc/alyx/al_combat_nice.vcd" // scene "scenes/npc/alyx/al_player_killed_hunter.vcd" // //} //rule Alyx_KillHunter //{ // criteria IsAlyx ConceptPlayerKilledNPC IsMap_ep2_outland_10 EnemyIsHunter // response Alyx_KillHunter //} //response Alyx_KillEnemyHunter //{ // scene "scenes/npc/alyx/al_player_killed_hunter.vcd" // //} //rule Alyx_KillEnemyHunter //{ // criteria IsAlyx ConceptAlyxEnemyDead IsMap_ep2_outland_10 EnemyIsHunter // response Alyx_KillEnemyHunter //} //////////////////////////////////////////// response AlyxPassengerImpact10 { scene "scenes/npc/alyx/al_car_crash04.vcd" scene "scenes/npc/alyx/al_car_crash06.vcd" scene "scenes/npc/Alyx/al_wound08.vcd" } rule AlyxPassengerImpactCombat10 { criterion ConceptPassengerImpact IsAlyx InCombat IsMap_ep2_outland_10 response AlyxPassengerImpact10 } rule AlyxPassengerImpactNoCombat10 { criterion ConceptPassengerImpact IsAlyx NotInCombat IsMap_ep2_outland_10 response AlyxPassengerImpact10 } ////////////////////////////////////////////// response Alyx_PlayerKilled10 { scene "scenes/npc/Alyx/al_combat_grim_niceshot.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_grim_niceshooting.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_grim_nice.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_grim_yeah.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_grim_greatshot.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_grim_goodshot.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_niceshooting02.vcd" respeakdelay 30 } rule Alyx_PlayerKilled10 { criteria IsAlyx ConceptPlayerKilledNPC IsMap_ep2_outland_10 PlayerNotUsingPhysCannon EnemyIsNotClose EnemyIsNotPoisonHeadcrab IsNotAmmoVehicle response Alyx_PlayerKilled10 } response Alyx_PlayerKilled10Phys { scene "scenes/npc/Alyx/al_combat_grim_goodshot.vcd" respeakdelay 30 scene "scenes/npc/Alyx/al_combat_niceshot02.vcd" respeakdelay 30 } rule Alyx_PlayerKilled10Phys { criteria IsAlyx ConceptPlayerKilledNPC IsMap_ep2_outland_10 PlayerUsingPhysCannon EnemyIsNotPoisonHeadcrab response Alyx_PlayerKilled10Phys } criterion "NotAlyxSaidAlyx_InnMoreComing" "AlyxSaidAlyx_InnMoreComing" "!=1" "required" weight 0 response Alyx_InnMoreComing { scene "scenes/npc/alyx/al_ambush_morecoming.vcd" } rule Alyx_InnMoreComing { criteria IsAlyx ConceptTalkAttacking IsMap_ep2_outland_10 NotAlyxSaidAlyx_InnMoreComing NotSeenByPlayer NotSeePlayer InCombatMedium EnemyIsNotPoisonHeadcrab EnemyIsNotHunter applycontext "AlyxSaidAlyx_InnMoreComing:1:0" response Alyx_InnMoreComing } criterion "NotAlyxSaidAlyx_InMoreCombat" "AlyxSaid_InMoreCombat10" "!=1" "required" weight 0 response Alyx_InMoreCombat10 { SEQUENTIAL NOREPEAT scene "scenes/npc/alyx/al_combat_grim_takemout.vcd" scene "scenes/npc/alyx/al_combat_sudden08.vcd" scene "scenes/npc/alyx/ep_01.al_startcombat03.vcd" scene "scenes/npc/alyx/al_combat_sudden12.vcd" } rule Alyx_InMoreCombat10 { criteria IsAlyx ConceptTalkAttacking IsMap_ep2_outland_10 InCombat NotAlyxSaidAlyx_InMoreCombat EnemyIsNotPoisonHeadcrab EnemyIsNotHunter IsplayerAlyxInInn applycontext "AlyxSaid_InMoreCombat10:1:30" response Alyx_InMoreCombat10 } response AlyxEpisodicHideAndReload { scene "scenes/episode_1/al_reload01.vcd" respeakdelay 20 scene "scenes/episode_1/al_reload06.vcd" respeakdelay 20 scene "scenes/episode_1/al_reload07.vcd" respeakdelay 20 } rule AlyxEpisodicHideAndReload { criteria IsAlyx ConceptHideAndReload IsMap_ep2_outland_10 EnemyIsNotPoisonHeadcrab response AlyxEpisodicHideAndReload } response PlayerKilledEnemyDemo10 { SEQUENTIAL NOREPEAT scene "scenes/npc/Alyx/al_thanksforhelp03.vcd" scene "scenes/npc/Alyx/al_combat_yeah01.vcd" scene "scenes/npc/Alyx/al_combat_yeah02.vcd" } rule PlayerKilledEnemyDemo10 { criteria IsAlyx ConceptAlyxEnemyDead IsMap_ep2_outland_10 EnemyIsNotPoisonHeadcrab response PlayerKilledEnemyDemo10 } response AlyxBlindShot10 { SEQUENTIAL NOREPEAT scene "scenes/npc/Alyx/al_gordon_distance.vcd" } rule AlyxBlindShot10 { criteria IsAlyx ConceptShot IsMap_ep2_outland_10 NotSeenByPlayer NotSeePlayer EnemyIsNotPoisonHeadcrab IsplayerAlyxInInn response AlyxBlindShot10 } criterion "NotAlyxSaidInnCloseTalk" "AlyxSaidInnCloseTalk" "!=1" "required" weight 0 response Alyx_InnClose { scene "scenes/npc/Alyx/al_ambush_holdemoff.vcd" } rule Alyx_InnClose { criteria IsAlyx ConceptTalkLook PlayerReallyNear IsMap_ep2_outland_10 InCombatMedium NotAlyxSaidInnCloseTalk ContextEnemies applycontext "AlyxSaidInnCloseTalk:1:0" response Alyx_InnClose } criterion "NotAlyxSaidInnHiddenTalk" "AlyxSaidInnHiddenTalk" "!=1" "required" weight 0 response AlyxGot10 { SEQUENTIAL NOREPEAT scene "scenes/npc/Alyx/al_evac_gothim01.vcd" scene "scenes/outland_10/al_ambush_linesight.vcd" scene "scenes/outland_10/al_ambush_howyoudoing.vcd" } rule AlyxGot10 { criteria IsAlyx ConceptTalkAttacking IsMap_ep2_outland_10 NotSeenByPlayer InCombatMedium EnemyIsNotPoisonHeadcrab NotAlyxSaidInnHiddenTalk EnemyIsNotHunter IsplayerAlyxInInn applycontext "AlyxSaidInnHiddenTalk:1:15" response AlyxGot10 } //============================================================================================================ // Alyx In 01. Fun loving killing machine alyx //============================================================================================================ criterion "IsAlyxSawZombies" "AlyxSawZombies" "1" "required" weight 10 criterion "NotAlyxSawZombies" "AlyxSawZombies" "!=1" "required" weight 0 criterion "NotAlyxSawOriginalZombies" "AlyxSawOriginalZombies" "!=1" "required" weight 0 criterion "NotAlyxOrYouDo" "AlyxOrYouDo" "!=1" "required" weight 0 criterion "IsButaneWeapon" "playerAmmo" "models/props_explosive/explosive_butane_can.mdl" "required" response "AlyxSpottedZombieWaking" { scene "scenes/npc/Alyx/al_zombie_liveone02.vcd" respeakdelay 180 scene "scenes/npc/Alyx/al_zombie_itsalive01.vcd" respeakdelay 180 } rule AlyxSpottedZombieWaking { criteria IsAlyx ConceptSpottedZombieWakeup IsMap_ep2_outland_01 NotAlyxSawZombies response AlyxSpottedZombieWaking } response AlyxStartCombat01 { scene "scenes/outland_01/al_rbed_zombies02.vcd" } rule AlyxStartCombat01 { criteria IsAlyx ConceptAlyxStartCombat IsMap_ep2_outland_01 EnemyIsZombie NotAlyxSawOriginalZombies applycontext "AlyxSawZombies:1:10,AlyxSawOriginalZombies:1:0" response AlyxStartCombat01 } response AlyxOrYouDo { NOREPEAT scene "scenes/outland_01/al_rbed_zombies03.vcd" } rule AlyxOrYouDo { criteria IsAlyx ConceptPlayerKilledNPC IsMap_ep2_outland_01 IsAlyxSawZombies NotAlyxOrYouDo applycontext "AlyxOrYouDo:1:0" response AlyxOrYouDo } response PlayerButane01 { SEQUENTIAL NOREPEAT scene "scenes/npc/alyx/al_combat_boom06.vcd" scene "scenes/npc/alyx/al_combat_nicemove01.vcd" } rule PlayerButane01 { criteria IsAlyx ConceptPlayerKilledNPC IsMap_ep2_outland_01 IsButaneWeapon response PlayerButane01 } response AlyxKilling01 { SEQUENTIAL NOREPEAT scene "scenes/npc/alyx/al_combat_yeah01.vcd" respeakdelay 30 scene "scenes/npc/alyx/al_combat_yeah02.vcd" respeakdelay 30 } rule AlyxKilling01 { criteria IsAlyx ConceptEnemyDead IsMap_ep2_outland_01 NotAlyxSawZombies response AlyxKilling01 } ///////////////////////////// response Alyx_Outland06a_NotPowered { scene "scenes/outland_06a/al_radionotpowered_nag.vcd" } rule Alyx_Outland06a_NotPowered { criteria IsAlyx ConceptNag06aNotPowered NoRecentCombatShort ConceptNoEnemies response Alyx_Outland06a_NotPowered } response Alyx_Outland06a_UseRadio { scene "scenes/outland_06a/al_letsuseradio_nag.vcd" } rule Alyx_Outland06a_UseRadio { criteria IsAlyx ConceptNag06aUseRadio NoRecentCombatShort ConceptNoEnemies response Alyx_Outland06a_UseRadio } response Alyx_Outland06a_FindRadio { scene "scenes/outland_06a/al_letsfindradio_nag1.vcd" scene "scenes/outland_06a/al_letsfindradio_nag2.vcd" scene "scenes/outland_06a/al_letsfindradio_nag3.vcd" } rule Alyx_Outland06a_FindRadio { criteria IsAlyx ConceptNag06aFindRadio NoRecentCombatShort ConceptNoEnemies response Alyx_Outland06a_FindRadio } response Alyx_Outland06a_FindRadioPlusUse { norepeat sequential scene "scenes/outland_06a/al_use_findradio1.vcd" scene "scenes/outland_06a/al_use_findradio2.vcd" } rule Alyx_Outland06a_FindRadioPlusUse { criteria IsAlyx IsLookingForRadio ConceptTalkUse NotUsedLookForRadio applycontext "UsedLookForRadio:1:30,UsedAlyxResponse:1:30" response Alyx_Outland06a_FindRadioPlusUse } response Alyx_Outland06a_FindPowerPlusUse { norepeat sequential scene "scenes/outland_06a/al_use_powertotrans1.vcd" scene "scenes/outland_06a/al_use_powertotrans2.vcd" } rule Alyx_Outland06a_FindPowerPlusUse { criteria IsAlyx IsLookingForPower ConceptTalkUse NotUsedLookForPower applycontext "UsedLookForPower:1:30,UsedAlyxResponse:1:30" response Alyx_Outland06a_FindPowerPlusUse } response Alyx_Outland11_GoWithMag { scene "scenes/outland_11/silo_entry_03_nags_01.vcd" scene "scenes/outland_11/silo_entry_03_nags_02.vcd" scene "scenes/outland_11/silo_entry_03_nags_03.vcd" scene "scenes/outland_11/silo_entry_03_nags_04.vcd" scene "scenes/outland_11/silo_entry_03_nags_05.vcd" } rule Alyx_Outland11_GoWithMag { criteria IsAlyx ConceptNagGoWithMag response Alyx_Outland11_GoWithMag } //============================================================================================================ // Alyx Throw medkit attract Nag ep2_outland_08 //============================================================================================================ response Alyx_Outland08_TakeDownChopper { scene "scenes/outland_08/al_chop_nags01.vcd" scene "scenes/outland_08/al_chop_nags02.vcd" scene "scenes/outland_08/al_chop_nags03.vcd" } rule Alyx_Outland08_TakeDownChopper { criteria IsAlyx ConceptTakeDownChopper response Alyx_Outland08_TakeDownChopper } response Alyx_Outland08_TakeDownChopperLowHealth { scene "scenes/outland_08/al_chop_nag_lowhealth.vcd" scene "scenes/outland_08/al_chop_nags02.vcd" scene "scenes/outland_08/al_chop_nags03.vcd" } rule Alyx_Outland08_TakeDownChopperLowHealth { criteria IsAlyx ConceptTakeDownChopper PlayerWounded response Alyx_Outland08_TakeDownChopperLowHealth } response Alyx_Outland08_ThrowMedAttractNag { scene "scenes/outland_08/al_chop_throwmed01.vcd" scene "scenes/outland_08/al_chop_throwmed02.vcd" scene "scenes/outland_08/al_chop_throwmed03.vcd" scene "scenes/outland_08/al_chop_throwmed04.vcd" scene "scenes/outland_08/al_chop_throwmed05.vcd" } rule Alyx_Outland08_ThrowMedAttractNag { criteria IsAlyx ConceptThrowMedAttractNag response Alyx_Outland08_ThrowMedAttractNag } //============================================================================================================ // Alyx Trap Door Nag ep2_outland_09 //============================================================================================================ criterion "ConceptTrapDoorNag" "Concept" "TLK_ALYX_OUTLAND_08_TRAPDOOR" required response Alyx_Outland02_TrapDoorNag { scene "scenes/outland_08/al_chop_nagdoor01.vcd" respeakdelay 10 scene "scenes/outland_08/al_chop_nagdoor02.vcd" respeakdelay 10 } rule Alyx_Outland02_TrapDoorNag { criteria IsAlyx ConceptTrapDoorNag response Alyx_Outland02_TrapDoorNag } //============================================================================================================ // Alyx Get the car nag ep2_outland_09 //============================================================================================================ criterion "ConceptGetCarNag" "Concept" "TLK_ALYX_OUTLAND_09_GETCAR" required response Alyx_Outland02_GetCarNag { scene "scenes/outland_09/al_nag_getcar_01.vcd" respeakdelay 10 scene "scenes/outland_09/al_nag_getcar_02.vcd" respeakdelay 10 } rule Alyx_Outland02_GetCarNag { criteria IsAlyx ConceptGetCarNag response Alyx_Outland02_GetCarNag } //============================================================================================================ // Alyx Vort encounter 03 //============================================================================================================ criterion "IsSpeechTargetVort" "speechtarget" "npc_vortigaunt" required criterion "AlyxVortEncounter01NotPlayed" "AlyxVortEncounter01" "!=1" "required" weight 0 response AlyxVortEncounter01 { scene "scenes/episode_2/al_vort_exchange_01.vcd" } rule AlyxVortEncounter01 { criteria IsAlyx IsSpeechTargetVort PlayerNear ConceptTalkLook NoRecentCombatShort AlyxVortEncounter01NotPlayed NotInCombat applycontext "AlyxVortEncounter01:1:0" response AlyxVortEncounter01 } //============================================================================================================ // Alyx Citadel 01 speech //============================================================================================================ criterion "IsMap_ep1_citadel_01" "map" "ep1_citadel_01" weight 10 "required" //alyx context for giving you a hint upon hacking a rollermine during the roller training in citadel_01 response Alyxcitadel01RollermineHint { //alyx says a custom line after she hacks her first rollermine //which is commented out so we can emulate this behavior by firing a vcd in the map instead norepeat //scene "scenes/episode_1/al_citadel_01_rollertraining_hacked.vcd" } rule Alyxcitadel01RollermineHint { criteria IsAlyx IsEpisodic ConceptInteractionDone IsMap_ep1_citadel_01 response Alyxcitadel01RollermineHint } //============================================================================================================ // Alyx Citadel Elevator speech //============================================================================================================ criterion "ConceptElevatorNag" "Concept" "CPT_EP1_CITELEVATORNAG" required criterion "GarageAntlionHolesCovered" "AntlionHolesCovered" "1" required response "AlyxElevatorNagPlayerToStart" { scene "scenes/episode_1/al_cit_elevator_getitmoving01.vcd" nodelay 0 displayfirst speakonce scene "scenes/episode_1/al_cit_elevator_getitmoving02.vcd" nodelay 0 scene "scenes/episode_1/al_cit_elevator_getitmoving03.vcd" nodelay 0 scene "scenes/episode_1/al_cit_elevator_getitmoving04.vcd" nodelay 0 } rule AlyxElevatorNagPlayerToStart { criteria IsAlyx ConceptElevatorNag response AlyxElevatorNagPlayerToStart } //================================================================================================== // Alyx giving player hints on removing the Sniper in c17_01 //================================================================================================== response Alyxc1701SniperHint { //*wav missing!*scene "scenes/episode_1/al_c17_01_sniper_cantcomewith.vcd" //scene "scenes/episode_1/al_c17_01_sniper_takeoutsniper.vcd" scene "scenes/episode_1/al_c17_01_sniper_pinneddown.vcd" scene "scenes/episode_1/al_c17_01_sniper_cantgetthru.vcd" //scene "scenes/episode_1/al_c17_01_sniper_heygrabrollermine.vcd" //scene "scenes/episode_1/al_c17_01_sniper_bringmerollermine.vcd" } rule Alyxc1701SniperHint { criteria IsAlyx IsEpisodic ConceptTalkc1701SniperHint response Alyxc1701SniperHint } response Alyxc1701RollermineHint { //the idea is to have alyx talk about rollermines until you hack at least one. // then she'll say her SniperHint lines (above) //scene "scenes/episode_1/al_c17_01_sniper_cantcomewith.vcd" //scene "scenes/episode_1/al_c17_01_sniper_takeoutsniper.vcd" //scene "scenes/episode_1/al_c17_01_sniper_pinneddown.vcd" //scene "scenes/episode_1/al_c17_01_sniper_cantgetthru.vcd" scene "scenes/episode_1/al_c17_01_sniper_heygrabrollermine.vcd" scene "scenes/episode_1/al_c17_01_sniper_bringmerollermine.vcd" scene "scenes/episode_1/al_c17_01_sniper_DontWasteRollermine.vcd" } rule Alyxc1701RollermineHint { criteria IsAlyx IsEpisodic ConceptTalkc1701RollermineHint response Alyxc1701RollermineHint } response Alyxc1701HoldOffRoller { //if Alyx is attacking a roller here, she remind again to get it for her scene "scenes/episode_1/al_c17_01_roller_holdingoff.vcd" respeakdelay 12 defaultdelay } rule Alyxc1701HoldOffRoller { criteria IsAlyx IsEpisodic IsMap_ep1_c17_01 EnemyIsRollerMine response Alyxc1701HoldOffRoller } //============================================================================================================ // Alyx Evac Citizen Speech - spoken when the player arrives escorting a group of citizens. //============================================================================================================ response "AlyxEvacCitizen" { scene "scenes/episode_1/al_c17_05_evac_cits01.vcd" scene "scenes/episode_1/al_c17_05_evac_cits02.vcd" scene "scenes/episode_1/al_c17_05_evac_cits03.vcd" } rule AlyxEvacCitizen { criteria IsAlyx ConceptTalkAlyxEVacCitizen response AlyxEvacCitizen } //============================================================================================================ // Alyx Evac Next group - spoken when the player needs to get another group of citizens. //============================================================================================================ response "AlyxEvacNextGroup" { scene "scenes/episode_1/al_c17_05_evac_nextgroup01.vcd" scene "scenes/episode_1/al_c17_05_evac_nextgroup02.vcd" scene "scenes/episode_1/al_c17_05_evac_nextgroup03.vcd" scene "scenes/episode_1/al_c17_05_evac_nextgroup04.vcd" scene "scenes/episode_1/al_c17_05_evac_nextgroup05.vcd" } rule AlyxEvacNextGroup { criteria IsAlyx ConceptTalkAlyxEvacNextGroup PlayerNear response AlyxEvacNextGroup } //============================================================================================================ // Alyx Evac Protect - spoken when the player lets evac citizens come to harm //============================================================================================================ //---------------------------------------------------------------------------- response "AlyxEvacProtect" { scene "scenes/episode_1/al_c17_05_evac_protect01.vcd" scene "scenes/episode_1/al_c17_05_evac_protect02.vcd" scene "scenes/episode_1/al_c17_05_evac_protect03.vcd" scene "scenes/episode_1/al_c17_05_evac_protect04.vcd" scene "scenes/episode_1/al_c17_05_evac_protect05.vcd" } rule AlyxEvacProtect { criteria IsAlyx IsEpisodic ConceptTalkAlyxEvacProtect PlayerNear response AlyxEvacProtect } //============================================================================================================ // Alyx Antlion Holes Covered - spoken when the player covers the holes in the garage. //============================================================================================================ //---------------------------------------------------------------------------- response "GarageAntlionHolesCoveredDeadAntlions" { scene "scenes/episode_1/c17/al_garage_hearthink.vcd" speakonce } rule GarageAntlionHolesCoveredDeadAntlions { criteria IsAlyx GarageAntlionHolesCovered NotInCombat response GarageAntlionHolesCoveredDeadAntlions } response "GarageAntlionHolesCoveredLiveAntlions" { scene "scenes/episode_1/c17/al_garage_stragglers.vcd" speakonce } rule GarageAntlionHolesCoveredLiveAntlions { criteria IsAlyx GarageAntlionHolesCovered EnemyIsAntLion response GarageAntlionHolesCoveredLiveAntlions } //============================================================================================================ // Alyx Thanking you for not killing all of the citizens you are supposed to be escorting. //============================================================================================================ //---------------------------------------------------------------------------- criterion "ConceptTalkEvacCongrats" "Concept" "TLK_ALYX_EVAC_CONGRATS" required response "EvacCongrats" { scene "scenes/episode_1/c17/al_evac_congrat01.vcd" scene "scenes/episode_1/c17/al_evac_congrat02.vcd" scene "scenes/episode_1/c17/al_evac_congrat03.vcd" scene "scenes/episode_1/c17/al_evac_congrat04.vcd" scene "scenes/episode_1/c17/al_evac_congrat05.vcd" } rule EvacCongrats { criteria IsAlyx ConceptTalkEvacCongrats PlayerNear response EvacCongrats } //============================================================================================================ // Alyx Training the player to cover the antlion holes - first time around //============================================================================================================ //---------------------------------------------------------------------------- criterion "ConceptAntLionTrainingHint" "AntlionTrainingHint" "1" required response "AntLionTrainingHints" { sequential norepeat scene "scenes/npc/alyx/al_blank.vcd" respeakdelay 30 scene "scenes/episode_1/c17/al_antlions_cutsupply.vcd" respeakdelay 30 scene "scenes/episode_1/c17/al_antlions_keepcontrol.vcd" respeakdelay 30 scene "scenes/episode_1/c17/al_antlions_runoutbullets.vcd" respeakdelay 30 } rule AntLionTrainingHints { criteria IsAlyx ConceptAntLionTrainingHint PlayerNear ConceptTalkAttacking response AntLionTrainingHints } //============================================================================================================ // Alyx Congrats to player for covering hole //============================================================================================================ //---------------------------------------------------------------------------- criterion "ConceptAntlionGoodWork" "Concept" "AntlionGoodWork" required response "AntLionTrainingCongrats" { scene "scenes/episode_1/c17/al_antlions_plugthatway.vcd" speakonce } rule AntLionTrainingCongrats { criteria IsAlyx ConceptAntlionGoodWork PlayerNear NPCAlert response AntLionTrainingCongrats }