actor InfernoRifle : weapon
{
	Weapon.SelectionOrder 400
	Inventory.RestrictedTo "DoomSlayer"
	Tag "Inferno Rifle"
	states
	{
	spawn:
		PLAS A 1
		loop
	select:
		TNT1 A 0
		TNT1 A 0 a_playsound ("doomslayer/ventopen")
	draw:
		IFRL A 1 a_raise
		TNT1 A 0 a_giveinventory ("UsingSlayerGun",1)
		TNT1 A 0 a_takeinventory ("berserkfists",99)
		IFRL AA 0 a_raise
		loop
	deselect:
		TNT1 A 0
		TNT1 A 0 a_jumpifhealthlower (1, "deadlower")
		TNT1 A 0 a_playsound ("doomslayer/holster",0)
	holster:
		TNT1 A 0
		IFRL A 1 a_lower
		TNT1 A 0 a_takeinventory ("UsingSlayerGun",99)
		IFRL AA 0 a_lower
		loop
	deadlower:
		TNT1 A 0
		TNT1 A 0
        TNT1 A 0 A_ClearRefire
		TNT1 AAAAAAAAAAAAA 0 a_lower
		TNT1 A 1 a_lower
		loop
	ready:
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_jumpifinventory ("infernoheat", 300, "heat3")
		TNT1 A 0 a_jumpifinventory ("infernoheat", 200, "heat2")
		TNT1 A 0 a_jumpifinventory ("infernoheat", 100, "heat1")
		IFRL A 1 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("infernoheat", 300, "heat3")
		TNT1 A 0 a_jumpifinventory ("infernoheat", 200, "heat2")
		TNT1 A 0 a_jumpifinventory ("infernoheat", 100, "heat1")
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		loop
	heat1:
		TNT1 A 0 a_jumpifinventory ("infernoheat", 300, "heat3")
		TNT1 A 0 a_jumpifinventory ("infernoheat", 200, "heat2")
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		IFRL B 8 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner",0,0,0,0,0,0)
		TNT1 A 0 a_jumpifinventory ("infernoheat", 300, "heat3")
		TNT1 A 0 a_jumpifinventory ("infernoheat", 200, "heat2")
		loop
	heat2:
		TNT1 A 0 a_jumpifinventory ("infernoheat", 300, "heat3")
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		IFRL C 5 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner2",0,0,0,0,0,0)
		TNT1 A 0 a_jumpifinventory ("infernoheat", 300, "heat3")
		loop
	heat3:
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		IFRL D 2 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner3",0,0,0,0,0,0)
		IFRL D 2 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner3",0,0,0,0,0,0)
		IFRL E 2 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner3",0,0,0,0,0,0)
		IFRL F 2 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner3",0,0,0,0,0,0)
		IFRL F 2 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM) //Wow my code is rude
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner3",0,0,0,0,0,0)
		IFRL G 2 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner3",0,0,0,0,0,0)
		IFRL F 2 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner3",0,0,0,0,0,0)
		IFRL F 2 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner3",0,0,0,0,0,0)
		IFRL E 2 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner3",0,0,0,0,0,0)
		IFRL D 2 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner3",0,0,0,0,0,0)
		IFRL D 2 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_jumpifinventory ("raging",1,"ragestart")
		TNT1 A 0 a_firecustommissile ("riflesmokespawner3",0,0,0,0,0,0)
		loop
	Ragestart:
		TNT1 A 0
		TNT1 A 5 a_takeinventory ("raging",99)
		TNT1 A 0 A_giveinventory ("berserkfists",1)
		TNT1 A 0 A_Quake(2, 20, 0, 10,"silence")			
		TNT1 A 0 a_setinvulnerable
		RAGE ABCDDEE 2
		RAGE E 4
		TNT1 A 0 A_Quake(1, 18, 0, 10,"silence")			
		RAGE F 2
		TNT1 A 0 a_takeinventory ("UsingSlayerGun",99)
		TNT1 A 0 a_playsound ("doomslayer/channelsly",0,1,0,0.6)
		TNT1 A 0 A_SetBlend("99 15 15", 0.6, 60)
		TNT1 A 0 a_spawnitemex ("ragesplosion")
		TNT1 A 0 a_radiusthrust (12000,150,0,150)
		TNT1 A 0 a_giveinventory ("health",35)
		TNT1 A 0 a_alertmonsters
		TNT1 A 0 a_takeinventory ("zerkcharge",1)
		RAGE G 1 A_Quake(7, 55, 0, 10)	
		RAGE G 1 offset (3,37)
		RAGE G 1 offset (-2,30)
		RAGE G 1 offset (4,36)
		RAGE G 1 offset (-4,32)
		RAGE G 1 offset (3,35)
		RAGE G 1 offset (-5,28)
		RAGE G 1 offset (2,37)
		RAGE G 1 offset (-1,31)
		RAGE G 1 offset (2,35)
		RAGE G 1 offset (3,37)
		RAGE G 1 offset (-2,30)
		RAGE G 1 offset (4,36)
		RAGE G 1 offset (-4,32)
		RAGE G 1 offset (3,35)
		RAGE G 1 offset (-5,28)
		RAGE G 1 offset (2,37)
		RAGE G 1 offset (-1,31)
		RAGE G 1 offset (2,35)
		RAGE G 1 offset (3,37)
		RAGE G 1 offset (-2,30)
		RAGE G 1 offset (4,36)
		RAGE G 1 offset (-4,32)
		RAGE G 1 offset (3,35)
		RAGE G 1 offset (-5,28)
		RAGE G 1 offset (2,37)
		RAGE G 1 offset (-1,31)
		RAGE G 1 offset (2,35)
		RAGE G 1 offset (3,37)
		RAGE G 1 offset (-2,30)
		RAGE G 1 offset (4,36)
		RAGE G 1 offset (-4,32)
		RAGE G 1 offset (3,35)
		RAGE G 1 offset (-5,28)
		RAGE G 1 offset (2,37)
		RAGE G 1 offset (-1,31)
		RAGE G 1 offset (2,35)
		RAGE G 1 offset (0,32)
		RAGE G 2 
		RAGE HI 2
		TNT1 A 1 
		TNT1 A 0 a_unsetinvulnerable
		TNT1 A 0 A_giveinventory ("berserkfists",1)
		TNT1 A 1 a_selectweapon ("berserkfists")
		
		TNT1 A 0 
		TNT1 A 0 a_takeinventory ("sawglove",1)
		TNT1 A 0 a_takeinventory ("morningstar",1)
		TNT1 A 0 a_takeinventory ("Thunderbuss",1)
		TNT1 A 0 a_takeinventory ("Hydrarepeater",1)
		TNT1 A 0 a_takeinventory ("wrathcaster",1)
		TNT1 A 0 a_takeinventory ("infernorifle",1)
		TNT1 A 1 
		TNT1 A 0 a_takeinventory ("rend",1)
		TNT1 A 1
		goto deadlower	
	fire:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("firegems",1,"realfire")
		TNT1 A 0 a_playsound ("doomslayer/click",0)
		IFRL A 1 offset (0,35)
		IFRL A 1 offset (0,40)
		IFRL A 1 offset (0,42)
		IFRL A 1 offset (0,36)
		IFRL A 1 offset (0,32)
		IFRL A 3
		goto ready
	realfire:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("infernoheat", 300, "heatfire3")
		TNT1 A 0 a_jumpifinventory ("infernoheat", 200, "heatfire2")
		TNT1 A 0 a_jumpifinventory ("infernoheat", 100, "heatfire1")
		TNT1 A 0 a_playsound ("doomslayer/infernoshot",CHAN_WEAPON)
		TNT1 A 0 a_takeinventory ("firegems",1)
		IFRL I 1 bright a_firecustommissile ("Infernoball")
		IFRL J 1 bright
		IFRL K 1 bright
		TNT1 A 0 a_giveinventory ("infernoheat",3)
		TNT1 A 0 a_refire
		IFRL A 2
		goto ready
	Heatfire1:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("infernoheat", 300, "heatfire3")
		TNT1 A 0 a_jumpifinventory ("infernoheat", 200, "heatfire2")
		TNT1 A 0 a_playsound ("doomslayer/infernoshot",CHAN_WEAPON)
		TNT1 A 0 a_takeinventory ("firegems",1)
		IFRL L 1 bright a_firecustommissile ("Infernoball")
		IFRL M 1 bright
		IFRL N 1 bright
		TNT1 A 0 a_giveinventory ("infernoheat",3)
		TNT1 A 0 a_refire
		IFRL B 1
		goto ready
	Heatfire2:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("infernoheat", 300, "heatfire3")
		TNT1 A 0 a_playsound ("doomslayer/infernoshot",CHAN_WEAPON)
		TNT1 A 0 a_takeinventory ("firegems",1)
		IFRL O 1 bright a_firecustommissile ("Infernoball")
		IFRL P 1 bright
		IFRL Q 1 bright
		TNT1 A 0 a_giveinventory ("infernoheat",3)
		TNT1 A 0 a_refire
		IFRL C 1
		goto ready
	Heatfire3:
		TNT1 A 0
		TNT1 A 0 a_playsound ("doomslayer/infernoshot",CHAN_WEAPON)
		TNT1 A 0 a_takeinventory ("firegems",1)
		IFRL R 1 bright a_firecustommissile ("Infernoball")
		IFRL S 1 bright
		IFRL T 1 bright
		TNT1 A 0 a_giveinventory ("infernoheat",3)
		TNT1 A 0 a_refire
		IFRL D 1
		goto ready
	altfire:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("infernoheat", 300, "vent3") 
		TNT1 A 0 a_jumpifinventory ("infernoheat", 200, "vent2") 
		TNT1 A 0 a_jumpifinventory ("infernoheat", 100, "vent1") 
		IFRL A 1 A_weaponready
		goto ready
	vent1:
		IRAF ABC 2
		TNT1 A 0 a_playsound ("doomslayer/ventopen",0)
		IRAF D 2
		IRAF E 2
		TNT1 A 0 a_takeinventory ("infernoheat",9999)
		TNT1 A 0 a_firecustommissile ("InfernoBall",-16)
		TNT1 A 0 a_firecustommissile ("InfernoBall",-8)
		TNT1 A 0 a_firecustommissile ("InfernoBall",-4)
		TNT1 A 0 a_firecustommissile ("InfernoBall",0)
		TNT1 A 0 a_firecustommissile ("InfernoBall",4)
		TNT1 A 0 a_firecustommissile ("InfernoBall",8)
		TNT1 A 0 a_firecustommissile ("InfernoBall",16)
		TNT1 A 0 A_Quake(1, 10, 0, 10) 
		TNT1 A 0 a_playsound ("doomslayer/ventshot1",0)
		IRAF FGH 3 bright
		Goto VentEnd
	vent2:
		TNT1 A 0
		IRYF ABC 2
		TNT1 A 0 a_playsound ("doomslayer/ventopen",0)
		IRYF D 2
		IRYF E 2
		TNT1 A 0 a_takeinventory ("infernoheat",9999)
		TNT1 A 0 a_firecustommissile ("BigInfernoBall",-8)
		TNT1 A 0 a_firecustommissile ("BigInfernoBall",-4)
		TNT1 A 0 a_firecustommissile ("BigInfernoBall",0)
		TNT1 A 0 a_firecustommissile ("BigInfernoBall",4)
		TNT1 A 0 a_firecustommissile ("BigInfernoBall",8)
		TNT1 A 0 A_Quake(2, 10, 0, 10) 
		TNT1 A 0 a_playsound ("doomslayer/ventshot2",0)
		IRAF PQ 3 bright
		IRAF H 2
		Goto VentEnd
	Vent3:
		TNT1 A 0
		IRWF ABC 2
		TNT1 A 0 a_playsound ("doomslayer/ventopen",0)
		IRWF D 2
		IRWF E 2
		TNT1 A 0 a_takeinventory ("infernoheat",9999)
		TNT1 A 0 a_firecustommissile ("SuperInfernoBall",-8)
		TNT1 A 0 a_firecustommissile ("SuperInfernoBall",0)
		TNT1 A 0 a_firecustommissile ("SuperInfernoBall",8)
		TNT1 A 0 A_Quake(3, 5, 0, 10) 
		TNT1 A 0 a_playsound ("doomslayer/ventshot3",0)
		IRAF RS 3 bright
		IRAF H 2
		Goto VentEnd
	VentEnd:
		IRAF H 1 offset (0,34)
		IRAF H 2 offset (0,34)
		IRAF H 5 offset (0,34)
		IRAF I 1 offset (0,32)
		TNT1 A 0 a_playsound ("doomslayer/ventclose",0)
		TNT1 A 0 a_takeinventory ("infernoheat",9999)
		IRAF JKL 2 a_weaponready (WRF_NOSECONDARY|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_takeinventory ("infernoheat",9999)
		IRAF MNO 2 a_weaponready (WRF_NOSECONDARY|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_takeinventory ("infernoheat",9999)
		goto ready
		
	Reload:
		"####" "#" 1 a_jumpifinventory ("SlayerBombCooldown",1, "quickpunch")
		TNT1 A 0 a_playsound ("doomslayer/zerkswing",0)
		DSUB AB 2
		TNT1 A 0 a_jumpifinventory ("Thunderbombcheck",1,"Thunderbomb")
		TNT1 A 0 a_jumpifinventory ("Firebombcheck",1,"Firebomb")
		TNT1 A 0 a_jumpifinventory ("Beambombcheck",1,"beambomb")
		DSUB C 1 a_firecustommissile ("spikebomb")
		TNT1 A 0 a_giveinventory ("SlayerBombCooldown",200)
		DSUB DEF 1
		TNT1 A 5 a_weaponready (WRF_ALLOWZOOM)
		IFRL UV 2 a_weaponready (WRF_ALLOWZOOM)
		goto ready
	quickpunch:
		TNT1 A 0
		TNT1 A 0 a_playsound ("doomslayer/zerkswing",0)
		BERS JK 2
		TNT1 A 0 a_playsound ("Doomslayer/unf",0)
		BERS L 2 a_firecustommissile ("quickpunch")
		BERS NO 1
		TNT1 A 5
		IFRL UV 2 a_weaponready
		goto ready
	BeamBomb:
		TNT1 A 0
		TNT1 A 0 a_takeinventory ("bombammo",1)
		DSUB C 1 a_firecustommissile ("beambomb")
		TNT1 A 0 a_giveinventory ("SlayerBombCooldown",200)
		DSUB DEF 1
		TNT1 A 5 a_weaponready (WRF_ALLOWZOOM)
		IFRL UV 2 a_weaponready (WRF_ALLOWZOOM)
		goto ready
	FireBomb:
		TNT1 A 0
		TNT1 A 0 a_takeinventory ("bombammo",1)
		DSUB C 1 a_firecustommissile ("slayerfirebomb")
		TNT1 A 0 a_giveinventory ("SlayerBombCooldown",200)
		DSUB DEF 1
		TNT1 A 5 a_weaponready (WRF_ALLOWZOOM)
		IFRL UV 2 a_weaponready (WRF_ALLOWZOOM)
		goto ready
	ThunderBomb:
		TNT1 A 0
		TNT1 A 0 a_takeinventory ("bombammo",1)
		DSUB C 1 a_firecustommissile ("slayerThunderbomb")
		TNT1 A 0 a_giveinventory ("SlayerBombCooldown",200)
		DSUB DEF 1
		TNT1 A 5 a_weaponready (WRF_ALLOWZOOM)
		IFRL UV 2 a_weaponready (WRF_ALLOWZOOM)
		goto ready
		
		

	Zoom:
		"####" "#" 1 a_jumpifinventory ("SlayerDaggerCooldown",1, "quickpunch")
		TNT1 A 0 a_playsound ("doomslayer/zerkswing",0)
		DSUB AB 2
		TNT1 A 0 a_jumpifinventory ("FoodDaggercheck",1, "FoodDagger")
		TNT1 A 0 a_jumpifinventory ("AmmoDaggercheck",1, "AmmoDagger")
		TNT1 A 0 a_jumpifinventory ("SpreadDaggercheck",1, "SpreadDagger")
		TNT1 A 0 a_jumpifinventory ("GlassDaggercheck",1, "GlassDagger")
		DSUB C 1 a_firecustommissile ("draindagger")
		TNT1 A 0 a_giveinventory ("SlayerDaggerCooldown",200)
		DSUB DEF 1
		TNT1 A 5 a_weaponready (WRF_ALLOWRELOAD)
		IFRL UV 2 a_weaponready (WRF_ALLOWRELOAD)
		goto ready
	GlassDagger:
		TNT1 A 0
		TNT1 A 0 a_takeinventory ("daggerammo",1)
		DSUB C 1 a_firecustommissile ("Glassdagger")
		TNT1 A 0 a_giveinventory ("SlayerDaggerCooldown",200)
		DSUB DEF 1
		TNT1 A 5 a_weaponready (WRF_ALLOWRELOAD)
		IFRL UV 2 a_weaponready (WRF_ALLOWRELOAD)
		goto ready
	SpreadDagger:
		TNT1 A 0
		TNT1 A 0 a_takeinventory ("daggerammo",1)
		TNT1 A 0 a_firecustommissile ("SpreadDagger",-16)
		TNT1 A 0 a_firecustommissile ("SpreadDagger",-8)
		TNT1 A 0 a_firecustommissile ("SpreadDagger",-4)
		TNT1 A 0 a_firecustommissile ("SpreadDagger",4)
		TNT1 A 0 a_firecustommissile ("SpreadDagger",8)
		TNT1 A 0 a_firecustommissile ("SpreadDagger",16)
		DSUB C 1 a_firecustommissile ("Spreaddagger")
		TNT1 A 0 a_giveinventory ("SlayerDaggerCooldown",200)
		DSUB DEF 1
		TNT1 A 5 a_weaponready (WRF_ALLOWRELOAD)
		IFRL UV 2 a_weaponready (WRF_ALLOWRELOAD)
		goto ready
	AmmoDagger:
		TNT1 A 0
		TNT1 A 0 a_takeinventory ("daggerammo",1)
		DSUB C 1 a_firecustommissile ("Ammodagger")
		TNT1 A 0 a_giveinventory ("SlayerDaggerCooldown",200)
		DSUB DEF 1
		TNT1 A 5 a_weaponready (WRF_ALLOWRELOAD)
		IFRL UV 2 a_weaponready (WRF_ALLOWRELOAD)
		goto ready
	FoodDagger:
		TNT1 A 0
		TNT1 A 0 a_takeinventory ("daggerammo",1)
		DSUB C 1 a_firecustommissile ("Fooddagger")
		TNT1 A 0 a_giveinventory ("SlayerDaggerCooldown",200)
		DSUB DEF 1
		TNT1 A 5 a_weaponready (WRF_ALLOWRELOAD)
		IFRL UV 2 a_weaponready (WRF_ALLOWRELOAD)
		goto ready


	}
}


actor infernoball
{
    +notimefreeze
	+FORCEXYBILLBOARD	
	+THRUSPECIES
	species "friendly"
	Radius 11
	Height 8
	Speed 35
	Damage (110)
	seesound "wyvern/fireball"
	deathsound "wyvern/fireballhit"
	Projectile
	renderstyle add
	scale 0.80
	alpha 0.95
	states
	{
	spawn:
		FX04 A 2 bright
		TNT1 A 0 Bright A_SpawnItemEx("LavaLazerEmber3",frandom(-6,6),frandom(-6,6),frandom(-6,6),frandom(-2,2),frandom(-2,2),frandom(0,1))
		TNT1 A 0 Bright A_SpawnItemEx("LavaLazerSmoke2",frandom(-4,4),frandom(-4,4),frandom(-4,4),frandom(-1,1),frandom(-1,1),frandom(0,1))
		loop
	death:
		TNT1 A 0
		TNT1 A 0 a_stop
		TNT1 AA 0 Bright A_SpawnItemEx("LavaLazerTrail",frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-4,4),frandom(-4,4),frandom(0,1))
		TNT1 AA 0 Bright A_SpawnItemEx("LavaLazerEmber3",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-6,6),frandom(-6,6),frandom(0,1))
		FX04 BCDEF 2
		stop
	Xdeath:
		TNT1 A 0
		TNT1 A 0 a_stop
		TNT1 AA 0 Bright A_SpawnItemEx("LavaLazerTrail",frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-4,4),frandom(-4,4),frandom(0,1))
		TNT1 AA 0 Bright A_SpawnItemEx("LavaLazerEmber3",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-6,6),frandom(-6,6),frandom(0,1))
		FX04 B 1 bright a_jumpifintargetinventory ("unleasher",1,"givecharge")
		FX04 CDEF 2
		stop
	givecharge:
		TNT1 A 0
		FX04 B 1 bright A_GiveInventory("zerkcharge",1, AAPTR_TARGET)
		FX04 CDEF 2
		stop

	}
}

