//////////////////////
// SHARK BOSS FIGHT // 									(No, not shark man)
//////////////////////

actor MegamanRooftopProp
{
+NOGRAVITY
Scale 2.5
States
	{
	Spawn:
	TFOG A 0 A_ChangeVelocity(0,0,-13,CVF_RELATIVE|CVF_REPLACE)
	TFOG A 1 A_Jumpif(floorz==z, "Land")
	loop
	Land:
	TFOG A 0 A_PlaySoundEx("misc/teleportin", "Voice", 0, 1)
	TFOG CCAAABBB 1
	MEGM A 4
	MEGM BBBBCCCCDDDDEEEEBBBBCCCC 1 A_ChangeVelocity(5,0,0,CVF_RELATIVE|CVF_REPLACE)
	Angle:
	MEGM A 0 A_SetAngle(60)
	MEGM A -1 A_Stop
	stop
	Talking:
	MEGM AIAIAIAIAIAIAIAIA 4
	MEGM A -1
	Goto Spawn
	Sneeze:
	MEGM J 8
	MEGM J 0 A_PlaySoundEx("misc/sneeze", "body")
	MEGM KL 4
	MEGM L -1
	wait
	
	Leave:
	TFOG B 0 A_PlaySoundEx("misc/teleportout", "Voice", 0, 1)
	TFOG BBBAAACCC 1
	TFOG A 65 A_ChangeVelocity(0,0,13,CVF_RELATIVE|CVF_REPLACE)
	stop
	
	Leave2:
	MEGM A 0 A_GiveInventory("BusterAmmo", 1)
	MEGM A 0 A_SpawnItemEx("RushPropFXGiver")
	MEGM A 0 A_ChangeFlag("NOINTERACTION", 1)
	MEGM A 50 A_ChangeVelocity(10,0,5,CVF_RELATIVE|CVF_REPLACE)
	stop
	}
}

actor RushPropFXGiver
{
-SOLID
+MISSILE
+NOGRAVITY
+NOINTERACTION
	States
	{
	Spawn:
	TNT1 AAAAA 1 A_GiveToTarget("RushJetFX1",1)
	TNT1 AAAAA 1 A_GiveToTarget("RushJetFX2",1)
	TNT1 AAAAA 1 A_JumpIfInTargetInventory("BusterAmmo",1,"Spawn")
	stop
	}
}

