WaveSchedule
{
	StartingCurrency 10000
	RespawnWaveTime 1

	ExtraSpawnPoint
	{
		Name "spawnbot_m"
		TeamNum 3
		X "-2430"
		Y "-1848"
		Z "400"
	}
	SpawnTemplate "spectralguntracks"
	SpawnTemplate
	{
		Name "spectralgun2"
		Origin "-2430 -2050 360"
	}
	PointTemplates
	{
		spectralguntracks
		{
			NoFixup 1
			path_track
			{
				"targetname"	"launchtrack_1"
				"target"		"launchtrack_2"
				"origin" "-2430 -2050 360"
			}
			path_track
			{
				"targetname"	"launchtrack_2"
				"target"		"launchtrack_3"
				"origin" "-2251 -1686 532"
			}
			path_track
			{
				"targetname"	"launchtrack_3"
				"target"		"launchtrack_1"
				"origin" "-2707 -1958 360"
			}
		}
		spectralgun2
		{
			func_tracktrain
			{
				"targetname" "launchertrain"
				"mins" "-1 -1 -1"
				"maxs" "1 1 1"
				"disableshadows" "1"
				"movesound" "Halloween.Merasmus_Float"
				"rendermode" "10"
				"spawnflags" "536"
				"target" "launchtrack_1"
			}
			game_text
			{
				"targetname" "launcherinfo"
				"color" "255 0 0"
				"color2" "255 0 0"
				"fadein" "0.5"
				"fadeout" "0.5"
				"holdtime" "10"
				"x" "-1"
				"y" "0.25"
				"message" "Left Click to Fire | Right Click to Swap Weapons"
			}
			// main logic
			trigger_multiple
			{
				"targetname" "launchertrigger"
				"parentname" "launchertrain"
				"origin" "0 0 8"
				"mins" "-32 -32 -8"
				"maxs" "32 32 8"
				"filtername" "filter_red*"
				"spawnflags" "1"
				
				"OnStartTouch" "!self,Disable,,0,-1"
				"OnStartTouch" "!activator,AddOutput,targetname inlauncher,0,-1"
				"OnStartTouch" "launchermove,SetMeasureTarget,inlauncher,0.01,-1"
				"OnStartTouch" "launcherui,Activate,,0,-1"
				"OnStartTouch" "launchercam,Enable,,0,-1"
				"OnStartTouch" "launcherbuildingmaker,ForceSpawn,,0,-1"
				"OnStartTouch" "launcherprop_wep,Enable,,0,-1"
				"OnStartTouch" "launcherparticle,Start,,0,-1"
				"OnStartTouch" "!activator,SetModelScale,0.0001,0,-1"
				"OnStartTouch" "classfilters,TestActivator,,0,-1"
				"OnStartTouch" "launchershoot,$setowner,!activator,0,-1"
				"OnStartTouch" "minimimic,$setowner,!activator,0,-1"
				"OnStartTouch" "spawnsound,PlaySound,,0,-1"
				"OnStartTouch" "launcherinfo,Display,,0,-1"
			}
			ambient_generic
			{
				"targetname" "spawnsound"
				"parentname" "launchertrain"
				"origin" "0 0 72"
				"message" "physics/metal/metal_barrel_impact_hard7.wav" // placeholder probably
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}
			ambient_generic
			{
				"targetname" "spawnsound"
				"parentname" "launchertrain"
				"origin" "0 0 72"
				"message" "physics/metal/metal_barrel_impact_hard7.wav" // placeholder probably
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}
			point_teleport
			{
				"targetname" "launcherofftele"
				"origin" "160 0 24"
				"target" "!activator"
			}
			game_ui
			{
				"targetname" "launcherui"
				"spawnflags" "352"
				"fieldofview" "-1"

				"PlayerOff" "!activator,AddOutput,targetname ,0,-1"
				"PlayerOff" "launchertrigger,Enable,,0.01,-1"
				"PlayerOff" "launchermove,SetMeasureTarget,launcherbase,0,-1"
				"PlayerOff" "launchercam,Disable,,0,-1"
				"PressedAttack" "m1counter,Add,1,0,-1"
				"UnpressedAttack" "m1counter,Subtract,1,0,-1"
				"PlayerOff" "m1counter,SetValue,0,0,-1"
				"PlayerOff" "launcherbuilding,Kill,,0,-1"
				"PlayerOff" "launcherprop*,Disable,,0,-1"
				"PlayerOff" "launcherparticle,Stop,,0,-1"
				"PlayerOff" "!activator,SetModelScale,1,0,-1"
				"PlayerOff" "m2counter,SetValue,0,0,-1"
				"PlayerOff" "launcherofftele,Teleport,,0,-1"
				"PressedAttack2" "m2counter,Add,1,0,-1"
				"UnpressedAttack2" "m2counter,Subtract,1,0,-1"
			}
			info_particle_system
			{
				"targetname" "launcherparticle"
				"parentname" "launchertrain"
				"effect_name" "spell_cast_wheel_red"
			}
			info_particle_system
			{
				"targetname" "launcherparticle"
				"parentname" "launchertrain"
				"origin" "0 0 40"
				"effect_name" "eyeboss_team_sparks_red"
			}
			prop_dynamic
			{
				"model" "models/props_mvm/spectralgun_base.mdl"
				"parentname" "launchertrain"
				"origin" "0 0 40"
				"disableshadows" "1"
			}
			prop_dynamic
			{
				"model" "models/props_mvm/spectralgun.mdl"
				"targetname" "launcherprop_wep"
				"origin" "0 0 40"
				"parentname" "launcherorigin"
				"disableshadows" "1"
				"defaultanim" "rl_idle"
				"startdisabled" "1"
			}
			info_particle_system
			{
				"targetname" "miniparticle"
				"origin" "84 0 40"
				"parentname" "launcherorigin"
				"effect_name" "muzzle_minigun_constant"
			}
			info_target
			{
				"targetname" "launcherbase"
				"parentname" "launchertrain"
				"origin" "0 0 40"
			}
			info_target
			{
				"targetname" "launcherorigin"
				"parentname" "launchertrain"
				"origin" "0 0 40"
			}
			logic_measure_movement
			{
				"targetname" "launchermove"
				"parentname" "launchertrain"
				"origin" "0 0 40"
				"measurereference" "launcherbase"
				"measuretarget" "launcherbase"
				"measuretype" "1"
				"target" "launcherorigin"
				"targetreference" "launcherbase"
				"targetscale" "100"
			}
			point_viewcontrol
			{
				"targetname" "launchercam"
				"origin" "4 0 72"
				"parentname" "launcherorigin"
			}

			// +attack1 logic branch
			math_counter
			{
				"targetname" "m1counter"
				"max" "1"

				"OutValue" "m1compare,SetValueCompare,,0,-1"
			}
			logic_compare
			{
				"targetname" "m1compare"
				"comparevalue" "1"

				"OnEqualTo" "launchershootrelay,Trigger,,0,-1"
				"OnEqualTo" "minigunshootrelay,Trigger,,0,-1"
				"OnLessThan" "minigunwinddownrelay,Trigger,,0,-1"
				"OnEqualTo" "minigunwinduprelay,Trigger,,0,-1"
			}
			logic_relay
			{
				"targetname" "launchershootrelay"
				
				"OnTrigger" "launchershoot,FireOnce,,0,-1"
				"OnTrigger" "!self,Disable,,0,-1"
				"OnTrigger" "!self,Enable,,0.8,-1"			// 0.8 is the refire interval
				"OnTrigger" "m1compare,Compare,,0.8,-1"		// 0.8 is the refire interval
				"OnTrigger" "launchersound,PlaySound,,0,-1"
				"OnTrigger" "launcherprop_wep,SetAnimation,rl_shoot,0,-1"
			}
			tf_point_weapon_mimic
			{
				"targetname" "launchershoot"
				"origin" "84 0 40"
				"teamnum" "2"
				"parentname" "launcherorigin"
				"damage" "70"
				"speedmax" "1100"
				"speedmin" "1100"
				"splashradius" "73"
				"crits" "1"
			}
			ambient_generic
			{
				"targetname" "launchersound"
				"parentname" "launchertrain"
				"origin" "0 0 72"
				"message" "Weapon_RPG.SingleCrit"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}
			ambient_generic
			{
				"targetname" "launchersound"
				"parentname" "launchertrain"
				"origin" "0 0 72"
				"message" "Weapon_RPG.SingleCrit"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}

			logic_relay
			{
				"targetname" "minigunwinduprelay"
				"startdisabled" "1"
				
				"OnTrigger" "windupsound,PlaySound,,0,-1"
				"OnTrigger" "m1compare,Compare,,0.9,-1"
				"OnTrigger" "!self,Disable,,0,-1"
				"OnTrigger" "minigunshootrelay,Enable,,0.9,-1"
				"OnTrigger" "minigunwinddownrelay,Enable,,0.9,-1"
				"OnTrigger" "mini_switchrelay,Disable,,0,-1"
				"OnTrigger" "minigunwinddownrelay,CancelPending,,0,-1"
				"OnTrigger" "launcherprop_wep,SetAnimation,mini_spinup,0,-1"
			}
			ambient_generic
			{
				"targetname" "windupsound"
				"parentname" "launchertrain"
				"origin" "0 0 72"
				"message" "Weapon_Minigun.WindUp"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}
			logic_relay
			{
				"targetname" "minigunshootrelay"
				"startdisabled" "1"

				"OnTrigger" "miniparticle,Start,,0,-1"
				"OnTrigger" "minishootsound,PlaySound,,0,0"
				"OnTrigger" "launcherprop_wep,SetAnimation,mini_spinidle,0,-1"
				"OnTrigger" "minimimic,FireMultiple,4,0,-1"
				"OnTrigger" "minitimer,Enable,,0,-1"
			}
			logic_timer
			{
				"targetname" "minitimer"
				"refiretime" "0.105"
				"startdisabled" "1"

				"OnTimer" "minimimic,FireMultiple,4,0,-1"
			}
			tf_point_weapon_mimic
			{
				"targetname" "minimimic"
				"origin" "84 0 40"
				"teamnum" "2"
				"parentname" "launcherorigin"
				"damage" "12"
				"weapontype" "4"
				"spreadangle" "8"
			}
			ambient_generic
			{
				"targetname" "minishootsound"
				"parentname" "launchertrain"
				"origin" "0 0 72"
				"message" "Weapon_Minigun.Fire"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "16"
			}
			logic_relay
			{
				"targetname" "minigunwinddownrelay"
				"startdisabled" "1"

				"OnTrigger" "minishootsound,StopSound,,0,-1"
				"OnTrigger" "winddownsound,PlaySound,,0,-1"
				"OnTrigger" "miniparticle,Stop,,0,-1"
				"OnTrigger" "minigunwinduprelay,Enable,,0.9,-1"
				"OnTrigger" "m1compare,Compare,,0.9,-1"
				"OnTrigger" "mini_switchrelay,Enable,,0.9,-1"
				"OnTrigger" "minigunshootrelay,Disable,,0,-1"
				"OnTrigger" "!self,Disable,,0,-1"
				"OnTrigger" "minigunwinduprelay,CancelPending,,0,-1"
				"OnTrigger" "m2compare,Compare,,0.91,-1"
				"OnTrigger" "launcherprop_wep,SetAnimation,mini_spindown,0.01,-1"
				"OnTrigger" "minitimer,Disable,,0,-1"
			}
			ambient_generic
			{
				"targetname" "winddownsound"
				"parentname" "launchertrain"
				"origin" "0 0 72"
				"message" "Weapon_Minigun.WindDown"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}

			// +attack2 logic branch
			math_counter
			{
				"targetname" "m2counter"
				"max" "1"

				"OutValue" "m2compare,SetValueCompare,,0,-1"
			}
			logic_compare
			{
				"targetname" "m2compare"
				"comparevalue" "1"
				
				"OnEqualTo" "rl_switchrelay,Trigger,,0.01,-1"
				"OnEqualTo" "mini_switchrelay,Trigger,,0.01,-1"
			}
			logic_relay
			{
				"targetname" "rl_switchrelay"

				"OnTrigger" "launcherprop_wep,SetDefaultAnimation,mini_idle,0.5,-1"
				"OnTrigger" "launcherprop_wep,SetAnimation,rl_swap,0,-1"
				"OnTrigger" "launchershootrelay,Disable,,0,-1"
				"OnTrigger" "launchershootrelay,CancelPending,,0,-1"
				"OnTrigger" "!self,Disable,,0,-1"
				"OnTrigger" "m2compare,Compare,,0.7,-1"
				"OnTrigger" "mini_switchrelay,Enable,,0.71,-1"
				"OnTrigger" "minigunwinduprelay,Enable,,0.71,-1"
				"OnTrigger" "m1compare,Compare,,0.71,-1"
				"OnTrigger" "switchsound,PlaySound,,0,-1"
			}
			logic_relay
			{
				"targetname" "mini_switchrelay"
				"startdisabled" "1"
				
				"OnTrigger" "rl_switchrelay,Enable,,0.71,-1"
				"OnTrigger" "m2compare,Compare,,0.7,-1"
				"OnTrigger" "!self,Disable,,0,-1"
				"OnTrigger" "launchershootrelay,Enable,,0.71,-1"
				"OnTrigger" "launcherprop_wep,SetAnimation,mini_swap,0,-1"
				"OnTrigger" "launcherprop_wep,SetDefaultAnimation,rl_idle,0.5,-1"
				"OnTrigger" "m1compare,Compare,,0.71,-1"
				"OnTrigger" "minigunwinduprelay,Disable,,0,-1"
				"OnTrigger" "switchsound,PlaySound,,0,-1"
			}
			ambient_generic
			{
				"targetname" "switchsound"
				"parentname" "launchertrain"
				"origin" "0 0 72"
				"message" "Halloween.plumes_short"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}
			ambient_generic
			{
				"targetname" "switchsound"
				"parentname" "launchertrain"
				"origin" "0 0 72"
				"message" "Halloween.plumes_short"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}

			// class models
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "1"

				"OnPass" "launcherprop_scout,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_scout"
				"model" "models/player/scout.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "3"

				"OnPass" "launcherprop_soldier,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_soldier"
				"model" "models/player/soldier.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "7"

				"OnPass" "launcherprop_pyro,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_pyro"
				"model" "models/player/pyro.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "4"

				"OnPass" "launcherprop_demo,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_demo"
				"model" "models/player/demo.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "6"

				"OnPass" "launcherprop_heavy,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_heavy"
				"model" "models/player/heavy.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "9"

				"OnPass" "launcherprop_engineer,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_engineer"
				"model" "models/player/engineer.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "5"

				"OnPass" "launcherprop_medic,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_medic"
				"model" "models/player/medic.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "2"

				"OnPass" "launcherprop_sniper,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_sniper"
				"model" "models/player/sniper.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "8"

				"OnPass" "launcherprop_spy,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_spy"
				"model" "models/player/spy.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
		}
		spectralgun
		{
			// torch decoration
			prop_dynamic
			{
				"model" "models/props_viaduct_event/underworld_torch01.mdl"
				"origin" "-72 -72 -48"
				"angles" "0 315 0"
				"disableshadows" "1"
			}
			info_particle_system
			{
				"origin" "-76 -76 120"
				"effect_name" "burning_torch"
				"start_active" "1"
			}
			prop_dynamic
			{
				"model" "models/props_viaduct_event/underworld_torch01.mdl"
				"origin" "-72 72 -48"
				"angles" "0 225 0"
				"disableshadows" "1"
			}
			info_particle_system
			{
				"origin" "-76 76 120"
				"effect_name" "burning_torch"
				"start_active" "1"
			}
			prop_dynamic
			{
				"model" "models/props_viaduct_event/underworld_torch01.mdl"
				"origin" "72 72 -48"
				"angles" "0 135 0"
				"disableshadows" "1"
			}
			info_particle_system
			{
				"origin" "76 76 120"
				"effect_name" "burning_torch"
				"start_active" "1"
			}
			prop_dynamic
			{
				"model" "models/props_viaduct_event/underworld_torch01.mdl"
				"origin" "72 -72 -48"
				"angles" "0 45 0"
				"disableshadows" "1"
			}
			info_particle_system
			{
				"origin" "76 -76 120"
				"effect_name" "burning_torch"
				"start_active" "1"
			}

			// main logic
			trigger_multiple
			{
				"targetname" "launchertrigger"
				"origin" "0 0 8"
				"mins" "-32 -32 -8"
				"maxs" "32 32 8"
				"filtername" "filter_red*"
				"spawnflags" "1"
				
				"OnStartTouch" "!self,Disable,,0,-1"
				"OnStartTouch" "!activator,AddOutput,targetname inlauncher,0,-1"
				"OnStartTouch" "launchermove,SetMeasureTarget,inlauncher,0.01,-1"
				"OnStartTouch" "launcherui,Activate,,0,-1"
				"OnStartTouch" "launchercam,Enable,,0,-1"
				"OnStartTouch" "launcherbuildingmaker,ForceSpawn,,0,-1"
				"OnStartTouch" "launcherprop_wep,Enable,,0,-1"
				"OnStartTouch" "launcherparticle,Start,,0,-1"
				"OnStartTouch" "!activator,SetModelScale,0.0001,0,-1"
				"OnStartTouch" "classfilters,TestActivator,,0,-1"
				"OnStartTouch" "launchershoot,$setowner,!activator,0,-1"
				"OnStartTouch" "minimimic,$setowner,!activator,0,-1"
				"OnStartTouch" "spawnsound,PlaySound,,0,-1"
			}
			ambient_generic
			{
				"targetname" "spawnsound"
				"origin" "0 0 72"
				"message" "physics/metal/metal_barrel_impact_hard7.wav" // placeholder probably
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}
			ambient_generic
			{
				"targetname" "spawnsound"
				"origin" "0 0 72"
				"message" "physics/metal/metal_barrel_impact_hard7.wav" // placeholder probably
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}
			point_teleport
			{
				"targetname" "launcherofftele"
				"origin" "160 0 24"
				"target" "!activator"
			}
			game_ui
			{
				"targetname" "launcherui"
				"spawnflags" "352"
				"fieldofview" "-1"

				"PlayerOff" "!activator,AddOutput,targetname ,0,-1"
				"PlayerOff" "launchertrigger,Enable,,0.01,-1"
				"PlayerOff" "launchermove,SetMeasureTarget,launcherbase,0,-1"
				"PlayerOff" "launchercam,Disable,,0,-1"
				"PressedAttack" "m1counter,Add,1,0,-1"
				"UnpressedAttack" "m1counter,Subtract,1,0,-1"
				"PlayerOff" "m1counter,SetValue,0,0,-1"
				"PlayerOff" "launcherbuilding,Kill,,0,-1"
				"PlayerOff" "launcherprop*,Disable,,0,-1"
				"PlayerOff" "launcherparticle,Stop,,0,-1"
				"PlayerOff" "!activator,SetModelScale,1,0,-1"
				"PlayerOff" "m2counter,SetValue,0,0,-1"
				"PlayerOff" "launcherofftele,Teleport,,0,-1"
				"PressedAttack2" "m2counter,Add,1,0,-1"
				"UnpressedAttack2" "m2counter,Subtract,1,0,-1"
			}
			info_particle_system
			{
				"targetname" "launcherparticle"
				"effect_name" "spell_cast_wheel_red"
			}
			info_particle_system
			{
				"targetname" "launcherparticle"
				"origin" "0 0 40"
				"effect_name" "eyeboss_team_sparks_red"
			}
			prop_dynamic
			{
				"model" "models/props_mvm/spectralgun_base.mdl"
				"origin" "0 0 40"
				"disableshadows" "1"
			}
			prop_dynamic
			{
				"model" "models/props_mvm/spectralgun.mdl"
				"targetname" "launcherprop_wep"
				"origin" "0 0 40"
				"parentname" "launcherorigin"
				"disableshadows" "1"
				"defaultanim" "rl_idle"
				"startdisabled" "1"
			}
			info_particle_system
			{
				"targetname" "miniparticle"
				"origin" "84 0 40"
				"parentname" "launcherorigin"
				"effect_name" "muzzle_minigun_constant"
			}
			info_target
			{
				"targetname" "launcherbase"
				"origin" "0 0 40"
			}
			info_target
			{
				"targetname" "launcherorigin"
				"origin" "0 0 40"
			}
			logic_measure_movement
			{
				"targetname" "launchermove"
				"origin" "0 0 40"
				"measurereference" "launcherbase"
				"measuretarget" "launcherbase"
				"measuretype" "1"
				"target" "launcherorigin"
				"targetreference" "launcherbase"
				"targetscale" "100"
			}
			point_viewcontrol
			{
				"targetname" "launchercam"
				"origin" "4 0 72"
				"parentname" "launcherorigin"
			}

			// +attack1 logic branch
			math_counter
			{
				"targetname" "m1counter"
				"max" "1"

				"OutValue" "m1compare,SetValueCompare,,0,-1"
			}
			logic_compare
			{
				"targetname" "m1compare"
				"comparevalue" "1"

				"OnEqualTo" "launchershootrelay,Trigger,,0,-1"
				"OnEqualTo" "minigunshootrelay,Trigger,,0,-1"
				"OnLessThan" "minigunwinddownrelay,Trigger,,0,-1"
				"OnEqualTo" "minigunwinduprelay,Trigger,,0,-1"
			}
			logic_relay
			{
				"targetname" "launchershootrelay"
				
				"OnTrigger" "launchershoot,FireOnce,,0,-1"
				"OnTrigger" "!self,Disable,,0,-1"
				"OnTrigger" "!self,Enable,,0.8,-1"			// 0.8 is the refire interval
				"OnTrigger" "m1compare,Compare,,0.8,-1"		// 0.8 is the refire interval
				"OnTrigger" "launchersound,PlaySound,,0,-1"
				"OnTrigger" "launcherprop_wep,SetAnimation,rl_shoot,0,-1"
			}
			tf_point_weapon_mimic
			{
				"targetname" "launchershoot"
				"origin" "84 0 40"
				"teamnum" "2"
				"parentname" "launcherorigin"
				"damage" "70"
				"speedmax" "1100"
				"speedmin" "1100"
				"splashradius" "73"
				"crits" "1"
			}
			ambient_generic
			{
				"targetname" "launchersound"
				"origin" "0 0 72"
				"message" "Weapon_RPG.SingleCrit"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}
			ambient_generic
			{
				"targetname" "launchersound"
				"origin" "0 0 72"
				"message" "Weapon_RPG.SingleCrit"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}

			logic_relay
			{
				"targetname" "minigunwinduprelay"
				"startdisabled" "1"
				
				"OnTrigger" "windupsound,PlaySound,,0,-1"
				"OnTrigger" "m1compare,Compare,,0.9,-1"
				"OnTrigger" "!self,Disable,,0,-1"
				"OnTrigger" "minigunshootrelay,Enable,,0.9,-1"
				"OnTrigger" "minigunwinddownrelay,Enable,,0.9,-1"
				"OnTrigger" "mini_switchrelay,Disable,,0,-1"
				"OnTrigger" "minigunwinddownrelay,CancelPending,,0,-1"
				"OnTrigger" "launcherprop_wep,SetAnimation,mini_spinup,0,-1"
			}
			ambient_generic
			{
				"targetname" "windupsound"
				"origin" "0 0 72"
				"message" "Weapon_Minigun.WindUp"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}
			logic_relay
			{
				"targetname" "minigunshootrelay"
				"startdisabled" "1"

				"OnTrigger" "miniparticle,Start,,0,-1"
				"OnTrigger" "minishootsound,PlaySound,,0,0"
				"OnTrigger" "launcherprop_wep,SetAnimation,mini_spinidle,0,-1"
				"OnTrigger" "minimimic,FireMultiple,4,0,-1"
				"OnTrigger" "minitimer,Enable,,0,-1"
			}
			logic_timer
			{
				"targetname" "minitimer"
				"refiretime" "0.105"
				"startdisabled" "1"

				"OnTimer" "minimimic,FireMultiple,4,0,-1"
			}
			tf_point_weapon_mimic
			{
				"targetname" "minimimic"
				"origin" "84 0 40"
				"teamnum" "2"
				"parentname" "launcherorigin"
				"damage" "12"
				"weapontype" "4"
				"spreadangle" "8"
			}
			ambient_generic
			{
				"targetname" "minishootsound"
				"origin" "0 0 72"
				"message" "Weapon_Minigun.Fire"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "16"
			}
			logic_relay
			{
				"targetname" "minigunwinddownrelay"
				"startdisabled" "1"

				"OnTrigger" "minishootsound,StopSound,,0,-1"
				"OnTrigger" "winddownsound,PlaySound,,0,-1"
				"OnTrigger" "miniparticle,Stop,,0,-1"
				"OnTrigger" "minigunwinduprelay,Enable,,0.9,-1"
				"OnTrigger" "m1compare,Compare,,0.9,-1"
				"OnTrigger" "mini_switchrelay,Enable,,0.9,-1"
				"OnTrigger" "minigunshootrelay,Disable,,0,-1"
				"OnTrigger" "!self,Disable,,0,-1"
				"OnTrigger" "minigunwinduprelay,CancelPending,,0,-1"
				"OnTrigger" "m2compare,Compare,,0.91,-1"
				"OnTrigger" "launcherprop_wep,SetAnimation,mini_spindown,0.01,-1"
				"OnTrigger" "minitimer,Disable,,0,-1"
			}
			ambient_generic
			{
				"targetname" "winddownsound"
				"origin" "0 0 72"
				"message" "Weapon_Minigun.WindDown"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}

			// +attack2 logic branch
			math_counter
			{
				"targetname" "m2counter"
				"max" "1"

				"OutValue" "m2compare,SetValueCompare,,0,-1"
			}
			logic_compare
			{
				"targetname" "m2compare"
				"comparevalue" "1"
				
				"OnEqualTo" "rl_switchrelay,Trigger,,0.01,-1"
				"OnEqualTo" "mini_switchrelay,Trigger,,0.01,-1"
			}
			logic_relay
			{
				"targetname" "rl_switchrelay"

				"OnTrigger" "launcherprop_wep,SetDefaultAnimation,mini_idle,0.5,-1"
				"OnTrigger" "launcherprop_wep,SetAnimation,rl_swap,0,-1"
				"OnTrigger" "launchershootrelay,Disable,,0,-1"
				"OnTrigger" "launchershootrelay,CancelPending,,0,-1"
				"OnTrigger" "!self,Disable,,0,-1"
				"OnTrigger" "m2compare,Compare,,0.7,-1"
				"OnTrigger" "mini_switchrelay,Enable,,0.71,-1"
				"OnTrigger" "minigunwinduprelay,Enable,,0.71,-1"
				"OnTrigger" "m1compare,Compare,,0.71,-1"
				"OnTrigger" "switchsound,PlaySound,,0,-1"
			}
			logic_relay
			{
				"targetname" "mini_switchrelay"
				"startdisabled" "1"
				
				"OnTrigger" "rl_switchrelay,Enable,,0.71,-1"
				"OnTrigger" "m2compare,Compare,,0.7,-1"
				"OnTrigger" "!self,Disable,,0,-1"
				"OnTrigger" "launchershootrelay,Enable,,0.71,-1"
				"OnTrigger" "launcherprop_wep,SetAnimation,mini_swap,0,-1"
				"OnTrigger" "launcherprop_wep,SetDefaultAnimation,rl_idle,0.5,-1"
				"OnTrigger" "m1compare,Compare,,0.71,-1"
				"OnTrigger" "minigunwinduprelay,Disable,,0,-1"
				"OnTrigger" "switchsound,PlaySound,,0,-1"
			}
			ambient_generic
			{
				"targetname" "switchsound"
				"origin" "0 0 72"
				"message" "Halloween.plumes_short"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}
			ambient_generic
			{
				"targetname" "switchsound"
				"origin" "0 0 72"
				"message" "Halloween.plumes_short"
				"health" "10"
				"pitch" "100"
				"radius" "512"
				"spawnflags" "48"
			}

			// class models
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "1"

				"OnPass" "launcherprop_scout,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_scout"
				"model" "models/player/scout.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "3"

				"OnPass" "launcherprop_soldier,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_soldier"
				"model" "models/player/soldier.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "7"

				"OnPass" "launcherprop_pyro,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_pyro"
				"model" "models/player/pyro.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "4"

				"OnPass" "launcherprop_demo,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_demo"
				"model" "models/player/demo.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "6"

				"OnPass" "launcherprop_heavy,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_heavy"
				"model" "models/player/heavy.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "9"

				"OnPass" "launcherprop_engineer,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_engineer"
				"model" "models/player/engineer.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "5"

				"OnPass" "launcherprop_medic,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_medic"
				"model" "models/player/medic.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "2"

				"OnPass" "launcherprop_sniper,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_sniper"
				"model" "models/player/sniper.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
			filter_tf_class
			{
				"targetname" "classfilters"
				"tfclass" "8"

				"OnPass" "launcherprop_spy,Enable,,0,-1"
			}
			prop_dynamic
			{
				"targetname" "launcherprop_spy"
				"model" "models/player/spy.mdl"
				"origin" "4 0 10"
				"defaultanim" "kart_idle"
				"disableshadows" "1"
				"disablebonefollowers" "1"
				"parentname" "launcherorigin"
				"startdisabled" "1"
			}
		}
	}
	
	Wave
	{
		StartWaveOutput
		{
			Target wave_start_relay
			Action Trigger
		}
		DoneOutput
		{
			Target wave_finished_relay
			Action Trigger
		}
		WaveSpawn
		{
			Where spawnbot
			TotalCount 1
			WaitBeforeStarting 9999
			TFBot { Class Scout ClassIcon hellmet_blank }
		}
		WaveSpawn
		{
			Where spawnbot_m
			MaxActive 1
			Support 1
			TFBot
			{
				Class Soldier
				Skill Expert
				Attributes IgnoreFlag
				Attributes SuppressFire
				Attributes DisableDodge
				CharacterAttributes
				{
					"no_jump" 1
					"move speed bonus" 0.001
					"damage force increase" 0
				}
			}
		}
	}
}