actor BigInfernoball 
{
    +notimefreeze
	+FORCEXYBILLBOARD	
	+THRUSPECIES
	species "Friendly"
	Radius 11
	Height 8
	Speed 50
	Damage (150)
	seesound "wyvern/fireball"
	deathsound "wyvern/fireballhit"
	Projectile
	states
	{
	spawn:
		DMFX A 1 bright
		TNT1 A 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-6,6),frandom(-6,6),frandom(-6,6),frandom(-2,2),frandom(-2,2),frandom(0,1))
		TNT1 A 0 Bright A_SpawnItemEx("LavaLazerSmoke2",frandom(-4,4),frandom(-4,4),frandom(-4,4),frandom(-1,1),frandom(-1,1),frandom(0,1))
		DMFX B 1 bright
		TNT1 A 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-6,6),frandom(-6,6),frandom(-6,6),frandom(-2,2),frandom(-2,2),frandom(0,1))
		TNT1 A 0 Bright A_SpawnItemEx("LavaLazerSmoke2",frandom(-4,4),frandom(-4,4),frandom(-4,4),frandom(-1,1),frandom(-1,1),frandom(0,1))
		DMFX C 1 bright
		TNT1 A 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-6,6),frandom(-6,6),frandom(-6,6),frandom(-2,2),frandom(-2,2),frandom(0,1))
		loop
	death:
		TNT1 A 0
		TNT1 A 0 a_explode (50,100,0)
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerTrail",frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(1,3))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerEmber3",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-12,12),frandom(-8,8),frandom(1,3))
		DMFX DEFGH 5 Bright
		stop
	Xdeath:
		TNT1 A 0
		TNT1 A 0 a_explode (50,100,0)
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerTrail",frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(1,3))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerEmber3",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-12,12),frandom(-8,8),frandom(1,3))
		DMFX D 1 Bright a_jumpifintargetinventory ("unleasher",1,"givecharge")
		DMFX EFGH 5 Bright
		stop
	Givecharge:
		TNT1 A 0
		DMFX D 1 Bright A_GiveInventory("zerkcharge",2, AAPTR_TARGET)
		DMFX EFGH 5 Bright
		stop
	}
}