actor RushPropFXCoop
{
-SOLID
+MISSILE
+NOGRAVITY
+NOINTERACTION
scale 2.5
	States
	{
	Spawn:
	TNT1 A 0 A_GiveInventory("RushFXFlag", 1)
	goto Move
	Move:
	TNT1 A 0 A_JumpIf(CallACS("TC_IsTargetAlive")==0, "Death")
	RUSH GGGGHHHH 1 A_Warp(AAPTR_TARGET, 0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	loop
	Death:
	TNT1 A 0 A_TakeInventory("RushFXFlag", 1)
	stop
	}
}

actor RushRooftopProp
{
Scale 2.5
States
	{
	Spawn:
	RUSH D 0 A_ChangeVelocity(0,0,-13,CVF_RELATIVE|CVF_REPLACE)
	RUSH D 1 A_Jumpif(floorz==z, "Land")
	loop
	Land:
	RUSH D 0 A_PlaySoundEx("misc/teleportin", "Voice", 0, 1)
	RUSH FFDDDEEE 1
	Look:
	RUSH AAABBB 1
	loop
	Jet:
	RUSH I 1 A_LookEx(LOF_NOSOUNDCHECK,0,20,0,360,"See")
	loop
	See:
	TNT1 A 1 ACS_Execute(16,0)
	stop
	}
}

actor RushRooftopProp2
{
Scale 2.5
States
	{
	Spawn:
	RUSH D 0 A_ChangeVelocity(0,0,-13,CVF_RELATIVE|CVF_REPLACE)
	RUSH D 1 A_Jumpif(floorz==z, "Land")
	loop
	Land:
	RUSH D 0 A_PlaySoundEx("misc/teleportin", "Voice", 0, 1)
	RUSH FFDDDEEE 1
	Jet:
	RUSH I 1 //A_LookEx(LOF_NOSOUNDCHECK,0,40,0, 360, "See")
	loop
	See:
	RUSH I -1 ACS_Execute(16,0)
	stop
	}
}

actor SharkSkyViewPoint : SkyViewPoint 11144
{
//$Category MM8BDM-Bosses
//$Sprite AMMOA0
-NOSECTOR
-NOBLOCKMAP
+ACTIVATEMCROSS
states
	{
	Spawn:
	TNT1 A 1 A_ChangeVelocity(-10,0,0,CVF_RELATIVE|CVF_REPLACE)
	loop
	}
}

actor SharkBooster 11145
{
//$Category MM8BDM-Props
scale 2.5
-SOLID
+NOGRAVITY
states
	{
	Spawn:
	SHAB M 2 A_SpawnItemEx("SharkBoosterFX", -28, 0, 10, -15, 0 ,0, 0)
	loop
	}
}

actor SharkBoosterBig 11146
{
//$Category MM8BDM-Props
scale 2.5
-SOLID
+NOGRAVITY
+SYNCHRONIZED
height 1
radius 1
renderstyle none
states
	{
	Spawn:
	SHAB M 4 A_SpawnItemEx("SharkBoosterBigFX", -28, 0, 0, -15, 0 ,0, 0)
	loop
	}
}

actor SharkBoosterFX
{
scale 2.5
renderstyle translucent
alpha 0.9
PROJECTILE
+NOINTERACTION
Height 2
Radius 2
states
	{
	Spawn:
	SHAB F 5
	Fade:
	SHAB F 1 A_FadeOut(0.1)
	loop
	}
}

actor SharkBoosterBigFX : SharkBoosterFX
{
scale 5.0
states
	{
	Spawn:
	SHAB F 5
	Fade:
	SHAB F 2 A_FadeOut(0.1)
	loop
	}
}

actor SharkMissileBay 11148
{
//$Category MM8BDM-Bosses
+SHOOTABLE
+DONTRIP
+NODAMAGE
+NOBLOOD
Scale 2.5
renderstyle none
Height 50
Radius 12
Health 500
mass 999999999
painchance 256
damagefactor "Buster", 1.7
damagefactor "Misc", 0.0
damagefactor "WilyIce", 0.0
damagefactor "LaserTrident", 2.4
damagefactor "MagmaBazooka1", 2.3
damagefactor "MagmaBazooka2", 3.0
Obituary "%o was annihilated by the Mega Mech Shark\c-."
States
{
	Spawn:
	SHAB G -1
	stop
	Pain:
	SHAB G 0 A_JumpIfInventory("CutterFlag",1,"RealPain")
	SHAB G 5 A_PlaySoundEx("item/protoreflect", "Voice", 0, 1)
	Goto Spawn
	RealPain:
	SHAB G 0 A_PlaySoundEx("misc/devilpain", "Voice", 0, 1)
	SHAB G 5 A_SpawnItemEx("PainFX")
	Goto Spawn
	Open:
	SHAB G 0 A_GiveInventory("CutterFlag",1,0)
	SHAB G 0 A_ChangeFlag("NODAMAGE",0)
	goto Spawn
	Close:
	SHAB G 0 A_TakeInventory("CutterFlag",999,0)
	SHAB G 0 A_ChangeFlag("NODAMAGE",1)
	goto Spawn
	Death:
	SHAB G 0 ACS_ExecuteAlways(6, 0, 13, tid)
	SHAB G 0 Thing_ChangeTID(tid, 0)
	SHAB G 0 A_PlaySoundEx("misc/mm3explosion", "Voice", 0, 1)
	SHAB G 15 A_SpawnItemEx("DrillExplode", 0, 0, 32)
	SHAB G 0 A_PlaySoundEx("misc/mm3explosion", "Voice", 0, 1)
	SHAB G 15 A_SpawnItemEx("DrillExplode", 0, 0, 0)
	SHAB G 0 A_PlaySoundEx("misc/mm3explosion", "Voice", 0, 1)
	SHAB G 15 A_SpawnItemEx("DrillExplode", 0, 0, -32)
	stop
}
}

actor SharkMissile
{
+NOGRAVITY
-SHOOTABLE
+NOBLOOD
+SOLID
+CANPASS
Height 21
Radius 21
Health 2
scale 2.5
damagetype "Misc"
damagefactor "WilyIce", 0.0
damagefactor "Misc", 0.0
Obituary "%o was annihilated by the Mega Mech Shark\c-."
states
{
	Spawn:
	SHAB G 0
	SHAB G 0 A_SpawnItemEx("SharkTorpedoDeath")
	SHAB GHGHGHGH 4
	Goto Seek
	Seek:
	SHAB G 0 A_ChangeFlag("SHOOTABLE",1)
	SHAB GH 4 A_LookEx(0,0,0,0,360,"Seeking")
	loop
	Seeking:
	SHAB G 0 ACS_ExecuteAlways(6, 0, 12, 1)
	SHAB GGGGHHHHGGGGHHHH 1 A_JumpIfCloser(100, "Death2")
	SHAB G 0 A_JumpIfInTargetInventory("CutterFlag", 1, "Death")
	loop
	Death2:
	SHAB G 0 A_SpawnItemEx("SharkMissileExplode")
	Death:
	SHAB G 0 A_Fall
	SHAB G 0 A_Stop
	SHAB G 0 A_PlaySoundEx("misc/mm3explosion", "Voice", 0, 1)
	SHAB G 0 A_SpawnItemEx("DrillExplode")
	stop
}
}

actor SharkMissileExplode
{
+MISSILE
damagetype "Misc"
Obituary "%o was annihilated by the Mega Mech Shark\c-."
states
{
	Spawn:
	TNT1 A 0
	TNT1 A 2 ACS_ExecuteAlways(6, 0, 21)
	TNT1 A 0 A_Explode(20, 500, 1, 0, 1)
	stop
}
}

actor SharkMissile2 : SharkMissile
{
translation "41:41=[0,173,0]:[0,173,0]"
states
{
	Seeking:
	SHAB G 0 ACS_ExecuteAlways(6, 0, 12)
	SHAB GGGGHHHHGGGGHHHH 1 A_JumpIfCloser(200, "Death2")
	SHAB G 0 A_JumpIfInTargetInventory("CutterFlag", 1, "Death")
	loop
	Death2:
	SHAB G 0 A_SpawnItemEx("SharkMissileExplode")
	Death:
	SHAB G 0 A_FaceTarget
	SHAB G 0 A_Stop
	SHAB G 0 A_PlaySoundEx("misc/mm3explosion", "Voice", 0, 1)
	SHAB G 0 A_SpawnItemEx("DrillExplode")
	TNT1 A 0 A_SpawnItemEx("SharkMissileSplit", 0, 0, 0, 0, 12, 0, 0)
	TNT1 A 0 A_SpawnItemEx("SharkMissileSplit", 0, 0, 0, 0, -12, 0, 0)
	stop
}
}

actor SharkMissileSplit : SharkMissile
{
-SOLID
+SHOOTABLE
+NOBLOOD
scale 1.5
damagefactor "Misc", 0.0
damagefactor "WilyIce", 0.0
translation "41:41=[0,173,0]:[0,173,0]"
states
{
	Spawn:
	SHAB GH 4
	Goto Seek
	Seek:
	SHAB GH 4 A_LookEx(0,0,0,0,360,"Seeking")
	loop
	Seeking:
	SHAB G 0 ACS_ExecuteAlways(6, 0, 12)
	SHAB GGGGHHHHGGGGHHHH 1 A_JumpIfCloser(60, "Death2")
	SHAB G 0 A_JumpIfInTargetInventory("CutterFlag", 1, "Death")
	loop
	Death2:
	SHAB G 0 A_SpawnItemEx("SharkMissileExplode2")
	Death:
	SHAB G 0 A_Stop
	SHAB G 0 A_PlaySoundEx("misc/mm3explosion", "Voice", 0, 1)
	SHAB G 0 A_SpawnItemEx("DrillExplode")
	stop
}
}

actor SharkMissileExplode2
{
+MISSILE
damagetype "Misc"
states
{
	Spawn:
	TNT1 A 0
	TNT1 A 2 ACS_ExecuteAlways(6, 0, 21)
	TNT1 A 0 A_Explode(10, 500, 1, 0, 1)
	stop
}
}


actor SharkMissile3 : SharkMissile
{
translation "41:41=198:198"
damagetype "WilyIce"
damagefactor "WilyIce", 0.0
damagefactor "Misc", 0.0
dropitem "SharkEnergyDrop"
states
{
	Seeking:
	SHAB G 0 ACS_ExecuteAlways(6, 0, 12)
	SHAB G 0 A_JumpIfInTargetInventory("CutterFlag", 1, "Death")
	SHAB GGGGHHHHGGGGHHHH 1 A_JumpIfCloser(200, "Death2")
	loop
	Death2:
	SHAB G 0 A_SpawnItemEx("SharkMissileExplode")
	Goto Death+1
	Death:
	SHAB G 0 A_Fall
	SHAB G 0 A_FaceTarget
	SHAB G 0 A_Stop
	SHAB G 0 A_PlaySoundEx("misc/mm3explosion", "Voice", 0, 1)
	SHAB G 0 A_SpawnItemEx("DrillExplode")
	TNT1 A 0 ACS_ExecuteAlways(6, 0, 21)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 0)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 22.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 45)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 67.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 90)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 112.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 135)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 157.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 180)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 202.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 225)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 247.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 270)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 292.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 315)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 20, 0, 337.5)
	
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 0)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 22.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 45)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 67.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 90)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 112.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 135)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 157.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 180)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 202.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 225)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 247.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 270)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 292.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 315)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, 5, 337.5)
	
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 0)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 22.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 45)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 67.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 90)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 112.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 135)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 157.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 180)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 202.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 225)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 247.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 270)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 292.5)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 315)
	TNT1 A 0 A_SpawnItemEx("SharkMissileIce", 0, 0, 0, 0, 15, -5, 337.5)
	stop
}
}

actor SharkMissile4 : SharkMissile
{
+FLOATBOB
dropitem "SharkBigHealthDrop"
translation "41:41=218:218"
states
{
	Seeking:
	SHAB G 0 ACS_ExecuteAlways(6, 0, 12)
	SHAB G 0 A_JumpIfInTargetInventory("CutterFlag", 1, "Death")
	SHAB GGGGHHHHGGGGHHHH 1 A_JumpIfCloser(200, "Death2")
	loop
	Death2:
	SHAB G 0 A_SpawnItemEx("SharkMissileExplode")
	Goto Death+1
}
}

