ACTOR SlimeMonsterMorpher : PowerupGiver 
{
Scale 2
radius 32
height 64
powerup.type SlimeMonster
inventory.pickupmessage ""
powerup.duration 99999999999999
states
{
Spawn:
TNT1 A 6
loop
 }
 }

Actor SlimeMonsterTarget : Inventory
{
	inventory.maxamount 1
	+IGNORESKILL
}

actor PowerSlimeMonster : PowerMorph
{
powerup.duration 99999999999999
PowerMorph.PlayerClass "SlimeMonsterPlayer"
}

Actor SlimeMonsterActCount : Inventory
{
	inventory.maxamount 100
	+IGNORESKILL
}

ACTOR SlimeMonsterPlayer : PlayerPawn
{
  Health 20000
	Radius 32
	Height 64
	Mass 0x7FFFFFFF
  Player.forwardmove 0.85
  Player.MaxHealth 20000
  Player.sidemove 0.85
  Player.Jumpz 9
  Player.DisplayName "SlimeMonster"
  Player.SoundClass "SlimeMonster"
  Player.MorphWeapon "SlimeMonsterWeapon0"
  Player.StartItem "Mana", 100
  DamageFactor "Boss", 0
  Damagefactor "Slime", 0
  Damagefactor "Lava", 0
  limitedtoteam 1
  painchance 0
    SEESOUND "SlimeMonster/Sight"
    DEATHSOUND "SlimeMonster/Death"
  bloodColor "AA D1 5C" 
	+NOSKIN
	+DONTTRANSLATE
  -PICKUP
  states
{
	Spawn:
		CREP A 5
        Loop 
	See:
		CREP AABB 2
		CREP B 0 A_PlaySound("SlimeMonster/Stomp",6) 
		CREP CCDD 2
		Loop
	Missile:
		CREP AABB 2
		CREP B 0 A_PlaySound("SlimeMonster/Stomp",6) 
		CREP CCDD 2
		Goto Spawn
	PoisonProjectiles:
        CREP EEEEFFFFGGGFFFGGGFFFGGGFFFGGGFFFGGGFFFFEEEE 1 A_JumpIf(Health<=0,"Death")
		Goto Spawn
	PoisonTrace:
		CREP A 0 
		CREP A 0 A_SetScale(1.1,1.1)
	    CREP AA 1 A_JumpIf(Health<=0,"Death")
		CREP A 0 A_SetScale(1.0,1.0)
		CREP AA 1 A_JumpIf(Health<=0,"Death")
		CREP A 0 A_SetScale(1.1,1.1)
		CREP AA 1 A_JumpIf(Health<=0,"Death")
		CREP A 0 A_SetScale(1.0,1.0)
		CREP AA 1 A_JumpIf(Health<=0,"Death")
		CREP A 0 A_SetScale(1.1,1.1)		
		CREP AA 1 A_JumpIf(Health<=0,"Death")
		CREP A 0 A_SetScale(1.0,1.0)
		CREP AA 1 A_JumpIf(Health<=0,"Death")
		CREP A 0 A_SetScale(1.1,1.1)		
		CREP AA 1 A_JumpIf(Health<=0,"Death")
		CREP A 0 A_SetScale(1.0,1.0)
		CREP AA 1 A_JumpIf(Health<=0,"Death")
		Goto Spawn
	PoisonBreath:
        CREP EEEEFFFFGHGHFFFFEEEE 1 A_JumpIf(Health<=0,"Death")
		Goto Spawn	
	PoisonBreathOn:
	    CREP GHGHFFFFEEEE 1 A_JumpIf(Health<=0,"Death")
		Goto Spawn	
	Camouflage:
	    TNT1 A 0 SetPlayerProperty (0, 1, 0)
	    CRE1 FFFFEEEEDDDDCCCCBBBB 1 A_JumpIf(Health<=0,"Death")
		Goto Spawn
	CamouflageOn:
	    CRE1 BBBBBBBBCCCDDD 1 A_JumpIf(Health<=0,"Death")
		TNT1 A 0 SetPlayerProperty (0, 0, 0)
	    CRE1 EEEEEFFFFF 1 A_JumpIf(Health<=0,"Death")
		Goto Spawn
	Death:
		TNT1 A 0 A_SpawnItem("SlimeMonsterDeath")
        APYT A 0 A_PlayerScream
		TNT1 A 0 a_givetotarget("BOSSKILLEDSTAT", 1)
		TNT1 A 1 a_givetotarget("reward", 1)
		BLAN A -1
		stop
    }
}

