ACTOR OccultSpellbook : Weapon
{
	Inventory.PickupSound "HellStaff/Pickup" 
	Weapon.PreferredSkin "AdvancedNecronomicon-Marine"
	Weapon.AmmoGive1 50 
	Weapon.AmmoUse1 2
	Weapon.AmmoType1 "DemonAmmo"
	Weapon.AmmoType2 "DemonAmmo"
	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("OccultToken",1)
	    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
		Loop
	Deselect2:
		SPB0 U 1 A_Lower
		Loop
	Select: 
		TNT1 A 0 A_GiveInventory("OccultToken",1)
		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 18 A_Playsound("Spellbook/Charge")
		SPB0 B 8
		SPB0 C 7
		SPB0 D 2
		SPB0 E 4
		TNT1 A 0 A_PlaySound("Spellbook/Fire1")
		SPB0 E 2 A_RailAttack(10,0,1,"none",Red,RGF_SILENT | RGF_FULLBRIGHT,5)
		SPB0 E 2
	FireContinue:
		SPB0 A 0 A_JumpIfNoAmmo("Firestop")
		TNT1 A 0 A_PlaySound("Spellbook/Fire1")
		SPB0 E 2 A_RailAttack(10,0,1,"none",Red,RGF_SILENT | RGF_FULLBRIGHT,5)
		SPB0 E 2
		TNT1 A 0 A_Refire("FireContinue")
	FireStop:
		SPB0 DCBA 4
		Goto Ready
	Fire2:
		SPB0 A 0 A_JumpIfInventory("DemonAmmo",40,"Fire2Continue")
		Goto Ready2
	Fire2Continue:
		SPB0 U 18 A_Playsound("Spellbook/Charge")
		SPB0 V 8
		SPB0 W 7
		SPB0 X 2
		SPB0 Y 6
		TNT1 A 0 A_TakeInventory("DemonAmmo",40)
		SPB0 Y 12 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 OccultToken : Inventory { Inventory.MaxAmount 1 }
Actor OccultDarkMatterToken : Inventory { Inventory.MaxAmount 1 }
Actor OccultDarkMatterToken2 : Inventory { Inventory.MaxAmount 1 }











ACTOR PlayerDarkMatterBall
{
	Radius 10
	Height 10
    Speed 32
    Damage 30
    Scale 0.5
	Projectile
	SeeSound "comet/launch"
	DeathSound "comet/explosion"
    +EXTREMEDEATH
    RenderStyle Translucent
    Alpha 0.625
    States
    {
    Spawn:
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark2",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	GoTo Spawn+1
    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("PainLordDeathExplosionSpawner2",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("ShadowVaporSpawner2Player",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 ShadowVaporSpawner2Player
{
+NOINTERACTION
RenderStyle none
States
{
Spawn:
	NULL A 0
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ShadowVapor2Player",0,0,0,random(4,-4),random(4,-4),random(4,-4),random(0,359),32)
	PLAY A 2
	PLAY BCDEF 4
	Stop
}
}

ACTOR ShadowVapor2Player
{
PROJECTILE
+RIPPER
+RANDOMIZE
Damagetype "Player"
Damage (1)
Speed 0
Radius 2
Height 2
renderstyle Translucent
Scale 0.65
Alpha 0.4
+DOOMBOUNCE
+BLOODLESSIMPACT
States
{
Spawn:
	VPXS MNOPQRSTUVWXYZ 1 Bright A_FadeOut(0.018)
	VPXS ABC 2 A_FadeOut(0.018)
	Stop
}
}