Actor ChaosSheepsheadWrasse
{
//Creator: High Councilor
//Origin: Nexus Infinity
//Sprite: SHWR
//Title: "Chaos Sheepshead Wrasse"
  Monster
  Health 2500
  Mass 10000
  Scale 1.1
  Speed 8
  Radius 48
  Height 64
  PainChance 0
  Species "Masterminds"
  DamageFactor "SuperWeapon", 0.0
  DamageFactor "LegendaryGuruPlayer", 0.05
  DamageFactor "PlayerHellfire", 0.1
  DamageFactor "DTRailgun", 0.1
  DamageFactor "PDTPuff", 0.1
  DamageFactor "RailG", 0.1
  DamageFactor "Player", 0.1
  DamageFactor "TrueLegendaryDamage", 0.75
  DamageFactor "TrueLegendaryPlayer", 0.75
  DamageFactor "PlayerNemesisPlasma", 0.75
  DamageFactor "Legendary", 0.25
  DamageFactor "LegendaryPlayer", 0.25
  DamageFactor "Normal", 0.5
  Damagefactor 0.75
  DamageFactor "DarkDemoEX", 0.0
  DamageFactor "Cyber10k", 0.0
  RadiusDamageFactor 0.1
  +DONTHURTSPECIES
  +DONTHARMSPECIES
  +BOSS
  +NOICEDEATH
  +NORADIUSDMG
  +NOTIMEFREEZE
  +DONTGIB
  +DONTRIP
  +DONTMORPH
  +NEVERRESPAWN
  +NOFEAR
  +NOPAIN
  +NOBLOOD
  +MISSILEMORE
  +MISSILEEVENMORE
  +CANTSEEK
  +FIRERESIST
  +NOTELEFRAG
  +FLOAT
  +NOGRAVITY
  -FLOORCLIP
  seesound ""
  painsound ""
  deathsound ""
  activesound ""
  HitObituary "%o was destroyed by an Chaos Sheepshead Wrasser."
  Tag "\c[m4]Chaos\c- \c[r5]Sheepshead\c- \c[m4]Wrasser\c-"
  var int user_missile;
  var int user_combo;
  var int user_friendlydelay;
  States
  {
  Spawn:
    TNT1 A 0 A_Checkflag(FRIENDLY,"SpawnFriendly")
	SHWR A 2 A_Look
	Loop
  SpawnFriendly:
	TNT1 A 0 A_JumpIf(user_friendlydelay >= 1800,"SelfDestruction")
	TNT1 A 0 A_SetUserVar("user_friendlydelay",user_friendlydelay+1)
    SHWR A 2 A_Look
    Loop
  See:
    TNT1 A 0 A_Checkflag(FRIENDLY,"SeeFriendly")
    SHWR A 2 A_Chase
	TNT1 A 0 A_Jump(8,"Teleport","Evade","Rush")
    Loop
  SeeFriendly:
	TNT1 A 0 A_JumpIf(user_friendlydelay >= 1800,"SelfDestruction")
	TNT1 A 0 A_SetUserVar("user_friendlydelay",user_friendlydelay+1)
    SHWR A 2 A_Chase
	TNT1 A 0 A_Jump(8,"Teleport","Evade","Rush")
    Loop
  Rush:
    TNT1 A 0 A_SpawnItemEx("SheepheadWrasseGhost")
    TNT1 A 0 A_Chase
    SHWR A 1 A_Chase
    TNT1 A 0 A_SpawnItemEx("SheepheadWrasseGhost")
    TNT1 A 0 A_Chase
    SHWR A 1 A_Chase
    TNT1 A 0 A_SpawnItemEx("SheepheadWrasseGhost")
    TNT1 A 0 A_Chase
    SHWR A 1 A_Chase
    TNT1 A 0 A_SpawnItemEx("SheepheadWrasseGhost")
    TNT1 A 0 A_Chase
    SHWR A 1 A_Chase
    TNT1 A 0 A_SpawnItemEx("SheepheadWrasseGhost")
    TNT1 A 0 A_Chase
    SHWR A 1 A_Chase
    TNT1 A 0 A_SpawnItemEx("SheepheadWrasseGhost")
    TNT1 A 0 A_Chase
    SHWR A 1 A_Chase
	TNT1 A 0 A_Jump(16,"Teleport","Evade")
    Loop
  Evade:
	TNT1 A 0 A_Jump(128,3)
	TNT1 A 0 ThrustThing(Angle*256/360+64,20,0,0)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 ThrustThing(Angle*256/360+192,20,0,0)
	SHWR AAAAAAAA 2 Bright A_Chase("","")
	TNT1 A 0 A_Stop
	Goto See
  Teleport:
	SHWR A 1 A_UnSetShootable
	SHWR AAAAAAAAAAAA 0 A_SpawnItemEx("SheepheadWrasseLineSpawner")
	SHWR AAAAAAAAAAA 1 A_FadeOut(0.1,0)
	SHWR AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	SHWR AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	SHWR A 1 A_PlayWeaponSound("boss/teleport")
	SHWR AAAAAAAAAAAA 0 A_SpawnItemEx("SheepheadWrasseLineSpawner")
	SHWR AAAAAAAAAAA 1 A_FadeIn(0.1)
	SHWR A 1 A_SetShootable
	Goto See
  MissileFriendy:
	TNT1 A 0 A_SetUserVar("user_friendlydelay",user_friendlydelay+1)
	TNT1 A 0 A_Jump(128,"BFG10KFriendly","RailLaserFriendly")
    Goto NormalFriendly
  Missile:
	TNT1 A 0
    TNT1 A 0 A_Checkflag(FRIENDLY,"MissileFriendy")
	TNT1 A 0 A_Jump(128,"BFG10K","RailLaser")
  Normal:
    SHWR A 1 A_FaceTarget
    SHWR AAAA 2 A_FaceTarget(45)
	TNT1 A 0 A_SetUserVar("user_missile",0)
  NormalLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 15,"See")
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
    SHWR A 1 A_FaceTarget
    SHWR B 1 Bright A_CustomMissile("StormCauserSmallGreenOrb",50,0,frandom(-1,1),CMF_OFFSETPITCH,frandom(-1,1))
	Loop
  BFG10K:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
    SHWR AAAAA 2 A_FaceTarget(45)
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("DarkDemo10K",50,0,random(-5,5))
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("DarkDemo10K",50,0,random(-5,5))
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("DarkDemo10K",50,0,random(-5,5))
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("DarkDemo10K",50,0,random(-5,5))
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("DarkDemo10K",50,0,random(-5,5))
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("DarkDemo10K",50,0,random(-5,5))
	SHWR A 20 A_PlaySound("weapons/bfg15kcooldown",CHAN_AUTO)
	Goto See
  RailLaser:
	TNT1 A 0 A_PlaySound("weapons/rgcharge")
	SHWR AA 10 A_FaceTarget
	SHWR AA 5 A_FaceTarget
    SHWR B 5 Bright A_CustomMissile("StormCauserRailLaser",50,0,random(-1,1))
	SHWR AA 5 A_FaceTarget
    SHWR B 5 Bright A_CustomMissile("StormCauserRailLaser",50,0,random(-1,1))
	SHWR AA 5 A_FaceTarget
    SHWR B 5 Bright A_CustomMissile("StormCauserRailLaser",50,0,random(-1,1))
	Goto See
  NormalFriendly:
    SHWR A 1 A_FaceTarget
    SHWR AAAA 2 A_FaceTarget(45)
	TNT1 A 0 A_SetUserVar("user_missile",0)
  NormalFriendlyLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 15,"See")
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
    SHWR A 1 A_FaceTarget
    SHWR B 1 Bright A_CustomMissile("PlayerStormCauserSmallGreenOrb",50,0,frandom(-1,1),CMF_OFFSETPITCH,frandom(-1,1))
	Loop
  BFG10KFriendly:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
    SHWR AAAAA 2 A_FaceTarget(45)
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("10KProjectile",50,0,random(-5,5))
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("10KProjectile",50,0,random(-5,5))
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("10KProjectile",50,0,random(-5,5))
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("10KProjectile",50,0,random(-5,5))
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("10KProjectile",50,0,random(-5,5))
    SHWR A 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SHWR B 5 Bright A_CustomMissile("10KProjectile",50,0,random(-5,5))
	SHWR A 20 A_PlaySound("weapons/bfg15kcooldown",CHAN_AUTO)
	Goto See
  RailLaserFriendly:
	TNT1 A 0 A_PlaySound("weapons/rgcharge")
	SHWR AA 10 A_FaceTarget
	SHWR AA 5 A_FaceTarget
    SHWR A 5 Bright A_CustomMissile("PlayerStormCauserRailLaser",50,0,0)
	SHWR AA 5 A_FaceTarget
    SHWR A 5 Bright A_CustomMissile("PlayerStormCauserRailLaser",50,0,0)
	SHWR AA 5 A_FaceTarget
    SHWR A 5 Bright A_CustomMissile("PlayerStormCauserRailLaser",50,0,0)
	SHWR AA 5 A_FaceTarget
    SHWR A 5 Bright A_CustomMissile("PlayerStormCauserRailLaser",50,0,0)
	Goto See
  SelfDestruction:
    TNT1 AA 0 A_SpawnItemEx("Kaboom5",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
    SHWR AAA 3 A_Chase("","")
    TNT1 AA 0 A_SpawnItemEx("CSTGreenKaboom",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
    SHWR AAA 3 A_Chase("","")
    TNT1 AA 0 A_SpawnItemEx("Kaboom5",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
    SHWR AAA 3 A_Chase("","")
    TNT1 AA 0 A_SpawnItemEx("CSTGreenKaboom",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
    SHWR AAA 3 A_Chase("","")
    TNT1 AA 0 A_SpawnItemEx("Kaboom5",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
    SHWR AAA 3 A_Chase("","")
    TNT1 AA 0 A_SpawnItemEx("CSTGreenKaboom",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
    SHWR AAA 3 A_Chase("","")
	TNT1 A 0 A_Jump(175,"SelfDestruction")
	TNT1 A 0 A_Die
	Goto Death
  Death:
    TNT1 A 0 A_StopSound(7)
    TNT1 AAA 0 A_SpawnItemEx("Kaboom5",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
	SHWR AAAAA 3 Bright A_SpawnItemEx("CSTGreenKaboom",random(60,-60),random(60,-60),random(20,70),0,0,0,0,32)
    TNT1 AAA 0 A_SpawnItemEx("Kaboom5",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
	SHWR AAAAA 3 Bright A_SpawnItemEx("CSTGreenKaboom",random(60,-60),random(60,-60),random(20,70),0,0,0,0,32)
    TNT1 AAAA 0 A_SpawnItemEx("Kaboom5",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
	SHWR AAAAA 3 Bright A_SpawnItemEx("CSTGreenKaboom",random(60,-60),random(60,-60),random(20,70),0,0,0,0,32)
    TNT1 AAAAA 0 A_SpawnItemEx("Kaboom5",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
	SHWR AAAAA 3 Bright A_SpawnItemEx("CSTGreenKaboom",random(60,-60),random(60,-60),random(20,70),0,0,0,0,32)
    TNT1 AAAAA 0 A_SpawnItemEx("Kaboom5",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
	SHWR AAAAA 3 Bright A_SpawnItemEx("CSTGreenKaboom",random(60,-60),random(60,-60),random(20,70),0,0,0,0,32)
	SHWR AA 6 A_SpawnItemEx("CSTGreenKaboom",random(60,-60),random(60,-60),random(20,70),0,0,0,0,32)
    TNT1 AAAAA 0 A_SpawnItemEx("CSTGreenKaboom",random(60,-60),random(60,-60),random(20,70),0,0,0,0,32)
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("Kaboom5",0,0,0,random(-9,9),random(-9,9),random(5,9),48,128)
	TNT1 AA 0 A_SpawnItemEx("NewCell",0,0,64,random(1,8),0,2,random(0,360),0,128)
	TNT1 AA 0 A_SpawnItemEx("DCell",0,0,64,random(1,8),0,2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("SphereOfPower",0,0,64,random(1,8),0,2,random(0,360),0,160)
	TNT1 A 0 A_SpawnItemEx("BFG10K ",0,0,64,random(1,8),0,2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("PlasmaRepeater",0,0,64,random(1,8),0,2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("Demon Tech Rifle",0,0,64,random(1,8),0,2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("ChaosEssence",0,0,64,random(1,8),0,2,random(0,360),0,160)
	SHWR A 6 A_Scream
	TNT1 A -1 A_NoBlocking
	Stop
	}
}

ACTOR SheepheadWrasseGhost
{
Scale 1.1
RENDERSTYLE Translucent
Alpha 0.75
+NOTIMEFREEZE
+NOGRAVITY
+CLIENTSIDEONLY
+DONTSPLASH
+NOINTERACTION
+NOCLIP
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	SHWR A 2 A_FadeOut(0.18)
	Wait
	}
}

ACTOR PlayerStormCauserSmallGreenOrb : GenericWeakOrb
{
  Speed 50
  FastSpeed 55
  damage (random(10,30))
  SeeSound "remishot"
  Species "Player"
  Damagetype "Player"
  States
  {
  Spawn:
    CLBA H 1 Bright
    Loop
  Death:
	TNT1 A 0
	TNT1 AA 0 A_SpawnItemEx("GreenProjParticle",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
    CLBA H 1 Bright A_FadeOut(0.2)
    Goto Death+1
  }
}

ACTOR PlayerStormCauserRailLaser : StormCauserRailLaser
{
  Missiletype "PlayerStormCauserRailLaserTrail"
  Species "Player"
  Damagetype "Player"
}

ACTOR PlayerStormCauserRailLaserTrail : NemesisCyberRailLaserTrail
{
  Species "Player"
  Damagetype "Player"
  Renderstyle Add
  States
  {
  Spawn:
	TNT1 A 0
	CLBA HHHHHHHHHHHHHHHHHHHH 1 Bright A_Explode(5,60)
	TNT1 A 0 A_SetScale(0.55)
	TNT1 A 0 A_FadeOut(0.1)
	CLBA H 1
	TNT1 A 0 A_SetScale(0.5)
	TNT1 A 0 A_FadeOut(0.1)
	CLBA H 1
	TNT1 A 0 A_SetScale(0.45)
	TNT1 A 0 A_FadeOut(0.1)
	CLBA H 1
	TNT1 A 0 A_SetScale(0.4)
	TNT1 A 0 A_FadeOut(0.1)
	CLBA H 1
	TNT1 A 0 A_SetScale(0.35)
	TNT1 A 0 A_FadeOut(0.1)
	CLBA H 1
	TNT1 A 0 A_SetScale(0.3)
	TNT1 A 0 A_FadeOut(0.1)
	CLBA H 1
	TNT1 A 0 A_SetScale(0.25)
	TNT1 A 0 A_FadeOut(0.1)
	CLBA H 1
	TNT1 A 0 A_SetScale(0.2)
	TNT1 A 0 A_FadeOut(0.1)
	CLBA H 1
	TNT1 A 0 A_SetScale(0.15)
	TNT1 A 0 A_FadeOut(0.1)
	CLBA H 1
	Stop
  }
}

ACTOR SheepheadWrasseLineSpawner : BluePowerLineSpawner
{
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
    TNT1 AAAAA 0 A_SpawnItemEx("SCGreenPowerLine",random(-24,24),random(-24,24),random(0,54),0,0,random(2,8),0,128,0) 
	TNT1 A 1 A_SpawnItemEx("SCGreenPowerLine",random(-24,24),random(-24,24),random(0,54),0,0,random(2,8),0,128,0) 
	Stop  
	}
}