Actor SlimeMonsterDeath
{
	+NOINTERACTION
	-NOGRAVITY
	States
	{
	spawn:
        CREP IJK 7 
		CREP LMN 6
		CREP O -1
		Stop
	}
}

ACTOR "SlimeMonsterWeapon0" : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was raped by %k"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 0
 Weapon.AmmoGive 0
 Weapon.AmmoType "Mana"
 +WEAPON.NOAUTOAIM
  States
 {
  Spawn:
       TNT1 A -1
       Loop
  Ready:
       TNT1 A 1 A_WeaponReady
       goto AltFire
  Fire:
  TNT1 A 1
  goto AltFire
  Deselect:
       TNT1 A 1 A_Lower
       Loop
  Select:
       TNT1 A 0 A_Raise
       Loop
  AltFire:
       TNT1 A 0 A_GiveInventory("SlimeMonsterWeapon")
       TNT1 A 0 A_SelectWeapon("SlimeMonsterWeapon")
       TNT1 A 0 
       goto deselect
  Flash:
       SNIF F 3 Bright A_Light2
       SNIF F 3 Bright A_Light1
       SNIF F 0 Bright A_Light0
       Goto LightDone     
       }
}

actor SlimeMonsterattackmode1 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

actor SlimeMonsterattackmode2 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

actor SlimeMonsterattackmode3 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

actor SlimeMonsterattackmode4 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

actor SlimeMonsterBreathOn : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

