ACTOR Megabrain : ZBaseActor 19349
{
  Obituary "%o suffered brain aneurysm caused by a Megabrain."
  HitObituary "%o's flesh was gnawed by a Megabrain."
  Health 700
  Radius 40
  Height 80
  mass 5000
  Speed 7
  SeeSound "megabrain/sight"
  PainSound "megabrain/pain"
  DeathSound "megabrain/death"
  ActiveSound "megabrain/roam"
  AttackSound ""
  dropitem "ScubaPickup" 4
  MONSTER
  +FLOORCLIP
  Scale 0.625
  +FLOATBOB
  +FLOAT
  +NOGRAVITY
  +SPAWNFLOAT
  +MISSILEMORE
  +MISSILEEVENMORE
  +BOSS
  FloatBobStrength 0.5
  MeleeRange 78
  maxtargetrange 600
  MinMissileChance 160
  gravity 0.40
  damagefactor "Expander", 0.5
  damagefactor "Explosion", 0.5
  damagefactor "RocketExplosion", 0.5
  damagefactor "ShellExplosion", 0.7
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  damagefactor "Fire", 0.5
  damagefactor "BulletFlame", 0.84
  PainChance 64
  Painchance "Shrinker", 256
  painchance "BootStun", 256
  painchance "MicrowaveBlast", 256
  Species "Megabrains"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  WoundHealth 10
  +FORCEXYBILLBOARD
  Accuracy 15
  const int megaweave_offset = 14;
  States
  {
  Spawn:
    M3GB A 0
    "####" "#" 0 ThrustThingZ(0, 50, 0, 1)
    "####" "#" 1
    "####" "#" 0 A_Stop
  Idle:
    "####" "#" 0 Thing_ChangeTID(0,1000)
    M3GB A 8 A_Look
    Loop
  See:
    "####" "#" 0 A_Stop
    M3GB A 2 A_Chase
    M3GB A 2 A_Chase("", "", CHF_NOPLAYACTIVE)
    M3GB B 2 A_Chase("", "", CHF_NOPLAYACTIVE)
    M3GB BCC 2 A_Chase
    Loop
  Melee:
    "####" "#" 0 A_Stop
    "####" "#" 0 A_Jump(48, "Blast")
    M3GB ABC 4 A_FaceTarget
    M3GB D 4 Bright A_CustomMeleeAttack(15, "octobrain/melee")
    Goto See
  Blast:
    "####" "#" 0 A_PlaySound("megabrain/shock", 5)
    M3GB EEE 6 A_FaceTarget
    "####" "#" 0 A_SpawnItemEx("MegabrainBlastFX",45,0,40,0,0,0,0,SXF_SETMASTER)
    "####" "#" 0 A_CustomMeleeAttack(15, "", "", "HighPush")
    "####" "#" 0 A_Explode(20, 192, XF_NOTMISSILE, 0, 72)
    "####" "#" 0 Radius_Quake (4, 6, 0, 10, 0)
    M3GB J 3 Bright A_FaceTarget
    M3GB E 3
    M3GB J 3 Bright A_FaceTarget
    M3GB E 3
    M3GB J 3 Bright A_FaceTarget
    M3GB E 3
    M3GB E 6 A_FaceTarget
    "####" "#" 0 A_StopSound(5)
    M3GB E 6 A_FaceTarget
    Goto See
  Missile:
    "####" "#" 0 A_StopSound(5)
    M3GB EE 6 A_Facetarget 
    "####" "#" 0 A_Jump(128, "Splitters")
    M3GB E 1
    "####" "#" 0 A_TakeInventory("MegabrainInterrupt", 1)
    "####" "#" 0 A_Facetarget
    "####" "#" 0 A_SpawnItemEx("MegabrainShooter", 0, 0, 0, 0, 0, 0, 0, SXF_SETMASTER | SXF_TRANSFERPOINTERS)
    "####" "#" 0 A_Stop
    M3GB DD 6 Bright A_FaceTarget(22)
    "####" "#" 0 A_Stop
    M3GB DD 6 Bright A_FaceTarget(22)
    "####" "#" 0 A_Stop
    M3GB DD 6 Bright A_FaceTarget(22)
    "####" "#" 0 A_Stop
    M3GB DD 6 Bright A_FaceTarget(22)
    "####" "#" 0 A_Stop
    M3GB CC 4 A_FaceTarget
    Goto See
  Splitters:
    "####" "#" 0 A_CustomMissile("MegabrainProjectile2R", 40, -megaweave_offset)
    M3GB J 3 Bright A_CustomMissile("MegabrainProjectile2L", 40, megaweave_offset)
    M3GB D 5 Bright A_FaceTarget
    "####" "#" 0 A_Stop
    M3GB E 2 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MegabrainProjectile2R", 40, -megaweave_offset)
    M3GB J 3 Bright A_CustomMissile("MegabrainProjectile2L", 40, megaweave_offset)
    M3GB D 5 Bright A_FaceTarget
    "####" "#" 0 A_Stop
    M3GB E 2 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MegabrainProjectile2R", 40, -megaweave_offset)
    M3GB J 3 Bright A_CustomMissile("MegabrainProjectile2L", 40, megaweave_offset)
    M3GB D 5 Bright A_FaceTarget
    "####" "#" 0 A_Stop
    M3GB E 2 A_FaceTarget
    Goto See
  Pain:
    "####" "#" 0 A_StopSound(5)
    "####" "#" 0 A_GiveInventory("MegabrainInterrupt", 1)
    M3GB F 3
    M3GB F 3 A_PlayVoiceSoundPitch("Pain")
    Goto See
  Pain.MicrowaveBlast:
    "####" "#" 0 A_GiveInventory("MegabrainInterrupt", 1)
    M3GB F 1 A_StopSound(5)
    "####" "#" 0 A_CheckThump("Pain")
    loop
  Pain.Shrinker:
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_NoGravity
    "####" "#" 0 A_InvulnerablePlus(1)
    M3GB F 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    M3GB F 2 {A_SetScale(ScaleX - 0.04, ScaleY - 0.04); A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE);}
    "####" "#" 0 A_JumpIf(ScaleX > 0.2 && ScaleY > 0.2, "Shrink")
    "####" "#" 0 A_Shrink("A","B","C","B")
    "####" "#" 0 {A_ChangeFlag("COUNTKILL",0); A_Die("BossDeath");}
    stop
  Wound.Expander:
   "####" "#" 0 A_Die("Expander")
  Death.Expander:
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_StopSound(5)
    "####" "#" 0 A_StopSound(CHAN_BODY)
    "####" "#" 0 A_RemoveChildren(true)
    "####" "#" 0 A_PlaySound("expander/expand")
    "####" "#" 0 A_NoGravity
    "####" "#" 0 {A_UnsetShootable; A_UnsetSolid;}
  Expand:
    M3GB F 1 A_SetScale(ScaleX + 0.01, ScaleY + 0.01)
    "####" "#" 0 A_JumpIf(ScaleX < 1.3 && ScaleY < 1.3, "Expand")
    M3GB FFFFF 1
    "####" "#" 0 A_SetScale(0.625, 0.625)
    "####" "#" 0 A_PlayVoiceSoundPitch("Death","",4)
    "####" "#" 0 A_SpawnItemEx("ExpanderExplosion",0,0,32,0,0,0,0,1,0)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_BossDeath
    "####" "#" 0 A_Gravity
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    stop
  Wound.Ice:
    "####" "#" 0 A_Freeze("See")
    "####" "#" 0 {A_ChangeFlag("COUNTKILL",0); A_Die("BossDeath");}
    TNT1 A 1
    stop
  Deathceiling:
   "####" "#" 0 A_Die
    TNT1 A 1
    stop
  Death.BossDeath:
    "####" "#" 0 A_BossDeath
    TNT1 A 1
    Stop
  Death.PlasmaGib:
    "####" "#" 0 A_SpawnItemEx("DukePlasmaExplosion",0,0,32,0,0,0,0,1,0)
  Death:
  XDeath:
  Death.BossStomp:
  Death.Explosion:
  Death.RocketExplosion:
  Death.RocketHeadshot:
  Death.ExplosiveShotgun:
  Death.ShellExplosion:
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_StopSound(5)
    "####" "#" 0 A_StopSound(CHAN_BODY)
    "####" "#" 0 A_RemoveChildren(true)
    M3GB K 5 A_PlayVoiceSoundPitch("Death","",4)
    M3GB G 5 A_NoBlocking
    M3GB H 5 A_BossDeath
    "####" "#" 0 A_XScream
    "####" "#" 0 A_Gravity
    "####" "#" 0 A_SpawnItemEx("ExpanderExplosion",0,0,32,0,0,0,0,1,0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    M3GB I 5
    Stop
  }
}

