actor ArmGun : Weapon
{
	+weapon.ammo_optional
	Tag "Arm gun"
	+CHEATNOTWEAPON
	+noautoaim
	+noautofire
	weapon.slotnumber 1
	Weapon.SelectionOrder 10
	weapon.bobstyle alpha
	weapon.bobrangex 0.2
	weapon.bobrangey 0.4
	weapon.bobspeed 5
	Inventory.PickupMessage "You picked up your arm gun you dropped, somehow. You ding dong"
	states
	{
	spawn:
		BAL1 A 15
		BAL1 A 4 bright
		loop
	select:
        TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Raise
        TNT1 A 1 A_Raise
		loop
	deselect:
        TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_Lower
		TNT1 A 1 a_lower
		loop
	Ready:
		AGUN A 1 a_weaponready (WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		loop
	fire:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("flipping", 1, "sparkshot")
		TNT1 A 0 a_jumpifinventory ("ballarmed",1,"morphballthrow")
		TNT1 A 0 a_jumpifinventory ("longbeammod",1,"longbeamstart")
		TNT1 A 0 a_jumpifinventory ("icebeammod", 1,"iceammocheck")
	shortbeamshot:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("spazermod", 1, "shortspazer")
		TNT1 A 0 a_playsound ("beams/shortbeam",0)
		TNT1 A 0 a_firebullets (0,0,1,0,"flickpuff")
		AGUN B 1 bright a_firecustommissile ("Shortbeam")
		AGUN B 1 bright Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 1 Offset(0,38) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 2 Offset(0,37) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN D 1 Offset(0,36) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_refire
		AGUN D 1 Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN A 3 Offset(0,32) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		goto ready
	shortspazer:
		TNT1 A 0
		TNT1 A 0 a_playsound ("beams/shortbeam",0)
		TNT1 A 0 a_firecustommissile ("Shortbeam",-3)
		TNT1 A 0 a_firecustommissile ("Shortbeam",3)
		TNT1 A 0 a_firebullets (0,0,1,0,"flickpuff")
		AGUN B 1 bright a_firecustommissile ("Shortbeam")
		AGUN B 1 bright Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 1 Offset(0,38) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 2 Offset(0,37) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN D 1 Offset(0,36) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_refire
		AGUN D 1 Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN A 3 Offset(0,32) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		goto ready
	iceammocheck:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("iceammo", 1, "icebeamshot")
		goto shortbeamshot
	icebeamshot:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("spazermod", 1, "shorticespazer")
		TNT1 A 0 a_playsound ("beams/icebeam",0)
		TNT1 A 0 a_takeinventory ("iceammo", 1)
		TNT1 A 0 a_firebullets (0,0,1,0,"flickpuff")
		AGUN E 1 bright a_firecustommissile ("Shorticebeam")
		AGUN E 1 bright Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 1 Offset(0,38) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 2 Offset(0,37) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN D 1 Offset(0,36) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_refire
		AGUN D 1 Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN A 3 Offset(0,32) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		goto ready
	shorticespazer:
		TNT1 A 0
		TNT1 A 0 a_playsound ("beams/icebeam",0)
		TNT1 A 0 a_takeinventory ("iceammo", 1)
		AGUN E 0 a_firecustommissile ("Shorticebeam",-3)
		AGUN E 0 a_firecustommissile ("Shorticebeam",3)
		TNT1 A 0 a_firebullets (0,0,1,0,"flickpuff")
		AGUN E 1 bright a_firecustommissile ("Shorticebeam")
		AGUN E 1 bright Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 1 Offset(0,38) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 2 Offset(0,37) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN D 1 Offset(0,36) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_refire
		AGUN D 1 Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN A 3 Offset(0,32) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		goto ready
	longbeamstart:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("icebeammod", 1,"iceammocheck2")
		goto longbeamshot
	longbeamshot:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("spazermod", 1, "spazer")
		TNT1 A 0 a_playsound ("beams/longbeam",0)
		TNT1 A 0 a_firebullets (0,0,1,0,"flickpuff")
		AGUN B 1 bright a_firecustommissile ("Longbeam")
		AGUN B 1 bright Offset(0,35) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 1 Offset(0,40) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 4 Offset(0,42) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_refire
		AGUN D 1 Offset(0,36) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN D 1 Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN A 3 Offset(0,32) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		goto ready
	spazer:
		TNT1 A 0
		TNT1 A 0 a_playsound ("beams/longbeam",0)
		AGUN B 0 a_firecustommissile ("Longbeam",-3)
		AGUN B 0 a_firecustommissile ("Longbeam",3)
		TNT1 A 0 a_firebullets (0,0,1,0,"flickpuff")
		AGUN B 1 bright a_firecustommissile ("Longbeam")
		AGUN B 1 bright Offset(0,35) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 1 Offset(0,40) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 4 Offset(0,42) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_refire
		AGUN D 1 Offset(0,36) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN D 1 Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN A 3 Offset(0,32) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		goto ready
	iceammocheck2:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("iceammo", 1, "longicebeamshot")
		goto longbeamshot
	longicebeamshot:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("spazermod", 1, "icespazer")
		TNT1 A 0 a_playsound ("beams/icebeam",0)
		TNT1 A 0 a_takeinventory ("iceammo", 1)
		TNT1 A 0 a_firebullets (0,0,1,0,"flickpuff")
		AGUN E 1 bright a_firecustommissile ("icebeam")
		AGUN E 1 bright Offset(0,35) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 1 Offset(0,40) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 4 Offset(0,42) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_refire
		AGUN D 1 Offset(0,36) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN D 1 Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN A 3 Offset(0,32) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		goto ready
	icespazer:
		TNT1 A 0 
		TNT1 A 0 a_playsound ("beams/icebeam",0)
		TNT1 A 0 a_takeinventory ("iceammo", 1)
		AGUN E 0 a_firecustommissile ("icebeam",-3)
		AGUN E 0 a_firecustommissile ("icebeam",3)
		TNT1 A 0 a_firebullets (0,0,1,0,"flickpuff")
		AGUN E 1 bright a_firecustommissile ("icebeam")
		AGUN E 1 bright Offset(0,35) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 1 Offset(0,40) a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		AGUN C 4 Offset(0,42) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_refire
		AGUN D 1 Offset(0,36) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN D 1 Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN A 3 Offset(0,32) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		goto ready
		
	Reload:
		TNT1 A 0
		AGUN A 1 a_jumpifinventory ("bombstock", 1, "bombthrow")
		goto ready
	bombthrow:
		BTHR ABCDE 1
		TNT1 A 0 a_jumpifinventory ("bombmod", 1, "holdcheck")
		goto throwfinish
	holdcheck:
		TNT1 A 0
		BTHR E 1
		TNT1 A 0 a_jumpifinventory ("holdbombkey",1,"morphballcharge")
	Throwfinish:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("dragonfiremod",1, "firebomb")
		BTHR FG 2
		TNT1 A 0 a_takeinventory ("ballcharge",99)
		TNT1 A 0 a_takeinventory ("bombstock", 1)
		BTHR H 1 a_firecustommissile ("Morphbomb")
		BTHR IJK 2
		BTHR LMNOP 1
		AGUN A 1
		goto ready
	firebomb:
		BTHR FG 2
		TNT1 A 0 a_takeinventory ("ballcharge",99)
		TNT1 A 0 a_takeinventory ("bombstock", 1)
		TNT1 A 0 A_FireCustomMissile("ridleyfireball",-6)
		TNT1 A 0 A_FireCustomMissile("ridleyfireball",-3)
		TNT1 A 0 A_FireCustomMissile("ridleyfireball",0)
		TNT1 A 0 A_FireCustomMissile("ridleyfireball",3)
		TNT1 A 0 A_FireCustomMissile("ridleyfireball",6)
		TNT1 A 0 a_playsound ("zelda/candlefire",0)
		BTHR H 1 a_firecustommissile ("Morphbomb")
		BTHR IJK 2
		BTHR LMNOP 1
		AGUN A 1
		goto ready
	morphballcharge:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("ballcharge", 20, "bombammocheck")
		BTHR E 1 a_giveinventory ("ballcharge", 1)
		TNT1 A 0 a_jumpifinventory ("holdbombkey",1,"morphballcharge")
		goto throwfinish
	bombammocheck:
		TNT1 A 0
		BTHR E 1 a_jumpifinventory ("bombstock", 3, "morphballarm")
		TNT1 A 0 a_takeinventory ("ballcharge", 99)
		goto morphballcharge
	morphballarm:
		TNT1 A 0
		TNT1 A 0 a_giveinventory ("ballarmed", 1)
		TNT1 A 0 a_playsound ("bombs/morphball",0)
		BLTH AB 2 a_weaponready (WRF_NOSWITCH)
	ballready:
		BLTH B 1 a_weaponready (WRF_NOSWITCH|WRF_NOSECONDARY)
		loop
	Morphballthrow:
		BTHR FG 2
		TNT1 A 0 a_takeinventory ("ballarmed",99)
		TNT1 A 0 a_takeinventory ("ballcharge",99)
		TNT1 A 0 a_takeinventory ("Bombstock",99)
		BTHR H 1 a_firecustommissile ("morphball")
		BTHR IJK 2 a_takeinventory ("Bombstock",99)
		BTHR LMNOP 1 a_takeinventory ("Bombstock",99)
		AGUN A 1
		goto ready		
	altfire:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("flipping", 1, "sparkshot")
		TNT1 A 0 a_jumpifinventory ("wavebeammod",1,"waveammocheck")
		AGUN A 1 a_weaponready (WRF_NOSWITCH|WRF_NOBOB)
		goto ready
	waveammocheck:
		TNT1 A 0
		AGUN A 1 A_jumpifinventory ("waveammo", 1, "waveshot")
		goto ready
	waveshot:
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("spazermod", 1, "wavespazer")
		TNT1 A 0 a_playsound ("beams/wavebeam",0)
		TNT1 A 0 a_takeinventory ("waveammo",1)
		TNT1 A 0 a_firebullets (0,0,1,0,"flickpuff")
		WGUN A 1 bright a_firecustommissile ("WaveBeam")
		WGUN A 1 bright Offset(0,36) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY)
		WGUN B 1 bright Offset(0,40) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY)
		WGUN C 1 Offset(0,42) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_refire ("waveammocheck")
		WGUN C 2 Offset(0,42) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN D 1 Offset(0,38) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN D 1 Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN A 3 Offset(0,32) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		goto ready
	wavespazer:
		TNT1 A 0
		TNT1 A 0 a_playsound ("beams/wavebeam",0)
		TNT1 A 0 a_takeinventory ("waveammo",1)
		WGUN A 0 a_firecustommissile ("WaveBeam",-3)
		WGUN A 0 a_firecustommissile ("WaveBeam",3)
		TNT1 A 0 a_firebullets (0,0,1,0,"flickpuff")
		WGUN A 1 bright a_firecustommissile ("WaveBeam")
		WGUN A 1 bright Offset(0,36) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY)
		WGUN B 1 bright Offset(0,40) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY)
		WGUN C 1 Offset(0,42) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		TNT1 A 0 a_refire ("waveammocheck")
		WGUN C 2 Offset(0,42) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN D 1 Offset(0,38) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN D 1 Offset(0,34) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		AGUN A 3 Offset(0,32) a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
		goto ready
		
	Zoom:
		TNT1 A 0
		AGUN A 1 a_jumpifinventory ("screwattackmod", 1, "chargecheck")
		goto ready
	chargecheck:
		TNT1 A 0
		AGUN A 1 a_jumpifinventory ("screwcharge", 1, "ready")
		goto screwattack
	screwattack:
		TNT1 A 0
		TNT1 A 0 a_checkfloor ("groundjump")
		SATK A 1
		SATK B 1
		SATK C 1
		SATK D 3
		TNT1 A 0 a_giveinventory ("flipping",1)
		SATK EFGHIJK 1 a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY)
	airjump:
		TNT1 A 0
		TNT1 A 0 a_giveinventory ("flipping",1)
		TNT1 A 0 a_giveinventory ("screwcharge", 6)
		TNT1 A 0 a_changeflag ("THRUACTORS", 1)
		TNT1 A 0 a_playsound ("player/screwattack",0)
		SATK L 1 bright a_recoil (-5)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK M 1 bright thrustthingz (0,80,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK N 1 bright a_recoil (-5)
		SATK O 1 bright thrustthingz (0,60,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK L 1 bright thrustthingz (0,40,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK M 1 bright thrustthingz (0,20,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK N 1 bright thrustthingz (0,15,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK O 1 bright thrustthingz (0,15,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK L 1 bright thrustthingz (0,10,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK M 1 bright thrustthingz (0,10,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK N 1 bright thrustthingz (0,10,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK O 1 bright thrustthingz (0,5,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK L 1 bright thrustthingz (0,5,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK M 1 bright thrustthingz (0,5,0,1)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK N 1 bright thrustthingz (0,5,0,1)
		TNT1 A 0 a_firecustommissile ("screwattacker")
	flight:
		TNT1 A 0 a_checkfloor ("jumpend")
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK L 1 bright a_weaponready
		TNT1 A 0 a_firecustommissile ("screwattacker")
		TNT1 A 0 a_checkfloor ("jumpend")
		TNT1 A 0 a_checkfloor ("jumpend")
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK M 1 bright a_weaponready
		TNT1 A 0 a_firecustommissile ("screwattacker")
		TNT1 A 0 a_checkfloor ("jumpend")
		TNT1 A 0 a_checkfloor ("jumpend")
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK N 1 bright a_weaponready
		TNT1 A 0 a_firecustommissile ("screwattacker")
		TNT1 A 0 a_checkfloor ("jumpend")
		TNT1 A 0 a_checkfloor ("jumpend")
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK O 1 bright a_weaponready
		TNT1 A 0 a_firecustommissile ("screwattacker")
		TNT1 A 0 a_checkfloor ("jumpend")
		loop
	groundjump:
		SATK A 1
		SATK B 1
		SATK C 1
		SATK D 1
		TNT1 A 0 a_giveinventory ("flipping",1)
		SATK EFGHIJK 1 a_weaponready (WRF_NOSWITCH|WRF_NOBOB|WRF_NOSECONDARY)
	liftoff:
		TNT1 A 0
		TNT1 A 0 a_giveinventory ("flipping",1)
		TNT1 A 0 a_giveinventory ("screwcharge", 6)
		TNT1 A 0 a_changeflag ("THRUACTORS", 1)
		TNT1 A 0 a_playsound ("player/screwattack",0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK L 1 bright thrustthingz (0,60,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK M 1 bright thrustthingz (0,40,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK N 1 bright a_recoil (-10)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK O 1 bright thrustthingz (0,30,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK L 1 bright thrustthingz (0,20,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK M 1 bright a_recoil (-7)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK N 1 bright thrustthingz (0,5,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK O 1 thrustthingz (0,5,0,0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		SATK L 1 bright a_recoil (-5)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		goto flight
	jumpend:
		TNT1 A 0
		TNT1 A 0 a_takeinventory ("flipping",99)
		TNT1 A 0 a_changeflag ("THRUACTORS", 0)
		TNT1 A 0 a_firecustommissile ("screwattacker")
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 a_spawnitemex("sparkbouncer",0,0,40,Frandom(-50,50),Frandom(-60,60),Frandom (-5,5))
		SATK K 2 
		SATK KIHFE 1 
		TNT1 A 0 A_radiusthrust (1800,300,0,300) 
		SATK CBA 2 
		AGUN A 1
		goto ready
	sparkshot:
		SATK K 1 bright
		TNT1 A 0 a_takeinventory ("flipping",99)
		TNT1 A 0 a_giveinventory ("screwcharge", 10)
		TNT1 A 0 a_changeflag ("THRUACTORS", 0)
		TNT1 A 0 a_playsound ("weapons/sparkshot",CHAN_WEAPON,1,0,0.8)
		TNT1 A 0 A_FireCustomMissile("bigspark",-12)
		TNT1 A 0 A_FireCustomMissile("bigspark",-9)
		TNT1 A 0 A_FireCustomMissile("bigspark",-6)
		TNT1 A 0 A_FireCustomMissile("bigspark",-3)
		TNT1 A 0 A_FireCustomMissile("bigspark",0)
		TNT1 A 0 A_FireCustomMissile("bigspark",3)
		TNT1 A 0 A_FireCustomMissile("bigspark",6)
		TNT1 A 0 A_FireCustomMissile("bigspark",9)
		TNT1 A 0 A_FireCustomMissile("bigspark",12)
		SATK K 1 bright Offset(0,36) a_giveinventory ("screwcharge", 10)
		SATK K 1 bright Offset(0,48) a_giveinventory ("screwcharge", 10)
		SATK K 1 bright Offset(0,50) a_giveinventory ("screwcharge", 10)
		SATK K 8 Offset(0,52) a_giveinventory ("screwcharge", 10)
		SATK K 1 Offset(0,46) a_giveinventory ("screwcharge", 10)
		SATK K 1 Offset(0,38) a_giveinventory ("screwcharge", 10)
		SATK K 1 Offset(0,34) a_giveinventory ("screwcharge", 10)
		SATK K 3 Offset(0,32) a_giveinventory ("screwcharge", 10)
		SATK KIHFE 1 a_giveinventory ("screwcharge", 10)
		SATK CBA 2 a_giveinventory ("screwcharge", 10)
		AGUN A 1 a_giveinventory ("screwcharge", 10)
		goto ready
	}
}




//====================BEAM PROJECTILES=================

actor shortbeam
{
	PROJECTILE
	scale 1
	Damage (7)
	Speed 50
	Radius 6
	Height 8
	+bright
	+thruspecies
	species "player"
	States
	{
	Spawn:
		SHBM A 7
		stop
	Death:
		WVBM H 4 
		Stop
	Xdeath:
		TNT1 A 0
		TNT1 A 0 a_spawnitemex("beamparticle",0,0,0,frandom(-5,5),frandom(-5,5),frandom(2,4))
		TNT1 A 0 a_spawnitemex("beamparticle",0,0,0,frandom(-5,5),frandom(-5,5),frandom(2,4))
		WVBM H 4 
		stop
	}
}

actor beamparticle 
{
	Health 4
	radius 3
	height 6
	Alpha	1
	+missile
	+FLOORCLIP
	+clientsideonly
	+DONTSPLASH
	+NOTELEPORT
	+bright
	States
	{
	spawn:
		PBPT ABCD 2
		loop
	}
}

actor shorticebeam
{
	PROJECTILE
	scale 1
	Damage (20)
	Speed 50
	Radius 6
	Height 8
	+bright
	+thruspecies
	species "player"
	damagetype "beamice"
	States
	{
	Spawn:
		SHBM B 7
		stop
	Death:
		TNT1 A 0
		LNGB C 4 
		Stop
	Xdeath:
		TNT1 A 0
		TNT1 AA 0 a_spawnitemex ("icebeamparticle",0,0,0,random(-2,2),random(-2,2),random(-2,2))
		LNGB C 4 
		Stop
		
	}
}

actor icebeamparticle
{
	projectile
	+nointeraction
	speed 10
	+BRIGHT
	states
	{
	spawn:	
		ICPT ABCD 4
		ICPT ABCD 4
		Stop
	}
}


actor longbeam
{
	PROJECTILE
	scale 1
	Damage (10)
	Speed 40
	Radius 6
	Height 8
	+bright
	+thruspecies
	species "player"
	States
	{
	Spawn:
		LNGB A 1
		loop
	Death:
		WVBM H 4 
		Stop
	Xdeath:
		TNT1 A 0
		TNT1 A 0 a_spawnitemex("beamparticle",0,0,0,frandom(-5,5),frandom(-5,5),frandom(2,4))
		TNT1 A 0 a_spawnitemex("beamparticle",0,0,0,frandom(-5,5),frandom(-5,5),frandom(2,4))
		TNT1 A 0 a_spawnitemex("beamparticle",0,0,0,frandom(-5,5),frandom(-5,5),frandom(2,4))
		TNT1 A 0 a_spawnitemex("beamparticle",0,0,0,frandom(-5,5),frandom(-5,5),frandom(2,4))
		WVBM H 4 
		Stop	
	}
}

actor icebeam
{
	PROJECTILE
	scale 1
	Damage (25)
	Speed 40
	Radius 6
	Height 8
	+bright
	+thruspecies
	species "player"
	damagetype "beamice"
	States
	{
	Spawn:
		LNGB B 1
		loop
	Death:
		LNGB C 4 
		Stop
	Xdeath:
		TNT1 A 0
		TNT1 AAAAA 0 a_spawnitemex ("icebeamparticle",0,0,0,random(-2,2),random(-2,2),random(-2,2))
		LNGB C 4 
		Stop	
	}
}

actor wavebeam
{
	PROJECTILE
	scale 1
	Damage (10)
	Speed 30
	Radius 6
	Height 8
	+bright
	+thruspecies
	species "player"
	States
	{
	Spawn:
		WVBM A 2
		WVBM A 1 a_jump (140, "waveflight2")
	waveflight:
		WVBM A 2 A_weave (15,0,2,0)
		WVBM B 2 A_weave (15,0,2,0)
		WVBM C 2 A_weave (15,0,2,0)
		WVBM D 2 A_weave (15,0,2,0)
		loop
	waveflight2:
		WVBM A 2 A_weave (15,0,-2,0)
		WVBM B 2 A_weave (15,0,-2,0)
		WVBM C 2 A_weave (15,0,-2,0)
		WVBM D 2 A_weave (15,0,-2,0)
		loop
	Death:
		WVBM EFGH 2 
		Stop
	Xdeath:
		TNT1 A 0
		TNT1 A 0 A_spawnitemex ("waveparticle1",0,0,0,0,5,-5)
		TNT1 A 0 A_spawnitemex ("waveparticle2",0,0,0,0,5,5)
		TNT1 A 0 A_spawnitemex ("waveparticle3",0,0,0,0,-5,5)
		TNT1 A 0 A_spawnitemex ("waveparticle4",0,0,0,0,-5,-5)
		WVBM EFGH 2 
		Stop
	}
}

actor waveparticle1
{
	+NOINTERACTION
	+clientsideonly
	+bright
	Radius 4
	Height 5
	scale 1
	States
	{
	Spawn:
		WVP1 ABC 2
		WVP1 ABC 1
		stop
	death:
		TNT1 A 1
		stop
	}
}

actor waveparticle2 : waveparticle1
{
	states
	{
	spawn:
		WVP2 ABC 2
		WVP2 ABC 1
		stop
	death:
		TNT1 A 1
		stop
	}
}

actor waveparticle3 : waveparticle1
{
	states
	{
	spawn:
		WVP3 ABC 2
		WVP3 ABC 1
		stop
	death:
		TNT1 A 1
		stop
	}
}	

actor waveparticle4 : waveparticle1
{
	states
	{
	spawn:
		WVP4 ABC 2
		WVP4 ABC 1
		stop
	death:
		TNT1 A 1
		stop
	}
}

//================BOMBS=================

actor MorphBomb
{
	+notimefreeze
	projectile
	+doombounce
	-nogravity
	+FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+thruspecies
	+bright
	species "player"
	seesound "bombs/set"
	Gravity 0.70
	BounceCount 5
	BounceFactor 0.90  
	Radius 14
	scale 2
	Damage (25)
	Speed 25
	reactiontime 20
	states
	{
	spawn:
		MBOM A 2
		MBOM B 2
		TNT1 A 0 a_countdown
		loop
	crash:
	death:
	xdeath:
		TNT1 A 0
		TNT1 A 0 a_fadeout (0.20)
		TNT1 A 0 a_changeflag ("nogravity",1)
		TNT1 A 0 a_playsound ("bombs/explode",0)
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM C 2 
		TNT1 A 2
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM D 2 
		TNT1 A 2
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM E 2 
		TNT1 A 2
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM E 2 
		stop
	}
}

actor MorphBall
{
	+notimefreeze
	projectile
	+doombounce
	-nogravity
	+FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+thruspecies
	+thruactors
	+bright
	species "player"
	Gravity 1.20
	BounceFactor 1 
	Radius 14
	scale 2
	Damage (0)
	Speed 25
	reactiontime 12
	states
	{
	spawn:
		MBAL A 3
		TNT1 A 0 a_spawnitemex("clusterbomb",0,0,0,frandom(-25,25),frandom(-25,25),frandom(4,8),0,0,180)
		MBAL B 1
		MBAL B 1 a_playsound ("bombs/set",0)
		MBAL B 1 a_spawnitemex ("timebomb")
		MBAL C 3
		TNT1 A 0 a_spawnitemex("clusterbomb",0,0,0,frandom(-25,25),frandom(-25,25),frandom(4,8),0,0,180)
		MBAL D 1
		MBAL D 1 a_playsound ("bombs/set",0)
		MBAL D 1 a_spawnitemex ("timebomb")
		TNT1 A 0 a_countdown
		loop
	death:
		TNT1 A 0
		TNT1 A 0 a_fadeout (0.20)
		TNT1 A 0 a_changeflag ("nogravity",1)
		TNT1 A 0 a_playsound ("bombs/explode",0)
		TNT1 A 0 a_spawnitemex("clusterbomb",0,0,0,frandom(-15,15),frandom(-15,15),frandom(4,8))
		TNT1 A 0 a_spawnitemex("clusterbomb",0,0,0,frandom(-15,15),frandom(-15,15),frandom(4,8))
		TNT1 A 0 a_spawnitemex("clusterbomb",0,0,0,frandom(-15,15),frandom(-15,15),frandom(4,8))
		TNT1 A 0 a_spawnitemex("clusterbomb",0,0,0,frandom(-15,15),frandom(-15,15),frandom(4,8))
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM C 2 
		TNT1 A 2
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM D 2 
		TNT1 A 2
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM E 2 
		TNT1 A 2
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM E 2
		stop
	}
}

actor clusterbomb : morphbomb	
{
	+thruactors
	reactiontime 18
	states
	{
	spawn:
		MBOM A 2
		MBOM B 2
		TNT1 A 0 a_changeflag ("thruactors", 0)
	timer:
		MBOM A 2
		MBOM B 2		
		TNT1 A 0 a_countdown
		loop
	}
}


actor timebomb
{
 	projectile
    Radius 40
    Height 50
    Speed 0
	+thruactors
	+nogravity
	+thruspecies
	+bright
	species "player"
	reactiontime 15
	states
	{
	spawn:
		MBOM A 2
		MBOM B 2
		TNT1 A 0 a_countdown
		loop
	death:
		TNT1 A 0
		TNT1 A 0 a_fadeout (0.20)
		TNT1 A 0 a_playsound ("bombs/explode",0)
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM C 2 
		TNT1 A 2
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM D 2 
		TNT1 A 2
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM E 2 
		TNT1 A 2
		TNT1 A 0 a_spawnitemex ("bombblast")
		MBOM E 2
		stop
	}
}

actor bombblast
{
	projectile
    Radius 50
    Height 50
    Speed 0
	damage (9)
	+bloodlessimpact
	+noblood
	+RIPPER
	+NOBOSSRIP
    -SHOOTABLE
	+DONTBLAST
	+FORCEPAIN
	states
	{
	spawn:
		TNT1 A 2
		stop
	death:
		TNT1 A 0
		stop
	}
}


//======SPECIAL=========
actor screwattacker
{
	projectile
    Radius 15
    Height 15
    Speed 0
	damage (1)
	+bloodlessimpact
	+noblood
	+thruactors
	+forcepain
	+forceradiusdmg
    -SHOOTABLE
	+DONTBLAST
	states
	{
	spawn:
		TNT1 A 1
		TNT1 A 0 a_spawnitemex("sparkbouncer",0,0,0,Frandom(-10,10),Frandom(-20,20),Frandom (-10,10),0,0,120)
		TNT1 A 1 a_explode (40,80,0,0,40)
		stop
	death:
		TNT1 A 0
		stop
	}
}

actor sparkbouncer
{
	Radius 13
	Height 8
	Speed 35
	Damage (8)
	Projectile
	+thruspecies
	+hexenbounce
	+DONTBLAST
	species "player"
	+bright
	bouncecount 3
	alpha 0.60
	reactiontime 5
	States
	{
	spawn:
		SPRK ABCDE 1
		TNT1 A 0 a_countdown
		loop
	death:
		TNT1 A 1 
		stop
	Xdeath:
		TNT1 A 0
		TNT1 A 0 a_playsound ("weapons/spark",0)
		TNT1 A 1 A_SpawnItemEx ("sparkhit", frandom(-3,3),frandom(-10,10),frandom(-10,10), 0,0,0, 0, SXF_NOCHECKPOSITION)
		stop
	}
}

actor bigspark
{
	Radius 13
	Height 8
	Speed 35
	Damage (200)
	Projectile
	+thruspecies
	+hexenbounce
	+FORCEPAIN
	+DONTBLAST
	species "player"
	+bright
	scale 3
	bouncecount 3
	alpha 0.60
	reactiontime 20
	States
	{
	spawn:
		SPRK ABCDE 1
		TNT1 A 0 a_countdown
		loop
	death:
		TNT1 A 1 
		stop
	Xdeath:
		TNT1 A 0
		TNT1 A 0 a_playsound ("weapons/spark",0)
		TNT1 A 0 a_spawnitemex ("sparkzap")
		TNT1 A 3 A_SpawnItemEx ("bigsparkhit", frandom(-3,3),frandom(-20,20),frandom(-20,20), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex ("sparkzap")
		TNT1 A 0 a_playsound ("weapons/spark",0)
		TNT1 A 3 A_SpawnItemEx ("bigsparkhit", frandom(-3,3),frandom(-20,20),frandom(-20,20), 0,0,0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex ("sparkzap")
		TNT1 A 3 A_SpawnItemEx ("bigsparkhit", frandom(-3,3),frandom(-20,20),frandom(-20,20), 0,0,0, 0, SXF_NOCHECKPOSITION)		
		TNT1 A 0 a_spawnitemex ("sparkzap")
		TNT1 A 0 a_playsound ("weapons/spark",0)
		TNT1 A 3 A_SpawnItemEx ("bigsparkhit", frandom(-3,3),frandom(-20,20),frandom(-20,20), 0,0,0, 0, SXF_NOCHECKPOSITION)
		stop
	}
}

actor sparkzap
{
	projectile
    Radius 40
    Height 50
    Speed 0
	damage (60)
	+bloodlessimpact
	+FORCEPAIN
	+noblood
	+RIPPER
	+DONTBLAST
	states
	{
	spawn:
		TNT1 A 1
		stop
	death:
		TNT1 A 0
		stop
	}
}

actor sparkhit
{
	+NOINTERACTION
	scale 2
	Radius 4
	Height 5
	+bright
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 1 a_jump (80, "zap2")
		SPRK F 1
		SPRK G 1
		SPRK F 1
		SPRK G 1
		SPRK F 1
		SPRK G 1
		stop
	zap2:
		TNT1 A 0
		SPRK G 1
		SPRK F 1
		SPRK G 1
		SPRK F 1
		SPRK G 1
		SPRK F 1
		SPRK G 1
		SPRK F 1
		stop
	death:
		TNT1 A 1
		stop
	}
}

actor bigsparkhit : sparkhit
{
	scale 4
}

actor ridleyfireball
{
	PROJECTILE
	scale 1
	Damage (15)
	Speed 30
	Radius 8
	Height 8
	+bright
	+thruspecies
	species "player"
	States
	{
	Spawn:
		RDFB A 2 A_weave (0,15,0,1)
		RDFB B 2 A_weave (0,15,0,1)
		RDFB C 2 A_weave (0,15,0,1)
		RDFB D 2 A_weave (0,15,0,1)
		loop
	Death:
		WVBM EFGH 2 
		Stop
	}
}

//==========TOKENS=======

actor holdbombkey : inventory
{inventory.maxamount 1}

actor ballarmed : inventory
{inventory.maxamount 1}

actor ballcharge : inventory
{inventory.maxamount 20}

actor bombstock : inventory
{inventory.maxamount 3}

actor flipping : inventory
{inventory.maxamount 1}


actor flickpuff : bulletpuff
{
	renderstyle "normal"
	+FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+bloodlessimpact
	+PUFFONACTORS
	states
	{
	spawn:
		TNT1 A 0
		stop
	}
}