ACTOR "SlimeMonsterWeapon" : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was raped by %k"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 0
 Weapon.AmmoGive 0
 Weapon.AmmoType "Mana"
 +WEAPON.NOAUTOAIM
 +INVENTORY.UNDROPPABLE
  States
 {
  Spawn:
       TNT1 A -1
       Loop
  Ready:
       CLA2 A 0
       CLA2 A 0 A_StopSound(CHAN_WEAPON) 
	   CLA2 A 0 A_JumpIfInventory("SlimeMonsterActCount", 70, "MakeNoise")
	   CLA2 AAAAAAAA 1 A_WeaponReady(WRF_ALLOWRELOAD)
	   CLA2 A 0 A_GiveInventory("SlimeMonsterActCount", 3)
	   Loop
  MakeNoise:
       CLA2 A 0 A_StopSound(CHAN_WEAPON) 
	   CLA2 A 0 A_TakeInventory("SlimeMonsterActCount", 999)
	   CLA2 A 0 A_PlaySound("SlimeMonster/Active", 3)
	   CLA2 A 1 
	   Goto Ready
  Nofire:
       CLA2 AAAA 2
	   Goto Ready
  Deselect:
       CLA2 A 0 A_StopSound(CHAN_WEAPON) 
       CLA2 A 1 A_Lower
       Loop
  Select:
       CLA2 A 0 A_StopSound(CHAN_WEAPON) 
       CLA2 A 0 A_Raise
       Loop
  Fire:
       TNT1 A 0 A_jumpIfinventory("SlimeMonsterattackmode1", 1, "PoisonProjectilescheck")
       TNT1 A 0 A_jumpIfinventory("SlimeMonsterattackmode2", 1, "PoisonTracecheck")
       TNT1 A 0 A_jumpIfinventory("SlimeMonsterattackmode3", 1, "PoisonBreathcheck")
       TNT1 A 0 A_jumpIfinventory("SlimeMonsterattackmode4", 1, "PoisonCamouflagecheck")
	   Goto ready	   
  AltFire:
  	   CLA2 A 1 ACS_execute(812)
       CLA2 A 2 
       CLA2 A 15
       goto ready
  SPoisonProjectiles:
       TNT1 A 0 A_Takeinventory("mana", 25)
	   TNT1 A 0 ACS_NamedExecuteAlways("True Sprite",0,Slimer_Projectiles)
       CLA2 A 8 
	   CLA2 A 0 A_PlaySound("SlimeSpit/Spawn",5)
       CLA2 B 3 bright A_FireCustomMissile("SlimeMonsterSpit", 0, 0, 0, 6)
       CLA2 A 3
	   CLA2 A 0 A_PlaySound("SlimeSpit/Spawn",5)
       CLA2 B 3 bright A_FireCustomMissile("SlimeMonsterSpit", 0, 0, 0, 6)
       CLA2 A 3
	   CLA2 A 0 A_PlaySound("SlimeSpit/Spawn",5)
       CLA2 B 3 bright A_FireCustomMissile("SlimeMonsterSpit", 0, 0, 0, 6)
       CLA2 A 3
	   CLA2 A 0 A_PlaySound("SlimeSpit/Spawn",5)
       CLA2 B 3 bright A_FireCustomMissile("SlimeMonsterSpit", 0, 0, 0, 6)
       CLA2 A 3
	   CLA2 A 0 A_PlaySound("SlimeSpit/Spawn",5)
       CLA2 B 3 bright A_FireCustomMissile("SlimeMonsterSpit", 0, 0, 0, 6)
       CLA2 A 13
       goto ready
  SPoisonTrace:
	   TNT1 A 0 A_Takeinventory("mana", 40)
	   TNT1 A 0 ACS_NamedExecuteAlways("True Sprite",0,Slimer_Trace)
	   CLA2 A 0 A_Stop
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",15,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",45,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",75,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",105,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",135,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",165,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",195,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",225,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",255,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",285,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",315,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",345,0,0,0)
       CLA2 B 1 Bright A_FireCustomMissile("PoisonTracer",0,0,0,0)
       CLA2 B 5 Bright 
	   CLA2 A 10
       goto ready
  SPoisonBreath:
	   TNT1 A 0 A_Takeinventory("mana", 2)
	   TNT1 A 0 ACS_NamedExecuteAlways("True Sprite",0,Slimer_Breath)
	   CLA2 A 3 A_GiveInventory("SlimeMonsterBreathOn",1)
	   CLA2 A 3 A_PlaySound("SlimeMonster/Breath1",6)
	   CLA2 A 2 A_PlaySound("SlimeMonster/Breath2",CHAN_WEAPON,1.0,True)
	   CLA2 B 1 bright A_FireCustomMissile("SlimeVenomShot",Random(5,-5),0,0,6,Random(4.000,-4.000))
	   CLA2 B 1 bright A_FireCustomMissile("SlimeVenomShot",Random(5,-5),0,0,6,Random(4.000,-4.000))
	   CLA2 B 1 bright A_FireCustomMissile("SlimeVenomShot",Random(5,-5),0,0,6,Random(4.000,-4.000))
       CLA2 A 1 A_Refire
	   CLA2 A 1 A_StopSound(CHAN_WEAPON) 
	   CLA2 A 1 A_PlaySound("SlimeMonster/Breath3",5)
	   CLA2 A 1 A_ClearRefire
	   CLA2 A 15 A_TakeInventory("SlimeMonsterBreathOn",999)
       goto ready
  SCamouflage:
	   TNT1 A 0 A_Takeinventory("mana", 2)
	   TNT1 A 0 ACS_NamedExecuteAlways("True Sprite",0,Slimer_Camouflage)
	   TNT1 A 0 A_Stop
	   CLA2 B 17 Bright A_Playsound("SlimeMonster/Camouflage")
  Hold:
       TNT1 A 0 A_jumpIfinventory("SlimeMonsterBreathOn", 1, "Hold2")
	   TNT1 A 0 ACS_NamedExecuteAlways("True Sprite",0,Slimer_CamouflageOn)
       TNT1 A 0 A_jumpIfinventory("mana", 4, 2)
       TNT1 A 0   
	   goto StopHold
       TNT1 A 0 A_Takeinventory("mana", 4)
	   TNT1 A 0 A_Stop
       CLA2 B 6 bright HealThing(9)
       CLA2 A 2 A_Refire
  StopHold:
	   CLA2 A 1 A_Playsound("SlimeMonster/Camouflage")
	   CLA2 A 1 A_ClearRefire
	   CLA2 A 20 
       goto ready
  Hold2:
       TNT1 A 0 A_jumpIfinventory("mana", 3, 2)
       TNT1 A 0   
	   goto StopHold2
       TNT1 A 0 A_Takeinventory("mana", 3)
	   TNT1 A 0
	   TNT1 A 0 ACS_NamedExecuteAlways("True Sprite",0,Slimer_BreathOn)
       CLA2 B 1 bright A_FireCustomMissile("SlimeVenomShot",Random(5,-5),0,0,6,Random(4.000,-4.000))
	   CLA2 B 1 bright A_FireCustomMissile("SlimeVenomShot",Random(5,-5),0,0,6,Random(4.000,-4.000))
       CLA2 A 1 A_Refire
  StopHold2:
	   CLA2 A 1 A_ClearRefire
	   CLA2 A 1 A_StopSound(CHAN_WEAPON) 
	   CLA2 A 1 A_PlaySound("SlimeMonster/Breath3",5)
	   CLA2 A 15 A_TakeInventory("SlimeMonsterBreathOn",999)
       goto ready
  Reload:
	   TNT1 A 0 ACS_NamedExecuteAlways("True Sprite",0,Slimer_Trace)
       CLA2 A 7 A_Playsound("SlimeMonster/Parasite")
       CLA2 B 10 bright A_FireCustomMissile("ParasiteSpawn", 0, 0, 0, -15)
       CLA2 A 7 		    
       Goto Ready
  PoisonProjectilescheck:
       TNT1 A 0 A_jumpIfinventory("mana", 35, "SPoisonProjectiles")
       goto ready
  PoisonTracecheck:
       TNT1 A 0 A_jumpIfinventory("mana", 40, "SPoisonTrace")  
       goto ready
  PoisonBreathcheck:
       TNT1 A 0 A_jumpIfinventory("mana", 2, "SPoisonBreath")  
       goto ready 
  PoisonCamouflagecheck:
       TNT1 A 0 A_jumpIfinventory("mana", 2, "SCamouflage")  
       goto ready
  }
}