actor SuperInfernoBall
{
    +notimefreeze
	+FORCEXYBILLBOARD	
	+THRUSPECIES
	species "Friendly"
	Radius 11
	Height 8
	Speed 80
	Damage (180)
	seesound "wyvern/fireball"
	deathsound "wyvern/fireballhit"
	Projectile
	states
	{
	spawn:
		DMFX A 1 bright
		TNT1 A 0 a_spawnitemex("SuperBallTrail1")
		TNT1 AA 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-12,12),frandom(-12,12),frandom(-12,12),frandom(-5,5),frandom(-5,5),frandom(2,4))
		TNT1 A 0 Bright A_SpawnItemEx("LavaLazerSmoke2",frandom(-4,4),frandom(-4,4),frandom(-4,4),frandom(-1,1),frandom(-1,1),frandom(0,1))
		DMFX B 1 bright
		TNT1 A 0 a_spawnitemex("SuperBallTrail2")
		TNT1 AA 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-12,12),frandom(-12,12),frandom(-12,12),frandom(-5,5),frandom(-5,5),frandom(2,4))
		DMFX C 1 bright
		TNT1 A 0 a_spawnitemex("SuperBallTrail3")
		TNT1 AA 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-12,12),frandom(-12,12),frandom(-12,12),frandom(-5,5),frandom(-5,5),frandom(2,4))
		TNT1 A 0 Bright A_SpawnItemEx("LavaLazerSmoke2",frandom(-4,4),frandom(-4,4),frandom(-4,4),frandom(-1,1),frandom(-1,1),frandom(0,1))
		loop
	death:
		TNT1 A 0
		TNT1 A 0 a_explode (100,190,0)
		TNT1 AAAA 0 a_spawnitemex("clusterfire",0,0,0,random(-10,10),random(-10,10),8)
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerTrail",frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(1,3))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerEmber3",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-12,12),frandom(-8,8),frandom(1,3))
		DMFX DEFGH 5 Bright
		stop
	Xdeath:
		TNT1 A 0
		TNT1 A 0 a_explode (100,190,0)
		TNT1 AAAA 0 a_spawnitemex("clusterfire",0,0,0,random(-10,10),random(-10,10),8)
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerTrail",frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(-8,8),frandom(1,3))
		TNT1 AAAA 0 Bright A_SpawnItemEx("LavaLazerEmber3",frandom(-16,16),frandom(-16,16),frandom(-16,16),frandom(-12,12),frandom(-8,8),frandom(1,3))
		DMFX D 1 Bright a_jumpifintargetinventory ("unleasher",1,"givecharge")
		DMFX EFGH 5 Bright
		stop
	Givecharge:
		TNT1 A 0
		DMFX D 1 Bright A_GiveInventory("zerkcharge",4, AAPTR_TARGET)
		DMFX EFGH 5 Bright
		stop
	}
}

