#base robot_giant_vanilla_kai.pop #base robot_standard_vanilla_kai.pop #base robot_giant_custom_kai.pop #base robot_standard_custom_kai.pop #base robot_giant_custom_rafmod_kai.pop #base robot_tank_custom_rafmod_kai.pop WaveSchedule { StartingCurrency 1000 RespawnWaveTime 1 CanBotsAttackWhileInSpawnRoom No AddSentryBusterWhenDamageDealtExceeds 3000 AddSentryBusterWhenKillCountExceeds 10 BodyPartScaleSpeed 8 //// PRECACHES //// // Precached Models PrecacheModel "models/props_mvm/indicator/indicator_circle.mdl" //// CUSTOM WEAPONS //// CustomWeapon { "Hammer_Weapon" { OriginalItemName "TF_WEAPON_PIPEBOMBLAUNCHER" "damage bonus" 5 "blast radius increased" 2.5 "use large smoke explosion" 1 "custom projectile model" "models/empty.mdl" "custom kill icon" "necro_smasher" } } //// POINT TEMPLATES //// PointTemplates { TheHammerLogic { OnSpawnOutput { Target "HammerSlamDamage" Action "$SetOwner" Param "!activator" Delay 0 } logic_relay { "targetname" "TheHammerAttack" "OnTrigger" "tf_gamerules,PlayVO,mvm/mvm_deploy_giant.wav,0,-1" "OnTrigger" "HammerSlamIndicator,Enable,,0,-1" "OnTrigger" "HammerSlamIndicator,SetAnimation,start,0,-1" "OnTrigger" "tf_gamerules,PlayVO,weapons/demo_sword_swing1.wav,3.0,-1" "OnTrigger" "tf_gamerules,PlayVO,ambient/explosions/explode_2.wav,3.4,-1" "OnTrigger" "tf_gamerules,PlayVO,ambient/explosions/explode_4.wav,3.4,-1" "OnTrigger" "tf_gamerules,PlayVO,misc/halloween/strongman_fast_impact_01.wav,3.4,-1" "OnTrigger" "HammerSlamIndicator,Disable,,3.4,-1" "OnTrigger" "HammerSlamShake,StartShake,,3.4,-1" "OnTrigger" "HammerSlamDamage,FireOnce,,3.4,-1" "OnTrigger" "HammerSlamFling,ApplyImpulse,,3.4,-1" } prop_dynamic { "targetname" "HammerSlamIndicator" "origin" "600 0 40" "angles" "0 0 0" "model" "models/props_mvm/indicator/indicator_circle.mdl" "modelscale" "8" "skin" "1" "defaultanim" "start" "solid" "0" "startdisabled" "1" "disablebonefollowers" "1" "disableshadows" "1" } env_shake { "spawnflags" "4" "amplitude" "3000" "duration" "3" "frequency" "100" "targetname" "HammerSlamShake" } trigger_apply_impulse { "targetname" "HammerSlamFling" "origin" "600 0 20" "maxs" "375 375 40" "mins" "-375 -375 -40" "spawnflags" "1" "force" "750" "impulse_dir" "262 10 0" } tf_point_weapon_mimic { "targetname" "HammerSlamDamage" "spawnflags" "1" "angles" "0 0 0" "origin" "400 0 20" "Crits" "1" "teamnum" "3" "$weaponname" "Hammer_Weapon" "$firetime" "1.0" "OnUser4" "!self,DetonateStickies,,0.1,-1" } } } //// ROBOT TEMPLATES //// Templates { T_TFBot_Giant_Demoman_GigaDestroyer { Name "Giant Giga Destroyer Demoman" Class Demoman ClassIcon boss_skeleton_lite Skill Expert Health 10000 Scale 2 Attributes MiniBoss Attributes UseBossHealthBar Attributes HoldFireUntilFullReload WeaponRestrictions PrimaryOnly Item "Forgotten King's Restless Head" Item "The Shrapnel Shell" CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 } ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "fire rate bonus" 0.1 "faster reload rate" 0.1 "clip size upgrade atomic" 36.0 "projectile speed decreased" 0.5 "projectile spread angle penalty" 10 } } T_TFBot_Demoknight_Caber_Crazy { Class Demoman ClassIcon demo_caber_nys_fast_hyper Skill Hard WeaponRestrictions MeleeOnly Item "The Ullapool Caber" Item "The Splendid Screen" Item "The Bomber Knight" ItemAttributes { ItemName "The Ullapool Caber" "blast dmg to self increased" 10.0 } ItemAttributes { ItemName "The Splendid Screen" "charge recharge rate increased" 9.0 "attack not cancel charge" 1 } ItemAttributes { ItemName "The Bomber Knight" "set item tint RGB" 15185211 } } T_TFBot_Engineer_Gunslinger_Battle_Speed { Name "Overdrive Gunslinger Engineer" Class Engineer ClassIcon engineer_gunslinger_blu_eyes Skill Expert Health 275 Attributes AlwaysCrit WeaponRestrictions MeleeOnly Action Mobber Item "The Gunslinger" CharacterAttributes { "move speed bonus" 2 } } T_TFBot_Giant_Demoman_THEHAMMER { Name "THE HAMMER" Class Demoman ClassIcon mallet_lite Skill Expert Health 25000 Scale 2.5 Attributes MiniBoss Attributes AlwaysCrit Attributes UseBossHealthBar Attributes HoldFireUntilFullReload WeaponRestrictions MeleeOnly SpawnTemplate "TheHammerLogic" Item "The Scotsman's Skullcutter" Item "The Shaman's Skull" Item "Forgotten King's Pauldrons" Item "The Bonedolier" Item "Potato of Labor" CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 "fire rate bonus with reduced health" 0.0001 } ItemAttributes { ItemName "The Scotsman's Skullcutter" "damage bonus" 1.5 "custom item model" "models/weapons/c_models/c_big_mallet/c_big_mallet.mdl" "custom kill icon" "necro_smasher" } ItemAttributes { ItemName "Potato of Labor" "custom item model" "models\workshop\player\items\all_class\hw2013_ethereal_hood\hw2013_ethereal_hood_demo.mdl" } FireInput { Target !self Action $ChangeAttributes Param HammerDefault Delay 0 Repeats 1 Cooldown -1 } EventChangeAttributes { HammerDefault { Item "The Scotsman's Skullcutter" Attributes SuppressFire WeaponRestrictions MeleeOnly CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 "hand scale" 1 } ItemAttributes { ItemName "The Scotsman's Skullcutter" "custom item model" "models/weapons/c_models/c_big_mallet/c_big_mallet.mdl" "custom kill icon" "necro_smasher" } FireInput { Target !self Action $ChangeAttributes Param "HammerSlam" Delay 7 Repeats 1 Cooldown -1 } } HammerSlam { Item "The Scotsman's Skullcutter" Attributes SuppressFire WeaponRestrictions MeleeOnly CharacterAttributes { "move speed penalty" 0.25 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 "hand scale" 3.5 } ItemAttributes { ItemName "The Scotsman's Skullcutter" "custom item model" "models/weapons/c_models/c_big_mallet/c_big_mallet.mdl" "custom kill icon" "necro_smasher" } FireWeapon { Type "Primary" Delay 3 Repeats 1 Cooldown -1 } FireInput { Target "TheHammerAttack" Action "Trigger" Delay 0 Repeats 1 Cooldown -1 } FireInput { Target !self Action $ChangeAttributes Param HammerDefault Delay 5 Repeats 1 Cooldown -1 } } } } T_TFBot_Giant_Demoman_Stickybomb { Name "Giant Stickybomb Demoman" Class Demoman ClassIcon demo_stickybomb_kai Skill Expert Health 3500 Attributes MiniBoss Attributes HoldFireUntilFullReload WeaponRestrictions SecondaryOnly CharacterAttributes { "move speed penalty" 0.5 "damage force reduction" 0.5 "airblast vulnerability multiplier" 0.5 "override footstep sound set" 4 } ItemAttributes { ItemName "TF_WEAPON_GRENADELAUNCHER" "is_passive_weapon" 1 "override projectile type" 27.0 } ItemAttributes { ItemName "TF_WEAPON_PIPEBOMBLAUNCHER" "stickybomb charge rate" 0.01 "projectile range decreased" 0.35 "max pipebombs decreased" -7 } } } //// MISSION BOTS //// Mission // Sentry Buster { Objective DestroySentries Where spawnbot_mid0 BeginAtWave 1 RunForThisManyWaves 10 InitialCooldown 30 CooldownTime 30 DesiredCount 1 TFBot { Template T_TFBot_SentryBuster } } Mission // Engineer (Wave 5) { Objective Engineer Where spawnbot_left0 BeginAtWave 5 RunForThisManyWaves 1 InitialCooldown 30 CooldownTime 30 DesiredCount 1 TFBot { Template T_TFBot_Engineer_Sentry_Teleporter_TeleIn TeleportWhere spawnbot_scattered0 TeleportWhere spawnbot_left0 } } Mission // Spy (Wave 6) { Objective Spy Where spawnbot_boss0 BeginAtWave 6 RunForThisManyWaves 1 InitialCooldown 10 CooldownTime 30 DesiredCount 2 TFBot { Template T_TFBot_Spy } } //// WAVES //// // General Notes // Wave 1 Notes Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`team_control_point_master`, `SetCapLayoutCustomPositionY`, `5`) EntFire(`forcecapture_ab_relay`, `Trigger`) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay_classic`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // 10 Charging Demos { Name "Wave1_Subwave1_ChargingDemo" Where spawnbot_main_slow1 TotalCount 10 MaxActive 10 SpawnCount 10 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Name "Charging Demo" Template T_TFBot_Demoman_Knight ClassIcon demoknight_bottle_lite Item "The Splendid Screen" Item "TF_WEAPON_BOTTLE" } } WaveSpawn // 1 GSoldier { Name "Wave1_Subwave1_GSoldier" WaitForAllSpawned "Wave1_Subwave1_ChargingDemo" Where spawnbot_main_slow1 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier } } WaveSpawn // 10 Charging Demos { Name "Wave1_Subwave1_ChargingDemo2" WaitForAllSpawned "Wave1_Subwave1_GSoldier" Where spawnbot_main_slow1 TotalCount 10 MaxActive 10 SpawnCount 10 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Name "Charging Demo" Template T_TFBot_Demoman_Knight ClassIcon demoknight_bottle_lite Item "The Splendid Screen" Item "TF_WEAPON_BOTTLE" } } WaveSpawn // 1 GSoldier { Name "Wave1_Subwave1_GSoldier2" WaitForAllSpawned "Wave1_Subwave1_ChargingDemo2" Where spawnbot_main_slow1 TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 5 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Template T_TFBot_Giant_Soldier } } WaveSpawn // 10 Heavies { Name "Wave1_Subwave1_Heavies" WaitForAllSpawned "Wave1_Subwave1_GSoldier2" Where spawnbot_main_slow1 TotalCount 10 MaxActive 10 SpawnCount 10 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 100 TFBot { Class Heavy Skill Easy } } // Subwave 2 WaveSpawn // Support Bat Scouts { Name "Wave1_Subwave2_BatScouts" WaitForAllSpawned "Wave1_Subwave1_Heavies" Where spawnbot_main_slow1 Support 1 TotalCount 20 MaxActive 4 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 4 TotalCurrency 20 TFBot { Template T_TFBot_Scout_Melee Attributes AlwaysCrit } } WaveSpawn // 12 Demomen { Name "Wave1_Subwave2_Demomen" WaitForAllSpawned "Wave1_Subwave1_Heavies" Where spawnbot_main_slow1 TotalCount 12 MaxActive 6 SpawnCount 3 WaitBeforeStarting 10 WaitBetweenSpawns 5 TotalCurrency 100 TFBot { Class Demoman Skill Easy } } WaveSpawn // 10 Heavies { Name "Wave1_Subwave2_Heavies" WaitForAllSpawned "Wave1_Subwave1_Heavies" Where spawnbot_main_slow1 TotalCount 10 MaxActive 4 SpawnCount 2 WaitBeforeStarting 10 WaitBetweenSpawns 3 TotalCurrency 100 TFBot { Class Heavy Skill Easy } } WaveSpawn // 8 Charging Demos { Name "Wave1_Subwave2_ChargingDemo" WaitForAllSpawned "Wave1_Subwave2_Demomen" Where spawnbot_main_slow1 TotalCount 8 MaxActive 8 SpawnCount 2 WaitBeforeStarting 5 WaitBetweenSpawns 1 TotalCurrency 40 TFBot { Name "Charging Demo" Template T_TFBot_Demoman_Knight ClassIcon demoknight_bottle_lite Item "The Splendid Screen" Item "TF_WEAPON_BOTTLE" } } WaveSpawn // 8 Demomen { Name "Wave1_Subwave2_Demomen2" WaitForAllSpawned "Wave1_Subwave2_ChargingDemo" Where spawnbot_main1 TotalCount 8 MaxActive 8 SpawnCount 8 WaitBeforeStarting 2 WaitBetweenSpawns 20 TotalCurrency 40 TFBot { Class Demoman Skill Easy } } WaveSpawn // 1 GRapid Soldier and 4 Heavies { Name "Wave1_Subwave3_GRapidSoldier" WaitForAllSpawned "Wave1_Subwave2_Demomen2" Where spawnbot_main_slow1 TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 10 WaitBetweenSpawns 0 TotalCurrency 100 Squad { TFBot { Template T_TFBot_Giant_Soldier_Spammer } TFBot { Class Heavy Skill Easy } TFBot { Class Heavy Skill Easy } TFBot { Class Heavy Skill Easy } TFBot { Class Heavy Skill Easy } } } } Wave { InitWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`team_control_point_master`, `SetCapLayoutCustomPositionY`, `5`) EntFire(`forcecapture_ab_relay`, `Trigger`) IncludeScript(`tankextensions_main`, getroottable()) TankExt.CreatePaths({ path_tank_forward = [ Vector(-576, 2688, -96) Vector(-576, 2432, -96) Vector(-512, 2368, -96) Vector(-256, 2304, -96) Vector(-128, 2176, -96) Vector(-128, 1984, -96) Vector(-192, 1856, -96) Vector(-448, 1664, -96) Vector(-512, 1472, -96) Vector(-640, 1408, -96) Vector(-1088, 1408, -96) Vector(-1378, 1546, -92) ] }) " } StartWaveOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_start_relay_classic`, `Trigger`) " } DoneOutput { Target BigNet Action RunScriptCode Param " EntFire(`wave_finished_relay`, `Trigger`) " } // Subwave 1 WaveSpawn // 1 Tiny Tank { Name "Wave2_Subwave1_Tank" TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 100 FirstSpawnWarningSound "mvm/mvm_tank_start.wav" Tank { Template Tank_Tiny Health 7500 StartingPathTrackNode "path_tank_forward_1" } } } }