ACTOR Maxibus : Mafibus 22678
{
//Creator: Titanium
//Origin: Nexus Infinity
//Sprite: MATT
//Title: "Maxibus" 
Health 1900
Radius 48
Height 64
Mass 2000
Speed 8
PainChance 35
-NOICEDEATH
Bloodcolor "Green"
SeeSound "Maxibus/Sight"
PainSound "Maxibus/Pain"
DeathSound "Maxibus/Death"
ActiveSound "Maxibus/Active"
Obituary "%o did not expect a visit from a Maxibus."
DamageFactor "Fire", 0.75
DamageFactor "Ice", 0.6
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.125
DamageFactor "PlayerDevBall2", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "Legendary", 0.3
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "NemesisPlayer", 0.6
DropItem "BossLifeEssence" 200 25
DropItem "HEMBossArmorBonusMax25" 200 1
DropItem "HEMArmorBonusMax5", 200
DropItem "HEMArmorBonusMax5", 200
DropItem "NewCellPack", 100
DropItem "NewCellPack", 50
DropItem "BFG10K ", 30
Dropitem "CannongunSphere", 60
Tag "\c[z1]Maxibus\c-"
States
{
  Spawn:
	MATT C 10 A_Look
	Loop
  See:
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_SpawnItem("BeefyStep",0,0,0,0)
	MATT AABBCCDD 3 A_Chase
	TNT1 A 0 A_SpawnItem("BeefyStep",0,0,0,0)
	MATT EEFF 3 A_Chase
	Loop
  Missile:
	TNT1 A 0 A_Jump(64,"Railgun","AntiLegBlast","MiniDTBFG")
    TNT1 A 0 A_Jump(128,"Seeker","BFG10K")
  Normal:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
	MATT G 15 A_FaceTarget
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("Maxibus15K",18,20,Random(0,-6))
	MATT H 8 Bright A_CustomMissile("Maxibus15K",18,-20,Random(0,6))
	MATT IG 6 A_FaceTarget
	TNT1 A 0 A_CustomMissile("Maxibus15K",18,20,Random(7,-12))
	MATT H 8 Bright A_CustomMissile("Maxibus15K",18,-20,Random(-7,12))
	MATT IG 6 A_FaceTarget
	TNT1 A 0 A_CustomMissile("Maxibus15K",18,20,Random(-7,-12))
	TNT1 A 0 A_CustomMissile("Maxibus15K",18,20,Random(0,-6))
	TNT1 A 0 A_CustomMissile("Maxibus15K",18,-20,Random(0,6))
	MATT H 8 Bright A_CustomMissile("Maxibus15K",18,-20,Random(7,12))
	MATT IG 8
	TNT1 A 0 A_Jump(40,"BFG10K","AntiLegBlast")
	TNT1 A 0 A_Jump(80,"Seeker")
	Goto See
  BFG10K:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
	MATT GGGGGGGGGGGG 2 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	TNT1 A 0 A_CustomMissile("MaxibusBFG10K",22,20,Random(4,-4))
	MATT H 8 Bright A_CustomMissile("MaxibusBFG10K",22,-20,Random(4,-4))
	MATT IG 6 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	TNT1 A 0 A_CustomMissile("MaxibusBFG10K",22,20,Random(4,-4))
	MATT H 8 Bright A_CustomMissile("MaxibusBFG10K",22,-20,Random(4,-4))
	MATT IG 6 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	TNT1 A 0 A_CustomMissile("MaxibusBFG10K",22,20,Random(4,-4))
	MATT H 8 Bright A_CustomMissile("MaxibusBFG10K",22,-20,Random(4,-4))
	MATT IG 6 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	TNT1 A 0 A_CustomMissile("MaxibusBFG10K",22,20,Random(4,-4))
	MATT H 8 Bright A_CustomMissile("MaxibusBFG10K",22,-20,Random(4,-4))
	MATT IG 6 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	TNT1 A 0 A_CustomMissile("MaxibusBFG10K",22,20,Random(4,-4))
	MATT H 8 Bright A_CustomMissile("MaxibusBFG10K",22,-20,Random(4,-4))
	MATT IGG 8 A_PlaySound("weapons/bfg15kcooldown",CHAN_AUTO)
	Goto See
  MiniDTBFG: 
	TNT1 A 0 A_PlaySound("LesserCardinal/BFGCharge")
	MATT GGGGG 5 A_FaceTarget
	TNT1 A 0 A_PlaySound("LesserCardinal/BFGFire")
	MATT H 0 A_CustomMissile("MaxibusMiniDTBFG",30,30,0)
    MATT H 25 Bright A_CustomMissile("MaxibusMiniDTBFG",30,-30,0)
	MATT IG 8 A_FaceTarget
	TNT1 A 0 A_Jump(40,"BFG10K")
	TNT1 A 0 A_Jump(80,"Seeker","AntiLegBlast","Normal")
    Goto See
  AntiLegBlast: 
	TNT1 A 0 A_PlaySound("cydes/mischrg",7,1,0,0.5)
	MATT G 1 A_FaceTarget
	MATT GGGGGGGGGG 3 A_FaceTarget
	TNT1 A 0 A_PlaySound("lrball3/shot")
	MATT H 0 A_CustomMissile("GreenSuperBall",30,30,0)
    MATT H 7 Bright A_CustomMissile("GreenSuperBall",30,-30,0)
	MATT IG 10 A_FaceTarget
    Goto See
  Seeker:
    MATT G 15 A_FaceTarget    
    TNT1 A 0 A_FaceTarget 
	TNT1 A 0 A_CustomMissile("MaxibusMissile", 30, 30, 0)
    MATT H 4 Bright A_CustomMissile("MaxibusMissile", 30, -30, 0)
    MATT IG 8 A_FaceTarget      
	TNT1 A 0 A_CustomMissile("MaxibusMissile", 30, 30, 0)
    MATT H 4 Bright A_CustomMissile("MaxibusMissile", 30, -30, 0)
    MATT IG 8 A_FaceTarget	
	TNT1 A 0 A_CustomMissile("MaxibusMissile", 30, 30, 0)
    MATT H 4 Bright A_CustomMissile("MaxibusMissile", 30, -30, 0)
    MATT IG 8 A_FaceTarget	
	TNT1 A 0 A_CustomMissile("MaxibusMissile", 30, 30, 0)
    MATT H 4 Bright A_CustomMissile("MaxibusMissile", 30, -30, 0)
    MATT IG 8
    Goto See
  Railgun:
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_PlaySound("weapons/rgcharge")
	MATT GG 10 A_FaceTarget
	MATT G 2 A_FaceTarget
	MATT G 1
	TNT1 A 0 A_CustomMissile("MaxibusRail",31,30,0)
	MATT H 7 Bright A_CustomMissile("MaxibusRail",31,-30,0)	
	MATT IGG 4 A_FaceTarget	
	TNT1 A 0 A_Jump(96,"BFG10K","Seeker","AntiLegBlast")
	Goto See
  Pain:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_Jump(120,"PainMissile")
	MATT J 4 A_Pain
	Goto See
  PainMissile:
	MATT J 4 A_Pain
	Goto Missile
  Death:
	MATT K 6
	MATT L 6 A_Scream
	TNT1 A 0 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
	MATT M 6 A_NoBlocking
	TNT1 A 0 A_BossDeath
	TNT1 A 0 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
	MATT NOPQR 6
	MATT S 6
	MATT T -1 A_KillMaster
	Stop
  Raise:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	MATT SRQPONMLK 6
	Goto See
	}
}

