actor OpticRayWep_NormalBar : NormalBar{args 215, 41}
Actor OpticRayWep : BaseMM8BDMWep
{
Weapon.AmmoUse 3
Weapon.AmmoGive 36
Weapon.SlotNumber 3
Obituary "$OB_OPTICRAY"
Tag "$TAG_OPTICRAY"
Inventory.Pickupmessage "$PU_OPTICRAY"
weapon.ammotype "OpticRayAmmo"
inventory.icon "ORAYICON"
States
{
SpawnLoop:
ORAY Z -1
loop
Ready:
ORAY A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_OPTICRAY)
ORAY A 1 A_WeaponReady
Goto Ready+1
ReadyC: Goto Ready+1
Deselect:
ORAY A 0
Goto DeselectSwap
Select:
ORAY A 0
Goto SelectSwap
Fire:
ORAY A 0 A_JumpIfNoAmmo("NoAmmo")
ORAY A 0 A_PlaySoundEx("misc/minilaser","Weapon")
ORAY A 0 A_FireCustomMissile("OpticRay",0,1,4,0,0,-8)
ORAY BC 1
ORAY A 0 A_PlaySoundEx("misc/minilaser","Weapon")
ORAY A 0 A_FireCustomMissile("OpticRay",0,0,4,0,0,-4)
ORAY BC 1
ORAY A 0 A_PlaySoundEx("misc/minilaser","Weapon")
ORAY A 0 A_FireCustomMissile("OpticRay",0,0,4,0,0,0)
ORAY BC 1
ORAY A 0 A_PlaySoundEx("misc/minilaser","Weapon")
ORAY A 0 A_FireCustomMissile("OpticRay",0,0,4,0,0,4)
ORAY BC 1
ORAY A 0 A_PlaySoundEx("misc/minilaser","Weapon")
ORAY A 0 A_FireCustomMissile("OpticRay",0,0,4,0,0,8)
ORAY BC 1
ORAY A 8
ORAY A 0 A_Refire
Goto Ready+1
NoAmmo:
ORAY A 0 ACS_NamedExecuteAlways("core_noammo",0)
Goto Ready+1
}
}

Actor OpticRayAmmo : Ammo
{
	Inventory.Amount 1
	Inventory.MaxAmount 36
	+INVENTORY.IGNORESKILL
}

actor OpticRay : BasicProjectile
{
+BRIGHT
PROJECTILE
Radius 16
damagetype "OpticRay"
obituary "$OB_OPTICRAY"
Height 16
Damage (CallACS("vile_cbm_damage",8))
Speed 45
scale 2.5
States
{
Spawn:
YBIT GGG 1 A_SpawnItemEx("OpticRayFX")
YBIT G 0 A_ChangeFlag("NOINTERACTION",0)
loop
}
}

actor OpticRayFX : BasicGraphicEffect
{
+BRIGHT
scale 2.5
renderstyle add
alpha 1.0
+NOINTERACTION
+NOGRAVITY
States
{
SpawnFrame:
YBIT G 1 A_FadeOut(0.1)
loop
}
}
