Actor "Tech Vulcan" : Weapon
{
  Tag "Tech Vulcan"
  Weapon.Selectionorder 4050
  Weapon.KickBack 100
  Weapon.AmmoType "DemonAmmo"
  Weapon.AmmoGive 80
  Weapon.AmmoUse 1
  Weapon.AmmoType2 "DemonAmmo"
  Weapon.AmmoUse2 10
  Weapon.PreferredSkin "Minigun-Marine"
  Inventory.PickupMessage "Tech Vulcan"
  Inventory.PickupSound "vulcan/pickup"
  Weapon.Upsound "vulcan/pickup"
  Obituary "%o got plasmaficated rapidly by %k's Tech Vulcan"
  Decal DoomImpScorch
+WEAPON.NOAUTOAIM
+INVENTORY.UNDROPPABLE
  States
  {
  Spawn:
    VULC Z -1
    Loop
	Ready:
    VULC A 1 A_WeaponReady
    Loop
  Deselect:
  	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	VULC A 0 A_Lower
    VULC A 1 A_Lower
    Goto Deselect+4
  Select:
    VULC A 0 A_Raise
    VULC A 1 A_Raise
    Loop
  Fire:
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_PlayWeaponSound("vulcan/fire")
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 A 0 A_SpawnItemEx("RedCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    VULC A 0 A_FireBullets(4.3,2.6,-1,15,"VulcanPlasmaPuff")
	VULC B 1 Bright Offset(0,36)
	VULC A 1 Offset(0,40)
	VULC A 1 Offset(0,36)
	VULC A 1 Offset(0,32)
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_PlayWeaponSound("vulcan/fire")
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 A 0 A_SpawnItemEx("RedCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    VULC A 0 A_FireBullets(4.3,2.6,-1,15,"VulcanPlasmaPuff")
	VULC C 1 Bright Offset(0,36)
	VULC A 1 Offset(0,40)
	VULC A 1 Offset(0,36)
	VULC A 1 Offset(0,32)
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_PlayWeaponSound("vulcan/fire")
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 A 0 A_SpawnItemEx("RedCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
    VULC A 0 Bright A_FireBullets(4.3,2.6,-1,15,"VulcanPlasmaPuff")	
	VULC D 1 Bright Offset(0,36)
	VULC A 1 Offset(0,40)
	VULC A 1 Offset(0,36)
	VULC A 1 Offset(0,32)
	VULC A 1 Bright A_ReFire
    VULC A 4
    VULC A 6 A_ReFire
    Goto Ready	
  AltFire:
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_PlayWeaponSound("vulcan/altfire")
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAA 0 A_SpawnItemEx("RedCasing",25,-8,25,Random(2,4),Random(-3,-6),Random(3,6),0)
	VULC E 0 A_FireCustomMissile("VulcanLazer",0,0,-8,8)
	VULC E 0 A_FireCustomMissile("VulcanLazer",0,0,8,8)
    VULC E 0 A_FireCustomMissile("VulcanLazer",0,1,0,8)
    VULC E 2 Bright Offset(0,36)
	VULC A 1 Offset(0,40)
	VULC A 1 Offset(0,44)
	VULC A 1 Offset(0,48)
	VULC A 1 Offset(0,44)
	VULC A 1 Offset(0,40)
	VULC A 1 Offset(0,36)
	VULC A 1 Offset(0,32)
	VULC A 7 Bright
    VULC A 6 A_ReFire
    Goto Ready
  Flash:
    TNT1 A 1 A_Light1
    TNT1 A 1 A_Light2
    TNT1 A 1 A_Light1
    TNT1 A 1 A_Light0
    Stop
  }
}


Actor VulcanPlasmaPuff
{
  Radius 6
  Height 6
  +ACTIVATEIMPACT
  +ACTIVATEPCROSS
  +THRUSPECIES
  scale 0.5 
  Renderstyle Add
  Alpha 0.75
  Decal Bulletchip
  DamageType "Player"
  States
  {
  Spawn:
    TNT1 A 0
  	TNT1 A 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
	TNT1 AAA 0 A_CustomMissile("Kaboom10", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
    RFOG A 3 Bright A_Explode(26,48)
    RFOG BCDEF 3 Bright
    Stop
  }
}

Actor VulcanLazer : FastProjectile
{
  Radius 6
  Height 8
  Speed 75
  Damage 1
  Scale 0.45
  Species "Player"
  DamageType "Player"
  RenderStyle Add
  DeathSound "monsters/newfireexplode"
  Decal DoomImpScorch
  MissileType "VulcanLazerEffect"
  ReactionTime 35
  Projectile
  +RIPPER
  +BLOODLESSIMPACT
  +MTHRUSPECIES
  States
  {
  Spawn:
    TNT1 A 1 A_CountDown
    Loop
  Death:
	TNT1 A 0
  	TNT1 A 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_SpawnItemEX("VulcanLazerEffect", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAA 0 A_CustomMissile("Kaboom10", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))	
    TNT1 A 1
    Stop
  }
}

Actor VulcanLazerEffect
{
  +NOBLOCKMAP
  +NOGRAVITY
  +PAINLESS
  +FORCERADIUSDMG
  Scale 0.22
  RenderStyle Add
  DamageType "Player"
  MissileType ""
  Radius 1
  Height 2
  States
  {
  Spawn:
    VUEL A 0 A_Explode(4,8)
    VUEL A 1 bright A_FadeOut(0.3)
    Loop
  }
}