actor SharkEnergyDrop : WeaponEnergy
{
+NOGRAVITY
gravity 0.0
reactiontime 50
radius 40
states
{
	SpawnLoop:
	EBAL A 0
	EBAL A 0 A_Stop
	EBAL A 0 A_Recoil(-2)
	EBAL AB 6 A_CountDown
	Goto SpawnLoop+3
}
}

actor SharkSmallHealthDrop : SmallHealth
{
+NOGRAVITY
gravity 0.0
reactiontime 50
radius 40
states
{
	SpawnLoop:
	HBAL A 0
	HBAL A 0 A_Stop
	HBAL A 0 //A_Recoil(-2)
	HBAL AB 6 A_CountDown
	Goto SpawnLoop+3
}
}

actor SharkBigHealthDrop : BigHealth
{
+NOGRAVITY
gravity 0.0
reactiontime 50
radius 40
states
{
	SpawnLoop:
	HBAL A 0
	HBAL A 0 A_Stop
	HBAL A 0 A_Recoil(-2)
	HBAL CD 6 A_CountDown
	Goto SpawnLoop+3
}
}

actor SharkTridentDrop : CustomInventory
{
+NOGRAVITY
gravity 0.0
reactiontime 90
radius 40
+COUNTITEM
scale 2.5
inventory.amount 1
inventory.pickupsound "weapon/weaponup"
Inventory.Pickupmessage "$PU_LASERTRIDENT"
states
{
	Spawn:
	LTRI A 0
	LTRI A 40 A_Recoil(-8)
	LTRI A 0 A_Stop
	LTRI A 0 A_Recoil(-3)
	Countdown:
	LTRI AA 6 A_CountDown
	loop
	Pickup:
	TNT1 A 0 A_GiveInventory("LaserTridentWep", 1)
	stop
}
}

actor SharkMagmaDrop : CustomInventory
{
+NOGRAVITY
gravity 0.0
reactiontime 90
radius 40
+COUNTITEM
scale 2.5
inventory.amount 1
inventory.pickupsound "weapon/weaponup"
Inventory.Pickupmessage "$PU_MAGMABAZOOKA"
states
{
	Spawn:
	MGM1 A 0
	MGM1 A 40 A_Recoil(-8)
	MGM1 A 0 A_Stop
	MGM1 A 0 A_Recoil(-3)
	Countdown:
	MGM1 AA 6 A_CountDown
	loop
	Pickup:
	TNT1 A 0 A_GiveInventory("MagmaBazookaWep", 1)
	stop
}
}

actor SharkConcreteDrop : CustomInventory
{
-NOGRAVITY
gravity 0.0
reactiontime 95
radius 40
+COUNTITEM
+NOCLIP
scale 2.5
inventory.amount 1
inventory.pickupsound "weapon/weaponup"
Inventory.Pickupmessage "$PU_CONCRETESHOT"
states
{
	Spawn:
	CONC A 0
	CONC A 8 A_ChangeVelocity(0,0,-30,CVF_RELATIVE|CVF_REPLACE)
	CONC A 0 A_Stop
	CONC A 0 A_ChangeFlag("NOGRAVITY",1)
	CONC A 0 A_ChangeFlag("NOCLIP",0)
	CONC A 0 A_Recoil(-1)
	Countdown:
	CONC AA 6 A_CountDown
	loop
	Pickup:
	TNT1 A 0 A_GiveInventory("ConcreteShotWep", 1)
	stop
}
}

actor SharkETankDrop : CustomInventory
{
-NOGRAVITY
gravity 0.0
reactiontime 50
radius 40
+COUNTITEM
+NOCLIP
scale 2.5
inventory.amount 1
Inventory.PickupSound "item/1up"
inventory.pickupmessage "$PU_ETANK"
states
{
	Spawn:
	EBAL F 0
	EBAL F 8 A_ChangeVelocity(0,0,-30,CVF_RELATIVE|CVF_REPLACE)
	EBAL F 0 A_Stop
	EBAL F 0 A_ChangeFlag("NOGRAVITY",1)
	EBAL F 0 A_ChangeFlag("NOCLIP",0)
	EBAL F 0 A_Recoil(-1)
	Countdown:
	EBAL FE 6 A_CountDown
	loop
	Pickup:
	TNT1 A 0 A_GiveInventory("ETank", 1)
	stop
}
}

actor SharkMissileIce
{
scale 2.5
PROJECTILE
Damage (10)
Height 20
Radius 20
damagetype "WilyIce"
States
{
	Spawn:
	FCRA D 4 A_SpawnItemEx("FreezeCrackerFX", -8, Random(-16, 16), random(0, -8))
	loop
}
}