ACTOR Maxibus15K : BFG15KBall
{
FastSpeed 30
DamageType "BeheComet"
-THRUSPECIES
}

ACTOR MaxibusBFG10K : General10KProjectile
{
Decal BFG15KLightning
Species "Fatsos"
DamageType "BeheComet"
States
{
Death:
XDeath:  
   TNT1 A 0
   TNT1 A 1 A_SpawnItem("Maxibus10KEx")
   Stop
   }
}

ACTOR Maxibus10KEx : General10KEx
{
Decal BFG15KLightning
Species "Fatsos"
DamageType "BeheComet"
}

Actor MaxibusRail : DarkCyberRail
{
  DamageType "BeheComet"
  Species "Fatsos"
  Damage (Random(40,60))
}

ACTOR MaxibusMiniDTBFG : CardinalDTBFG10KBall
{
DamageType "BeheComet"
Obituary "%o was not seen coming to a visit from a Maxibus."
Scale 0.4
Damage 25
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_PlaySoundEx("LesserCardinal/BFGIdle","Voice",1)
	TNT1 A 0 A_SpawnItemEx("ProjectileTrailParticleGreen3",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
    CGS1 ABCD 1 Bright
	TNT1 A 0 A_SpawnItemEx("ProjectileTrailParticleGreen3",Random(-12,12),Random(-12,12),Random(12,22),Random(-2,2),Random(-2,2),Random(-2,2),Random(-20,20),128)
	CGS1 ABCD 1 Bright
    TNT1 A 0 A_CustomMissile("MaxibusBFGProjectileAttack",Random(-10,10),0,0,CMF_TRACKOWNER)
    Loop
Death:
    TNT1 A 0
	TNT1 A 0 A_SetTranslucent(0.75,1)
	TNT1 A 0 Radius_Quake(5,60,0,10,0)
	TNT1 A 0 A_Explode(40,200)
	CGS1 A 6 Bright A_SpawnItemEx("BFGShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(40,200)
	CGS1 B 6 Bright A_SpawnItemEx("BFGShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(40,200)
	CGS1 C 6 Bright A_SpawnItemEx("BFGShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(40,200)
	CGS1 D 6 Bright A_SpawnItemEx("BFGShockwave", 0, 0, 15, 0, 0, 0, 0, 128)
	TNT1 A 0 A_Explode(240,240)
	TNT1 A 0 A_StopSoundEx("Voice")
	TNT1 A 0 Radius_Quake(20,12,0,12,0)
	TNT1 A 0 A_PlaySound("weapons/bfg95explode")
	TNT1 A 0 A_SpawnItemEx("BFGShockwave", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAA 0 A_CustomMissile("GKaboom14", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SetScale(1.0)
    BFE1 ABCDEF 4 Bright
    Stop
    }
}

ACTOR MaxibusBFGProjectileAttack
{
Obituary "%o was not seen coming to a visit from a Maxibus."
MissileType "MaxibusLightningProjectile"
MissileHeight -2
Projectile
+LOOKALLAROUND
+ISMONSTER
+QUICKTORETALIATE
+NOTARGET
+NOCLIP
States
{
Spawn:
    TNT1 A 0
	TNT1 A 1 A_Look
	Stop
See:
    TNT1 A 0
	TNT1 A 1 A_JumpIfCloser(700,"Attack")
	Stop
Attack:
    TNT1 A 0
	TNT1 A 0 A_FaceTarget
	TNT1 A 1 A_MissileAttack
	Goto Death
Death:
	TNT1 A 20
	Stop
	}
}

ACTOR MaxibusLightningProjectile
{
Radius 6
Height 6
Speed 35
FastSpeed 40
Damage 6
DamageType "BeheComet"
SeeSound "LegArchon/BallZap"
DeathSound "LegArchon/BallHit"
RenderStyle Add
Alpha 0.8
Projectile
States
{
Spawn:
	TATL ABCABC 2 Bright A_SpawnItemEx("GLiteTrail")
Death:
	TATL DEFGHIJKLMNO 1 Bright
	Stop
	}
}

ACTOR GLiteTrail
{
Radius 1
Height 1
PROJECTILE
RENDERSTYLE ADD
ALPHA 0.67
+CLIENTSIDEONLY
States
{
Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TATL ABC 3 Bright
	Stop
Toaster:
	TNT1 A 0
	Stop
}
}

ACTOR GKaboom14 : Kaboom
{
Speed 1
Scale 0.9
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
FXPG AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05)
Stop
}
}

ACTOR ProjectileTrailParticleGreen3 :  ProjectileTrailParticleOrange
{
+NOGRAVITY
Scale 0.045
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
SPKG A 2 Bright A_FadeOut(0.015)
Loop
}
}

Actor MaxibusGreenSuperBall : SuperBall
{
  DamageType "BeheComet"
  Obituary "%o was not seen coming to a visit from a Maxibus."
  States
  {
  Spawn:
	GRBA A 0 A_CountDown
    GRBA AA 2 bright A_SpawnItemEx("GreenSuperBallTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
    Loop
  Death:
    TNT1 A 0 A_Explode(128,128,0)
    TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAA 0 A_CustomMissile("Kaboom13", 0, 0, random(0,360), 2, random(0,360))	
	TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_PlaySound("lrball3/exp")
    TNT1 AAAAAAAA 0 A_SpawnItemEx("MaxibusGreenSuperSmallBall",Random(-8,8),Random(-8,8),Random(-8,8),Random(45,70),0,Random(-3,3),Random(170,190),SXF_NOCHECKPOSITION)	
    TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("MaxibusGreenSuperSmallBall",Random(-8,8),Random(-8,8),Random(-8,8),Random(45,70),0,Random(-3,3),Random(-14,14),SXF_NOCHECKPOSITION)
	MMSD A 8 bright A_Explode(38, 140, 0)
    Stop
  }
}

Actor MaxibusGreenSuperSmallBall : SuperSmallBall
{
  Radius 8
  Height 10
  Speed 65
  DamageType "BeheComet"
  Damage (4)
  Scale 0.17
  Projectile
  +RANDOMIZE
  +EXTREMEDEATH
  +SEEKERMISSILE
  SeeSound "MMBurst"
  DeathSound "MBExplodeD"
  Obituary "%o was not seen coming to a visit from a Maxibus."
  RenderStyle Add
  States
  {
  Spawn:
    GRBA A 0
    GRBA A 0 A_SeekerMissile(15,8,SMF_LOOK)
	GRB3 AA 1 bright A_SpawnItemEx("GreenSuperBallTrail2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	GRBA A 0 A_SeekerMissile(1,8,SMF_LOOK)
	GRB3 BB 1 bright A_SpawnItemEx("GreenSuperBallTrail2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	GRBA A 0 A_SeekerMissile(15,8,SMF_LOOK)
	GRB3 CC 1 bright A_SpawnItemEx("GreenSuperBallTrail2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
	GRBA A 0 A_SeekerMissile(15,8,SMF_LOOK)
	GRB3 DD 1 bright A_SpawnItemEx("GreenSuperBallTrail2",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
    loop
  Death:
    TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
	TNT1 AAA 0 A_CustomMissile("Kaboom7", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
    TNT1 I 8 bright A_Explode(8,80,0)
    TNT1 J 6 bright
    TNT1 K 4 bright
    Stop
  }
}

Actor MaxibusMissile
{
Radius 8
Height 8
Speed 75
Damage 8
RenderStyle Add
Alpha 0.6
Scale 0.5
SeeSound "plasmacaster/fly"
DeathSound "plasmacaster/explode"
PROJECTILE
Decal CacoScorch
+FORCEXYBILLBOARD
+SEEKERMISSILE
DamageType "BeheComet"
States
{
  Spawn:
    AMIS A 0 A_SeekerMissile(3,0)
	S4RX ABCD 2 Bright A_CustomMissile("MaxibusMissileTrail",0,0,0,0)
    Loop
  Death:
    TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner",0,0,0,0,0,0,0,128)
	TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
    TNT1 AAA 0 A_CustomMissile("GKaboom",0,0,random(0,360),2,random(0,360))
    TNT1 A 0 A_Explode(16,128)
	TNT1 A 0 A_Explode(8,64)
	BFE1 ABCDEF 4 Bright A_SpawnItemEx("GreenParticleSpawner",0,0,0,0,0,0,0,128)
    TNT1 A 1
    Stop
  }
}

ACTOR GKaboom : Kaboom
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
FXPG A 1 Bright A_PlaySound("weapons/clrocketexplode")
FXPG ABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05)
Stop
}
}

ACTOR MaxibusMissileTrail : ClientSideEffect
{   
   Radius 2
   Height 2
   Speed 0
   PROJECTILE
   RENDERSTYLE ADD
   +CLIENTSIDEONLY
   Scale 0.32
   ALPHA 0.67
   States
   {
   Spawn:
   	  TNT1 A 0
	  TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	  TNT1 A 1
      ST8G PQ 4 Bright A_FadeOut(0.1)
      Loop
   }
}