population { PointTemplates { crit_radius { KeepAlive 1 OnParentKilledOutput { Target "crit_radius_brush" Action Disable } OnParentKilledOutput { Target "crit_radius_brush" Action Kill Delay 0.2 } OnSpawnOutput { Target "crit_radius_brush" Action Enable Delay 0.2 } trigger_multiple { "targetname" "crit_radius_brush" "filtername" "filter_bluteam" "spawnflags" "1" "StartDisabled" "1" "mins" "-225 -225 -450" "maxs" "225 225 450" "origin" "100 0 0" "onstarttouch" "@c@!activator,$fireuser5,,0,-1" "onendtouch" "@c@!activator,$fireuser6,,0,-1" } RemoveIfKilled "haste_radius_brush" } powerup_logic_critbuff_recipient { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "parentoutput_target" Action SetParent Param "!activator" } info_target { "targetname" "parentoutput_target" "$OnUser5" "recipient_counter,Add,1,0,-1" "$OnUser6" "recipient_counter,Subtract,1,0,-1" } math_counter { "targetname" "recipient_counter" "max" "9999" "outvalue" "countcompare,setvaluecompare,,0,-1" } logic_compare { "targetname" "countcompare" "onequalto" "!parent,$removecond,40,0,-1" "ongreaterthan" "!parent,$addcond,40,0,-1" } } haste_radius { KeepAlive 1 OnParentKilledOutput { Target "haste_radius_brush" Action Disable } OnParentKilledOutput { Target "haste_radius_brush" Action Kill Delay 0.2 } OnSpawnOutput { Target "haste_radius_brush" Action Enable Delay 0.2 } trigger_multiple { "targetname" "haste_radius_brush" "filtername" "filter_bluteam" "spawnflags" "1" "StartDisabled" "1" "mins" "-450 -450 -450" "maxs" "450 450 450" "origin" "100 0 0" "onstarttouch" "@c@!activator,fireuser1,,0,-1" "onendtouch" "@c@!activator,fireuser2,,0,-1" } RemoveIfKilled "haste_radius_brush" } reflect_radius { KeepAlive 1 OnParentKilledOutput { Target "reflect_radius_brush" Action Disable } OnParentKilledOutput { Target "reflect_radius_brush" Action Kill Delay 0.2 } OnSpawnOutput { Target "reflect_radius_brush" Action Enable Delay 0.2 } trigger_multiple { "targetname" "reflect_radius_brush" "filtername" "filter_bluteam" "spawnflags" "1" "StartDisabled" "1" "mins" "-450 -450 -450" "maxs" "450 450 450" "origin" "100 0 0" "onstarttouch" "@c@!activator,fireuser1,,0,-1" "onendtouch" "@c@!activator,fireuser2,,0,-1" } RemoveIfKilled "reflect_radius_brush" } plague_radius { KeepAlive 1 OnParentKilledOutput { Target "plague_radius_brush" Action Disable } OnParentKilledOutput { Target "plague_radius_brush" Action Kill Delay 0.2 } OnSpawnOutput { Target "plague_radius_brush" Action Enable Delay 0.2 } trigger_multiple { "targetname" "plague_radius_brush" "filtername" "filter_bluteam" "spawnflags" "1" "StartDisabled" "1" "mins" "-450 -450 -450" "maxs" "450 450 450" "origin" "100 0 0" "onstarttouch" "@c@!activator,fireuser1,,0,-1" "onendtouch" "@c@!activator,fireuser2,,0,-1" } RemoveIfKilled "plague_radius_brush" } precision_radius { KeepAlive 1 OnParentKilledOutput { Target "precision_radius_brush" Action Disable } OnParentKilledOutput { Target "precision_radius_brush" Action Kill Delay 0.2 } OnSpawnOutput { Target "precision_radius_brush" Action Enable Delay 0.2 } trigger_multiple { "targetname" "precision_radius_brush" "filtername" "filter_bluteam" "spawnflags" "1" "StartDisabled" "1" "mins" "-450 -450 -450" "maxs" "450 450 450" "origin" "100 0 0" "onstarttouch" "@c@!activator,fireuser1,,0,-1" "onendtouch" "@c@!activator,fireuser2,,0,-1" } RemoveIfKilled "plague_radius_brush" } king_radius { KeepAlive 1 OnParentKilledOutput { Target "king_radius_brush" Action Disable } OnParentKilledOutput { Target "king_radius_brush" Action Kill Delay 0.2 } OnSpawnOutput { Target "king_radius_brush" Action Enable Delay 0.2 } trigger_multiple { "targetname" "king_radius_brush" "filtername" "filter_bluteam" "spawnflags" "1" "StartDisabled" "1" "mins" "-450 -450 -450" "maxs" "450 450 450" "origin" "100 0 0" "onstarttouch" "@c@!activator,fireuser1,,0,-1" "onendtouch" "@c@!activator,fireuser2,,0,-1" } } powerup_logic_hastebuff_recipient { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "parentoutput_target" Action SetParent Param "!activator" } info_target { "targetname" "parentoutput_target" "OnUser1" "recipient_counter,Add,1,0,-1" "OnUser2" "recipient_counter,Subtract,1,0,-1" } math_counter { "targetname" "recipient_counter" "max" "9999" "outvalue" "countcompare,setvaluecompare,,0,-1" } logic_compare { "targetname" "countcompare" "onequalto" "!parent,$removecond,91,0,-1" "ongreaterthan" "!parent,$addcond,91,0,-1" } } powerup_logic_reflect_recipient { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "parentoutput_target" Action SetParent Param "!activator" } info_target { "targetname" "parentoutput_target" "OnUser1" "recipient_counter,Add,1,0,-1" "OnUser2" "recipient_counter,Subtract,1,0,-1" } math_counter { "targetname" "recipient_counter" "max" "9999" "outvalue" "countcompare,setvaluecompare,,0,-1" } logic_compare { "targetname" "countcompare" "onequalto" "!parent,$removecond,95,0,-1" "ongreaterthan" "!parent,$addcond,95,0,-1" } } powerup_logic_plague_recipient { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "parentoutput_target" Action SetParent Param "!activator" } info_target { "targetname" "parentoutput_target" "OnUser1" "recipient_counter,Add,1,0,-1" "OnUser2" "recipient_counter,Subtract,1,0,-1" } math_counter { "targetname" "recipient_counter" "max" "9999" "outvalue" "countcompare,setvaluecompare,,0,-1" } logic_compare { "targetname" "countcompare" "onequalto" "!parent,$removecond,110,0,-1" "ongreaterthan" "!parent,$addcond,110,0,-1" } } powerup_logic_precision_recipient { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "parentoutput_target" Action SetParent Param "!activator" } info_target { "targetname" "parentoutput_target" "OnUser1" "recipient_counter,Add,1,0,-1" "OnUser2" "recipient_counter,Subtract,1,0,-1" } math_counter { "targetname" "recipient_counter" "max" "9999" "outvalue" "countcompare,setvaluecompare,,0,-1" } logic_compare { "targetname" "countcompare" "onequalto" "!parent,$removecond,96,0,-1" "ongreaterthan" "!parent,$addcond,96,0,-1" } } powerup_logic_king_recipient { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "parentoutput_target" Action SetParent Param "!activator" } info_target { "targetname" "parentoutput_target" "OnUser1" "recipient_counter,Add,1,0,-1" "OnUser2" "recipient_counter,Subtract,1,0,-1" } math_counter { "targetname" "recipient_counter" "max" "9999" "outvalue" "countcompare,setvaluecompare,,0,-1" } logic_compare { "targetname" "countcompare" "ongreaterthan" "!parent,$addcond,109,0,-1" } } powerup_strength_logic { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "ubercond_checker" Action Trigger Delay 0.1 } filter_tf_condition { "targetname" "filter_ubercond" "condition" "78" "OnPass" "!activator,$AddCond,90,0,-1" "OnFail" "!activator,$RemoveCond,90,0,-1" } logic_relay { "targetname" "ubercond_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "!activator,$RemoveCond,78,0,-1" "OnTrigger" "filter_ubercond,TestActivator,!activator,0,-1" } } powerup_resistance_logic { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "ubercond_checker" Action Trigger Delay 0.1 } filter_tf_condition { "targetname" "filter_ubercond" "condition" "78" "OnPass" "!activator,$AddCond,93,0,-1" "OnFail" "!activator,$RemoveCond,93,0,-1" } logic_relay { "targetname" "ubercond_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "!activator,$RemoveCond,78,0,-1" "OnTrigger" "filter_ubercond,TestActivator,!activator,0,-1" } } powerup_precision_logic { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "ubercond_checker" Action Trigger Delay 0.1 } filter_tf_condition { "targetname" "filter_ubercond" "condition" "78" "OnPass" "!activator,$AddCond,96,0,-1" "OnFail" "!activator,$RemoveCond,96,0,-1" } logic_relay { "targetname" "ubercond_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "!activator,$RemoveCond,78,0,-1" "OnTrigger" "filter_ubercond,TestActivator,!activator,0,-1" } } powerup_haste_logic { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "ubercond_checker" Action Trigger Delay 0.1 } filter_tf_condition { "targetname" "filter_ubercond" "condition" "78" "OnPass" "!activator,$AddCond,91,0,-1" "OnFail" "!activator,$RemoveCond,91,0,-1" } logic_relay { "targetname" "ubercond_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "!activator,$RemoveCond,78,0,-1" "OnTrigger" "filter_ubercond,TestActivator,!activator,0,-1" } } powerup_knockout_logic { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "ubercond_checker" Action Trigger Delay 0.1 } filter_tf_condition { "targetname" "filter_ubercond" "condition" "78" "OnPass" "!activator,$AddCond,103,0,-1" "OnFail" "!activator,$RemoveCond,103,0,-1" } logic_relay { "targetname" "ubercond_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "!activator,$RemoveCond,78,0,-1" "OnTrigger" "filter_ubercond,TestActivator,!activator,0,-1" } } powerup_king_logic { OnParentKilledOutput { Target "item_powerup_rune" Action Kill } OnSpawnOutput { Target "ubercond_checker" Action Trigger Delay 0.1 } filter_tf_condition { "targetname" "filter_ubercond" "condition" "78" "OnPass" "!activator,$AddCond,109,0,-1" "OnFail" "!activator,$RemoveCond,109,0,-1" } logic_relay { "targetname" "ubercond_checker" "spawnflags" "2" "OnTrigger" "!self,Trigger,,0.1,-1" "OnTrigger" "!activator,$RemoveCond,78,0,-1" "OnTrigger" "filter_ubercond,TestActivator,!activator,0,-1" } } } Templates { // Spawntemplate를 반드시 사용해야 하는 로봇들 // crit buff soldier // SpawnTemplate "powerup_logic_critbuff_recipient"을 로봇에 적용해야 버프 효과가 적용됨 // PrecacheModel "models/weapons/c_models/c_critbanner/c_critbanner.mdl" T_TFBot_Soldier_Critbuff { Class Soldier Name "Crit Buff Soldier" Skill Normal ClassIcon soldier_critbuff StripItemSlot 2 Item "The Gunboats" SpawnTemplate "crit_radius" SpawnTemplate "powerup_logic_critbuff_recipient" CustomWeaponModel { Slot 1 Model "models/weapons/c_models/c_critbanner/c_critbanner.mdl" } } T_TFBot_Giant_Soldier_Critbuff { Class Soldier ClassIcon soldier_critbuff_giant Name "Giant Crit Buff Soldier" Skill Expert Health 3800 WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload Attributes MiniBoss Attributes SpawnWithFullCharge CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "increase buff duration" 9.0 } StripItemSlot 2 Item "The Gunboats" SpawnTemplate "crit_radius" SpawnTemplate "powerup_logic_critbuff_recipient" CustomWeaponModel { Slot 1 Model "models/weapons/c_models/c_critbanner/c_critbanner.mdl" } } // haste buff soldier - 만파워 메딕과 동시에 사용할 수 없음 // SpawnTemplate "powerup_logic_hastebuff_recipient"을 로봇에 적용해야 버프 효과가 적용됨 // PrecacheModel "models/weapons/c_models/c_hastebanner/c_hastebanner.mdl" T_TFBot_Soldier_Hastebuff { Class Soldier Name "Haste Buff Soldier" Skill Normal ClassIcon soldier_hastebuff StripItemSlot 2 Item "The Gunboats" SpawnTemplate "haste_radius" SpawnTemplate "powerup_logic_hastebuff_recipient" CustomWeaponModel { Slot 1 Model "models/weapons/c_models/c_hastebanner/c_hastebanner.mdl" } } T_TFBot_Giant_Soldier_Hastebuff { Class Soldier ClassIcon soldier_hastebuff_giant Name "Giant Haste Buff Soldier" Skill Expert Health 3800 WeaponRestrictions PrimaryOnly Attributes HoldFireUntilFullReload Attributes MiniBoss Attributes SpawnWithFullCharge CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.4 "airblast vulnerability multiplier" 0.4 "override footstep sound set" 3 "increase buff duration" 9.0 } StripItemSlot 2 Item "The Gunboats" SpawnTemplate "haste_radius" SpawnTemplate "powerup_logic_hastebuff_recipient" CustomWeaponModel { Slot 1 Model "models/weapons/c_models/c_hastebanner/c_hastebanner.mdl" } } // 모든 만파워 메딕들은 spawntemplate을 치료 대상에 추가해주어야 함 // 로봇이 다른 만파워 메딕에게 우버차지를 받아도 받는 효과는 대상의 spawntemplate에 의해 결정됨 // 각각의 로봇은 하나의 만파워 효과만을 가질 수 있음 - haste buff soldier와 동시에 사용할 수 없음 T_TFBot_Medic_Strength // add SpawnTemplate "powerup_strength_logic" to target { Class Medic Name "Strength Medic" Skill Expert Classicon medic_strength Attributes SpawnWithFullCharge Item "Lo-Fi Longwave" ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "heal rate bonus" 2 "bot medic uber health threshold" 999 "uber duration bonus" 999 } } T_TFBot_Medic_Resistance // add SpawnTemplate "powerup_resistance_logic" to target { Class Medic Name "Resistance Medic" Skill Expert Classicon medic_resist Attributes SpawnWithFullCharge Item "Lo-Fi Longwave" ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "heal rate bonus" 2 "bot medic uber health threshold" 999 "uber duration bonus" 999 } } T_TFBot_Medic_Precision // add SpawnTemplate "powerup_precision_logic" to target { Class Medic Name "Precision Medic" Skill Expert Classicon medic_precision Attributes SpawnWithFullCharge Item "Lo-Fi Longwave" ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "heal rate bonus" 2 "bot medic uber health threshold" 999 "uber duration bonus" 999 } } T_TFBot_Medic_Haste // add SpawnTemplate "powerup_haste_logic" to target { Class Medic Name "Haste Medic" Skill Expert Classicon medic_haste_lite Attributes SpawnWithFullCharge Item "Lo-Fi Longwave" ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "heal rate bonus" 2 "bot medic uber health threshold" 999 "uber duration bonus" 999 } } T_TFBot_Medic_Knockout // add SpawnTemplate "powerup_knockout_logic" to target { Class Medic Name "Knockout Medic" Skill Expert Classicon medic_knockout Attributes SpawnWithFullCharge Item "Lo-Fi Longwave" ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "heal rate bonus" 2 "bot medic uber health threshold" 999 "uber duration bonus" 999 } } T_TFBot_Medic_King // add SpawnTemplate "powerup_king_logic" to target { Class Medic Name "King Medic" Skill Expert Classicon medic_king Attributes SpawnWithFullCharge Item "Lo-Fi Longwave" ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "heal rate bonus" 2 "bot medic uber health threshold" 999 "uber duration bonus" 999 } } T_TFBot_Giant_Medic_Strength // add SpawnTemplate "powerup_strength_logic" to target { ClassIcon medic_strength_giant Health 4500 Name "Giant Strength Medic" Class Medic Skill Expert WeaponRestrictions SecondaryOnly Attributes "SpawnWithFullCharge" Attributes "MiniBoss" ItemAttributes { ItemName tf_weapon_syringegun_medic "damage penalty" 0.1 } ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 "bot medic uber health threshold" 5000 "uber duration bonus" 999 } } T_TFBot_Giant_Medic_Resistance // add SpawnTemplate "powerup_resistance_logic" to target { ClassIcon medic_resist_giant Health 4500 Name "Giant Resistance Medic" Class Medic Skill Expert WeaponRestrictions SecondaryOnly Attributes "SpawnWithFullCharge" Attributes "MiniBoss" ItemAttributes { ItemName tf_weapon_syringegun_medic "damage penalty" 0.1 } ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 "bot medic uber health threshold" 5000 "uber duration bonus" 999 } } T_TFBot_Giant_Medic_Precision // add SpawnTemplate "powerup_precision_logic" to target { ClassIcon medic_precision_giant Health 4500 Name "Giant Precision Medic" Class Medic Skill Expert WeaponRestrictions SecondaryOnly Attributes "SpawnWithFullCharge" Attributes "MiniBoss" ItemAttributes { ItemName tf_weapon_syringegun_medic "damage penalty" 0.1 } ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 "bot medic uber health threshold" 5000 "uber duration bonus" 999 } } T_TFBot_Giant_Medic_Haste // add SpawnTemplate "powerup_haste_logic" to target { ClassIcon medic_haste_lite_giant Health 4500 Name "Giant Haste Medic" Class Medic Skill Expert WeaponRestrictions SecondaryOnly Attributes "SpawnWithFullCharge" Attributes "MiniBoss" ItemAttributes { ItemName tf_weapon_syringegun_medic "damage penalty" 0.1 } ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 "bot medic uber health threshold" 5000 "uber duration bonus" 999 } } T_TFBot_Giant_Medic_Knockout // add SpawnTemplate "powerup_knockout_logic" to target { ClassIcon medic_knockout_giant Health 4500 Name "Giant Knockout Medic" Class Medic Skill Expert WeaponRestrictions SecondaryOnly Attributes "SpawnWithFullCharge" Attributes "MiniBoss" ItemAttributes { ItemName tf_weapon_syringegun_medic "damage penalty" 0.1 } ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 "bot medic uber health threshold" 5000 "uber duration bonus" 999 } } T_TFBot_Giant_Medic_King // add SpawnTemplate "powerup_king_logic" to target { ClassIcon medic_king_giant Health 4500 Name "Giant King Medic" Class Medic Skill Expert WeaponRestrictions SecondaryOnly Attributes "SpawnWithFullCharge" Attributes "MiniBoss" ItemAttributes { ItemName tf_weapon_syringegun_medic "damage penalty" 0.1 } ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "effect cond override" 78 } CharacterAttributes { "move speed bonus" 0.5 "damage force reduction" 0.6 "airblast vulnerability multiplier" 0.6 "heal rate bonus" 200 "bot medic uber health threshold" 5000 "uber duration bonus" 999 } } } }