#base robot_zilloy_standard.pop population { StartingCurrency 10 RespawnWaveTime 0 CanBotsAttackWhileInSpawnRoom no WaveStartCountdown 1 SniperAllowHeadshots 1 EnableDominations 1 LuaScriptFile "scripts/build_ally_bot_modified.lua" CustomWeapon { "Portable Robotic Companion" { OriginalItemName "The Gunslinger" "special item description" "Sentry gun is replaced with robot companion." "special item description 2" "[INFO] Companion can be enhanced with enough cash." } } ExtraLoadoutItems { Engineer { Melee "Portable Robotic Companion" } } ExtendedUpgrades { companion_upgrade { Name "Companion Hardware Upgrade" Attribute "throwable fire speed" Cap 6 Increment 1 Cost 1200 Description "Upgrades bot type, stroneger but more costly to build" SecondaryAttributes { "mod sentry cost" 0.5 } AllowedWeapons { ItemName "Portable Robotic Companion" } OnApply { Output "popscript,$TierPurchase,,0" } OnDowngrade { Output "popscript,$TierPurchase,,0" } } } PointTemplates { OnSentryBuild { OnSpawnOutput { Target "popscript" Action "$SentrySpawned" Delay 0.01 } } } BuildingSpawnTemplate { ItemName "Portable Robotic Companion" Name OnSentryBuild BuildingType "Sentry" Delay 0.1 } DisallowUpgrade { Upgrade "engy disposable sentries" MaxLevel 0 CheckAllSlots 1 ItemName "Portable Robotic Companion" } PointTemplates { Combo_Medic { NoFixup 1 logic_relay { "targetname" "combo_melee_to_secondary_medic" "spawnflags" "2" "OnTrigger" "!self,EnableRefire,,0,-1" "OnTrigger" "!activator,$WeaponSwitchSlot,1,0,-1" "OnTrigger" "!activator,$AddPlayerAttribute,disable weapon switch|1,0.01,-1" "OnTrigger" "!activator,$RemovePlayerAttribute,disable weapon switch,9,-1" } } } SpawnTemplate Combo_Medic PlayerAttributes { "crit mod disabled" 0 // Scout // { // "max health additive bonus" 875 // } // Soldier // { // "max health additive bonus" 800 // } // Pyro // { // "max health additive bonus" 825 // } // Demoman // { // "max health additive bonus" 825 // } // HeavyWeapons // { // "max health additive bonus" 700 // } // Engineer // { // "max health additive bonus" 875 // } // Medic // { // "max health additive bonus" 850 // } // Sniper // { // "max health additive bonus" 875 // } // Spy // { // "max health additive bonus" 875 // } } ExtraSpawnPoint { Name "spawnbot_righthere" TeamNum 3 X "64" Y "2800" Z "200" } ExtraSpawnPoint { Name "spawnbot_tfplayer" TeamNum 3 X "0" Y "-2625" Z "512" } // LuaScriptFile "scripts/shortcircuit_airblast.lua" // CustomWeapon // { // "PROJECTILE_SHORTCIRCUIT_ORB" // used by shortcituit_airblast.lua to spawn orb // { // OriginalItemName "The Iron Bomber" // "override projectile type extra" "mechanicalarmorb" // } // } // PointTemplates // { // CircuitBlast // { // OnSpawnOutput // { // Target "popscript" // Action "$CircuitBlast" // } // } // } // PlayerItemEquipSpawnTemplate // { // Name "CircuitBlast" // ItemName "The Phlogistinator" // } // ItemAttributes // { // ItemName "The Phlogistinator" // "burn damage earns rage" 0 // "mod soldier buff type" 0 // } Wave { CustomWaveNumber 2 CustomMaxWaveNumber 3 StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } // WaveSpawn //for medic testing // { // TotalCount 420 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 12 // Where spawnbot_righthere // TFBot // { // Class HeavyWeapons // NoBombUpgrades 1 // } // } WaveSpawn { TotalCount 420 MaxActive 1 SpawnCount 1 WaitBetweenSpawns 0.5 Where spawnbot_righthere RandomChoice { TFBot { Action Mobber Template T_TFPlayer_Scout_Good } } } // WaveSpawn // { // TotalCount 420 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0.5 // Where spawnbot_righthere // RandomChoice // { // TFBot // { // Action Mobber // Template T_TFPlayer_Spy_Good // } // } // } // WaveSpawn // { // TotalCount 420 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0.5 // Where spawnbot_righthere // RandomChoice // { // TFBot // { // Action Mobber // Template T_TFPlayer_Sniper_Good // } // } // } // WaveSpawn // { // TotalCount 420 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0.5 // Where spawnbot_righthere // RandomChoice // { // TFBot // { // Action Mobber // Template T_TFPlayer_Pyro_Good // } // } // } // WaveSpawn // { // TotalCount 420 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0.5 // Where spawnbot_righthere // RandomChoice // { // TFBot // { // Action Mobber // Template T_TFPlayer_Soldier_Good // } // } // } // WaveSpawn // { // TotalCount 420 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0.5 // Where spawnbot_righthere // RandomChoice // { // TFBot // { // Action Mobber // Template T_TFPlayer_Medic_Good // } // } // } // WaveSpawn // { // TotalCount 420 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0.5 // Where spawnbot_righthere // RandomChoice // { // TFBot // { // Action Mobber // Template T_TFPlayer_Demo_Good // } // } // } // WaveSpawn // { // TotalCount 420 // MaxActive 1 // SpawnCount 1 // WaitBetweenSpawns 0.5 // Where spawnbot_righthere // RandomChoice // { // TFBot // { // Action Mobber // Template T_TFPlayer_Heavy_Good // } // } // } // WaveSpawn //TFPlayer cosmetic testing // { // TotalCount 69 // MaxActive 4 // SpawnCount 4 // Where spawnbot_righthere // Squad // { // NoFormation 1 // TFBot // { // Action Mobber // Template T_TFPlayer_Spy_Norm_A // StripItemSlot 3 // StripItemSlot 4 // CharacterAttributes // { // "cannot disguise" 1 // } // } // TFBot // { // Action Mobber // Template T_TFPlayer_Spy_Norm_B // StripItemSlot 3 // StripItemSlot 4 // CharacterAttributes // { // "cannot disguise" 1 // } // } // TFBot // { // Action Mobber // Template T_TFPlayer_Spy_Norm_C // StripItemSlot 3 // StripItemSlot 4 // CharacterAttributes // { // "cannot disguise" 1 // } // } // TFBot // { // Action Mobber // Template T_TFPlayer_Spy_Norm_D // StripItemSlot 3 // StripItemSlot 4 // CharacterAttributes // { // "cannot disguise" 1 // } // } // TFBot // { // Action Mobber // Template T_TFPlayer_Scout_Good_A // } // TFBot // { // Action Mobber // Template T_TFPlayer_Soldier_Good_A // } // TFBot // { // Action Mobber // Template T_TFPlayer_Pyro_Good_A // } // TFBot // { // Action Mobber // Template T_TFPlayer_Demo_Good_A // } // TFBot // { // Action Mobber // Template T_TFPlayer_Heavy_Good_A // } // TFBot // { // Action Mobber // Template T_TFPlayer_Medic_Good_A // } // TFBot // { // Action Mobber // Template T_TFPlayer_Sniper_Good_A // } // TFBot // { // Action Mobber // Template T_TFPlayer_Spy_Good_A // StripItemSlot 3 // StripItemSlot 4 // CharacterAttributes // { // "cannot disguise" 1 // } // } // } // } // WaveSpawn //bwr robot target dummies // { // TotalCount 6969 // MaxActive 4 // SpawnCount 1 // Where spawnbot_tfplayer // Support 1 // RandomChoice // { // TFBot // { // Action Mobber // Template T_TFPlayer_Scout_Norm_A // AddCond {Name TF_COND_REPROGRAMMED} // } // TFBot // { // Action Mobber // Template T_TFPlayer_Soldier_Norm_A // AddCond {Name TF_COND_REPROGRAMMED} // } // TFBot // { // Action Mobber // Template T_TFPlayer_Pyro_Norm_A // AddCond {Name TF_COND_REPROGRAMMED} // } // TFBot // { // Action Mobber // Template T_TFPlayer_Demo_Norm_A // AddCond {Name TF_COND_REPROGRAMMED} // } // TFBot // { // Action Mobber // Template T_TFPlayer_Demoknight_Norm_A // AddCond {Name TF_COND_REPROGRAMMED} // } // TFBot // { // Action Mobber // Template T_TFPlayer_Heavy_Norm_A // AddCond {Name TF_COND_REPROGRAMMED} // } // TFBot // { // Action Mobber // Template T_TFPlayer_Medic_Norm_A // AddCond {Name TF_COND_REPROGRAMMED} // } // TFBot // { // Action Mobber // Template T_TFPlayer_Sniper_Norm_A // AddCond {Name TF_COND_REPROGRAMMED} // } // } // } } Wave { CustomWaveNumber 2 CustomMaxWaveNumber 3 StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn //bwr robot target dummies { Support 1 TFBot { ClassIcon scout } } WaveSpawn //bwr robot target dummies { TotalCount 6969 MaxActive 9 SpawnCount 1 Where spawnbot_tfplayer RandomChoice { TFBot { Action Mobber Template T_TFPlayer_Scout_Norm_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Soldier_Norm_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Pyro_Norm_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Demo_Norm_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Demoknight_Norm_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Heavy_Norm_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Medic_Norm_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Sniper_Norm_A AddCond {Name TF_COND_REPROGRAMMED} } RandomChoice { TFBot { Action Mobber Template T_TFPlayer_Scout_Good_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Soldier_Good_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Pyro_Good_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Demo_Good_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Heavy_Good_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Medic_Good_A AddCond {Name TF_COND_REPROGRAMMED} } TFBot { Action Mobber Template T_TFPlayer_Sniper_Good_A AddCond {Name TF_COND_REPROGRAMMED} } } } } } Wave { } }