ACTOR SlimeMonsterSpit
{
    Radius 13
    Height 8
    Speed 30
    Damage 13
    Projectile
    Scale 0.50
	RenderStyle Translucent
    DamageType "SlimeSpit"	
	DeathSound "SlimeSpit/Death"
	Decal "SlimeBloodSplatGreen"
    States
    {
    Spawn:
        EN3X ABCDEF 1 A_SpawnItemEx("SlimeSpitTrail",-(MomX/1.2),-(MomY/1.2),(MomZ/1.2*-1),(MomX/1.2),(MomY/1.2),(MomZ/1.2),0,138)
        Loop
    Death:
	    TNT1 AAAAAAAA 0 A_CustomMissile("FlyingSpitFake",-4,0,Random(0,360),2,Random(0,90))
		TNT1 AAAAAAAA 0 A_CustomMissile("FlyingSpitFake2",-4,0,Random(0,360),2,Random(0,90))
        GRE1 ABCDEFGHIJKLMNOPQRS 1 A_FadeOut(0.05)
        Stop
    }
}

ACTOR SlimeSpitTrail
{
    Projectile
	RenderStyle Translucent
    Scale 0.50
	+NOGRAVITY
    +DONTSPLASH
    +CLIENTSIDEONLY
    States
    {
    Spawn:
        EN3X ABCDEF 1 A_FadeOut(0.07)
	    Loop
	Death:
	    TNT1 A 1
		Stop
    }
}