actor SharkJoe
{
MONSTER
mass 999999999
damagefactor "Buster", 1.0
damagefactor "LaserTrident", 1.0
damagefactor "WilyIce", 0.0
damagefactor "Misc", 0.0
-COUNTKILL
scale 2.5
Height 52
Radius 16
Health 150
Painchance 256
+LOOKALLAROUND
Obituary "%o was annihilated by the Mega Mech Shark\c-."
dropitem "SharkTridentDrop"
States
{
	Spawn:
	SHAB N 8 A_Look
	loop
	See:
	SHAB N 1 A_TakeInventory("QuickBoomerangAmmo", 999)
	Reloading:
	SHAB N 1 A_GiveInventory("CutterFlag",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
	SHAB N 0 A_JumpIfInventory("CutterFlag", 125, "Missile")
	loop
	Missile:
	SHAB N 0 A_TakeInventory("CutterFlag",999)
	SHAB N 0 A_FaceTarget
	SHAB N 0 A_PlaySoundEx("misc/fakeshot2", "SoundSlot5", 0, 1)
	SHAB O 0 A_GiveInventory("QuickBoomerangAmmo", 1)
	SHAB O 4 A_CustomMissile("SharkJoeShot", 42, 0, random(-2,2))
	SHAB N 0 A_JumpIfInventory("QuickBoomerangAmmo", 60, "See")
	TNT1 N 0 A_ChangeFlag("NOPAIN", 0)
	loop
	Pain:
	TNT1 A 0 A_PlaySoundEx("misc/devilpain", "SoundSlot6", 0, 1)
	TNT1 A 1 A_ChangeFlag("NOPAIN", 1)
	SHAB N 0 A_JumpIfInventory("QuickBoomerangAmmo", 1, "Missile")
	Goto Reloading
	Death:
	SHAB N 0 A_Fall
	SHAB N 0 A_PlaySoundEx("weapon/drillexplode", "SoundSlot5", 0, 1)
	SHAB O 0 A_SpawnItemEx("DrillExplode", 0, 0, 38)
	stop
}
}

actor SharkJoe2 : SharkJoe
{
dropitem "SharkMagmaDrop"
}

actor SharkJoeShot : FastProjectile
{
PROJECTILE
Speed 76
Damage (4)
radius 5
height 5
scale 2.5
States
{
	Spawn:
	BASB A 0
	BASB A 0 A_ChangeVelocity(0,0,random(-2,2),CVF_RELATIVE)
	BASB A -1
	stop
	Death:
	MMFX BCDE 2
	stop
}
}

actor SharkTorpedo
{
MONSTER
Obituary "%o was annihilated by the Mega Mech Shark\c-."
-COUNTKILL
-SOLID
+INVULNERABLE
Health 5
Scale 2.5
DamageFactor "Misc", 0.0
DamageFactor "MagmaBazooka1", 5.0
DamageFactor "ConcreteShot", 1.0
height 32
radius 32
painchance 256
//translation "41:41=198:198"
States
{
	Spawn:
	SHAB IJIJ 4
	Looking:
	SHAB I 0 A_Stop
	SHAB I 0 A_ChangeFlag("NOGRAVITY", 1)
	SHAB I 0 A_ChangeFlag("INVULNERABLE", 0)
	SHAB IJ 4 A_lookEx(0,0,0,0,360,"See")
	loop
	See:
	SHAB I 0 ACS_ExecuteAlways(6,0,14)
	Chase:
	SHAB A 0 A_JumpIfInventory("CutterFlag", 1, "Death")
	SHAB A 0 A_JumpIfInTargetInventory("IsDead", 1, "Death")
	SHAB IIIIJJJJJ 1 A_JumpIfCloser(64, "Melee")
	loop
	Pain:
	TNT1 A 1 A_PlaySound("misc/devilpain")
	Goto Chase
	Pain.ConcreteShot:
	SHAB I 0 Thing_SetTranslation(0,99)
	SHAB I 0 A_ChangeFlag("NOGRAVITY",0)
	SHAB I 0 A_GiveInventory("CutterFlag",1)
	Concreted:
	SHAB I 1 A_JumpIf(z==floorz, "Death")
	loop
	Melee:
	SHAB I 0 A_SpawnItemEx("SharkTorpedoDamager")
	Death:
	TNT1 A 0 A_PlaySound("misc/devilpain")
	TNT1 A 0 A_SpawnItemEx("SharkTorpedoDeath")
	stop
}
}

actor SharkTorpedoDamager
{
PROJECTILE
renderstyle none
//damage (8)
height 1
radius 1
Damagetype "Misc"
	States
	{
	Spawn:
	PLAY A 0
	TNT1 A 0 A_Explode(10, 200, 1, 0, 1)
	stop
	}
}

actor SharkTorpedoDispenser 11149
{
//$Category MM8BDM-Bosses
+SHOOTABLE
+DONTRIP
+NOBLOOD
+INVULNERABLE
Scale 2.5
//renderstyle none
+NOGRAVITY
Height 46
Radius 38
Health 500
mass 999999999
painchance 256
damagefactor "Buster", 1.3
damagefactor "LaserTrident", 2.0
damagefactor "MagmaBazooka1", 2.0
damagefactor "MagmaBazooka2", 1.7
States
{
	Spawn:
	SHAB A -1
	stop
	See:
	SHAB A 0 A_ChangeFlag("INVULNERABLE",0)
	Goto Spawn
	Open:
	SHAB A 0 A_JumpIf(health==0, "Dead")
	SHAB ABC 4
	SHAB D 0 A_PlaySoundEx("misc/sharktorpedo", "Voice", 0, 1)
	SHAB C 4 A_SpawnItemEx("SharkTorpedo", 0, 0, 0,0,0,random(0,-15))
	SHAB CBA 4
	Goto Spawn
	Death:
	SHAB D 0 A_PlaySoundEx("misc/mm3explosion", "Voice", 0, 1)
	SHAB D 0 A_Stop
	SHAB D 0 A_ChangeFlag("NOGRAVITY",1)
	SHAB D 0 A_SpawnItemEx("DrillExplode", 0, 0, -10)
	SHAB D 5 ACS_ExecuteAlways(6, 0, 15)
	Dead:
	SHAB D -1 Thing_ChangeTID(tid, 0)
	loop
}
}

actor SharkTorpedoDeath
{
+NOINTERACTION
+NOGRAVITY
scale 2.5
	states
	{
	Spawn:
	MMFX BCDE 4
	stop
	}
}

actor SharkDragonHead
{
MONSTER
-COUNTKILL
+INVULNERABLE
//+NOINTERACTION
Obituary "%o was burned to a crisp by the Changkey Dragon\c-."
-SOLID
-CANPASS
+NOGRAVITY
+DONTRIP
+NOBLOOD
height 42
radius 52
scale 2.5
Health 1000
damagefactor "Buster", 3.5
damagefactor "ConcreteShot", 6.5
damagefactor "MagmaBazooka1", 3.5
damagefactor "MagmaBazooka2", 3.5
damagefactor "LaserTrident", 4.5
damagefactor "FlameSword", 0.0
mass 999999999
States
{
	Spawn:
	CGDR A 0
	TNT1 A 0 A_SpawnItemEx("SharkDragonAppearanceFX")
	CGDR A 20 A_ChangeVelocity(0,0,18,CVF_RELATIVE|CVF_REPLACE)
	CGDR A 0 ACS_ExecuteAlways(6, 0, 16)
	Flying:
	CGDR AAAAAAAAAAAAAAAAAAAAA 1 A_Weave(0, 1.5, 0, 5.0)
	CGDR A 0 A_JumpIfInventory("AtomicFireAmmo",1,"Missile")
	CGDR AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Weave(0, 1.5, 0, 5.0)
	CGDR BBBBB 1 A_Weave(0, 1.5, 0, 5.0)
	loop
	Reignite:
	CGDR C 0 A_ChangeFlag("INVULNERABLE", 1)
	CGDR CCCCCCC 1 A_Weave(0, 1.5, 0, 5.0)
	Goto Flying
	Missile:
	CGDR C 0 A_PlaySoundEx("misc/dragonbreath", "SoundSlot5", 0, 1)
	CGDR C 0 A_TakeInventory("AtomicFireAmmo",1)
	CGDR C 0 A_SpawnItemEx("SharkDragonFireball", 45, 0, -15, 20, 0, -18, 0)
	CGDR CCCCCCCCCCC 1 A_Weave(0, 1.5, 0, 5.0)
	Goto Flying
	Damaged:
	CGDR C 0 A_ChangeFlag("INVULNERABLE", 0)
	CGDR R 0 A_SpawnItemEx("SharkDragonSweat", 15, 0, 50, 8, 0, 8, 90, 0) 
	CGDR R 0 A_SpawnItemEx("SharkDragonSweat", 15, 0, 50, 8, 0, 8, -90, 0) 
	CGDR A 0 A_SpawnItemEx("SharkDragonBodyDamager")
	CGDR RRRRRRRRRRR 1 A_Weave(0, 1.5, 0, 5.0)
	loop
	Death:
	CGDR B 0 ACS_ExecuteAlways(6, 0, 18)
	CGDR B 0 A_ChangeFlag("NOGRAVITY",1)
	CGDR B 1 Thing_ChangeTID(tid, 0)
	CGDR B 1 A_Stop
	CGDR B 0 A_ChangeVelocity(0,0,-3,CVF_RELATIVE|CVF_REPLACE)
	CGDR B 0 A_PlaySoundEx("misc/mm3explosion", "SoundSlot5", 0, 1)
	CGDR B 10 A_SpawnItemEx("DrillExplode", random(-64,64), random(-64,64), random(-64,64), 0, 0, 0, 0)
	CGDR B 0 A_PlaySoundEx("misc/mm3explosion", "SoundSlot5", 0, 1)
	CGDR B 10 A_SpawnItemEx("DrillExplode", random(-64,64), random(-64,64), random(-64,64), 0, 0, 0, 0)
	CGDR B 0 A_PlaySoundEx("misc/mm3explosion", "SoundSlot5", 0, 1)
	CGDR B 10 A_SpawnItemEx("DrillExplode", random(-64,64), random(-64,64), random(-64,64), 0, 0, 0, 0)
	CGDR B 0 A_PlaySoundEx("misc/mm3explosion", "SoundSlot5", 0, 1)
	CGDR B 10 A_SpawnItemEx("DrillExplode", random(-64,64), random(-64,64), random(-64,64), 0, 0, 0, 0)
	TNT1 A 0 A_SpawnItemEx("SharkSmallHealthDrop")
	stop
}
}

actor SharkDragonBodyFeet : SharkDragonHead
{
Health 1000
-INVULNERABLE
+DONTRIP
+NOBLOOD
mass 999999999
damagefactor "Misc", 0.0
damagefactor "FlameSword", 0.0
damagefactor "Buster", 4.0
damagefactor "MagmaBazooka1", 4.0
damagefactor "MagmaBazooka2", 6.0
damagefactor "ConcreteShot", 4.0
damagefactor "LaserTrident", 4.0
states
{
	Spawn:
	CGDR G 0
	TNT1 A 0 A_SpawnItemEx("SharkDragonAppearanceFX")
	CGDR G 20 A_ChangeVelocity(0,0,18,CVF_RELATIVE|CVF_REPLACE)
	CGDR G 0 ACS_ExecuteAlways(6, 0, 16)
	Flying:
	CGDR I 0 A_ChangeFlag("INVULNERABLE", 0)
	CGDR A 0 A_SpawnItemEx("SharkDragonBodyDamager")
	CGDR GGGGGGHHHHHH 1 A_Weave(0, 1.5, 0, 5.0)
	Goto Flying+1
	Damaged:
	CGDR F 0 A_SpawnItemEx("SharkEnergyDrop")
	DamagedDropped:
	CGDR I 0 A_ChangeFlag("SHOOTABLE", 0)
	CGDR I 0 A_ChangeFlag("INVULNERABLE", 1)
	CGDR I 1 A_Weave(0, 1.5, 0, 5.0)
	loop
	Reignite:
	CGDR I 0 A_ChangeFlag("SHOOTABLE", 1)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReignite")
	Goto Flying
	Death:
	CGDR I 1 Thing_ChangeTID(tid, 0)
	CGDR I 1 A_Stop
	CGDR I 0 A_ChangeVelocity(0,0,-3,CVF_RELATIVE|CVF_REPLACE)
	CGDR IIII 10 A_SpawnItemEx("DrillExplode", random(-64,64), random(-64,64), random(-64,64), 0, 0, 0, 0)
	TNT1 A 0 A_SpawnItemEx("SharkSmallHealthDrop")
	stop
}
}

actor SharkDragonBodyDamager
{
PROJECTILE
damagetype "Misc"
renderstyle none
Obituary "%o was burned to a crisp by the Changkey Dragon\c-."
	States
	{
	Spawn:
	TNT1 A 0
	PLAY A 5 A_Explode(3,128,0,0,1)
	stop
	}
}

actor SharkDragonSegment : SharkDragonBodyFeet
{
states
{
	Spawn:
	CGDR D 0
	TNT1 A 0 A_SpawnItemEx("SharkDragonAppearanceFX")
	CGDR D 20 A_ChangeVelocity(0,0,18,CVF_RELATIVE|CVF_REPLACE)
	CGDR D 0 ACS_ExecuteAlways(6, 0, 16)
	Flying:
	CGDR D 0 A_ChangeFlag("INVULNERABLE", 0)
	CGDR A 0 A_SpawnItemEx("SharkDragonBodyDamager")
	CGDR DDDDDDEEEEEE 1 A_Weave(0, 1.5, 0, 5.0)
	Goto Flying+1
	Damaged:
	CGDR I 0 A_ChangeFlag("SHOOTABLE", 0)
	CGDR F 0 A_SpawnItemEx("SharkEnergyDrop")
	DamagedDropped:
	CGDR F 0 A_ChangeFlag("INVULNERABLE", 1)
	CGDR F 1 A_Weave(0, 1.5, 0, 5.0)
	loop
	Reignite:
	CGDR I 0 A_ChangeFlag("SHOOTABLE", 1)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReignite")
	Goto Flying
	Death:
	CGDR F 1 Thing_ChangeTID(tid, 0)
	CGDR F 1 A_Stop
	CGDR F 0 A_ChangeVelocity(0,0,-3,CVF_RELATIVE|CVF_REPLACE)
	CGDR FFFF 10 A_SpawnItemEx("DrillExplode", random(-64,64), random(-64,64), random(-64,64), 0, 0, 0, 0)
	TNT1 A 0 A_SpawnItemEx("SharkSmallHealthDrop")
	stop
}
}

actor SharkDragonBackFeet : SharkDragonBodyFeet
{
states
{
	Spawn:
	CGDR J 0
	TNT1 A 0 A_SpawnItemEx("SharkDragonAppearanceFX")
	CGDR J 20 A_ChangeVelocity(0,0,18,CVF_RELATIVE|CVF_REPLACE)
	CGDR J 0 ACS_ExecuteAlways(6, 0, 16)
	Flying:
	CGDR J 0 A_ChangeFlag("INVULNERABLE", 0)
	CGDR A 0 A_SpawnItemEx("SharkDragonBodyDamager")
	CGDR JJJJJJKKKKKK 1 A_Weave(0, 1.5, 0, 5.0)
	Goto Flying+1
	Damaged:
	CGDR I 0 A_ChangeFlag("SHOOTABLE", 0)
	CGDR F 0 A_SpawnItemEx("SharkEnergyDrop")
	DamagedDropped:
	CGDR J 0 A_ChangeFlag("INVULNERABLE", 1)
	CGDR L 1 A_Weave(0, 1.5, 0, 5.0)
	loop
	Reignite:
	CGDR I 0 A_ChangeFlag("SHOOTABLE", 1)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReignite")
	Goto Flying
	Death:
	CGDR L 1 Thing_ChangeTID(tid, 0)
	CGDR L 1 A_Stop
	CGDR L 0 A_ChangeVelocity(0,0,-3,CVF_RELATIVE|CVF_REPLACE)
	CGDR LLLL 10 A_SpawnItemEx("DrillExplode", random(-64,64), random(-64,64), random(-64,64), 0, 0, 0, 0)
	TNT1 A 0 A_SpawnItemEx("SharkSmallHealthDrop")
	stop
}
}

actor SharkDragonTail1 : SharkDragonBodyFeet
{
+INVULNERABLE
states
{
	Spawn:
	CGDR F 0
	TNT1 A 0 A_SpawnItemEx("SharkDragonAppearanceFX")
	CGDR F 20 A_ChangeVelocity(0,0,18,CVF_RELATIVE|CVF_REPLACE)
	CGDR F 0 ACS_ExecuteAlways(6, 0, 16)
	Flying:
	CGDR A 0 A_SpawnItemEx("SharkDragonBodyDamager")
	CGDR FFFFFFFFFFFF 1 A_Weave(0, 1.5, 0, 5.0)
	loop
	Reignite:
	TNT1 A 0 //A_SpawnItemEx("SharkDragonReignite")
	Goto Flying
	Death:
	CGDR F 1 Thing_ChangeTID(tid, 0)
	CGDR F 1 A_Stop
	CGDR F 0 A_ChangeVelocity(0,0,-3,CVF_RELATIVE|CVF_REPLACE)
	CGDR FFFF 10 A_SpawnItemEx("DrillExplode", random(-64,64), random(-64,64), random(-64,64), 0, 0, 0, 0)
	TNT1 A 0 A_SpawnItemEx("SharkSmallHealthDrop")
	stop
}
}

actor SharkDragonTail2 : SharkDragonBodyFeet
{
+INVULNERABLE
states
{
	Spawn:
	CGDR M 0
	TNT1 A 0 A_SpawnItemEx("SharkDragonAppearanceFX")
	CGDR M 20 A_ChangeVelocity(0,0,18,CVF_RELATIVE|CVF_REPLACE)
	CGDR M 0 ACS_ExecuteAlways(6, 0, 16)
	Flying:
	CGDR A 0 A_SpawnItemEx("SharkDragonBodyDamager")
	CGDR MMMMMMMMMMMM 1 A_Weave(0, 1.5, 0, 5.0)
	loop
	Reignite:
	TNT1 A 0 //A_SpawnItemEx("SharkDragonReignite")
	Goto Flying
	Death:
	CGDR M 1 Thing_ChangeTID(tid, 0)
	CGDR M 1 A_Stop
	CGDR M 0 A_ChangeVelocity(0,0,-3,CVF_RELATIVE|CVF_REPLACE)
	CGDR MMMM 10 A_SpawnItemEx("DrillExplode", random(-64,64), random(-64,64), random(-64,64), 0, 0, 0, 0)
	TNT1 A 0 A_SpawnItemEx("SharkSmallHealthDrop")
	stop
}
}

actor SharkDragonReignite
{
+NOINTERACTION
+NOGRAVITY
+MISSILE
renderstyle none
-SOLID
height 0
radius 0
Obituary "%o was burned to a crisp by the Changkey Dragon\c-."
	states
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySoundEx("misc/lava", "Voice", 0, 1)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 5, 0, 10, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 10, 0, 5, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 15, 0, 0, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 10, 0, -5, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 5, 0, -10, 90)
	
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 5, 0, 10, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 10, 0, 5, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 15, 0, 0, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 10, 0, -5, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 5, 0, -10, -90)
	stop
	}
}

