criterion "Isannouncer_dlc_stormspirit" "classname" "npc_dota_hero_announcer_dlc_stormspirit" weight 5 required criterion "IsEnemyannouncer_dlc_stormspirit" "targetclassname" "npc_dota_hero_announcer_dlc_stormspirit" weight 5 required criterion "IsAllyannouncer_dlc_stormspirit" "nearby_ally" "npc_dota_hero_announcer_dlc_stormspirit" weight 5 required criterion "IsAnnouncerVoice_StormSpirit" "announcer_voice" "npc_dota_hero_announcer_dlc_stormspirit" weight 5 required Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPickYour { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_pick_yr.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPickYour_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsPickYour response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPickYour } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPlayerTeam_RadiantIsPickDire { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_pick_enm.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPlayerTeam_RadiantIsPickDire_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsPlayerTeam_Radiant IsPickDire response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPlayerTeam_RadiantIsPickDire } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPlayerTeam_DireIsPickRadiant { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_pick_enm.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPlayerTeam_DireIsPickRadiant_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsPlayerTeam_Dire IsPickRadiant response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPlayerTeam_DireIsPickRadiant } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPickDireIsPlayerTeam_Spectator { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_pick_dire.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPickDireIsPlayerTeam_Spectator_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsPickDire IsPlayerTeam_Spectator response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPickDireIsPlayerTeam_Spectator } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPickRadiantIsPlayerTeam_Spectator { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_pick_rad.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPickRadiantIsPlayerTeam_Spectator_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsPickRadiant IsPlayerTeam_Spectator response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsPickRadiantIsPlayerTeam_Spectator } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanYour { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ban_yr.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanYour_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsBanYour response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanYour } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanDireIsPlayerTeam_Radiant { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ban_enm.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanDireIsPlayerTeam_Radiant_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsBanDire IsPlayerTeam_Radiant response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanDireIsPlayerTeam_Radiant } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanRadiantIsPlayerTeam_Dire { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ban_enm.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanRadiantIsPlayerTeam_Dire_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsBanRadiant IsPlayerTeam_Dire response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanRadiantIsPlayerTeam_Dire } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanDireIsPlayerTeam_Spectator { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ban_dire.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanDireIsPlayerTeam_Spectator_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsBanDire IsPlayerTeam_Spectator response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanDireIsPlayerTeam_Spectator } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanRadiantIsPlayerTeam_Spectator { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ban_rad.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanRadiantIsPlayerTeam_Spectator_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsBanRadiant IsPlayerTeam_Spectator response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsBanRadiantIsPlayerTeam_Spectator } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIs10SecToPick { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_count_pick_10.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIs10SecToPick_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit Is10SecToPick response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIs10SecToPick } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIs5SecToPick { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_count_pick_5.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIs5SecToPick_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit Is5SecToPick response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIs5SecToPick } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsReserveTime { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_time_reserve.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsReserveTime_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsReserveTime response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsReserveTime } Response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsSelectHero { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_choose_hero.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsSelectHero_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit IsSelectHero response announcer_dlc_stormspirit_CustomIsAnnouncerVoice_StormSpiritIsSelectHero } Response announcer_dlc_stormspirit_CustomIsGameStarting30IsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_count_battle_30.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGameStarting30IsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGameStarting30 IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGameStarting30IsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGameStarting10IsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_count_battle_10.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGameStarting10IsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGameStarting10 IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGameStarting10IsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsPrepStartIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_battle_prepare_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_battle_prepare_02.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsPrepStartIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsPrepStart IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsPrepStartIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGameStartIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_battle_begin_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_battle_begin_02.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGameStartIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGameStart IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGameStartIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsFortAttackedIsNotSpectatorIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_anc_attack_yr_01.vcd" nodelay noscene respeakdelay 6 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_anc_attack_yr_02.vcd" nodelay noscene respeakdelay 6 } Rule announcer_dlc_stormspirit_CustomIsFortAttackedIsNotSpectatorIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsFortAttacked IsNotSpectator IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsFortAttackedIsNotSpectatorIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsFortAttackedIsGoodAttackedIsSpectatorIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_anc_attack_rad_01.vcd" nodelay noscene respeakdelay 8 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_anc_attack_rad_02.vcd" nodelay noscene respeakdelay 8 } Rule announcer_dlc_stormspirit_CustomIsFortAttackedIsGoodAttackedIsSpectatorIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsFortAttacked IsGoodAttacked IsSpectator IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsFortAttackedIsGoodAttackedIsSpectatorIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsFortAttackedIsBadAttackedIsSpectatorIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_anc_attack_dire_01.vcd" nodelay noscene respeakdelay 8 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_anc_attack_dire_02.vcd" nodelay noscene respeakdelay 8 } Rule announcer_dlc_stormspirit_CustomIsFortAttackedIsBadAttackedIsSpectatorIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsFortAttacked IsBadAttacked IsSpectator IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsFortAttackedIsBadAttackedIsSpectatorIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerAttackedIsGoodAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_rad_top_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_rad_top_02.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_rad_top_03.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_rad_mid_03.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsTowerAttackedIsGoodAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerAttacked IsGoodAttacked IsSpectator IsTopLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerAttackedIsGoodAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerAttackedIsGoodAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_rad_mid_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_rad_mid_02.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsTowerAttackedIsGoodAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerAttacked IsGoodAttacked IsSpectator IsMidLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerAttackedIsGoodAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerAttackedIsGoodAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_rad_bot_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_rad_bot_02.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_rad_bot_03.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsTowerAttackedIsGoodAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerAttacked IsGoodAttacked IsSpectator IsBotLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerAttackedIsGoodAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerAttackedIsBadAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_dire_top_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_dire_top_02.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_dire_top_03.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsTowerAttackedIsBadAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerAttacked IsBadAttacked IsSpectator IsTopLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerAttackedIsBadAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerAttackedIsBadAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_dire_mid_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_dire_mid_02.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_dire_mid_03.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsTowerAttackedIsBadAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerAttacked IsBadAttacked IsSpectator IsMidLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerAttackedIsBadAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerAttackedIsBadAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_dire_bot_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_dire_bot_02.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_dire_bot_03.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsTowerAttackedIsBadAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerAttacked IsBadAttacked IsSpectator IsBotLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerAttackedIsBadAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerAttackedIsNotSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_yr_top_01.vcd" nodelay noscene respeakdelay 7 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_yr_top_02.vcd" nodelay noscene respeakdelay 7 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_yr_top_03.vcd" nodelay noscene respeakdelay 7 } Rule announcer_dlc_stormspirit_CustomIsTowerAttackedIsNotSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerAttacked IsNotSpectator IsTopLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerAttackedIsNotSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerAttackedIsNotSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_yr_mid_01.vcd" nodelay noscene respeakdelay 7 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_yr_mid_02.vcd" nodelay noscene respeakdelay 7 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_yr_mid_03.vcd" nodelay noscene respeakdelay 7 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_yr_mid_04.vcd" nodelay noscene respeakdelay 7 } Rule announcer_dlc_stormspirit_CustomIsTowerAttackedIsNotSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerAttacked IsNotSpectator IsMidLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerAttackedIsNotSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerAttackedIsNotSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_yr_bot_01.vcd" nodelay noscene respeakdelay 7 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_yr_bot_02.vcd" nodelay noscene respeakdelay 7 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_attack_yr_bot_03.vcd" nodelay noscene respeakdelay 7 } Rule announcer_dlc_stormspirit_CustomIsTowerAttackedIsNotSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerAttacked IsNotSpectator IsBotLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerAttackedIsNotSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerKilledIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_yr_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_yr_top_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_yr_top_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_yr_top_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsTowerKilledIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerKilled IsTopLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerKilledIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerKilledIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_yr_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_yr_mid_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_yr_mid_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_yr_mid_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsTowerKilledIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerKilled IsMidLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerKilledIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerKilledIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_yr_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_yr_bot_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_yr_bot_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsTowerKilledIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerKilled IsBotLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerKilledIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_rad_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_rad_top_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_rad_top_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_rad_top_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGoodTowerKilled IsSpectator IsTopLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_rad_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_rad_mid_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_rad_mid_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_rad_mid_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGoodTowerKilled IsSpectator IsMidLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_rad_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_rad_bot_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_rad_bot_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGoodTowerKilled IsSpectator IsBotLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_dire_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_dire_top_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_dire_top_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_dire_top_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBadTowerKilled IsSpectator IsTopLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_dire_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_dire_mid_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_dire_mid_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBadTowerKilled IsSpectator IsMidLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_dire_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_dire_bot_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_dire_bot_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBadTowerKilled IsSpectator IsBotLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_enm_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_enm_top_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_POSITIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_enm_top_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_enm_top_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsEnemyTowerKilled IsTopLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsTopLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_enm_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_enm_mid_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_POSITIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_enm_mid_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_enm_mid_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsEnemyTowerKilled IsMidLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsMidLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_enm_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_enm_bot_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_POSITIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_fall_enm_bot_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsEnemyTowerKilled IsBotLane IsNotDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsBotLaneIsNotDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsNotSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_yr_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_yr_top_02.vcd" nodelay noscene respeakdelay 10 then self TLK_DOTA_FOLLOWUP_NEGATIVE_ONGOING foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_yr_top_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_yr_top_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBarracksAttackedIsNotSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksAttacked IsNotSpectator IsTopLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsNotSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsNotSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_yr_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_yr_mid_02.vcd" nodelay noscene respeakdelay 10 then self TLK_DOTA_FOLLOWUP_NEGATIVE_ONGOING foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_yr_mid_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_yr_mid_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBarracksAttackedIsNotSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksAttacked IsNotSpectator IsMidLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsNotSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsNotSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_yr_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_yr_bot_02.vcd" nodelay noscene respeakdelay 10 then self TLK_DOTA_FOLLOWUP_NEGATIVE_ONGOING foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_yr_bot_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBarracksAttackedIsNotSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksAttacked IsNotSpectator IsBotLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsNotSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsGoodAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_rad_top_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_rad_top_02.vcd" nodelay noscene respeakdelay 10 then self TLK_DOTA_FOLLOWUP_NEGATIVE_ONGOING foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_rad_top_03.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsBarracksAttackedIsGoodAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksAttacked IsGoodAttacked IsSpectator IsTopLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsGoodAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsGoodAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_rad_mid_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_rad_mid_02.vcd" nodelay noscene respeakdelay 10 then self TLK_DOTA_FOLLOWUP_NEGATIVE_ONGOING foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_rad_mid_03.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsBarracksAttackedIsGoodAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksAttacked IsGoodAttacked IsSpectator IsMidLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsGoodAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsGoodAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_rad_bot_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_rad_bot_02.vcd" nodelay noscene respeakdelay 10 then self TLK_DOTA_FOLLOWUP_NEGATIVE_ONGOING foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_rad_bot_03.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsBarracksAttackedIsGoodAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksAttacked IsGoodAttacked IsSpectator IsBotLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsGoodAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsBadAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_dire_top_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_dire_top_02.vcd" nodelay noscene respeakdelay 10 then self TLK_DOTA_FOLLOWUP_NEGATIVE_ONGOING foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_dire_top_03.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_dire_top_04.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsBarracksAttackedIsBadAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksAttacked IsBadAttacked IsSpectator IsTopLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsBadAttackedIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsBadAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_dire_mid_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_dire_mid_02.vcd" nodelay noscene respeakdelay 10 then self TLK_DOTA_FOLLOWUP_NEGATIVE_ONGOING foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_dire_mid_03.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsBarracksAttackedIsBadAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksAttacked IsBadAttacked IsSpectator IsMidLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsBadAttackedIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsBadAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_dire_bot_01.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_dire_bot_02.vcd" nodelay noscene respeakdelay 10 then self TLK_DOTA_FOLLOWUP_NEGATIVE_ONGOING foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_dire_bot_03.vcd" nodelay noscene respeakdelay 10 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_attack_dire_bot_04.vcd" nodelay noscene respeakdelay 10 } Rule announcer_dlc_stormspirit_CustomIsBarracksAttackedIsBadAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksAttacked IsBadAttacked IsSpectator IsBotLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksAttackedIsBadAttackedIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksKilledIsTopLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_yr_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_yr_top_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_yr_top_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBarracksKilledIsTopLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksKilled IsTopLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksKilledIsTopLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksKilledIsMidLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_yr_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_yr_mid_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_yr_mid_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_yr_mid_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBarracksKilledIsMidLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksKilled IsMidLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksKilledIsMidLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBarracksKilledIsBotLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_yr_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_yr_bot_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_yr_bot_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_yr_bot_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBarracksKilledIsBotLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBarracksKilled IsBotLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBarracksKilledIsBotLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGoodBarracksKilledIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_rad_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_rad_top_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_rad_top_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGoodBarracksKilledIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGoodBarracksKilled IsSpectator IsTopLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGoodBarracksKilledIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGoodBarracksKilledIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_rad_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_rad_mid_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_rad_mid_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGoodBarracksKilledIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGoodBarracksKilled IsSpectator IsMidLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGoodBarracksKilledIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGoodBarracksKilledIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_rad_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_rad_bot_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_rad_bot_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGoodBarracksKilledIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGoodBarracksKilled IsSpectator IsBotLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGoodBarracksKilledIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBadBarracksKilledIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_dire_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_dire_top_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_dire_top_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_dire_top_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBadBarracksKilledIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBadBarracksKilled IsSpectator IsTopLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBadBarracksKilledIsSpectatorIsTopLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBadBarracksKilledIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_dire_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_dire_mid_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_dire_mid_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBadBarracksKilledIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBadBarracksKilled IsSpectator IsMidLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBadBarracksKilledIsSpectatorIsMidLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBadBarracksKilledIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_dire_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_dire_bot_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_dire_bot_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBadBarracksKilledIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBadBarracksKilled IsSpectator IsBotLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBadBarracksKilledIsSpectatorIsBotLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsEnemyBarracksKilledIsTopLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_top_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_POSITIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_top_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_top_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsEnemyBarracksKilledIsTopLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsEnemyBarracksKilled IsTopLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsEnemyBarracksKilledIsTopLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsEnemyBarracksKilledIsMidLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_mid_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_POSITIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_mid_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_mid_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsEnemyBarracksKilledIsMidLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsEnemyBarracksKilled IsMidLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsEnemyBarracksKilledIsMidLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsEnemyBarracksKilledIsBotLaneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_bot_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_POSITIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_bot_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_rax_fall_enm_bot_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsEnemyBarracksKilledIsBotLaneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsEnemyBarracksKilled IsBotLane IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsEnemyBarracksKilledIsBotLaneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerKilledIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_yr_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_yr_top_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_POSITIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_yr_top_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsTowerKilledIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerKilled IsTopLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerKilledIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerKilledIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_yr_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_yr_mid_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_POSITIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_yr_mid_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsTowerKilledIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerKilled IsMidLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerKilledIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTowerKilledIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_yr_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_yr_bot_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_POSITIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_yr_bot_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_yr_bot_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsTowerKilledIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTowerKilled IsBotLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTowerKilledIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_enm_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_enm_top_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_enm_top_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsEnemyTowerKilled IsTopLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_enm_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_enm_mid_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_enm_mid_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_enm_mid_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsEnemyTowerKilled IsMidLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_enm_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_enm_bot_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_NEGATIVE foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_enm_bot_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_enm_bot_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsEnemyTowerKilled IsBotLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsEnemyTowerKilledIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_top_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_top_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_top_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGoodTowerKilled IsSpectator IsTopLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_mid_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_mid_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_mid_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_mid_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGoodTowerKilled IsSpectator IsMidLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_bot_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_bot_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_rad_bot_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGoodTowerKilled IsSpectator IsBotLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGoodTowerKilledIsSpectatorIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_dire_top_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_dire_top_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_dire_top_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_dire_top_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBadTowerKilled IsSpectator IsTopLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsTopLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_dire_mid_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_dire_mid_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBadTowerKilled IsSpectator IsMidLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsMidLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_dire_bot_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_dire_bot_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_dire_bot_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_twr_deny_dire_bot_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBadTowerKilled IsSpectator IsBotLane IsDeny IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBadTowerKilledIsSpectatorIsBotLaneIsDenyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomGlyphUsedBadIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_fort_dire_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_fort_dire_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_fort_dire_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_fort_dire_04.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_fort_dire_05.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomGlyphUsedBadIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit GlyphUsedBad IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomGlyphUsedBadIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomGlyphUsedGoodIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_fort_rad_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_fort_rad_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_fort_rad_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_fort_rad_04.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_fort_rad_05.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomGlyphUsedGoodIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit GlyphUsedGood IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomGlyphUsedGoodIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomCourierLostBadIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_cour_kill_dire_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_cour_kill_dire_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_cour_kill_dire_03.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomCourierLostBadIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit CourierLostBad IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomCourierLostBadIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomCourierLostGoodIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_cour_kill_rad_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_cour_kill_rad_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_cour_kill_rad_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_cour_kill_rad_04.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomCourierLostGoodIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit CourierLostGood IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomCourierLostGoodIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsMegaCreepsIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_mega_now_you_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_mega_now_you_02.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsMegaCreepsIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsMegaCreeps IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsMegaCreepsIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsEnemyMegaCreepsIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_mega_now_enm_01.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsEnemyMegaCreepsIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsEnemyMegaCreeps IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsEnemyMegaCreepsIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBadMegaCreepsIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_mega_now_dire_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_mega_now_dire_02.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBadMegaCreepsIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBadMegaCreeps IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBadMegaCreepsIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGoodMegaCreepsIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_mega_now_rad_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_mega_now_rad_02.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGoodMegaCreepsIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGoodMegaCreeps IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGoodMegaCreepsIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsRoshanKilledBadIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_roshan_fallen_dire_01.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_GENERIC foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_roshan_fallen_dire_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_GENERIC foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_roshan_fallen_dire_03.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_GENERIC foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_roshan_fallen_dire_04.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_GENERIC foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_roshan_fallen_dire_05.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_GENERIC foo:0 0.01 } Rule announcer_dlc_stormspirit_CustomIsRoshanKilledBadIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsRoshanKilledBad IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsRoshanKilledBadIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsRoshanKilledGoodIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_roshan_fallen_rad_01.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_GENERIC foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_roshan_fallen_rad_02.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_GENERIC foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_roshan_fallen_rad_03.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_GENERIC foo:0 0.01 scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_roshan_fallen_rad_04.vcd" nodelay noscene then self TLK_DOTA_FOLLOWUP_GENERIC foo:0 0.01 } Rule announcer_dlc_stormspirit_CustomIsRoshanKilledGoodIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsRoshanKilledGood IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsRoshanKilledGoodIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsBadVictoryIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_victory_dire_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_victory_dire_02.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsBadVictoryIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsBadVictory IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsBadVictoryIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsGoodVictoryIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_victory_rad_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_victory_rad_02.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_CustomIsGoodVictoryIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsGoodVictory IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsGoodVictoryIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsAllPickIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_type_all_pick.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsAllPickIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAllPick IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsAllPickIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsAllRandomIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_type_all_random.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsAllRandomIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsAllRandom IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsAllRandomIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsCaptainsDraftIsDraftBeginIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_type_capt_draft.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsCaptainsDraftIsDraftBeginIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsCaptainsDraft IsDraftBegin IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsCaptainsDraftIsDraftBeginIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsCaptainsModeIsDraftBeginIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_type_capt_mode.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsCaptainsModeIsDraftBeginIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsCaptainsMode IsDraftBegin IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsCaptainsModeIsDraftBeginIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsReverseCaptainsModeIsDraftBeginIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_type_capt_mode.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsReverseCaptainsModeIsDraftBeginIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsReverseCaptainsMode IsDraftBegin IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsReverseCaptainsModeIsDraftBeginIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsRandomDraftIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_type_random_draft.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsRandomDraftIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsRandomDraft IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsRandomDraftIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsSingleDraftIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_type_single_draft.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsSingleDraftIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsSingleDraft IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsSingleDraftIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsDeathMatchIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_type_death_match.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsDeathMatchIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsDeathMatch IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsDeathMatchIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsTenSecondsRemainingIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_count_pick_10.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsTenSecondsRemainingIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsTenSecondsRemaining IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsTenSecondsRemainingIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsFiveSecondsRemainingIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_count_pick_5.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsFiveSecondsRemainingIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsFiveSecondsRemaining IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsFiveSecondsRemainingIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsMidOnlyIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_choose_hero.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsMidOnlyIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsMidOnly IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsMidOnlyIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsLeastPlayedIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_choose_hero.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsLeastPlayedIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsLeastPlayed IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsLeastPlayedIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsLimitedHeroesIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_choose_hero.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsLimitedHeroesIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsLimitedHeroes IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsLimitedHeroesIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsCustomModeIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_choose_hero.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsCustomModeIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsCustomMode IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsCustomModeIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_CustomIsOneVsOneIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_choose_hero.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_CustomIsOneVsOneIsAnnouncerVoice_StormSpirit_Rule { criteria Custom Isannouncer_dlc_stormspirit IsOneVsOne IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_CustomIsOneVsOneIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_Followup_GenericIsRoshanCheeseChance_25%IsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_roshan_cheese.vcd" nodelay noscene speakonce } Rule announcer_dlc_stormspirit_Followup_GenericIsRoshanCheeseChance_25%IsAnnouncerVoice_StormSpirit_Rule { criteria Followup_Generic Isannouncer_dlc_stormspirit IsRoshanCheese Chance_25% IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_Followup_GenericIsRoshanCheeseChance_25%IsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_Followup_NegativeIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_04.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_05.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_06.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_07.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_08.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_09.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_10.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_11.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_12.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_Followup_NegativeIsAnnouncerVoice_StormSpirit_Rule { criteria Followup_Negative Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_Followup_NegativeIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_Followup_Negative_OngoingIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_neg_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_04.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_05.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_06.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_07.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_08.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_09.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_10.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_11.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_12.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_13.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_14.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_15.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_16.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_event_neg_17.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_Followup_Negative_OngoingIsAnnouncerVoice_StormSpirit_Rule { criteria Followup_Negative_Ongoing Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_Followup_Negative_OngoingIsAnnouncerVoice_StormSpirit } Response announcer_dlc_stormspirit_Followup_PositiveIsAnnouncerVoice_StormSpirit { scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_pos_01.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_pos_02.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_pos_03.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_pos_04.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_pos_05.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_pos_06.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_pos_07.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_pos_08.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_pos_09.vcd" nodelay noscene scene "scenes/announcer_dlc_stormspirit/announcer_dlc_stormspirit_announcer_ally_pos_10.vcd" nodelay noscene } Rule announcer_dlc_stormspirit_Followup_PositiveIsAnnouncerVoice_StormSpirit_Rule { criteria Followup_Positive Isannouncer_dlc_stormspirit IsAnnouncerVoice_StormSpirit response announcer_dlc_stormspirit_Followup_PositiveIsAnnouncerVoice_StormSpirit }