ACTOR FlyingSpitFake 
{
    Scale 0.5
    Speed 3
    Health 1
    Radius 8
    Height 1
    Gravity 0.3
    Damage 0
    Renderstyle Translucent
    Alpha 0.95
	DamageType "Boss"
    +MISSILE
    +CLIENTSIDEONLY
    +NOTELEPORT
    +NOBLOCKMAP
    +BLOODLESSIMPACT 
    +FORCEXYBILLBOARD
    +NODAMAGETHRUST
    +MOVEWITHSECTOR
    +CORPSE
    -DONTSPLASH
    +THRUACTORS
    Mass 1
    States
    {
    Spawn:
	    TNT1 A 0 A_JumpIf(WaterLevel>1,"Splash")
		GRED KKKKKKKKKKKKKKKKK 1 A_FadeOut(0.05)
        Stop
	Splash:
        GRED A 0
        Stop
	Death:
	    TNT1 A 10
		Stop
    }
}

ACTOR FlyingSpitFake2 : FlyingSpitFake
{
    States
    {
     Spawn:
	    TNT1 A 0 A_JumpIf(WaterLevel>1,"Splash")
		GRED LLLLLLLLLLLLLLLLL 1 A_FadeOut(0.05)
        Stop
	Splash:
        GRED A 0
        Stop
	Death:
	    TNT1 A 10
		Stop
    }
}

ACTOR PoisonTracer
{
   Radius 10
   Height 10
   Speed 55
   Damage 2
   DamageType "Boss"
   BounceCount 2
   PoisonDamage 5
   Alpha 0.67
   PROJECTILE
   +FLOORHUGGER
   +THRUGHOST
   +RIPPER
   +RANDOMIZE
   -BLOODSPLATTER
   +HEXENBOUNCE
   -NOGRAVITY
   +DONTSPLASH
   Seesound "Slimer/Tracer1"
   DeathSound "Slimer/Tracer2"   
   Decal "SlimeBloodSplatGreen"
   States
   {
   Spawn:
      TNT1 A 1 Bright A_CStaffMissileSlither
      TNT1 A 0 A_PlaySound("Slimer/Tracer3",CHAN_BODY,1.0,True) 
	  TNT1 A 0 A_SpawnItemEx("SlimerSpawnPoisonedgrenades",Random(-10,10),Random(-10,10),Random(0,10),0,0,0,SXF_NOCHECKPOSITION)
      loop
   Death:
      TNT1 A 1 A_StopSound(CHAN_BODY)
      TNT1 A 1 A_SpawnItemEx("SlimerSpawnPoisonedgrenades",Random(-10,10),Random(-10,10),Random(0,10),0,0,0,SXF_NOCHECKPOSITION)
      stop
   }
}

ACTOR SlimerSpawnPoisonedgrenades
{
	Height 0
	Radius 0
	BounceFactor 0.3
	Alpha 0.85
	Scale 1.35
	ReactionTime 30
	Damage 0
	DamageType "Boss"
	PoisonDamage 15
	RenderStyle Translucent
	Projectile
	+RIPPER
	+NOBLOCKMAP
    -BLOODSPLATTER
	+RANDOMIZE
	+FORCERADIUSDMG
	States
	{
	Spawn:
	    TNT1 A 0
	    TNT1 A 0 A_Jump(256,"Poison1","Poison2","Poison3")
		TNT1 A 0
        Stop
    Poison1:
		GZO1 A 1 A_Stop
		GZO1 BCDEFGHIJKLMNOPQRS 1 A_Explode(4,100,0)
		Stop
	Poison2:
		GZO2 A 1 A_Stop
		GZO2 BCDEFGHIJKLMNOPQR 1 A_Explode(4,100,0)
		Stop
    Poison3:
		GZO3 A 1 A_Stop
		GZO3 BCDEFGHIJKLM 1 A_Explode(4,100,0)
		Stop
	Death:
		TNT1 A 0
		Stop
	}
}