Actor MegabrainInterrupt : Inventory
{
  inventory.maxamount 1
}

Actor MegabrainShooter
{
  Height 2
  Radius 1
  Obituary "%o suffered brain aneurysm caused by a Megabrain."
  -TELESTOMP
  +NOINTERACTION
  +ISMONSTER
  -COUNTKILL
  +THRUACTORS
  +DONTBLAST
  Renderstyle Add
  Alpha 1.0
  +THRUGHOST
  DamageType "Brain"
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_JumpIfInventory("MegabrainInterrupt", 1, "MissileFinish", AAPTR_MASTER)
    TNT1 A 6 A_CustomMissile("MegabrainProjectile", 40, 0, 90, CMF_TRACKOWNER | CMF_ABSOLUTEPITCH, 0)
    TNT1 A 0 A_JumpIfInventory("MegabrainInterrupt", 1, "MissileFinish", AAPTR_MASTER)
    TNT1 A 6 A_CustomMissile("MegabrainProjectile", 40, 0, 60, CMF_TRACKOWNER | CMF_ABSOLUTEPITCH, 30)
    TNT1 A 0 A_JumpIfInventory("MegabrainInterrupt", 1, "MissileFinish", AAPTR_MASTER)
    TNT1 A 6 A_CustomMissile("MegabrainProjectile", 40, 0, 30, CMF_TRACKOWNER | CMF_ABSOLUTEPITCH, 60)
    TNT1 A 0 A_JumpIfInventory("MegabrainInterrupt", 1, "MissileFinish", AAPTR_MASTER)
    TNT1 A 6 A_CustomMissile("MegabrainProjectile", 40, 0, 0, CMF_TRACKOWNER | CMF_ABSOLUTEPITCH, 90)
    TNT1 A 0 A_JumpIfInventory("MegabrainInterrupt", 1, "MissileFinish", AAPTR_MASTER)
    TNT1 A 6 A_CustomMissile("MegabrainProjectile", 40, 0, -30, CMF_TRACKOWNER | CMF_ABSOLUTEPITCH, 60)
    TNT1 A 0 A_JumpIfInventory("MegabrainInterrupt", 1, "MissileFinish", AAPTR_MASTER)
    TNT1 A 6 A_CustomMissile("MegabrainProjectile", 40, 0, -60, CMF_TRACKOWNER | CMF_ABSOLUTEPITCH, 30)
    TNT1 A 0 A_JumpIfInventory("MegabrainInterrupt", 1, "MissileFinish", AAPTR_MASTER)
    TNT1 A 6 A_CustomMissile("MegabrainProjectile", 40, 0, -90, CMF_TRACKOWNER | CMF_ABSOLUTEPITCH, 0)
    Stop
  MissileFinish:
    TNT1 A 10
    Stop
  }
}

