//Created by Yoovy: https://steamcommunity.com/profiles/76561198017198600/ Custom_MvM_Hell { TextPrintTime 0 PlayerAttributes { //All Classes "penetrate teammates" 1 Scout { "collect currency on kill" 1 } Spy { "collect currency on kill" 1 } } PrecacheSound "freeze_cam/louder_ez2_transmission_shift.mp3" PointTemplates { dudes { prop_dynamic { "targetname" "pyroupgrade" "model" "models/player/pyro.mdl" "SetBodyGroup" "0" "origin" "345 656 16" "angles" "0 -90 0" "defaultanim" "stand_melee" "disableshadows" "1" "disablebonefollowers" "1" } prop_dynamic_ornament { "model" "models/player/items/pyro/hotties_hoodie.mdl" "origin" "-4201 -1105 -281" "angles" "0 0 0" "disableshadows" "1" "disablebonefollowers" "1" "InitialOwner" "pyroupgrade" } prop_dynamic_ornament { "model" "models/workshop/player/items/pyro/fall2013_the_insidious_incinerator/fall2013_the_insidious_incinerator.mdl" "origin" "-4201 -1105 -281" "angles" "0 0 0" "disableshadows" "1" "disablebonefollowers" "1" "InitialOwner" "pyroupgrade" } prop_dynamic_ornament { "model" "models/workshop/weapons/c_models/c_sledgehammer/c_sledgehammer.mdl" "origin" "-4201 -1105 -281" "angles" "0 0 0" "disableshadows" "1" "disablebonefollowers" "1" "InitialOwner" "pyroupgrade" } prop_dynamic { "targetname" "soldierupgrade" "model" "models/player/soldier.mdl" "SetBodyGroup" "0" "origin" "-2328 -2700 128" "angles" "0 90 0" "defaultanim" "competitive_winnerstate_idle" "disableshadows" "1" "disablebonefollowers" "1" } prop_dynamic_ornament { "model" "models/workshop/player/items/soldier/spr18_veterans_attire/spr18_veterans_attire.mdl" "origin" "-4201 -1105 -281" "angles" "0 0 0" "disableshadows" "1" "disablebonefollowers" "1" "InitialOwner" "soldierupgrade" } prop_dynamic_ornament { "model" "models/workshop/player/items/soldier/sept2014_lone_survivor/sept2014_lone_survivor.mdl" "origin" "-4201 -1105 -281" "angles" "0 0 0" "disableshadows" "1" "disablebonefollowers" "1" "InitialOwner" "soldierupgrade" } prop_dynamic_ornament { "model" "models/weapons/c_models/c_rocketlauncher/c_rocketlauncher.mdl" "origin" "-4201 -1105 -281" "angles" "0 0 0" "disableshadows" "1" "disablebonefollowers" "1" "InitialOwner" "soldierupgrade" } prop_dynamic_ornament { "model" "models/workshop/player/items/soldier/sept2014_lone_survivor/sept2014_lone_survivor.mdl" "origin" "-4201 -1105 -281" "angles" "0 0 0" "disableshadows" "1" "disablebonefollowers" "1" "InitialOwner" "soldierupgrade" } prop_dynamic { "targetname" "medicupgrade" "model" "models/player/medic.mdl" "SetBodyGroup" "0" "origin" "-2748 -565 128" "angles" "0 0 0" "defaultanim" "competitive_winnerstate_idle" "disableshadows" "1" "disablebonefollowers" "1" } prop_dynamic_ornament { "model" "models/weapons/c_models/c_proto_syringegun/c_proto_syringegun.mdl" "origin" "-4201 -1105 -281" "angles" "0 0 0" "disableshadows" "1" "disablebonefollowers" "1" "InitialOwner" "medicupgrade" } prop_dynamic_ornament { "model" "models/workshop/player/items/medic/medic_gasmask/medic_gasmask.mdl" "origin" "-4201 -1105 -281" "angles" "0 0 0" "disableshadows" "1" "disablebonefollowers" "1" "InitialOwner" "medicupgrade" } prop_dynamic_ornament { "model" "models/workshop/player/items/medic/sbox2014_medic_apron/sbox2014_medic_apron.mdl" "origin" "-4201 -1105 -281" "angles" "0 0 0" "disableshadows" "1" "disablebonefollowers" "1" "InitialOwner" "medicupgrade" } prop_dynamic_ornament { "model" "models/workshop/player/items/medic/jul13_madmans_mop/jul13_madmans_mop.mdl" "origin" "-4201 -1105 -281" "angles" "0 0 0" "disableshadows" "1" "disablebonefollowers" "1" "InitialOwner" "medicupgrade" } } spawn_text { point_worldtext { origin "-1389 -964 214" angles "0, 45, 0" targetname explanation_sign_1 message "Robots with GREEN Eyes are Easy Skill." font 1 textsize 10 orientation 0 color "0 255 0" } point_worldtext { origin "-1389 -964 199" angles "0, 45, 0" targetname explanation_sign_1 message "Robots with BLUE Eyes are Normal Skill." font 1 textsize 10 orientation 0 color "11 155 230" } point_worldtext { origin "-1389 -964 184" angles "0, 45, 0" targetname explanation_sign_1 message "Robots with YELLOW Eyes are Hard Skill." font 1 textsize 10 orientation 0 color "230 215 0" } point_worldtext { origin "-1389 -964 169" angles "0, 45, 0" targetname explanation_sign_1 message "Robots with RED Eyes are Expert Skill." font 1 textsize 10 orientation 0 color "230 0 0" } } caustic_boss_theme { NoFixUp 1 ambient_generic { "targetname" "caustic_boss_theme" "message" "#freeze_cam/louder_ez2_transmission_shift.mp3" "health" "200" "pitch" "100" "spawnflags" "17" } logic_relay { "targetname" "caustic_boss_theme_start" "OnTrigger" "caustic_boss_theme,Enable,,0,-1" "OnTrigger" "caustic_boss_theme,PlaySound,,0.1,-1" "OnTrigger" "caustic_boss_theme,StopSound,,157,-1" } } } StartingCurrency 400 RespawnWaveTime 3 FixedRespawnWaveTime yes CanBotsAttackWhileInSpawnRoom no CustomNavFile "mvm_waterfront_rc3_yoovyfix" BodyPartScaleSpeed 100 Templates { YoovyBot_SentryBuster_Tropical { //TFBot Class Demoman Name "Tubular Sentry Buster" Health 2500 ClassIcon sentry_buster WeaponRestrictions MeleeOnly Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 7 "damage force reduction" 0.25 "cannot be backstabbed" 1 "voice pitch scale" 1.5 "move speed bonus" 2 "head scale" 3 "torso scale" 0.4 } //Weapons Item "The Ullapool Caber" //Cosmetics Item "The Tropical Brim" } YoovyBot_Heavy_SteelFist { //TFBot Class Heavy Name "Steelweight Champ" ClassIcon heavy_steelfist WeaponRestrictions MeleeOnly //Weapons Item "Fists of Steel" //Cosmetics Item "Pugilist's Protector" ItemAttributes { ItemName "Pugilist's Protector" "set item tint RGB" 8626083 } } YoovyBot_Giant_Demoman_RapidFire { //TFBot Class Demoman Name "Giant Rapid Fire Demoman" Health 3300 ClassIcon demo_spammer Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 4 "damage force reduction" 0.25 "move speed penalty" 0.5 } //Weapons Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "paintkit_proto_def_index" 417 //Team Serviced "set_item_texture_wear" 0 "faster reload rate" -0.4 "clip size bonus" 2 "fire rate bonus" 0.75 } //Cosmetics Item "Scotch Bonnet" } YoovyBot_Medic_QF_Bigheal { //TFBot Class Medic Name "Big-Heal Medic" //Weapons Item "The Quick-Fix" ItemAttributes { ItemName "The Quick-Fix" "ubercharge rate bonus" 1 "ubercharge rate bonus" 0.1 "heal rate bonus" 11 } //Cosmetics Item "The Surgeon's Stahlhelm" } YoovyBot_Soldier { //TFBot Class Soldier } YoovyBot_Giant_Soldier_Caustic { //TFBot Class Soldier Name "Giant Caustic Soldier" Health 3800 ClassIcon soldier_giant Attributes HoldFireUntilFullReload Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "damage force reduction" 0.25 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "paintkit_proto_def_index" 112 //Backwoods Boomstick Mk.II "attach particle effect" 702 "dmg penalty vs players" 0.5 "killstreak idleeffect" 5 "set_item_texture_wear" 0 "ragdolls become ash" 1 "bleeding duration" 4 } //Cosmetics Item "Full Metal Drill Hat" ItemAttributes { ItemName "Full Metal Drill Hat" "set item tint RGB" 7511618 } } YoovyBot_Heavy { //TFBot Class Heavy } YoovyBot_Heavy_Caustic { //TFBot Class Heavy Name "Caustic Heavy" //Weapons Item "Upgradeable TF_WEAPON_MINIGUN" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MINIGUN" "paintkit_proto_def_index" 112 //Backwoods Boomstick Mk.II "attach particle effect" 702 "dmg penalty vs players" 0.5 "killstreak idleeffect" 5 "set_item_texture_wear" 0 "ragdolls become ash" 1 "bleeding duration" 1 } //Cosmetics Item "L4D Hat" ItemAttributes { ItemName "L4D Hat" "set item tint RGB" 7511618 } } YoovyBot_Pyro { //TFBot Class Pyro //Weapons ItemAttributes { ItemName "TF_WEAPON_FLAMETHROWER" "airblast disabled" 1 } } YoovyBot_Pyro_Caustic { //TFBot Class Pyro Name "Caustic Pyro" //Weapons Item "Upgradeable TF_WEAPON_FLAMETHROWER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_FLAMETHROWER" "afterburn duration penalty" 0 "paintkit_proto_def_index" 112 //Backwoods Boomstick Mk.II "attach particle effect" 702 "killstreak idleeffect" 5 "set_item_texture_wear" 0 "ragdolls become ash" 1 "bleeding duration" 3 "airblast disabled" 1 } //Cosmetics Item "The Rusty Reaper" ItemAttributes { ItemName "The Rusty Reaper" "set item tint RGB" 7511618 } } YoovyBot_Giant_Pyro_Airblast { //TFBot Class Pyro Name "Giant Airblast Pyro" Health 3000 ClassIcon pyro_reflect_daan_giant Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "damage force reduction" 0.25 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "powerhouse_flamethrower_turbinetorcher" ItemAttributes { ItemName "powerhouse_flamethrower_turbinetorcher" "lunchbox adds minicrits" 2 "set_item_texture_wear" 0 } //Cosmetics Item "Traffic Cone" } YoovyBot_Medic_Uber { //TFBot Class Medic Name "Über Medic" ClassIcon medic_uber Attributes SpawnWithFullCharge //Weapons ItemAttributes { ItemName "TF_WEAPON_MEDIGUN" "heal rate bonus" 5 } //Cosmetics Item "Field Practice" ItemAttributes { ItemName "Field Practice" "set item tint RGB" 2960676 } } YoovyBot_Medic_Uber_Quick { //TFBot Class Medic Name "Quick-Über Medic" ClassIcon medic_uber Attributes SpawnWithFullCharge //Weapons Item "gentlemanne_medigun_coffinnail" ItemAttributes { ItemName "gentlemanne_medigun_coffinnail" "ubercharge rate bonus" 5 "set_item_texture_wear" 0 "uber duration bonus" -3 "heal rate penalty" 0.1 } //Cosmetics Item "Titanium Tyrolean" ItemAttributes { ItemName "Titanium Tyrolean" "set item tint RGB" 8626083 } } YoovyBot_Scout { //TFBot Class Scout } YoovyBot_Scout_Melee_Caustic { //TFBot Class Scout Name "Caustic Bat Scout" ClassIcon scout_bat_nys WeaponRestrictions MeleeOnly //Weapons Item "Batsaber" ItemAttributes { ItemName "Batsaber" "attach particle effect" 9 "set item tint RGB" 7511618 "bleeding duration" 2 } //Cosmetics Item "Cadet Visor" ItemAttributes { ItemName "Cadet Visor" "set item tint RGB" 7511618 } } YoovyBot_Spy_Caustic { //TFBot Class Spy Name "Caustic Spy" Attributes IgnoreFlag //Weapons Item "Upgradeable TF_WEAPON_REVOLVER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_REVOLVER" "paintkit_proto_def_index" 112 //Backwoods Boomstick Mk.II "attach particle effect" 702 "dmg penalty vs players" 0.5 "set_item_texture_wear" 0 "ragdolls become ash" 1 "bleeding duration" 5 } Item "Upgradeable TF_WEAPON_KNIFE" ItemAttributes { ItemName "Upgradeable TF_WEAPON_KNIFE" "paintkit_proto_def_index" 112 //Backwoods Boomstick Mk.II "attach particle effect" 702 "set_item_texture_wear" 0 "ragdolls become ash" 1 "bleeding duration" 5 } //Cosmetics Item "The Stealth Steeler" ItemAttributes { ItemName "The Stealth Steeler" "set item tint RGB" 7511618 } } YoovyBot_Soldier_Caustic { //TFBot Class Soldier Name "Caustic Soldier" //Weapons Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "paintkit_proto_def_index" 112 //Backwoods Boomstick Mk.II "attach particle effect" 702 "dmg penalty vs players" 0.5 "killstreak idleeffect" 5 "set_item_texture_wear" 0 "ragdolls become ash" 1 "bleeding duration" 4 } //Cosmetics Item "Full Metal Drill Hat" ItemAttributes { ItemName "Full Metal Drill Hat" "set item tint RGB" 7511618 } } YoovyBot_Demoman { //TFBot Class Demoman } YoovyBot_Demoman_Caustic { //TFBot Class Demoman Name "Caustic Demoman" //Weapons Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "paintkit_proto_def_index" 112 //Backwoods Boomstick Mk.II "attach particle effect" 702 "dmg penalty vs players" 0.5 "killstreak idleeffect" 5 "set_item_texture_wear" 0 "bleeding duration" 5 } //Cosmetics Item "Glengarry Bonnet" ItemAttributes { ItemName "Glengarry Bonnet" "set item tint RGB" 7511618 } } YoovyBot_Giant_Heavy { //TFBot Class Heavy Name "Giant Heavy" Health 5000 ClassIcon heavy_giant Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "damage force reduction" 0.25 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons ItemAttributes { ItemName "TF_WEAPON_MINIGUN" "damage bonus" 1.5 } } YoovyBot_Giant_Soldier_Charged { //TFBot Class Soldier Name "Giant Charged Soldier" Health 3800 ClassIcon soldier_crit Attributes HoldFireUntilFullReload Attributes AlwaysCrit Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "damage force reduction" 0.25 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "powerhouse_rocketlauncher_shellshocker" ItemAttributes { ItemName "powerhouse_rocketlauncher_shellshocker" "projectile speed decreased" 0.5 "set_item_texture_wear" 0 "faster reload rate" -0.8 "fire rate penalty" 2 "clip size bonus" 2 } //Cosmetics Item "Worms Gear" } YoovyBot_Demoman_Knight_Boots_Caustic { //TFBot Class Demoman Name "Caustic Geared Knight" ClassIcon demoknight WeaponRestrictions MeleeOnly CharacterAttributes { "gesture speed increase" 1.5 } //Weapons Item "Ali Baba's Wee Booties" Item "The Chargin' Targe" ItemAttributes { ItemName "The Chargin' Targe" "killstreak idleeffect" 5 } Item "The Eyelander" ItemAttributes { ItemName "The Eyelander" "attach particle effect" 9 "killstreak idleeffect" 5 "bleeding duration" 3 "critboost on kill" 3 } //Cosmetics Item "The Bolgan" ItemAttributes { ItemName "The Bolgan" "set item tint RGB" 7511618 } } YoovyBot_Sniper_Caustic { //TFBot Class Sniper Name "Caustic Sniper" Attributes IgnoreFlag //Weapons Item "Upgradeable TF_WEAPON_SNIPERRIFLE" ItemAttributes { ItemName "Upgradeable TF_WEAPON_SNIPERRIFLE" "paintkit_proto_def_index" 112 //Backwoods Boomstick Mk.II "attach particle effect" 702 "dmg penalty vs players" 0.5 "killstreak idleeffect" 5 "set_item_texture_wear" 0 "sniper fires tracer" 1 "bleeding duration" 4 } ItemAttributes { ItemName "TF_WEAPON_CLUB" "attach particle effect" 9 "killstreak idleeffect" 5 "bleeding duration" 5 } //Cosmetics Item "Cranium Cover" ItemAttributes { ItemName "Cranium Cover" "set item tint RGB" 7511618 } } YoovyBot_Scout_Caustic { //TFBot Class Scout Name "Caustic Scout" //Weapons Item "Upgradeable TF_WEAPON_SCATTERGUN" ItemAttributes { ItemName "Upgradeable TF_WEAPON_SCATTERGUN" "paintkit_proto_def_index" 112 //Backwoods Boomstick Mk.II "attach particle effect" 702 "dmg penalty vs players" 0.5 "killstreak idleeffect" 5 "set_item_texture_wear" 0 "bleeding duration" 3 } //Cosmetics Item "Commonwealth Commando" ItemAttributes { ItemName "Commonwealth Commando" "set item tint RGB" 7511618 } } YoovyBot_Giant_Pyro_Gas_EOI { //TFBot Class Pyro Name "Giant Gas Bomber Pyro" Health 3000 ClassIcon pyro_gaspasser_explode_tind Attributes AlwaysFireWeapon Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "damage force reduction" 0.25 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "Upgradeable TF_WEAPON_FLAMETHROWER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_FLAMETHROWER" "paintkit_proto_def_index" 417 //Team Serviced "lunchbox adds minicrits" 2 "set_item_texture_wear" 0 "airblast disabled" 1 "provide on active" 1 } Item "The Gas Passer" ItemAttributes { ItemName "The Gas Passer" "mult_item_meter_charge_rate" 0.4 "attach particle effect" 15 //Searing Plasma "dmg penalty vs players" 0.2 "ragdolls become ash" 1 "explode_on_ignite" 1 "provide on active" 1 } //Cosmetics Item "Torcher's Trench Coat" Item "Scorched Earth Stompers" Item "Masked Loyalty" ItemAttributes { ItemName "Masked Loyalty" "item style override" 2 } //Rafmod WeaponSwitch { Delay 0 Cooldown 0 IfSeeTarget 1 Type "Primary" MaxTargetRange 400 MinTargetRange 0 } WeaponSwitch { Delay 0 Cooldown 0 IfSeeTarget 1 Type "Secondary" MaxTargetRange 1200 MinTargetRange 425 } } YoovyBot_Giant_Soldier_Conch_Ext { //TFBot Class Soldier Name "Giant Extended Conch Soldier" Health 3800 ClassIcon soldier_conch Attributes HoldFireUntilFullReload Attributes SpawnWithFullCharge Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "increase buff duration" 11 "damage force reduction" 0.25 "deploy time decreased" 0.1 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "The Concheror" Item "teufort_rocketlauncher_smalltownbringdown" ItemAttributes { ItemName "teufort_rocketlauncher_smalltownbringdown" "set_item_texture_wear" 0 } //Cosmetics Item "Furious Fukaamigasa" } YoovyBot_Soldier_Conch_Ext { //TFBot Class Soldier Name "Extended Conch Soldier" ClassIcon soldier_conch Attributes SpawnWithFullCharge CharacterAttributes { "increase buff duration" 11 "deploy time decreased" 0.1 } //Weapons Item "The Concheror" Item "teufort_rocketlauncher_smalltownbringdown" ItemAttributes { ItemName "teufort_rocketlauncher_smalltownbringdown" "set_item_texture_wear" 0 } //Cosmetics Item "Furious Fukaamigasa" } YoovyBot_Giant_Soldier_Buff_Ext { //TFBot Class Soldier Name "Giant Extended Buff Soldier" Health 3800 ClassIcon soldier_buff Attributes HoldFireUntilFullReload Attributes SpawnWithFullCharge Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "increase buff duration" 11 "damage force reduction" 0.25 "deploy time decreased" 0.1 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "The Buff Banner" Item "concealedkiller_rocketlauncher_sandcannon" ItemAttributes { ItemName "concealedkiller_rocketlauncher_sandcannon" "set_item_texture_wear" 0 } //Cosmetics Item "Defiant Spartan" ItemAttributes { ItemName "Defiant Spartan" "set item tint RGB" 15185211 } } YoovyBot_Heavy_Shotgun { //TFBot Class Heavy Name "Shotgun Heavy" ClassIcon heavy_shotgun WeaponRestrictions SecondaryOnly //Cosmetics Item "The Well-Rounded Rifleman" } YoovyBot_Spy { //TFBot Class Spy Attributes IgnoreFlag } YoovyBot_Scout_Bonk_Scattergun { //TFBot Class Scout Name "Bonk Scout" ClassIcon scout_scatterbonk_eyes CharacterAttributes { "deploy time decreased" 0.1 } //Weapons Item "Bonk! Atomic Punch" //Cosmetics Item "Bonk Leadwear" } YoovyBot_Pyro_Fury { //TFBot Class Pyro Name "Dragon's Fury Pyro" ClassIcon pyro_dragon_fury_swordstone MaxVisionRange 600 //Weapons Item "The Dragon's Fury" //Cosmetics Item "Airtight Arsonist" } YoovyBot_Giant_Medic_Syringegun { //TFBot Class Medic Name "Giant Injector" Health 4500 ClassIcon medic_syringe_milk2 Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "damage force reduction" 0.25 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "The Overdose" ItemAttributes { ItemName "The Overdose" "move speed bonus resource level" 1 "mad milk syringes" 1 "clip size bonus" 2 "damage penalty" 1 "damage bonus" 1.5 } //Cosmetics Item "Berlin Brain Bowl" Item "Coldfront Carapace" } YoovyBot_Giant_Medic_QF_Regen { //TFBot Class Medic Health 4500 Name "Giant Regen Medic" ClassIcon medic_giant Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.1 "airblast vulnerability multiplier" 0.1 "damage force reduction" 0.1 "move speed penalty" 0.5 "killstreak tier" 1 "health regen" 50 } //Weapons ItemAttributes { Itemname "TF_WEAPON_SYRINGEGUN_MEDIC" "clip size bonus" 2 "damage bonus" 1.5 } Item "The Quick-Fix" ItemAttributes { ItemName "The Quick-Fix" "ubercharge rate penalty" 0.1 "ubercharge rate bonus" 1 "heal rate bonus" 200 } //Cosmetics Item "The Surgeon's Stahlhelm" } YoovyBot_Giant_Soldier_Liberty_Blast { //TFBot Class Soldier Name "Giant Bolted Blaster" Health 3800 ClassIcon soldier_libertylauncher Attributes HoldFireUntilFullReload Attributes MiniBoss CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "damage force reduction" 0.25 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "The Liberty Launcher" ItemAttributes { ItemName "The Liberty Launcher" "projectile spread angle penalty" 4 "clip size upgrade atomic" 5 "blast radius increased" 1.2 "damage causes airblast" 1 "faster reload rate" 0.2 "fire rate bonus" 0.25 } //Cosmetics Item "The Warsworn Helmet" ItemAttributes { ItemName "The Warsworn Helmet" "set item tint RGB" 4345659 } } YoovyBot_Giant_Scout { //TFBot Class Scout Name "Giant Scout" Health 1600 ClassIcon scout_giant Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 7 "damage force reduction" 0.25 "killstreak tier" 1 } } YoovyBot_Giant_Scout_Fast_Caustic { //TFBot Class Scout Name "Super Caustic Scout" Health 1200 ClassIcon scout_giant_fast WeaponRestrictions MeleeOnly Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 7 "damage force reduction" 0.25 "move speed bonus" 2 "killstreak tier" 1 } //Weapons Item "The Holy Mackerel" ItemAttributes { ItemName "The Holy Mackerel" "paintkit_proto_def_index" 112 //Backwoods Boomstick Mk.II "attach particle effect" 9 "set_item_texture_wear" 0 "bleeding duration" 2 } //Cosmetics Item "The Bolt Boy" ItemAttributes { ItemName "The Bolt Boy" "set item tint RGB" 7511618 } } YoovyBot_Demoman_Hybrid_Knigh_Caustic { //TFBot Class Demoman Name "Caustic Hybrid Knight" ClassIcon demoknight_hybrid_yoovy //Weapons Item "Upgradeable TF_WEAPON_GRENADELAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_GRENADELAUNCHER" "switch from wep deploy time decreased" 0.1 "paintkit_proto_def_index" 112 //Backwoods Boomstick Mk.II "attach particle effect" 702 "dmg penalty vs players" 0.5 "killstreak idleeffect" 5 "set_item_texture_wear" 0 "bleeding duration" 5 } Item "The Chargin' Targe" ItemAttributes { ItemName "The Chargin' Targe" "killstreak idleeffect" 5 } Item "The Eyelander" ItemAttributes { ItemName "The Eyelander" "switch from wep deploy time decreased" 0.1 "attach particle effect" 9 "gesture speed increase" 1.5 "killstreak idleeffect" 5 "deploy time decreased" -1 "bleeding duration" 3 "critboost on kill" 3 } //Cosmetics Item "The Vaudeville Visor" Item "Alcoholic Automaton" ItemAttributes { ItemName "Alcoholic Automaton" "set item tint RGB" 7511618 } //Rafmod WeaponSwitch { Delay 0 Cooldown 0 IfSeeTarget 1 Type "Primary" MaxTargetRange 1200 MinTargetRange 425 } WeaponSwitch { Delay 0 Cooldown 0 IfSeeTarget 1 Type "Melee" MaxTargetRange 400 MinTargetRange 0 } } YoovyBot_Giant_Heavy_Deflector { //TFBot Class Heavy Name "Giant Deflector Heavy" Health 5000 ClassIcon heavy_deflector_giant Attributes MiniBoss MaxVisionRange 1200 Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "damage force reduction" 0.25 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "Upgradeable TF_WEAPON_MINIGUN" ItemAttributes { ItemName "Upgradeable TF_WEAPON_MINIGUN" "paintkit_proto_def_index" 411 //Steel Brushed "killstreak idleeffect" 1 "set_item_texture_wear" 0 "attack projectiles" 1 "damage bonus" 1.5 } //Cosmetics Item "The U-Clank-A" } YoovyBot_Medic_Kritzkrieg { //TFBot Class Medic Name "Kritzkrieg Medic" ClassIcon medic_kritz Attributes SpawnWithFullCharge Attributes AlwaysCrit CharacterAttributes { "bot medic uber health threshold" 7202004 } //Weapons Item "The Kritzkrieg" ItemAttributes { ItemName "The Kritzkrieg" "uber duration bonus" 7153200 "heal rate bonus" 2 } //Cosmetics Item "The Combat Medic's Crusher Cap" } YoovyBot_Giant_Soldier_Burstfire { //TFbot Class Soldier Health 3800 Name "Giant Burst Fire Soldier" ClassIcon soldier_burstfire Attributes HoldFireUntilFullReload Attributes Miniboss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "damage force reduction" 0.25 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "Upgradeable TF_WEAPON_ROCKETLAUNCHER" ItemAttributes { ItemName "Upgradeable TF_WEAPON_ROCKETLAUNCHER" "projectile speed increased" 0.65 "paintkit_proto_def_index" 412 //Secrectly Serviced "clip size upgrade atomic" 5 "set_item_texture_wear" 0 "faster reload rate" 0.6 "fire rate bonus" 0.1 } //Cosmetics Item "The Slo-Poke" ItemAttributes { ItemName "The Slo-Poke" "set item tint RGB" 2960676 } } YoovyBot_Pyro_Flaregun { //TFBot Class Pyro Name "Flare Pyro" ClassIcon pyro_flare WeaponRestrictions SecondaryOnly //Weapons Item "The Flare Gun" //Cosmetics Item "Skullbrero" ItemAttributes { ItemName "Skullbrero" "set item tint RGB" 5801378 } } YoovyBot_Sniper_Sydney { //TFBot Class Sniper Name "Sydney Sniper" ClassIcon sniper_sydneysleeper Attributes IgnoreFlag //Weapons Item "The Sydney Sleeper" Item "The Bushwacka" //Cosmetics Item "Ol' Snaggletooth" Item "Crocodile Dandy" } YoovyBot_Pyro_Phlog { //TFBot Class Pyro Name "Phlogistinator Pyro" ClassIcon pyro_phlog_v2 Attributes SpawnWithFullCharge //Weapons Item "The Phlogistinator" ItemAttributes { ItemName "The Phlogistinator" "airblast disabled" 0 } //Cosmetics Item "PY-40 Incinibot" Item "The Moonman Backpack" } YoovyBot_Giant_Soldier_RapidFire_Conch_Ext_Caustic { //TFBot Class Soldier Name "Giant Rapid Causticonch Soldier" Health 3800 ClassIcon soldier_conch_spammer Attributes SpawnWithFullCharge Attributes MiniBoss Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "increase buff duration" 11 "damage force reduction" 0.25 "deploy time decreased" 0.1 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "The Concheror" Item "craftsmann_rocketlauncher_americanpastoral" ItemAttributes { ItemName "craftsmann_rocketlauncher_americanpastoral" "projectile speed decreased" 0.65 "attach particle effect" 702 "dmg penalty vs players" 0.5 "killstreak idleeffect" 5 "set_item_texture_wear" 0 "reload time decreased" -1 "ragdolls become ash" 1 "bleeding duration" 4 "fire rate bonus" 0.5 } //Cosmetics Item "Soldier Samurai Hat" ItemAttributes { ItemName "Soldier Samurai Hat" "set item tint RGB" 7511618 } } YoovyBot_Giant_Heavy_Heater_Deflector { //TFBot Class Heavy Name "Giant Heater Deflector Heavy" Health 5000 ClassIcon heavy_deflector_heater_yoovy Attributes MiniBoss MaxVisionRange 1200 Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.25 "airblast vulnerability multiplier" 0.25 "override footstep sound set" 5 "damage force reduction" 0.25 "move speed penalty" 0.5 "killstreak tier" 1 } //Weapons Item "The Huo Long Heatmaker" ItemAttributes { ItemName "The Huo Long Heatmaker" "killstreak idleeffect" 1 "attack projectiles" 1 "damage penalty" 1 "damage bonus" 1.4 } //Cosmetics Item "The U-Clank-A" ItemAttributes { ItemName "The U-Clank-A" "set item tint RGB" 13595446 } } YoovyBot_Chief_Soldier_Caustic { //TFBot Class Soldier Health 50000 Name "The Caustic Concoction" ClassIcon soldier_nuke2 Scale 1.9 EventChangeAttributes { Default //Critless Over Charged Rockets { Skill Expert WeaponRestrictions PrimaryOnly Attributes UseBossHealthBar Attributes MiniBoss Tag bot_noslow Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.01 "airblast vulnerability multiplier" 0.01 "override footstep sound set" 7 "damage force reduction" 0.01 "increased air control" 5 "increased jump height" 1.35 "cancel falling damage" 1 "move speed penalty" 0.2 "rage giving scale" 0.1 "killstreak tier" 1 "health regen" 50 } Item "powerhouse_rocketlauncher_shellshocker" ItemAttributes { ItemName "powerhouse_rocketlauncher_shellshocker" "projectile speed increased" 1.7 "attach particle effect" 702 "dmg bonus vs buildings" 1.5 "killstreak idleeffect" 5 "set_item_texture_wear" 0 "ragdolls become ash" 1 "faster reload rate" -1 "bleeding duration" 4 "fire rate penalty" 1.5 "damage bonus" 3 } Item "Big Steel Jaw of Summer Fun" Item "The Juggernaut Jacket" Item "The Man in Slacks" Item "The Cloud Crasher" ItemAttributes { ItemName "The Cloud Crasher" "particle effect vertical offset" 12 "particle effect use head origin" 1 "attach particle effect" 9 "set item tint RGB" 7511618 } } Set1 //Laser Barrage { Skill Expert WeaponRestrictions PrimaryOnly Attributes UseBossHealthBar Attributes MiniBoss Tag bot_noslow Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.01 "airblast vulnerability multiplier" 0.01 "override footstep sound set" 7 "damage force reduction" 0.01 "increased air control" 5 "increased jump height" 1.35 "cancel falling damage" 1 "move speed penalty" 0.2 "rage giving scale" 0.1 "killstreak tier" 1 "health regen" 50 } Item "The Cow Mangler 5000" ItemAttributes { ItemName "The Cow Mangler 5000" "projectile spread angle penalty" 4 "energy weapon penetration" 1 "override projectile type" 13 "ragdolls become ash" 1 "faster reload rate" -1 "set item tint RGB" 7511618 "bleeding duration" 3 "fire rate bonus" 0.1 } Item "Big Steel Jaw of Summer Fun" Item "The Juggernaut Jacket" Item "The Man in Slacks" Item "The Cloud Crasher" ItemAttributes { ItemName "The Cloud Crasher" "particle effect vertical offset" 12 "particle effect use head origin" 1 "attach particle effect" 9 "set item tint RGB" 7511618 } } Set2 //Rapid Fire Rockets { Skill Expert WeaponRestrictions PrimaryOnly Attributes UseBossHealthBar Attributes MiniBoss Tag bot_noslow Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.01 "airblast vulnerability multiplier" 0.01 "override footstep sound set" 7 "damage force reduction" 0.01 "increased air control" 5 "increased jump height" 1.35 "cancel falling damage" 1 "move speed penalty" 0.2 "rage giving scale" 0.1 "killstreak tier" 1 "health regen" 50 } Item "warbird_rocketlauncher_warhawk" ItemAttributes { ItemName "warbird_rocketlauncher_warhawk" "attach particle effect" 702 "killstreak idleeffect" 5 "set_item_texture_wear" 0 "reload time decreased" -1 "ragdolls become ash" 1 "bleeding duration" 3 "fire rate bonus" 0.5 "damage bonus" 1.25 } Item "Big Steel Jaw of Summer Fun" Item "The Juggernaut Jacket" Item "The Man in Slacks" Item "The Cloud Crasher" ItemAttributes { ItemName "The Cloud Crasher" "particle effect vertical offset" 12 "particle effect use head origin" 1 "attach particle effect" 9 "set item tint RGB" 7511618 } } Set3 //Blast Soldier { Skill Expert WeaponRestrictions PrimaryOnly Attributes UseBossHealthBar Attributes MiniBoss Tag bot_noslow Tag bot_giant CharacterAttributes { "airblast vertical vulnerability multiplier" 0.01 "airblast vulnerability multiplier" 0.01 "override footstep sound set" 7 "damage force reduction" 0.01 "increased air control" 5 "increased jump height" 1.35 "cancel falling damage" 1 "move speed penalty" 0.2 "rage giving scale" 0.1 "killstreak tier" 1 "health regen" 50 } Item "The Liberty Launcher" ItemAttributes { ItemName "The Liberty Launcher" "projectile spread angle penalty" 4 "clip size upgrade atomic" 5 "attach particle effect" 702 "blast radius increased" 1.2 "damage causes airblast" 1 "killstreak idleeffect" 5 "ragdolls become ash" 1 "faster reload rate" -1 "bleeding duration" 4 "fire rate bonus" 0.45 } Item "Big Steel Jaw of Summer Fun" Item "The Juggernaut Jacket" Item "The Man in Slacks" Item "The Cloud Crasher" ItemAttributes { ItemName "The Cloud Crasher" "particle effect vertical offset" 12 "particle effect use head origin" 1 "attach particle effect" 9 "set item tint RGB" 7511618 } } } } } //Sentrybusters //Wave 1-7 Mission { Objective DestroySentries Where spawnbot BeginAtWave 1 RunForThisManyWaves 7 InitialCooldown 30 CooldownTime 30 DesiredCount 1 TFBot { Template YoovyBot_SentryBuster_Tropical Skill Expert } } //Spies //Wave 2 Mission { Objective Spy Where spawnbot_mission_spy BeginAtWave 2 RunForThisManyWaves 1 InitialCooldown 30 CooldownTime 30 DesiredCount 2 TFBot { Template YoovyBot_Spy_Caustic Skill Hard } } //Wave 4 Mission { Objective Spy Where spawnbot_mission_spy BeginAtWave 4 RunForThisManyWaves 1 InitialCooldown 5 CooldownTime 20 DesiredCount 2 TFBot { Template YoovyBot_Spy Skill Normal } } //Wave 5 Mission { Objective Spy Where spawnbot_mission_spy BeginAtWave 5 RunForThisManyWaves 1 InitialCooldown 30 CooldownTime 30 DesiredCount 2 TFBot { Template YoovyBot_Spy_Caustic Skill Hard } } //Snipers //Wave 3 Mission { Objective Sniper Where spawnbot_flank BeginAtWave 3 RunForThisManyWaves 1 InitialCooldown 30 CooldownTime 30 DesiredCount 2 TFBot { Template YoovyBot_Sniper_Caustic Skill Hard } } //Wave 6 Mission { Objective Sniper Where spawnbot_flank BeginAtWave 6 RunForThisManyWaves 1 InitialCooldown 30 CooldownTime 30 DesiredCount 2 TFBot { Template YoovyBot_Sniper_Sydney Skill Hard } } //Wave 7 Mission { Objective Sniper Where spawnbot_flank BeginAtWave 7 RunForThisManyWaves 1 InitialCooldown 30 CooldownTime 30 DesiredCount 2 TFBot { Template YoovyBot_Sniper_Caustic Skill Hard } } ////////////// ////////////// // Wave 1 // // $800 // ////////////// ////////////// SpawnTemplate spawn_text SpawnTemplate dudes Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Kill`) EntFire(`bombpath_clearall_relay`, `Trigger`) EntFire(`bombpath_right_arrows`, `TurnOff`) EntFire(`bombpath_left`, `Trigger`) " } WaveSpawn { Name DisableSpawnText FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " EntFire(`explanation_sign_1*`,`SetTextSize`,`0`) " } } WaveSpawn { Name W1_01 TotalCurrency 150 TotalCount 30 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 6 Where spawnbot TFBot { Template YoovyBot_Heavy_SteelFist CustomEyeGlowColor "255 0 0" Skill Expert } } WaveSpawn { Name W1_01 TotalCurrency 690 TotalCount 6 MaxActive 6 SpawnCount 3 WaitBeforeStarting 6 WaitBetweenSpawns 18 Where spawnbot Squad { TFBot { Template YoovyBot_Giant_Demoman_RapidFire CustomEyeGlowColor "255 0 0" Skill Expert } TFBot { Template YoovyBot_Medic_QF_BigHeal Skill Hard } TFBot { Template YoovyBot_Medic_QF_BigHeal Skill Hard } } } WaveSpawn { Name W1_02 WaitForAllSpawned W1_01 TotalCurrency 60 TotalCount 12 MaxActive 6 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 6 Where spawnbot_flank2 Squad { TFBot { Template YoovyBot_Heavy_SteelFist CustomEyeGlowColor "255 0 0" Skill Expert } TFBot { Template YoovyBot_Medic_QF_BigHeal Skill Hard } } } WaveSpawn { Name W1_02_SUPPORT WaitForAllSpawned W1_01 TotalCurrency 50 TotalCount 50 MaxActive 4 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 2 Where spawnbot Support 1 TFBot { Template YoovyBot_Soldier Skill Normal } } WaveSpawn { Name W1_02_SUPPORT WaitForAllSpawned W1_01 TotalCurrency 50 TotalCount 50 MaxActive 4 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 2 Where spawnbot_flank2 Support 1 TFBot { Template YoovyBot_Soldier Skill Normal } } } ////////////// ////////////// // Wave 2 // // $1000 // ////////////// ////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Kill`) EntFire(`bombpath_clearall_relay`, `Trigger`) EntFire(`bombpath_right_arrows`, `TurnOff`) EntFire(`bombpath_left`, `Trigger`) " } WaveSpawn { Name DisableSpawnText FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " EntFire(`explanation_sign_1*`,`SetTextSize`,`0`) " } } WaveSpawn { Name W2_CAUSTIC TotalCurrency 100 TotalCount 4 MaxActive 4 SpawnCount 4 WaitBeforeStarting 0 WaitBetweenSpawns 0 Where spawnbot FirstSpawnOutPut { Target tutorial_wave_relay Action Trigger } Squad { TFBot { Template YoovyBot_Giant_Soldier_Caustic CustomEyeGlowColor "255 0 0" Skill Expert } TFBot { Template YoovyBot_Heavy_Caustic CustomEyeGlowColor "0 255 0" Skill Easy } TFBot { Template YoovyBot_Heavy_Caustic CustomEyeGlowColor "0 255 0" Skill Easy } TFBot { Template YoovyBot_Heavy_Caustic CustomEyeGlowColor "0 255 0" Skill Easy } } } WaveSpawn { Name W2_01 WaitForAllDead W2_CAUSTIC TotalCurrency 90 TotalCount 18 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 6 Where spawnbot TFBot { Template YoovyBot_Pyro_Caustic CustomEyeGlowColor "0 255 0" Skill Easy } } WaveSpawn { Name W2_01 WaitForAllDead W2_CAUSTIC TotalCurrency 75 TotalCount 15 MaxActive 6 SpawnCount 3 WaitBeforeStarting 0 WaitBetweenSpawns 6 Where spawnbot RandomChoice { TFBot { Template YoovyBot_Heavy CustomEyeGlowColor "0 255 0" Skill Easy } TFBot { Template YoovyBot_Heavy CustomEyeGlowColor "0 255 0" Skill Easy } TFBot { Template YoovyBot_Heavy CustomEyeGlowColor "0 255 0" Skill Easy } TFBot { Template YoovyBot_Heavy_Caustic CustomEyeGlowColor "0 255 0" Skill Easy } } } WaveSpawn { Name W2_01 WaitForAllDead W2_CAUSTIC TotalCurrency 230 TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 6 WaitBetweenSpawns 18 Where spawnbot Squad { TFBot { Template YoovyBot_Giant_Pyro_Airblast CustomEyeGlowColor "255 0 0" Skill Expert } TFBot { Template YoovyBot_Medic_Uber_Quick Skill Hard } } } WaveSpawn { Name W2_02 WaitForAllSpawned W2_01 TotalCurrency 400 TotalCount 8 MaxActive 8 SpawnCount 4 WaitBeforeStarting 10 WaitBetweenSpawns 16 Where spawnbot Squad { TFBot { Template YoovyBot_Giant_Soldier_Caustic CustomEyeGlowColor "255 0 0" Skill Expert } TFBot { Template YoovyBot_Medic_Uber_Quick Skill Hard } TFBot { Template YoovyBot_Medic_Uber_Quick Skill Hard } TFBot { Template YoovyBot_Medic_Uber_Quick Skill Hard } } } WaveSpawn { Name W2_02_SUPPORT WaitForAllSpawned W2_01 TotalCurrency 55 TotalCount 55 MaxActive 4 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 4 Where spawnbot Support 1 TFBot { Template YoovyBot_Scout Skill Normal } } WaveSpawn { Name W2_02_SUPPORT WaitForAllSpawned W2_01 TotalCurrency 50 TotalCount 50 MaxActive 4 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 4 Where spawnbot Support 1 TFBot { Template YoovyBot_Scout_Melee_Caustic CustomEyeGlowColor "255 0 0" Skill Expert } } } ////////////// ////////////// // Wave 3 // // $700 // ////////////// ////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Kill`) EntFire(`bombpath_clearall_relay`, `Trigger`) EntFire(`bombpath_left_arrows`, `TurnOff`) EntFire(`bombpath_right`, `Trigger`) " } WaveSpawn { Name DisableSpawnText FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " EntFire(`explanation_sign_1*`,`SetTextSize`,`0`) " } } WaveSpawn { Name W3_01 TotalCurrency 90 TotalCount 18 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 Where spawnbot_flank2 RandomChoice { Shuffle 1 TFBot { Template YoovyBot_Soldier Skill Normal } TFBot { Template YoovyBot_Soldier_Caustic Skill Normal } } } WaveSpawn { Name W3_01 TotalCurrency 90 TotalCount 18 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 2 Where spawnbot_flank2 RandomChoice { Shuffle 1 TFBot { Template YoovyBot_Demoman Skill Normal } TFBot { Template YoovyBot_Demoman_Caustic Skill Normal } } } WaveSpawn { Name W3_01 TotalCurrency 270 TotalCount 2 MaxActive 2 SpawnCount 1 WaitBeforeStarting 6 WaitBetweenSpawns 20 Where spawnbot_flank2 TFBot { Template YoovyBot_Giant_Heavy CustomEyeGlowColor "255 0 0" Skill Expert } } WaveSpawn { Name W3_02 WaitForAllSpawned W3_01 TotalCurrency 75 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 16 Where spawnbot TFBot { Template YoovyBot_Giant_Soldier_Charged Skill Normal } } WaveSpawn { Name W3_02 WaitForAllSpawned W3_01 TotalCurrency 75 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 16 Where spawnbot_flank2 TFBot { Template YoovyBot_Giant_Soldier_Burstfire CustomEyeGlowColor "255 0 0" Skill Expert } } WaveSpawn { Name W3_02_SUPPORT WaitForAllSpawned W3_01 TotalCurrency 50 TotalCount 50 MaxActive 4 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 3 Where spawnbot Support 1 TFBot { Template YoovyBot_Demoman_Knight_Boots_Caustic CustomEyeGlowColor "255 0 0" Skill Expert } } WaveSpawn { Name W3_02_SUPPORT WaitForAllSpawned W3_01 TotalCurrency 50 TotalCount 50 MaxActive 4 SpawnCount 1 WaitBeforeStarting 15 WaitBetweenSpawns 3 Where spawnbot_flank2 Support 1 TFBot { Template YoovyBot_Demoman_Knight_Boots_Caustic CustomEyeGlowColor "255 0 0" Skill Expert } } } ////////////// ////////////// // Wave 4 // // $600 // ////////////// ////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Kill`) EntFire(`bombpath_clearall_relay`, `Trigger`) EntFire(`bombpath_left_arrows`, `TurnOff`) EntFire(`bombpath_right`, `Trigger`) " } WaveSpawn { Name DisableSpawnText FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " EntFire(`explanation_sign_1*`,`SetTextSize`,`0`) " } } WaveSpawn { Name W4_01_TANK_HEALTH FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " ClientPrint(null,3,`\x0799CCFFA Tank has arrived with \x07ffffff20,000 \x0799CCFFHP!`) " } } WaveSpawn //20,000 health tank { Name W4_01_TANK TotalCurrency 150 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 Tank { Health 20000 Speed 75 Name tankboss StartingPathTrackNode tankpath_alt OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name W4_01 TotalCurrency 200 TotalCount 40 MaxActive 10 SpawnCount 5 WaitBeforeStarting 0 WaitBetweenSpawns 7 Where spawnbot RandomChoice { TFBot { Template YoovyBot_Scout Skill Normal } TFBot { Template YoovyBot_Scout Skill Normal } TFBot { Template YoovyBot_Scout Skill Normal } TFBot { Template YoovyBot_Scout_Caustic CustomEyeGlowColor "0 255 0" Skill Easy } } } WaveSpawn { Name W4_01 TotalCurrency 75 TotalCount 6 MaxActive 6 SpawnCount 2 WaitBeforeStarting 6 WaitBetweenSpawns 20 Where spawnbot Squad { TFBot { Template YoovyBot_Giant_Pyro_Gas_EOI CustomEyeGlowColor "255 0 0" Skill Expert } TFBot { Template YoovyBot_Medic_Uber_Quick Skill Hard } } } WaveSpawn { Name W4_02 WaitForAllSpawned W4_01 TotalCurrency 75 TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 12 Where spawnbot_flank2 TFBot { Template YoovyBot_Giant_Soldier_Buff_Ext CustomEyeGlowColor "255 0 0" Skill Expert } } WaveSpawn { Name W4_02_SUPPORT WaitForAllSpawned W4_01 TotalCurrency 50 TotalCount 50 MaxActive 4 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 2 Where spawnbot_flank2 RandomSpawn 1 Support 1 TFBot { Template YoovyBot_Soldier_Conch_Ext Skill Normal } } WaveSpawn { Name W4_02_SUPPORT WaitForAllSpawned W4_01 TotalCurrency 50 TotalCount 50 MaxActive 4 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 2 Where spawnbot Where spawnbot_flank2 RandomSpawn 1 Support 1 TFBot { Template YoovyBot_Pyro_Caustic CustomEyeGlowColor "0 255 0" Skill Easy } } } ////////////// ////////////// // Wave 5 // // $1000 // ////////////// ////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Kill`) EntFire(`bombpath_clearall_relay`, `Trigger`) EntFire(`bombpath_left_arrows`, `TurnOff`) EntFire(`bombpath_right`, `Trigger`) " } WaveSpawn { Name DisableSpawnText FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " EntFire(`explanation_sign_1*`,`SetTextSize`,`0`) " } } WaveSpawn { Name W5_01 TotalCurrency 180 TotalCount 36 MaxActive 12 SpawnCount 6 WaitBeforeStarting 0 WaitBetweenSpawns 8 Where spawnbot_flank2 TFBot { Template YoovyBot_Scout_Bonk_Scattergun Skill Normal } } WaveSpawn { Name W5_01 TotalCurrency 60 TotalCount 12 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0.1 WaitBetweenSpawns 8 Where spawnbot TFBot { Template YoovyBot_Pyro_Fury Skill Hard } } WaveSpawn { Name W5_01 TotalCurrency 200 TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 30 Where spawnbot Squad { ShouldPreserveSquad 1 TFBot { Template YoovyBot_Giant_Medic_Syringegun CustomEyeGlowColor "255 0 0" Skill Expert } TFBot { Template YoovyBot_Giant_Medic_QF_Regen Attributes SpawnWithFullCharge //AI Medics with full charge for whatever dumb reason stick closer to their patient than AI Medics with no charge :/ CharacterAttributes { "bot medic uber deploy delay duration" 100000000 "bot medic uber health threshold" 5 "ubercharge rate penalty" 0 } CustomEyeGlowColor "255 0 0" Skill Expert } } } WaveSpawn { Name W5_02_TANK_HEALTH WaitForAllSpawned W5_01 WaitBeforeStarting 10 FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " ClientPrint(null,3,`\x0799CCFFA Tank has arrived with \x07ffffff25,000 \x0799CCFFHP!`) " } } WaveSpawn //25,000 health tank { Name W5_01_TANK WaitForAllSpawned W5_01 TotalCurrency 110 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 0 Tank { Health 25000 Speed 75 Name tankboss StartingPathTrackNode tankpath_alt OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name W5_02 WaitForAllSpawned W5_01 TotalCurrency 300 TotalCount 6 MaxActive 6 SpawnCount 2 WaitBeforeStarting 20 WaitBetweenSpawns 18 Where spawnbot Squad { TFBot { Template YoovyBot_Giant_Soldier_Liberty_Blast CustomEyeGlowColor "255 0 0" Skill Expert } TFBot { Template YoovyBot_Medic_Uber_Quick Skill Hard } } } WaveSpawn { Name W5_02_SUPPORT WaitForAllSpawned W5_01 TotalCurrency 75 TotalCount 75 MaxActive 4 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 2 Where spawnbot Support 1 TFBot { Template YoovyBot_Heavy CustomEyeGlowColor "0 255 0" Skill Easy } } WaveSpawn { Name W5_02_SUPPORT WaitForAllSpawned W5_01 TotalCurrency 75 TotalCount 75 MaxActive 6 SpawnCount 4 WaitBeforeStarting 20 WaitBetweenSpawns 10 Where spawnbot Support 1 TFBot { Template YoovyBot_Heavy CustomEyeGlowColor "0 255 0" Skill Easy } } } ////////////// ////////////// // Wave 6 // // $800 // ////////////// ////////////// Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Kill`) EntFire(`bombpath_clearall_relay`, `Trigger`) EntFire(`bombpath_right_arrows`, `TurnOff`) EntFire(`bombpath_left`, `Trigger`) " } WaveSpawn { Name DisableSpawnText FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " EntFire(`explanation_sign_1*`,`SetTextSize`,`0`) " } } WaveSpawn { Name W6_01 TotalCurrency 100 TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 20 Where spawnbot TFBot { Template YoovyBot_Giant_Scout CustomEyeGlowColor "255 0 0" Attributes AlwaysCrit Skill Expert } } WaveSpawn { Name W6_01 TotalCurrency 200 TotalCount 40 MaxActive 10 SpawnCount 1 WaitBeforeStarting 0.1 WaitBetweenSpawns 1.2 Where spawnbot TFBot { Template YoovyBot_Demoman_Hybrid_Knigh_Caustic Skill Hard } } WaveSpawn { Name W6_01 TotalCurrency 100 TotalCount 4 MaxActive 4 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 20 Where spawnbot Squad { TFBot { Template YoovyBot_Giant_Heavy_Deflector CustomEyeGlowColor "255 0 0" Attributes AlwaysCrit Skill Expert } TFBot { Template YoovyBot_Medic_Uber Skill Hard } } } WaveSpawn { Name W6_02 WaitForAllSpawned W6_01 TotalCurrency 150 TotalCount 6 MaxActive 6 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 15 Where spawnbot TFBot { Template YoovyBot_Giant_Scout CustomEyeGlowColor "255 0 0" Attributes AlwaysCrit Skill Expert } } WaveSpawn { Name W6_02 WaitForAllSpawned W6_01 TotalCurrency 200 TotalCount 4 MaxActive 4 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 15 Where spawnbot TFBot { Template YoovyBot_Giant_Soldier_BurstFire CustomEyeGlowColor "255 0 0" Attributes AlwaysCrit Skill Expert } } WaveSpawn { Name W6_02_SUPPORT WaitForAllSpawned W6_01 TotalCurrency 25 TotalCount 25 MaxActive 3 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 2 Where spawnbot RandomSpawn 1 Support 1 TFBot { Template YoovyBot_Demoman_Caustic Attributes AlwaysCrit Skill Hard } } WaveSpawn { Name W6_02_SUPPORT WaitForAllSpawned W6_01 TotalCurrency 25 TotalCount 25 MaxActive 7 SpawnCount 1 WaitBeforeStarting 10 WaitBetweenSpawns 1 Where spawnbot RandomSpawn 1 Support 1 RandomChoice { TFBot { Template YoovyBot_Pyro Skill Normal } TFBot { Template YoovyBot_Pyro Skill Normal } TFBot { Template YoovyBot_Pyro Skill Normal } TFBot { Template YoovyBot_Pyro Attributes AlwaysFireWeapon Skill Normal } } } } ////////////// ////////////// // Wave 7 // // $1000 // ////////////// ////////////// Wave { SpawnTemplate caustic_boss_theme StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } InitWaveOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`bombpath_choose_relay`, `Kill`) EntFire(`bombpath_clearall_relay`, `Trigger`) EntFire(`bombpath_right_arrows`, `TurnOff`) EntFire(`bombpath_left`, `Trigger`) " } WaveSpawn { Name DisableSpawnText FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " EntFire(`explanation_sign_1*`,`SetTextSize`,`0`) " } } WaveSpawn { Name W7_01 TotalCurrency 60 TotalCount 16 MaxActive 4 SpawnCount 2 WaitBeforeStarting 0 WaitBetweenSpawns 7 Where spawnbot_flank TFBot { Template YoovyBot_Pyro_Phlog Skill Hard } } WaveSpawn { Name W7_01 TotalCurrency 120 TotalCount 32 MaxActive 8 SpawnCount 4 WaitBeforeStarting 0.1 WaitBetweenSpawns 7 Where spawnbot TFBot { Template YoovyBot_Pyro_Phlog Skill Hard } } WaveSpawn { Name W7_01 TotalCurrency 125 TotalCount 5 MaxActive 5 SpawnCount 1 WaitBeforeStarting 0.1 WaitBetweenSpawns 16 Where spawnbot TFBot { Template YoovyBot_Giant_Soldier_RapidFire_Conch_Ext_Caustic CustomEyeGlowColor "255 0 0" Skill Expert } } WaveSpawn { Name W7_01 TotalCurrency 75 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 0.1 WaitBetweenSpawns 25 Where spawnbot TFBot { Template YoovyBot_Giant_Heavy_Heater_Deflector CustomEyeGlowColor "255 0 0" Skill Expert } } WaveSpawn { Name W7_02_TANK_HEALTH WaitForAllSpawned W7_01 WaitBeforeStarting 5 FirstSpawnOutPut { Target wave_start_relay Action RunScriptCode Param " ClientPrint(null,3,`\x0799CCFFThe final Tank has arrived with \x07ffffff22,000 \x0799CCFFHP!`) " } } WaveSpawn //22,000 health tank { Name W7_02_TANK WaitForAllSpawned W7_01 TotalCurrency 125 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 Tank { Health 22000 Speed 75 Name tankboss Skin 1 StartingPathTrackNode tankpath_alt OnKilledOutput { Target boss_dead_relay Action Trigger } OnBombDroppedOutput { Target boss_deploy_relay Action Trigger } } } WaveSpawn { Name W7_02 WaitForAllSpawned W7_01 TotalCurrency 120 TotalCount 28 MaxActive 8 SpawnCount 1 WaitBeforeStarting 19 WaitBetweenSpawns 1 Where spawnbot RandomChoice { TFBot { Template YoovyBot_Soldier Skill Hard } TFBot { Template YoovyBot_Soldier_Caustic Skill Hard } } } WaveSpawn { Name W7_02 WaitForAllSpawned W7_01 TotalCurrency 125 TotalCount 5 MaxActive 5 SpawnCount 1 WaitBeforeStarting 20 WaitBetweenSpawns 16 Where spawnbot TFBot { Template YoovyBot_Giant_Scout_Fast_Caustic CustomEyeGlowColor "0 255 0" Skill Easy } } WaveSpawn { Name W7_02 WaitForAllSpawned W7_01 TotalCurrency 150 TotalCount 9 MaxActive 9 SpawnCount 3 WaitBeforeStarting 20 WaitBetweenSpawns 16 Where spawnbot Squad { TFBot { Template YoovyBot_Giant_Heavy_Heater_Deflector CustomEyeGlowColor "255 0 0" Skill Expert } TFBot { Template YoovyBot_Medic_Uber_Quick Skill Hard } TFBot { Template YoovyBot_Medic_Uber_Quick Skill Hard } } } WaveSpawn { Name W7_BOMB_RESET WaitForAllDead W7_02 FirstSpawnOutput { Target wave_start_relay Action RunScriptCode Param " EntFire(`intel`,`ForceReset`) " } } WaveSpawn { Name W7_CHIEF_SOUNDS WaitForAllDead W7_02 FirstSpaWnWarningSound "vo/mvm/mght/taunts/soldier_mvm_m_taunts05.mp3" WaitBeforeStarting 2 } WaveSpawn { Name W7_CHIEF_SOUNDS WaitForAllDead W7_02 FirstSpaWnWarningSound "vo/mvm/mght/taunts/soldier_mvm_m_taunts05.mp3" WaitBeforeStarting 2 } WaveSpawn { Name W7_CHIEF_SOUNDS WaitForAllDead W7_02 FirstSpaWnWarningSound "vo/mvm/mght/soldier_mvm_m_battlecry03.mp3" WaitBeforeStarting 7.5 } WaveSpawn { Name W7_CHIEF_SOUNDS WaitForAllDead W7_02 FirstSpaWnWarningSound "vo/mvm/mght/soldier_mvm_m_battlecry03.mp3" WaitBeforeStarting 7.5 } WaveSpawn { Name W7_CHIEF_SOUNDS WaitForAllDead W7_02 FirstSpaWnWarningSound "mvm/giant_heavy/giant_heavy_entrance.wav" WaitBeforeStarting 7.5 } WaveSpawn { Name W7_CHIEF_DOOR_OPEN WaitForAllDead W7_02 WaitBeforeStarting 7 FirstSpawnOutput { Target boss_door_open_relay Action Trigger } } WaveSpawn { Name SONG WaitForAllDead W7_02 WaitBeforeStarting 7 FirstSpawnOutPut { Target caustic_boss_theme_start Action Trigger } } WaveSpawn { Name W7_CHIEF WaitForAllDead W7_02 TotalCurrency 0 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 7.5 WaitBetweenSpawns 0 Where spawnbot_boss FirstSpawnOutput { Target "wave_start_relay" Action RunScriptCode Param " SpawnEntityFromTable(`point_populator_interface` , { targetname = `pop_interface` }) SpawnEntityFromTable(`logic_relay` , { targetname = `boss_changeattributes_relay` spawnflags = 2 `OnTrigger#1`: `pop_interface,ChangeBotAttributes,Set1,0.1,-1` `OnTrigger#2`: `pop_interface,ChangeBotAttributes,Set2,10.1,-1` `OnTrigger#3`: `pop_interface,ChangeBotAttributes,Set3,20.1,-1` `OnTrigger#4`: `pop_interface,ChangeBotAttributes,Default,30.1,-1` `OnTrigger#5`: `boss_changeattributes_relay,EnableRefire,,39,-1` `OnTrigger#6`: `boss_changeattributes_relay,Trigger,,40.1,-1` }) EntFire(`boss_changeattributes_relay`,`trigger`, ``, 10) " } TFBot { Template YoovyBot_Chief_Soldier_Caustic } } WaveSpawn { Name NO_SLOW WaitForAllSpawned W7_CHIEF WaitBeforeStarting 8 FirstSpawnOutPut { Target "wave_start_relay" Action RunScriptCode Param " ::UnSlow <- function() { if (self.InCond(15)) { self.RemoveCond(15); } if (NetProps.GetPropInt(self, `m_lifeState`) != 0) { AddThinkToEnt(self, null); NetProps.SetPropString(self, `m_iszScriptThinkFunction`, ``); } return 0.1; } ::ent <- null; for(local i = 1; i <= Constants.Server.MAX_PLAYERS; i++) { ent = PlayerInstanceFromIndex(i); if (ent == null) continue; else if (IsPlayerABot(ent)) { if (NetProps.GetPropInt(ent, `m_lifeState`) == 0) { if(ent.HasBotTag(`bot_noslow`)) { AddThinkToEnt(ent, `UnSlow`); } } } }; " } } WaveSpawn { Name CHIEF_DEATH_SOUNDS WaitForAllDead W7_CHIEF FirstSpaWnWarningSound "misc/rd_robot_explosion01.wav" } WaveSpawn { Name CHIEF_DEATH_SOUNDS WaitForAllDead W7_CHIEF FirstSpaWnWarningSound "vo/mvm/mght/soldier_mvm_m_paincrticialdeath03.mp3" } WaveSpawn { Name CHIEF_DEATH_SOUNDS WaitForAllDead W7_CHIEF FirstSpaWnWarningSound "vo/mvm/mght/soldier_mvm_m_paincrticialdeath03.mp3" } WaveSpawn { Name W7_CHIEF_SUPPORT WaitForAllDead W7_02 TotalCurrency 50 TotalCount 50 MaxActive 4 SpawnCount 1 WaitBeforeStarting 12.5 WaitBetweenSpawns 4 Where spawnbot Where spawnbot_flank Where spawnbot_flank2 Where spawnbot_boss RandomSpawn 1 Support 1 TFBot { Template YoovyBot_Scout_Caustic CustomEyeGlowColor "0 255 0" Skill Easy } } WaveSpawn { Name W7_CHIEF_SUPPORT WaitForAllDead W7_02 TotalCurrency 50 TotalCount 50 MaxActive 4 SpawnCount 1 WaitBeforeStarting 12.5 WaitBetweenSpawns 3 Where spawnbot Where spawnbot_flank Where spawnbot_flank2 Where spawnbot_boss RandomSpawn 1 Support 1 TFBot { Template YoovyBot_Pyro_Caustic CustomEyeGlowColor "0 255 0" Skill Easy } } WaveSpawn { Name W7_CHIEF_SUPPORT WaitForAllDead W7_02 TotalCurrency 0 TotalCount 3 MaxActive 3 SpawnCount 1 WaitBeforeStarting 23.5 WaitBetweenSpawns 8 Where spawnbot_mission_spy Support 1 TFBot { Template YoovyBot_Spy_Caustic Skill Hard } } } }