actor SharkDragonReigniteFlame
{
scale 2.5
PROJECTILE
damage (0)
-NOGRAVITY
+NOINTERACTION
height 32
radius 32
Obituary "%o was burned to a crisp by the Changkey Dragon\c-."
states
{
	Spawn:
	CGDR O 6
	CGDR NON 6 A_Changeflag("NOINTERACTION", 0)
	loop
}
}

actor SharkDragonAppearanceFX
{
+NOINTERACTION
+NOGRAVITY
renderstyle none
-SOLID
height 0
radius 0
	states
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySoundEx("misc/lava", "Voice", 0, 1)
	TNT1 AAA 0 A_SpawnItemEx("SharkDragonFX", 0, 0, 64, random(4,15), 0, random(8,15), random(0,360), SXF_NOCHECKPOSITION)
	stop
	}
}

actor SharkDragonFX
{
scale 2.5
-SOLID
PROJECTILE
+NOINTERACTION
damage 0
-NOGRAVITY
gravity 1.5
height 0
radius 0
states
{
	Spawn:
	CGDR NO 6
	CGDR NONO 6 A_ChangeFlag("NOINTERACTION", 0)
	stop
}
}

actor SharkDragonFireball
{
scale 2.5
PROJECTILE
damage (8)
height 45
radius 45
DamageType "Misc"
Obituary "%o was burned to a crisp by the Changkey Dragon\c-."
states
{
	Spawn:
	CGDR ON 6
	CGDR EDED 6 A_Stop
	CGDR D 0 ACS_ExecuteAlways(6, 0, 17)
	Look:
	CGDR E 6
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 2, 0, 4, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 4, 0, 2, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 6, 0, 0, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 4, 0, -2, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 2, 0, -4, 90)	
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 2, 0, 4, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 4, 0, 2, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 6, 0, 0, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 4, 0, -2, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 2, 0, -4, -90)
	CGDR D 6
	CGDR E 6
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 2, 0, 4, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 4, 0, 2, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 6, 0, 0, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 4, 0, -2, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 2, 0, -4, 90)	
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 2, 0, 4, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 4, 0, 2, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 6, 0, 0, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 4, 0, -2, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonFireballTrail", 0, 0, 0, 2, 0, -4, -90)
	CGDR D 6
	TNT1 A 0 A_Stop
	Goto Death
	Death:
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 5, 0, 10, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 10, 0, 5, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 15, 0, 0, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 10, 0, -5, 90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 5, 0, -10, 90)
	
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 5, 0, 10, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 10, 0, 5, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 15, 0, 0, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 10, 0, -5, -90)
	TNT1 A 0 A_SpawnItemEx("SharkDragonReigniteFlame", 0, 0, 0, 5, 0, -10, -90)
	stop
}
}