Actor MegabrainProjectile : ZMissile
{
  PROJECTILE
  Damage (7)
  Speed 30
  Height 16
  Radius 8
  Renderstyle Add
  Alpha 1.0
  +THRUGHOST
  DamageType "Brain"
  Scale 0.55
  SeeSound "megabrain/attack"
  DeathSound "megabrain/explode"
  +SEEKERMISSILE
  +DONTBLAST
  +THRUACTORS
  +NOCLIP
  decal DukeSmallScorch
  States
  {
  Spawn:
    D3D3 A 1
    TNT1 A 0 A_TransferPointer (AAPTR_TARGET, AAPTR_DEFAULT, AAPTR_MASTER, AAPTR_TARGET)
    D3D3 A 1 {A_ChangeVelocity(velx * 0.8255, vely * 0.825, velz * 0.725, CVF_REPLACE); A_SpawnItem("BlueFlare22Small",0,0);}
    D3D3 A 1 A_ScaleVelocity(0.5)
    D3D3 BCABC 3 Bright {A_ScaleVelocity(0.33); A_SpawnItem("BlueFlare22Small",0,0);}
    TNT1 A 0 A_ChangeFlag("THRUACTORS", 0)
    TNT1 A 0 A_FaceTracer
    TNT1 A 0 A_JumpIfHealthLower(1, "LastAttack", AAPTR_TRACER)
    TNT1 A 0 A_SeekerMissile(5, 5, SMF_PRECISE)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -3 * velx / 4, -3 * vely / 4, -3 * velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 2, -vely / 2, -velz / 2, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 4, -vely / 4, -velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    D3D3 DDD 1 Bright {A_GiveInventory("MegabrainTracerChecker", 1); A_SpawnItem("BlueFlare22Small",0,0);}
    TNT1 A 0 A_SeekerMissile(5, 5, SMF_PRECISE)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -3 * velx / 4, -3 * vely / 4, -3 * velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 2, -vely / 2, -velz / 2, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 4, -vely / 4, -velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    D3D3 EEE 1 Bright {A_GiveInventory("MegabrainTracerChecker", 1); A_SpawnItem("BlueFlare22Small",0,0);}
    TNT1 A 0 A_ChangeFlag("NOCLIP", 0)
  SpawnLoop:
    TNT1 A 0 A_JumpIfInventory("OctobrainAttackRange",4,"Death")
    TNT1 A 0 A_GiveInventory("OctobrainAttackRange",1)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -3 * velx / 4, -3 * vely / 4, -3 * velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 2, -vely / 2, -velz / 2, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 4, -vely / 4, -velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_JumpIfHealthLower(1, "LastAttack", AAPTR_TRACER)
    D3D3 DDD 1 Bright A_SpawnItem("BlueFlare22Small",0,0)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -3 * velx / 4, -3 * vely / 4, -3 * velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 2, -vely / 2, -velz / 2, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 4, -vely / 4, -velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_JumpIfHealthLower(1, "LastAttack", AAPTR_TRACER)
    D3D3 EEE 1 Bright A_SpawnItem("BlueFlare22Small",0,0)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -3 * velx / 4, -3 * vely / 4, -3 * velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 2, -vely / 2, -velz / 2, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 4, -vely / 4, -velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_JumpIfHealthLower(1, "LastAttack", AAPTR_TRACER)
    Loop
  LastAttack:
    D3D3 DDDEEEDD 1 Bright {A_FadeOut(0.03); A_SpawnItem("BlueFlare22Small",0,0);}
    stop
  Death:
    TNT1 AAAAA 0 A_CustomMissile ("BluePlasmaParticle", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 A 0 A_Explode(7, 70, 0, 0, 0)
    D3D3 DDD 1 Bright A_SpawnItem("BlueFlare22",0,0)
    TNT1 AAA 0 A_CustomMissile ("OldschoolRocketSmokeTrail3", 2, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    D3D3 EEEFFF 1 Bright A_SpawnItem("BlueFlare22",0,0)
    D3D3 GGGHHHIII 1 Bright
    Stop
  }
}

Actor MegabrainTracerChecker : CustomInventory
{
  +ALWAYSPICKUP
  States
  {
  Pickup:
    TNT1 A 0 A_CheckFlag("NOCLIP", "CheckTracer")
    TNT1 A 1
    Stop
  CheckTracer:
    TNT1 A 0 A_JumpIfTracerCloser(72, "RemoveNoclip")
    TNT1 A 1
    Stop
  RemoveNoClip:
    TNT1 A 0 A_ChangeFlag("NOCLIP", 0)
    TNT1 A 1
    Stop
  }
}

Actor MegabrainProjectile2L : ZMissile
{
  PROJECTILE
  Damage (9)
  Speed 20
  Height 20
  Radius 10
  Renderstyle Add
  Alpha 1.0
  +THRUGHOST
  DamageType "Brain"
  Scale 0.625
  SeeSound "megabrain/attack"
  DeathSound "megabrain/explode"
  +DONTBLAST
  WeaveIndexXY 0
  decal DukeSmallScorch
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_JumpIfHealthLower(1, "LastAttack", AAPTR_TRACER)
    TNT1 A 0 A_Weave(3, 0, 4.5, 0)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -3 * velx / 4, -3 * vely / 4, -3 * velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 2, -vely / 2, -velz / 2, 0, SXF_ABSOLUTEVELOCITY)
    D3D3 D 1 Bright {A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 4, -vely / 4, -velz / 4, 0, SXF_ABSOLUTEVELOCITY); A_SpawnItem("BlueFlare22Small",0,0);}
    D3D3 D 1 Bright {A_Weave(3, 0, 4.5, 0); A_SpawnItem("BlueFlare22Small",0,0);}
    D3D3 D 1 Bright {A_Weave(3, 0, 4.5, 0); A_SpawnItem("BlueFlare22Small",0,0);}
    TNT1 A 0 A_Weave(3, 0, 4.5, 0)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -3 * velx / 4, -3 * vely / 4, -3 * velz / 4, 0, SXF_ABSOLUTEVELOCITY)
    TNT1 A 0 A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 2, -vely / 2, -velz / 2, 0, SXF_ABSOLUTEVELOCITY)
    D3D3 E 1 Bright {A_SpawnItemEx("MegabrainProjectileTrail", 0, 0, 0, -velx / 4, -vely / 4, -velz / 4, 0, SXF_ABSOLUTEVELOCITY); A_SpawnItem("BlueFlare22Small",0,0);}
    D3D3 E 1 Bright {A_Weave(3, 0, 4.5, 0); A_SpawnItem("BlueFlare22Small",0,0);}
    D3D3 E 1 Bright {A_Weave(3, 0, 4.5, 0); A_SpawnItem("BlueFlare22Small",0,0);}
    TNT1 A 0 A_JumpIfInventory("OctobrainAttackRange",4,"Death")
    TNT1 A 0 A_GiveInventory("OctobrainAttackRange",1)
    Loop
  LastAttack:
    D3D3 DDDEEEDDD 1 Bright {A_FadeOut(0.03); A_SpawnItem("BlueFlare22Small",0,0);}
    stop
  Death:
    TNT1 AAAAA 0 A_CustomMissile ("BluePlasmaParticle", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 A 0 A_Explode(9, 90, 0, 0, 0)
    D3D3 DDD 1 Bright A_SpawnItem("BlueFlare22",0,0)
    TNT1 AAA 0 A_CustomMissile ("OldschoolRocketSmokeTrail3", 2, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    D3D3 EEEFFF 1 Bright A_SpawnItem("BlueFlare22",0,0)
    D3D3 GGGHHHIII 1 Bright
    Stop
  }
}

Actor MegabrainProjectile2R : MegabrainProjectile2L
{
  WeaveIndexXY 32
}

Actor MegabrainProjectileTrail
{
  +CLIENTSIDEONLY
  +NOINTERACTION
  Scale 0.55
  Renderstyle Add
  Alpha 1.0
  +THRUGHOST
  States
  {
  Spawn:
    TNT1 A 1
  SpawnLoop:
    D3D3 DDDEEEDDDEEE 1 A_FadeOut(0.175)
    Loop
  }
}

Actor MegabrainBlastFX
{
  +NOINTERACTION
  +CLIENTSIDEONLY
  Renderstyle Add
  Alpha 1.0
  +THRUGHOST
  States
  {
  Spawn:
    D3D3 DDDEEEFFF 1 Bright A_SpawnItem("BlueFlare22",0,0)
    D3D3 GGGHHHIII 1 Bright
    Stop
  }
}