// Decorate

// Constants
// Beam = 18 DD = 32
//Beam = 0 dd = 4 for  shouder = 36

// Actors
ACTOR CODBW_Flashlight : fastprojectile
{
  Radius 1
  Height 1
  Speed 200
  Damage 0
  RenderStyle add
  scale 0.4
  Alpha 0.9
  PROJECTILE
  +DONTSPLASH
  +NOINTERACTION
  States
  {
  Spawn:
    TNT1 A 1 bright 
    loop 
  Death:
     TNT1 A 1 A_CustomMissile("FlashLightBeam1",0,0,0)
	 TNT1 A 0 A_CustomMissile("FlashLightBeam2",0,0,0)
	 TNT1 A 0 A_CustomMissile("FlashLightBeam3",0,0,0)
	 TNT1 A 0 A_CustomMissile("FlashLightBeam4",0,0,0)
	 TNT1 A 0 A_CustomMissile("FlashLightBeam5",0,0,0)
     stop
  }
}

ACTOR FlashlightSpawner : CustomInventory
{
	States
	{
	Pickup:
	    TNT1 F 0 A_FireCustomMissile("FlashLightBeam1", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("FlashLightBeam2", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("FlashLightBeam3", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("CODBW_Flashlight", 0, 0, 0, 3)
		TNT1 A 0 A_CustomMissile("FlashLightBeam4", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam5", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam6", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam7", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam8", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam9", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam10", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam11", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam12", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam13", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam14", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam15", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam16", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam17", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam18", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam19", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam1", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam2", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam3", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("CODBW_Flashlight", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		Stop
	}
}

ACTOR FlashLightBeam
{
	+NOGRAVITY
	+NOCLIP
	+NOBLOCKMAP
	+DONTSPLASH
	+THRUACTORS
	Renderstyle None
	Radius 1
	Height 1
	States 
	{
	Spawn:
		TNT1 AABC 1
		Stop
	}
}

ACTOR FlashLightBeam15 : FlashLightBeam
{
	Speed  100
}

ACTOR FlashLightBeam1 : FlashLightBeam
{
	Speed  8
}

ACTOR FlashLightBeam2 : FlashLightBeam
{
	Speed  4
}

ACTOR FlashLightBeam3 : FlashLightBeam
{
	Speed  3
}

ACTOR FlashLightBeam4 : FlashLightBeam
{
	Speed  4
}

ACTOR FlashLightBeam5 : FlashLightBeam
{
	Speed  5
}

ACTOR FlashLightBeam6 : FlashLightBeam
{
	Speed  7
}

ACTOR FlashLightBeam7 : FlashLightBeam
{
	Speed  9
}

ACTOR FlashLightBeam8 : FlashLightBeam
{
	Speed  12
}

ACTOR FlashLightBeam9 : FlashLightBeam
{
	Speed  16
}

ACTOR FlashLightBeam10 : FlashLightBeam
{
	Speed  21
}

ACTOR FlashLightBeam11 : FlashLightBeam
{
	Speed  28
}

ACTOR FlashLightBeam12 : FlashLightBeam
{
	Speed  37
}

ACTOR FlashLightBeam13 : FlashLightBeam
{
	Speed  50
}

ACTOR FlashLightBeam14 : FlashLightBeam
{
	Speed  65
}

ACTOR FlashLightBeam16 : FlashLightBeam
{
	Speed  116
}

ACTOR FlashLightBeam17 : FlashLightBeam
{
	Speed  155
}

ACTOR FlashLightBeam18 : FlashLightBeam
{
	Speed  207
}

ACTOR FlashLightBeam19 : FlashLightBeam
{
	Speed  276
}

//BEAM LOW
ACTOR FlashlightLowSpawner : CustomInventory
{
	States
	{
	Pickup:
	    TNT1 F 0 A_FireCustomMissile("FlashLightBeam1", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("FlashLightBeam2", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("FlashLightBeam3", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("CODBW_Flashlight", 0, 0, 0, 3)
		//TNT1 A 0 A_CustomMissile("FlashLightBeam1", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam2", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam3", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("CODBW_Flashlight", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		Stop
	}
}

ACTOR FlashLightBeamLow
{
	+NOGRAVITY
	+NOCLIP
	+NOBLOCKMAP
	+DONTSPLASH
	+THRUACTORS
	Renderstyle None
	Radius 1
	Height 1
	States 
	{
	Spawn:
		TNT1 A 0
		TNT1 ABC 1
		Stop
	}
}

ACTOR FlashLightBeam1Low : FlashLightBeamLow
{
	Speed  8
}

ACTOR FlashLightBeam2Low : FlashLightBeamLow
{
	Speed  28
}

ACTOR FlashLightBeam3Low : FlashLightBeamLow
{
	Speed  48
}

ACTOR FlashLightBeam4Low : FlashLightBeamLow
{
	Speed  68
}

ACTOR FlashLightBeam5Low : FlashLightBeamLow
{
	Speed  88
}

ACTOR FlashLightBeam6Low : FlashLightBeamLow
{
	Speed  108
}

ACTOR FlashLightBeam7Low : FlashLightBeamLow
{
	Speed  128
}

ACTOR FlashLightBeam8Low : FlashLightBeamLow
{
	Speed  148
}

ACTOR FlashLightBeam9Low : FlashLightBeamLow
{
	Speed  168
}

//DD full
ACTOR FlashlightDDSpawner : CustomInventory
{
	States
	{
	Pickup:
	    TNT1 F 0 A_FireCustomMissile("FlashLightBeam1", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("FlashLightBeam2", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("FlashLightBeam3", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("CODBW_Flashlight", 0, 0, 0, 3)
		//TNT1 A 0 A_CustomMissile("FlashLightBeam1", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam2", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam3", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("CODBW_Flashlight", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		Stop
	}
}

ACTOR FlashLightBeamDD
{
	+NOGRAVITY
	+NOBLOCKMAP
	+DONTSPLASH
	+THRUACTORS
	+NOCLIP
	Renderstyle None
	Radius 1
	Height 1
	States 
	{
	Spawn:
		TNT1 A 0
		TNT1 ABC 1
	Crash:
	Death:
	XDeath:
		Stop
	}
}

ACTOR FlashLightBeam1DD : FlashLightBeamDD
{
	Speed  8
}

ACTOR FlashLightBeam2DD : FlashLightBeamDD
{
	Speed  20
}

ACTOR FlashLightBeam3DD : FlashLightBeamDD
{
	Speed  28
}

ACTOR FlashLightBeam4DD : FlashLightBeamDD
{
	Speed  40
}

ACTOR FlashLightBeam5DD : FlashLightBeamDD
{
	Speed  48
}

ACTOR FlashLightBeam6DD : FlashLightBeamDD
{
	Speed  60
}

ACTOR FlashLightBeam7DD : FlashLightBeamDD
{
	Speed  68
}

ACTOR FlashLightBeam8DD : FlashLightBeamDD
{
	Speed  80
}

ACTOR FlashLightBeam9DD : FlashLightBeamDD
{
	Speed  88
}

ACTOR FlashLightBeam10DD : FlashLightBeamDD
{
	Speed  100
}

ACTOR FlashLightBeam11DD : FlashLightBeamDD
{
	Speed  108
}

ACTOR FlashLightBeam12DD : FlashLightBeamDD
{
	Speed  120
}

ACTOR FlashLightBeam13DD : FlashLightBeamDD
{
	Speed  128
}

ACTOR FlashLightBeam14DD : FlashLightBeamDD
{
	Speed  136
}

ACTOR FlashLightBeam15DD : FlashLightBeamDD
{
	Speed  148
}

ACTOR FlashLightBeam16DD : FlashLightBeamDD
{
	Speed  156
}

ACTOR FlashLightBeam17DD : FlashLightBeamDD
{
	Speed  168
}

ACTOR FlashLightBeam18DD : FlashLightBeamDD
{
	Speed  176
}

ACTOR FlashLightBeam19DD : FlashLightBeamDD
{
	Speed  188
}

ACTOR FlashLightBeam20DD : FlashLightBeamDD
{
	Speed  196
}

ACTOR FlashLightBeam21DD : FlashLightBeamDD
{
	Speed  208
}

ACTOR FlashLightBeam22DD : FlashLightBeamDD
{
	Speed  216
}

ACTOR FlashLightBeam23DD : FlashLightBeamDD
{
	Speed  224
}

ACTOR FlashLightBeam24DD : FlashLightBeamDD
{
	Speed  236
}

//DD LOW
ACTOR FlashlightDDLowSpawner : CustomInventory
{
	States
	{
	Pickup:
	    TNT1 F 0 A_FireCustomMissile("FlashLightBeam1", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("FlashLightBeam2", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("FlashLightBeam3", 0, 0, 0, 3)
		TNT1 F 0 A_FireCustomMissile("CODBW_Flashlight", 0, 0, 0, 3)
		//TNT1 A 0 A_CustomMissile("FlashLightBeam1", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam2", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("FlashLightBeam3", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		//TNT1 A 0 A_CustomMissile("CODBW_Flashlight", ACS_NamedExecuteWithResult("FlashLightVerticalPos", 0), ACS_NamedExecuteWithResult("FlashLightHorizontalPos", 0), 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		Stop
	}
}

ACTOR FlashLightBeamDDL
{
	+NOGRAVITY
	+NOBLOCKMAP
	+DONTSPLASH
	+THRUACTORS
	+NOCLIP
	Renderstyle None
	Radius 1
	Height 1
	States 
	{
	Spawn:
		TNT1 A 0
		TNT1 ABC 1
	Crash:
	Death:
	XDeath:
		Stop
	}
}

ACTOR FlashLightBeam1DDL : FlashLightBeamDDL
{
	Speed  8
}

ACTOR FlashLightBeam2DDL : FlashLightBeamDDL
{
	Speed  20
}

ACTOR FlashLightBeam3DDL : FlashLightBeamDDL
{
	Speed  28
}

ACTOR FlashLightBeam4DDL : FlashLightBeamDDL
{
	Speed  40
}

ACTOR FlashLightBeam5DDL : FlashLightBeamDDL
{
	Speed  48
}

ACTOR FlashLightBeam6DDL : FlashLightBeamDDL
{
	Speed  60
}

ACTOR FlashLightBeam7DDL : FlashLightBeamDDL
{
	Speed  68
}

ACTOR FlashLightBeam8DDL : FlashLightBeamDDL
{
	Speed  80
}

ACTOR FlashLightBeam9DDL : FlashLightBeamDDL
{
	Speed  88
}

ACTOR FlashLightBeam10DDL : FlashLightBeamDDL
{
	Speed  100
}

ACTOR FlashLightBeam11DDL : FlashLightBeamDDL
{
	Speed  108
}

ACTOR FlashLightBeam12DDL : FlashLightBeamDDL
{
	Speed  120
}