ACTOR SlimeVenomShot 
{
    Projectile
    Height 16
    Radius 16
    Speed 32
    Damage (13)
	+RIPPER
    -BLOODSPLATTER
    +BLOODLESSIMPACT
	PoisonDamage 24
    DeathSound ""
    DamageType "Boss"
    States
	{
	Spawn:
		TNT1 AAAAAAAAAAAAAAA 1 A_SpawnItemEx("SlimeVenomTrail",0,0,0,Random(-5,5)+MOMX,Random(-5,5)+MOMY,Random(-5,5)+MOMZ,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
		Stop
	Death:
		TNT1 A 1 
		Stop
	}
}

ACTOR SlimeVenomTrail
{
    Height 2
    Radius 2
    Speed 3
    Scale 0.50
    RenderStyle Add
    Alpha 0.50
    -NOCLIP
    +RIPPER
    +NOGRAVITY
    +DONTSPLASH
    +NOTELEPORT
    +NOBLOCKMAP
    +CANNOTPUSH
    -BLOODSPLATTER
    -ACTIVATEPCROSS
    -ACTIVATEIMPACT
    +BLOODLESSIMPACT
    States
	{
	Spawn:
		SMOG ABCDEFGHIJKLMNOPQ 1 A_Fadeout(0.1)
		Stop
    }
}

ACTOR ParasiteSpawn
{
    Health 5
    Mass 0x7FFFFFFF
    Speed 18
    Height 10
    Radius 10
    ActiveSound "Parasite/Active"
    DeathSound "Parasite/Death"
	Scale 0.45
	MaxTargetRange 280
  	Obituary "A little parasite bit %o's ass"
	HitObituary "A little parasite bit %o's ass"
	DamageFactor "SlimeSpit", 0.0
	DamageFactor "Boss", 0.0
    Monster
	+NOTELEPORT
	+MISSILEEVENMORE
	+NEVERRESPAWN
	+NOINFIGHTING
	+INCOMBAT
	+DROPOFF
	+NOBLOODDECALS
	+LOOKALLAROUND
	+DONTBLAST
	+NOPAIN
	-COUNTKILL
	-TELESTOMP	
	-SOLID

    States
    {
	Spawn:
	    PARA F 0 A_Recoil(7)
        PARA F 0 A_ChangeFlag("FRIENDLY",0)
	    PARA F 1 A_PlaySound("Parasite/Sight",5)
        PARA F 1 A_CheckFloor("See")
		PARA F 1 A_Recoil(1)
        Goto Spawn+3
	See:
		PARA A 0 A_JumpIfTargetinLOS(2,140)
        PARA F 0 A_ChangeFlag("SOLID",1)
        PARA A 0 A_Jump(40,"Giveup")
		PARA A 0 A_Jump(32,"MoveStop")
	    PARA A 0 A_JumpIfInTargetInventory("SlimeMonsterTarget",1,"Giveup")
		PARA A 0 
        PARA AAABBBCCC 1 A_Chase
        Loop
    Idle:
		PARA A 0 A_Jump(32,"MoveStop")
        PARA AAABBBCCC 1 A_Wander
        PARA A 0 A_LookEx(0,0,0,0,360,"See")
        Loop
	MoveStop:
	    PARA DDDDD 1 A_Stop
        Goto See
    Giveup:
        PARA A 0 A_ClearTarget
		PARA AAABBBCCC 1 A_Wander
		PARA A 0 A_Jump(32,"MoveStop")
        Goto See+6
	Melee:    	       
	    PARA D 0
	    PARA D 0 A_JumpIfInTargetInventory("SlimeMonsterTarget",1,"Giveup")
        PARA D 4 A_FaceTarget
        PARA E 4 A_CustomMeleeAttack(3,"Parasite/Attack","Parasite/Attack","Pharaoh_Parasite")
        Goto See	
	Missile:
	    PARA D 0
	    PARA D 0 A_JumpIfInTargetInventory("SlimeMonsterTarget",1,"Giveup")
	    PARA D 1 A_CheckFloor(1)
		Goto See
        PARA D 0 A_JumpIfCloser(280,1)
	    Goto See
	Lunge:
	    PARA E 0 A_PlaySound("Parasite/Active")
	    PARA E 2 A_FaceTarget
	    PARA E 0 A_ChangeFlag(SLIDESONWALLS,1)
	    PARA E 0 ThrustThingZ(0,36,0,1)
	    PARA E 2 A_Recoil(-16)
	    PARA E 3 A_CustomMissile("ParasiteMissile",5,0,0,CMF_AIMDIRECTION)
	    PARA FFF 2 A_Recoil(-5)
        PARA F 1 A_Recoil(1)
		PARA F 1 A_JumpIfCloser(71,"MeleeLand")
	    PARA F 0 A_CheckFloor("ParasiteLand")
	    Goto Lunge+9
	ParasiteLand:
        PARA AAA 1 A_ScaleVelocity(0.6)
	    PARA BBBCCC 1 
		PARA C 0 A_ScaleVelocity(0.0)
		PARA C 0 A_ChangeFlag(SLIDESONWALLS,0)
        Goto See
	MeleeLand:
		PARA E 1 A_FaceTarget
		PARA E 1 A_PlaySound("Parasite/Active")
		PARA E 1 A_ScaleVelocity(0.6)
		PARA E 1 A_ChangeFlag(SLIDESONWALLS,0)
        PARA F 4 A_FaceTarget
        PARA D 4 A_CustomMeleeAttack(2,"Parasite/Attack","Parasite/Attack","Boss")
		PARA D 0 A_ScaleVelocity(0.0)
        Goto See		
	Death:	       
		PARA G 4 A_Scream	
		TNT1 A 0 A_CustomMissile("XDeath1",2,0,Random(0,360),2,Random(0,160))
		TNT1 A 0 A_CustomMissile("XDeath2",2,0,Random(0,360),2,Random(0,160))
		TNT1 A 0 A_CustomMissile("XDeath3",2,0,Random(0,360),2,Random(0,160))
		TNT1 A 0 A_CustomMissile("XDeath4",2,0,Random(0,360),2,Random(0,160))
        PARA H 3 A_NoBlocking		
		TNT1 AA 0 A_CustomMissile("CeilBloodLauncherLong",0,0,Random(0,360),2,Random(50,130))
		TNT1 A 0 A_CustomMissile("XDeath5",2,0,Random(0,360),2,Random(0,160))
		TNT1 AA 0 A_CustomMissile("SuperWallRedBlood",5,0,Random(0,360),2,Random(-5,5))
		TNT1 AA 0 A_CustomMissile("Instestin",4,0,Random(0,360),2,Random(0,160))
	    PARA I 2 
        TNT1 A -1
	    Stop
	    }
}

ACTOR ParasiteMissile
{
    Height 10
    Radius 10
    Speed 30
    Damage (Random(3,2))
    DeathSound "Parasite/Attack"
    Projectile
	DamageType "Boss"
	Obituary "A little parasite bit %o's ass"
    States
    {
    Spawn:
	    TNT1 A 4
        Stop
	Death:
	    TNT1 A 1
        Stop
    }
}