#base robot_standard.pop #base robot_giant.pop WaveSchedule { StartingCurrency 1984 CanBotsAttackWhileInSpawnRoom no RespawnWaveTime 0 PointTemplates { Incendiary_Overclock_Firerate { NoFixup 1 logic_relay { "targetname" "_firerate_ended_proxy" //"spawnflags" "2" "OnTrigger" "!activator,$AddItemAttribute,explosive bullets|100|0,0.4,-1" //delay is duration, recommneded to be kept slightly below actual fire rate cooldown "OnTrigger" "!activator,$RemoveItemAttribute,damage penalty|0,0.4,-1" //delay is duration "OnTrigger" "!activator,$RemoveItemAttribute,crit does no damage|0,0.4,-1" //delay is duration "OnTrigger" "!activator,$AddItemAttribute,mod ammo per shot|10|0,0.4,-1" //delay is duration } $filter_variable { //check if player owns incendiary upgrade "targetname" "_incendiary_has_upgrade" "$name" "IncendiaryOverclockFlag" "$value" "1" "$compare" "equal" "Negated" "0" //apply no_attack for 2 seconds to act as fire rate cooldown //unused implementation as applying no_attack to a minigun also disallows spinning up even if you're already spinning up //which looks janky // "OnPass" "!activator,$AddItemAttribute,no_attack|1|0,0,-1" // "OnPass" "!activator,$RemoveItemAttribute,no_attack|0,2,-1" //delay is duration //instead we can simply remove explosive bullet attribute temporarily //and make the weapon deal no damage (and consume only 1 ammo) to cuck anyone trying to bypass fire rate penalty "OnPass" "!activator,$RemoveItemAttribute,explosive bullets|0,0.1,-1" "OnPass" "!activator,$AddItemAttribute,damage penalty|0.001|0,0,-1" "OnPass" "!activator,$AddItemAttribute,crit does no damage|1|0,0,-1" "OnPass" "!activator,$AddItemAttribute,mod ammo per shot|0|0,0,-1" "OnPass" "_firerate_ended_proxy,Trigger,,0.,-1" } logic_relay { "targetname" "incendiary_on_fired" "spawnflags" "2" //"OnTrigger" "_firerate_ended_proxy,$CancelPending,,0,-1" //prevent overlapping logic "OnTrigger" "_incendiary_has_upgrade,TestActivator,,0,-1" } } Incendiary_Overclock_FireTemplate { OnSpawnOutput { Target "incendiary_on_fired" Action "Trigger" Delay 0 } } Incendiary_Overclock_Apply { NoFixup 1 logic_relay { "targetname" "incendiary_on_apply" "spawnflags" "2" "OnTrigger" "!activator,$SetVar$IncendiaryOverclockFlag,1,0,-1" "OnTrigger" "!activator,$AddItemAttribute,explosive bullets|100|0,0.1,-1" } } } SpawnTemplate Incendiary_Overclock_Firerate SpawnTemplate Incendiary_Overclock_Apply PlayerShootTemplate { Name Incendiary_Overclock_FireTemplate Speed 0 Classname TF_WEAPON_MINIGUN } ExtendedUpgrades { HeavyBalancedB { Name "Balanced Overclock: Incendiary Bombs" Attribute "throwable damage" //dummy attribute to keep the upgrade menu happy when we remove explosive bullet, the explosive bullet attribute is aplied later Cap 1 Increment 1 Cost 0 SecondaryAttributes { "spread penalty" -0.35 "fire rate penalty HIDDEN" 6.0 "damage bonus HIDDEN" 2.0 "self dmg push force decreased" -1.0 "blast dmg to self increased" -1.0 "mod ammo per shot" 10 } Description "Minigun now fires explosive bullets. -35% accuracy, and -20% firing speed" Tier 1 AllowedWeapons { ClassName TF_WEAPON_MINIGUN } OnUpgrade { Output "incendiary_on_apply,Trigger,,0" } OnApply { Output "incendiary_on_apply,Trigger,,0" } OnDowngrade { //remove flag Output "!activator,$SetVar$IncendiaryOverclockFlag,,0" } } } Wave { StartWaveOutput { Target wave_start_relay Action Trigger } DoneOutput { Target wave_finished_relay Action Trigger } WaveSpawn { Where spawnbot TotalCount 5 MaxActive 5 SpawnCount 5 WaitBeforeStarting 0.1 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Class Heavyweapons Attributes SuppressFire } } WaveSpawn { Where spawnbot TotalCount 1 MaxActive 1 SpawnCount 1 WaitBeforeStarting 0 WaitBetweenSpawns 0 TotalCurrency 0 TFBot { Template T_TFBot_Giant_Heavyweapons tag bot_giant Attributes SuppressFire } } } }