actor SharkDragonFireballTrail
{
scale 2.5
PROJECTILE
damage (4)
height 32
radius 32
DamageType "FlameSword"
Obituary "%o was burned to a crisp by the Changkey Dragon\c-."
states
{
	Spawn:
	CGDR ONO 6
	CGDR NO 6 A_Stop
	CGDR D 0 ACS_ExecuteAlways(6, 0, 17)
	Look:
	CGDR NO 6
	loop
}
}

actor SharkDragonSweat : SharkDragonFX
{
states
{
	Spawn:
	CGDR S 10
	stop
}
}

actor SharkMouth
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
Health 1000
+SHOOTABLE
+DONTRIP
+NOBLOOD
Height 40
Radius 14
scale 2.5
damagefactor "Misc", 0.0
damagefactor "Buster", 1.8
damagefactor "ConcreteShot", 2.0
damagefactor "MagmaBazooka1", 3.0
damagefactor "MagmaBazooka2", 3.0
damagefactor "LaserTrident", 1.8
mass 999999999
renderstyle none
states
{
	Spawn:
	PLAY A -1
	stop
	LaserAttack:
	PLAY A 1 A_SpawnItemEx("SharkLaserAttack", 20, 0, 5)
	Goto Spawn
	LineAttack:
	PLAY A 1 A_SpawnItemEx("SharkLineAttack", 20, 0, 5)
	Goto Spawn
	SpinAttack:
	PLAY A 1 A_SpawnItemEx("SharkSpinAttack", 20, 0, 5)
	Goto Spawn
	Death:
	PLAY A -1
	stop
}
}

actor SharkLaserAttack
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
+LOOKALLAROUND
-SOLID
//+MISSILE
+NOINTERACTION
+NOGRAVITY
renderstyle none
states
{
	Spawn:
	PLAY A 0
	PLAY A 0 Thing_ChangeTID(0,501)
	PLAY AAA 1 A_LookEx(0, 0, 0, 0, 360, "See")
	stop
	See:
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 0 A_FaceTarget
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 14 A_CustomMissile("SharkLaser", 0, 0, 0, 0, 0)
	PLAY A 50
	stop
}
}

