ACTOR OccultSpellbook : Weapon
{
  Inventory.PickupSound "HellStaff/Pickup" 
  Weapon.PreferredSkin "AdvancedNecronomicon-Marine"
  Weapon.AmmoGive1 50 
  Weapon.AmmoUse1 1
  Weapon.AmmoType1 "DustMana"
  Weapon.AmmoType2 "DustMana"
  Tag "Occult Spellbook"
  Inventory.PickupMessage "You found the Occult Spellbook! What chaos sorcery does this thing hold?"
  +FLOATBOB
  +WEAPON.NOALERT
  +INVENTORY.UNDROPPABLE
  States
  {
  Spawn:
	OBOK A -1 
	Loop
  Ready: 
	SPB0 A 0 A_JumpIfInventory("OccultDarkMatterToken2",1,"Ready2")
	SPB0 A 1 A_WeaponReady 
	Loop
  Ready2: 
	SPB0 U 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")
	SPB0 A 0 A_JumpIfInventory("OccultDarkMatterToken2",1,"Deselect2")
	SPB0 A 1 A_Lower
	Goto Deselect+4
  Deselect2:
	SPB0 U 1 A_Lower
	Loop
  Select: 
	SPB0 A 0 A_JumpIfInventory("OccultDarkMatterToken2",1,"Select2")
	SPB0 A 1 A_Raise 
	Loop
  Select2: 
	SPB0 U 1 A_Raise 
	Loop
  Fire:
	SPB0 A 0 A_AlertMonsters
	SPB0 A 0 A_JumpIfInventory("OccultDarkMatterToken2",1,"Fire2")
	SPB0 A 0 A_JumpIfNoAmmo("Ready")
	SPB0 A 10 A_Playsound("Spellbook/Charge")
	SPB0 B 6
	SPB0 C 5
	SPB0 D 3
	SPB0 E 4
	TNT1 A 0 A_PlaySound("Spellbook/Fire1")
	SPB0 E 2 A_RailAttack(10,0,1,"none",Red,RGF_SILENT,5)
	SPB0 E 2
  FireContinue:
	SPB0 A 0 A_JumpIfNoAmmo("Firestop")
	TNT1 A 0 A_PlaySound("Spellbook/Fire1")
	SPB0 E 2 A_RailAttack(random(3,6)*2,0,1,"none",Red,RGF_SILENT,5)
	SPB0 E 2
	TNT1 A 0 A_Refire("FireContinue")
  FireStop:
	SPB0 DCBA 4
	Goto Ready
  Fire2:
	SPB0 A 0 A_JumpIfInventory("DustMana",15,"Fire2Continue")
	Goto Ready2
  Fire2Continue:
	SPB0 U 10 A_Playsound("Spellbook/Charge")
	SPB0 V 6
	SPB0 W 5
	SPB0 X 3
	SPB0 Y 4
	TNT1 A 0 A_TakeInventory("DustMana",15,TIF_NOTAKEINFINITE)
	SPB0 Y 10 A_FireCustomMissile("PlayerDarkMatterBall",0,0)
	SPB0 XWVU 4
	Goto Ready2
  AltFire:
	SPB0 A 0 A_JumpIfInventory("OccultDarkMatterToken",1,"AltFireContinue")
	TNT1 A 0 A_Print("You need souls in order to change spells!")
	Goto Ready
  AltFireContinue:
	SPB0 A 0 A_JumpIfInventory("OccultDarkMatterToken2",1,"AltFireContinue2")
	TNT1 A 0 A_Print("Dark Matter")
	SPB0 A 12 A_GunFlash
	TNT1 A 0 A_GiveInventory("OccultDarkMatterToken2")
	SPB0 U 12
	Goto Ready2
  AltFireContinue2:
	TNT1 A 0 A_Print("Occult Lasers")
	SPB0 U 12 A_GunFlash
	TNT1 A 0 A_TakeInventory("OccultDarkMatterToken2")
	SPB0 A 12
	Goto Ready
  Flash:
	TNT1 A 0 A_Playsound("Soul/Fire")
	SPB9 E 2 Bright
	SPB9 D 2 Bright
	SPB9 C 2 Bright
	SPB9 B 2 Bright
	SPB9 A 8 Bright
	SPB9 B 2 Bright
	SPB9 C 2 Bright
	SPB9 D 2 Bright
	SPB9 E 2 Bright
	Stop
  }
}

Actor OccultDarkMatterToken : Inventory { Inventory.MaxAmount 1 }
Actor OccultDarkMatterToken2 : Inventory { Inventory.MaxAmount 1 }











ACTOR PlayerDarkMatterBall : PainLordDarkMatter
{
  //Damage 30   might change this idk
  Damagetype "Normal"
  Species "Player"
  +THRUSPECIES
  States
  {
  Death:
	TNT1 A 0
	TNT1 A 0 A_Playsound("PainLord/Explode1",7)
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,Random(20,40),Random(4,-4),Random(4,-4),Random(4,8),0,128)
	TNT1 AAA 0 A_CustomMissile("BlueKaboom", 0, 0, random(0,360), 2, random(0,360))	
	TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SpawnItemEx("PainLordDeathExplosionSpawner",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("ShadowVaporSpawnerPlayer",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_Explode(400,200)
	TNT1 A 15 Radius_Quake(5,15,0,20,0)
	Stop
	}
}

ACTOR ShadowVaporSpawnerPlayer : ShadowVaporSpawner
{
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ShadowVaporPlayer",0,0,0,random(4,-4),random(4,-4),random(4,-4),random(0,359),32)
	PLAY A 2
	PLAY BCDEF 4
	Stop
  }
}

ACTOR ShadowVaporPlayer : ShadowVapor
{
  Species "Player"
  Damagetype "Player"
}