Actor TechVulcan : Weapon
{
  Tag "Tech Vulcan"
  Weapon.Selectionorder 4050
  Weapon.KickBack 100
  Weapon.AmmoType "DemonAmmo"
  Weapon.AmmoGive 80
  Weapon.AmmoUse 1
  Weapon.AmmoType2 "DemonAmmo"
  Weapon.AmmoUse2 1
  Weapon.PreferredSkin "Minigun-Marine"
  Inventory.PickupMessage "Tech Vulcan"
  Inventory.PickupSound "weapons/demontechload"
  Obituary "%o got plasmaficated rapidly by %k's tech vulcan"
  Decal DoomImpScorch
  States
  {
  Spawn:
		VULC Z -1
		Loop
  Ready:
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
		TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
		VULC A 1 A_WeaponReady
		Loop
  Deselect:
		VULC A 1 Offset(-1,35)
		VULC A 1 Offset(-15,39)
		VULC A 1 Offset(-35,45)
		VULC A 1 Offset(-55,52)
		VULC A 1 Offset(-70,60)
		VULC A 1 Offset(-90,69)
		VULC A 1 Offset(-105,89)
		VULC A 1 Offset(-125,102)
		VULC A 1 Offset(-125,102)
		VULC A 1 Offset(-155,108)
		VULC A 1 Offset(-155,150)
	DeselectRaise:
		VULC A 1 Offset(-1,0)
		VULC A 1 A_Lower
		loop
  Select:
		VULC A 1 Offset(-90,69)
		VULC A 1 Offset(-70,60)
		VULC A 1 Offset(-55,52)
		VULC A 1 Offset(-35,45)
		VULC A 1 Offset(-15,39)
		VULC A 1 Offset(-1,35)
	SelectRaise:
		VULC A 1 A_Raise
  Fire:
		TNT1 A 0 A_GunFlash
		TNT1 A 0 A_PlayWeaponSound("plasmaminigun/fire")
		TNT1 A 0 Radius_Quake(2,2,0,1,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("plasmaminigun/fire")
		TNT1 A 0 Radius_Quake(2,2,0,1,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("plasmaminigun/fire")
		TNT1 A 0 Radius_Quake(2,2,0,1,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_PlaySound("weapons/demontechfire")
		TNT1 A 0 Radius_Quake(2,2,0,1,0)
		VULC A 0 A_FireCustomMissile("DemonTechProjectile",0,-4,-8,0)
		AULC 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_PlaySound("weapons/demontechfire")
		TNT1 A 0 Radius_Quake(2,2,0,1,0)
		VULC A 0 A_FireCustomMissile("DemonTechProjectile",0,0,8,0)
		AULC 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_PlaySound("weapons/demontechfire")
		TNT1 A 0 Radius_Quake(2,2,0,1,0)
		VULC A 0 Bright A_FireCustomMissile("DemonTechProjectile",0,0,0,0)
		AULC 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	
	GrenadeCheck:
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
		TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
		Goto Ready
	GrenadeToss:
		TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
		VULC A 1 Offset(-1,35)
		VULC A 1 Offset(-15,39)
		VULC A 1 Offset(-35,45)
		VULC A 1 Offset(-55,52)
		VULC A 1 Offset(-70,60)
		VULC A 1 Offset(-90,69)
		VULC A 1 Offset(-105,89)
		VULC A 1 Offset(-125,102)
		VULC A 1 Offset(-125,102)
		VULC A 1 Offset(-155,108)
		VULC A 1 Offset(-155,150)
		TNT1 A 0 Offset(-1,35)
		TNT1 A 6
		HGRN ABC 1
		HGRN D 3
		HGRN EFGHI 2
		TNT1 A 14 A_PlayWeaponSound("weapons/hgrenadepin")
		TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
		TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1)
		HGRN J 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
		HGRN KLM 2
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,2)
		TNT1 A 0 A_TakeInventory("Hand Grenade",1)
		TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
		Goto Select
	MineCheck:
		TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
		TNT1 A 0 A_TakeInventory("MineAction",1)
		Goto Ready
	MineToss:
		TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
		VULC A 1 Offset(-1,35)
		VULC A 1 Offset(-15,39)
		VULC A 1 Offset(-35,45)
		VULC A 1 Offset(-55,52)
		VULC A 1 Offset(-70,60)
		VULC A 1 Offset(-90,69)
		VULC A 1 Offset(-105,89)
		VULC A 1 Offset(-125,102)
		VULC A 1 Offset(-125,102)
		VULC A 1 Offset(-155,108)
		VULC A 1 Offset(-155,150)
		TNT1 A 0 Offset(-1,35)
		TNT1 A 10
		TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
		MINE ABCDEF 1		
		TNT1 A 0 A_TakeInventory("MineAmmo",1)	  
		MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0)
		MINE HI 1
		MINE JK 2
		TNT1 A 0 A_JumpIfInventory("MineAmmo",1,2)
		TNT1 A 0 A_TakeInventory("Land Mine",1)
		TNT1 A 0 A_TakeInventory("MineAction",1) 
		Goto Select
  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
  +NOBLOCKMAP
  +NOGRAVITY
  +ACTIVATEIMPACT
  +ACTIVATEPCROSS
  +BLOODLESSIMPACT
  +NOTELEPORT 
  +PUFFONACTORS
  +ALWAYSPUFF
  +MTHRUSPECIES
  +NODAMAGETHRUST
  scale 0.5 
  Renderstyle Add
  Alpha 0.75
  Decal Bulletchip
  DamageType "Marine"
  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
  }
}