actor SharkLaser : FastProjectile
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
PROJECTILE
+RIPPER
damage (1)
damagetype "Misc"
scale 2.0
height 5
radius 5
Speed 80
+NOINTERACTION
+FORCEXYBILLBOARD
States
{
	Spawn:
	SHAB K 0
	SHAB K 0 A_SpawnItemEx("SharkLaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
	SHAB K 1 //A_ScaleVelocity(1.5)
	SHAB K 0 A_SpawnItemEx("SharkLaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
	SHAB L 1 A_ChangeFlag("NOINTERACTION",0)
	loop
}
}

actor SharkLaserTrail
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
+FORCEXYBILLBOARD
+RANDOMIZE
speed 5
Scale 2.0
PROJECTILE
+RIPPER
damage (2)
damagetype "Misc"
States
{
Spawn: //A_SpawnItemEx("SharkLaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
SHAB KLKL 4 
stop
}
}

actor SharkLineAttack
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
+LOOKALLAROUND
-SOLID
//+MISSILE
+NOINTERACTION
+NOGRAVITY
renderstyle none
translation "193:193=41:41"
states
{
	Spawn:
	PLAY A 0
	PLAY A 0 Thing_ChangeTID(0,501)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 0 A_SpawnItemEx("SharkLine", 0, 0, 0, 30, 0, random(-90,10), 0, SXF_NOCHECKPOSITION)
	PLAY A 32 A_SpawnItemEx("SharkLine", 0, 0, 0, 30, 0, random(-90,10), 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 0 A_SpawnItemEx("SharkLine", 0, 0, 0, 30, 0, random(-90,10), 0, SXF_NOCHECKPOSITION)
	PLAY A 32 A_SpawnItemEx("SharkLine", 0, 0, 0, 30, 0, random(-90,10), 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 0 A_SpawnItemEx("SharkLine", 0, 0, 0, 30, 0, random(-70,0), 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_SpawnItemEx("SharkLine", 0, 0, 0, 30, 0, 10, 0, SXF_NOCHECKPOSITION)
	PLAY A 32 A_SpawnItemEx("SharkLine", 0, 0, 0, 30, 0, -90, 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_GiveInventory("CutterFlag",1)
	PLAY A 0 A_JumpIfInventory("CutterFlag", 4, "Death")
	loop
	Death:
	PLAY A 50
	stop
}
}

actor SharkLine : SharkLaser
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
height 5
radius 3
Speed 30
+NOINTERACTION
+FORCEXYBILLBOARD
-RIPPER
translation "193:193=41:41"
damage (5)
States
{
	Spawn:
	SHAB L 4 
	SHAB K 4 A_ChangeVelocity(15, vely, 0, CVF_RELATIVE|CVF_REPLACE)
	//SHAB K 4
	SHAB K 0 A_SpawnItemEx("SharkLinePart",0,0,0, 15, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB K 0 A_SpawnItemEx("SharkLineMaker",0,0,0, 15, 53, 0, 0, SXF_NOCHECKPOSITION)
	SHAB K 0 A_SpawnItemEx("SharkLineMaker",0,0,0, 15, -53, 0, 0, SXF_NOCHECKPOSITION)
	stop
}
}

actor SharkLineMaker : SharkLaser
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
height 0
radius 0
Speed 30
+NOINTERACTION
+FORCEXYBILLBOARD
reactiontime 256
damage (5)
translation "193:193=41:41"
States
{
	Spawn:
	SHAB K 0 A_CountDown
	SHAB KKKKLLLL 1 A_SpawnItemEx("SharkLinePart",0,0,0,velx, 0, velz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
	loop
}
}

actor SharkLinePart : SharkLaser
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
height 32
radius 32
Speed 30
+NOINTERACTION
+FORCEXYBILLBOARD
-RIPPER
reactiontime 256
damage (5)
States
{
	Spawn:
	SHAB P 4 A_CountDown
	loop
}
}

actor SharkSpinner : FastProjectile
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
PROJECTILE
+RIPPER
damage (2)
damagetype "Misc"
scale 2.0
height 1
radius 1
Speed 80
+NOINTERACTION
+FORCEXYBILLBOARD
translation "193:193=248:248"
States
{
	Spawn:
	SHAB K 0
	SHAB K 1 A_SpawnItemEx("SharkSpinnerTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	SHAB K 0 A_SpawnItemEx("SharkSpinnerTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	SHAB L 1 //A_ChangeFlag("NOINTERACTION",0)
	SHAB KLKLKL 1 A_SpawnItemEx("SharkSpinnerTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	SHAB K 0 A_SetAngle(random(0,360))
	SHAB KLKLKLKLKLKLKLKLKLKLKLKLKL 1 A_Stop
	SHAB K 0 ThrustThingZ(0, 10, 1, 1)
	Descent:
	SHAB K 0 A_SpawnItemEx("SharkSpinnerLaser",0,0,0,50)
	SHAB K 0 A_SpawnItemEx("SharkSpinnerLaser",0,0,0,-50)
	SHAB K 1 A_SetAngle(angle+3.7)
	SHAB K 0 A_SpawnItemEx("SharkSpinnerLaser",0,0,0,50)
	SHAB K 0 A_SpawnItemEx("SharkSpinnerLaser",0,0,0,-50)
	SHAB L 1 A_SetAngle(angle+3.7)
	loop
}
}

actor SharkSpinner2 : SharkSpinner
{
States
{
	Spawn:
	SHAB K 0
	SHAB K 1 A_SpawnItemEx("SharkSpinnerTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	SHAB K 0 A_SpawnItemEx("SharkSpinnerTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	SHAB L 1 //A_ChangeFlag("NOINTERACTION",0)
	SHAB KLKLKL 1 A_SpawnItemEx("SharkSpinnerTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	SHAB K 0 A_SetAngle(random(0,360))
	SHAB KLKLKLKLKLKLKLKLKLKLKLKLKL 1 A_Stop
	SHAB K 0 ThrustThingZ(0, 10, 0, 1)
	Descent:
	SHAB K 0 A_SpawnItemEx("SharkSpinnerLaser",0,0,0,50)
	SHAB K 0 A_SpawnItemEx("SharkSpinnerLaser",0,0,0,-50)
	SHAB K 1 A_SetAngle(angle-3.7)
	SHAB K 0 A_SpawnItemEx("SharkSpinnerLaser",0,0,0,50)
	SHAB K 0 A_SpawnItemEx("SharkSpinnerLaser",0,0,0,-50)
	SHAB L 1 A_SetAngle(angle-3.7)
	loop
}
}


actor SharkSpinnerTrail
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
+FORCEXYBILLBOARD
+RANDOMIZE
speed 5
Scale 2.0
PROJECTILE
translation "193:193=248:248"
+RIPPER
damage (1)
damagetype "Misc"
States
{
Spawn: //A_SpawnItemEx("SharkLaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
SHAB KL 4 
stop
}
}

actor SharkSpinnerLaser : FastProjectile
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
PROJECTILE
-RIPPER
damage (2)
translation "193:193=248:248"
damagetype "Misc"
scale 2.0
height 32
radius 32
Speed 80
-NOINTERACTION
+FORCEXYBILLBOARD
States
{
	Spawn:
	SHAB K 0
	SHAB K 0 //A_SpawnItemEx("SharkLaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
	SHAB K 1 //A_ScaleVelocity(1.5)
	SHAB K 0 //A_SpawnItemEx("SharkLaserTrail",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
	SHAB L 1 //A_ChangeFlag("NOINTERACTION",0)
	loop
}
}

actor SharkSpinAttack
{
Obituary "%o was annihilated by the Mega Mech Shark\c-."
+LOOKALLAROUND
-SOLID
//+MISSILE
+NOINTERACTION
+NOGRAVITY
renderstyle none
translation "193:193=41:41"
states
{
	Spawn:
	PLAY A 0
	PLAY A 0 Thing_ChangeTID(0,501)
	PLAY A 0 A_PlaySoundEx("misc/sharkspinner", "SoundSlot6", 1, 1)
	Shooty:
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 0 A_SpawnItemEx("SharkSpinner", 0, 0, 0, 135, 0, 8, 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 180 A_SpawnItemEx("SharkSpinner2", 0, 0, 0, 35, 0, -50, 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 0 A_SpawnItemEx("SharkSpinner", 0, 0, 0, 100, 0, 8, 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 180 A_SpawnItemEx("SharkSpinner2", 0, 0, 0, 100, 0, -50, 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 0 A_SpawnItemEx("SharkSpinner", 0, 0, 0, 35, 0, 8, 0, SXF_NOCHECKPOSITION)
	Death:
	PLAY A 50
	PLAY A 0 Thing_ChangeTID(501,0)
	PLAY A 0 A_StopSoundEx("SoundSlot6")
	stop
}
}

actor SharkDying
{
+NOINTERACTION
-SOLID
+NOGRAVITY
Height 1
Radius 1
states
{
	Spawn:
	TNT1 A 0 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	PLAY A 0 A_PlaySoundEx("misc/mm3explosion", 0, 0, 1)
	TNT1 A 1 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	TNT1 A 0 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	TNT1 A 1 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	TNT1 A 0 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	TNT1 A 1 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	TNT1 A 0 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	TNT1 A 1 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	TNT1 A 0 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	TNT1 A 1 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	TNT1 A 0 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	TNT1 A 1 A_SpawnItemEx("SharkDeathFx", random(-3000,100), random(-400,400), random(-80,200),0,0,0,180)
	loop
}
}

actor SharkDeathFx
{
scale 2.5
+NOGRAVITY
+NOINTERACTION
states
{
Spawn:
ASEX ABCDEF 2
stop
}
}

actor RoboenzaGas
{
scale 2.5
+NOINTERACTION
+NOGRAVITY
Speed 5
+MISSILE
renderstyle translucent
alpha 0.8
height 2
radius 2
states
{
	Spawn:
	SHAB RRRRSSSSSTTTTT 2 A_FadeOut(0.06)
	stop
}
}

actor RoboenzaGasSpewer 11150
{
//$Category MM8BDM-Props
+NOGRAVITY
-SOLID
+NOINTERACTION
renderstyle none
states
{
	Spawn:
	SHAB R 3 A_SpawnItemEx("RoboenzaGas", 0, 0, 0, random(5,15), 0, args[0], random(-45,45))
	loop
}
}


actor SharkStreetPole 11151
{
//$Category MM8BDM-Props
-SOLID
height 256
scale 2.5
radius 16
species "Fakeman"
+ACTIVATEMCROSS
States
{
	Spawn:
	SHAB Q -1
	stop
}
}

/*
actor SharkRing : FastProjectile
{
PROJECTILE
-RIPPER
damage (10)
damagetype "Misc"
scale 2.0
height 5
radius 5
Speed 80
+NOINTERACTION
+FORCEXYBILLBOARD
translation "193:193=248:248"
States
{
	Spawn:
	SHAB L 4 
	SHAB K 4 A_ChangeVelocity(-10, 0, 0, CVF_REPLACE)
	//SHAB K 4
	PLAY A 0 A_SetAngle(180.0)
	SHAB K 0 A_SpawnItemEx("SharkRingRinger1", 0, 0, 0, 0, 0, 24, 0, SXF_NOCHECKPOSITION)
	SHAB K 0 A_SpawnItemEx("SharkRingRinger2", 0, 0, 0, 0, 0, -24, 0, SXF_NOCHECKPOSITION)
	SHAB K 0 A_SpawnItemEx("SharkRingChecker", 0, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	stop
	Flying:
	SHAB LK 4 
	loop
}
}


actor SharkRingRinger1 : SharkRing
{
-NOINTERACTION
//renderstyle none
states
{
	Spawn:
	SHAB L 4 
	SHAB K 4 
	SHAB L 0 A_ChangeVelocity(10, 0, 0, CVF_RELATIVE|CVF_REPLACE)
	Goto Flying
	Flying:
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 0, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, 25, 25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 2, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, 25, 25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 4, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, 25, 25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 6, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, 25, 25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 8, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, 25, 25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 10, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, 25, 25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 12, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, 25, 25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 14, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, 25, 25) 
	stop
}
}

actor SharkRingRinger2 : SharkRing
{
-NOINTERACTION
//renderstyle none
states
{
	Spawn:
	SHAB L 4 
	SHAB K 4 
	SHAB L 0 A_ChangeVelocity(10, 0, 0, CVF_RELATIVE|CVF_REPLACE)
	Goto Flying
	Flying:
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 0, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, -25, -25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 2, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, -25, -25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 4, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, -25, -25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 6, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, -25, -25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 8, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, -25, -25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 10, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, -25, -25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 12, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, -25, -25) 
	SHAB K 0 A_SpawnItemEx("SharkRingPart", 14, 0, 0, 10, 0, 0, 0, SXF_NOCHECKPOSITION)
	SHAB KK 1 A_Weave(2, 2, -25, -25) 
	stop
}
}

actor SharkRingPart : SharkRing
{
-NOINTERACTION
-RIPPER
damage (10)
height 32
radius 32
states
{
	Spawn:
	SHAB L 4 
	SHAB K 4 
	loop
}
}

actor SharkRingAttack
{
+LOOKALLAROUND
-SOLID
//+MISSILE
+NOINTERACTION
+NOGRAVITY
renderstyle none
translation "193:193=41:41"
states
{
	Spawn:
	PLAY A 0
	PLAY A 0 A_SetAngle(180.0)
	PLAY A 0 Thing_ChangeTID(0,501)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 18 A_SpawnItemEx("SharkRing", 0, 0, 0, 25, 0, -30, 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 18 A_SpawnItemEx("SharkRing", 0, 0, 0, 25, 30, -30, 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 18 A_SpawnItemEx("SharkRing", 0, 0, 0, 25, 60, -30, 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 18 A_SpawnItemEx("SharkRing", 0, 0, 0, 25, 90, -30, 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 18 A_SpawnItemEx("SharkRing", 0, 0, 0, 25, 120, -30, 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 18 A_SpawnItemEx("SharkRing", 0, 0, 0, 25, 150, -30, 0, SXF_NOCHECKPOSITION)
	PLAY A 0 A_PlaySoundEx("misc/sharklaser", "voice", 0, 1)
	PLAY A 18 A_SpawnItemEx("SharkRing", 0, 0, 0, 25, 180, -30, 0, SXF_NOCHECKPOSITION)
	//PLAY A 0 A_GiveInventory("CutterFlag",1)
	//PLAY A 0 A_JumpIfInventory("CutterFlag", 6, "Death")
	//loop
	Death:
	PLAY A 0
	stop
}
}
*/