actor SuperBallTrail1
{
	+NOBLOCKMAP
	+NOGRAVITY
	+SHADOW
	+NOTELEPORT
	+CANNOTPUSH
	+NODAMAGETHRUST
	+clientsideonly
	RenderStyle add
	Alpha 0.50
	scale 1
	States
	{
	spawn:
		TNT1 A 0
		DMFX A 3 bright
		goto death
	death:
		TNT1 A 0
		DMFX A 1 bright
		stop
	}
}

actor SuperBallTrail2 : SuperBallTrail1
{
	states
	{
	spawn:
		TNT1 A 0
		DMFX B 3 bright
		goto death
	death:
		TNT1 A 0
		DMFX B 1 bright
		stop
	}
}

actor SuperBallTrail3 : SuperBallTrail1
{
	states
	{
	spawn:
		TNT1 A 0
		DMFX C 3 bright
		goto death
	death:
		TNT1 A 0
		DMFX C 1 bright
		stop
	}
}


ACTOR riflesmokespawner
{
	projectile
	RenderStyle Translucent
	speed 20
	-SOLID
	+NOBLOCKMAP
	+NOGRAVITY
	+NOCLIP
	+DONTSPLASH
	+NOTELEPORT
	+clientsideonly
	States
	{
	Spawn:
        TNT1 A 0
        TNT1 A 0
        TNT1 AA 0 A_SpawnItemEx("LavaLazerSmoke2",frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
        TNT1 A 1 A_SpawnItemEx("LavaLazerSmoke2",frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
        TNT1 AA 0 A_SpawnItemEx("LavaLazerSmoke2",frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
        TNT1 A 1 A_SpawnItemEx("LavaLazerSmoke2",frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
		Stop
	}
}

ACTOR riflesmokespawner2 : riflesmokespawner
{
	states
	{
	Spawn:
        TNT1 A 0
        TNT1 A 0
        TNT1 AA 0 A_SpawnItemEx("LavaLazerSmoke2",frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
		TNT1 A 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-3,3),frandom(-3,3),frandom(-3,3),frandom(-1,1),frandom(-1,1),frandom(0,1))
        TNT1 A 1 A_SpawnItemEx("LavaLazerSmoke2",frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
        TNT1 AA 0 A_SpawnItemEx("LavaLazerSmoke2",frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
		TNT1 A 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-3,3),frandom(-3,3),frandom(-3,3),frandom(-1,1),frandom(-1,1),frandom(0,1))
       TNT1 A 1 A_SpawnItemEx("LavaLazerSmoke2",frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
		Stop
	}
}


ACTOR riflesmokespawner3 : riflesmokespawner
{
	states
	{
	spawn:
        TNT1 A 0
        TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-3,3),frandom(-3,3),frandom(-3,3),frandom(-3,3),frandom(-3,3),frandom(0,1))
        TNT1 A 1 A_SpawnItemEx("LavaLazerTrail",frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,1),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
        TNT1 AA 0 A_SpawnItemEx("LavaLazerTrail",frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,1),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
		TNT1 A 0 A_SpawnItemEx("LavaLazerEmber3",frandom(-3,3),frandom(-3,3),frandom(-3,3),frandom(-3,3),frandom(-3,3),frandom(0,1))
        TNT1 A 1 A_SpawnItemEx("LavaLazerSmoke2",frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-1.5,-1.5),frandom(0.5,5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,32)
		Stop
	}
}


actor InfernoHeat : inventory
{inventory.maxamount 300}
