///////////////////////////////////////////////////////
//         POWER MUSCLER BREACHER (CYBERDEMON)       //
///////////////////////////////////////////////////////

Actor PowerMusclerBreacherMonster 30617
{
//$Category MM8BDM-Monsters (Doom)
//$Title Power Muscler Breacher (Cyberdemon)
//$Sprite D026B8B2
Tag "Power Muscler Breacher"
Translation "192:192=248:248", "198:198=165:165", "196:196=82:82", "199:199=176:176"
MONSTER
Species "PowerMusclerMonster"
BloodType "MonsterRipperProtect_Helper"
//+NOBLOOD
+FLOORCLIP
-NOINFIGHTING
+DONTHARMSPECIES
+BOSS
+MISSILEMORE
//+NORADIUSDMG // Makes monster immune to Time Stopper
+DONTMORPH
+BOSSDEATH
Health 4000
Radius 40
Height 110
Speed 1 // 16
PainChance 20
PainChance "WindStorm", 20
PainChance "GravityHold", 20
PainChance "ConcreteShot", 20
PainChance "TornadoBlow", 20
PainChance "BlackHoleBomb", 20
PainChance "TimeStopper", 256
MinMissileChance 160
DamageFactor "Dummy", 0.0
SeeSound "misc/mmpuwarning"
PainSound "monster/mm4pain"
DeathSound "monster/death"
ActiveSound "misc/repairing"
Obituary "$OB_CYBORG"
Mass 9999
Scale 2.5
States
{
Spawn:
PMSM A 0 NoDelay A_Stop
PMSM A 0 A_TakeInventory("CutterFlag",1)
PMSM A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
PMSM A 0 A_SpawnItemEx("MonsterHitbox40_110")
PMSM A 10 A_Look
Goto Spawn+4

FirstSee:
PMSM A 0 A_TakeInventory("CutterFlag",1)
PMSM A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
PMSM A 0 Thing_SetTranslation(0,30501) //ALLRED
PMSM A 2 Bright
PMSM A 0 Thing_SetTranslation(0,30617) //POWERMUSCLERBREACHERMONSTER
PMSM A 0 A_GiveInventory("CutterFlag",1)
Goto See

See:
PMSM A 0 A_JumpIfInventory("CutterFlag",1,1)
Goto FirstSee
PMSM B 1 A_Chase
PMSM BB 1 A_ChangeVelocity(4.625,0,momz,3)
PMSM B 1 A_Chase
PMSM BB 1 A_ChangeVelocity(4.625,0,momz,3)
PMSM C 0 A_PlaySound("misc/powerland",CHAN_BODY,0.75)
PMSM C 1 A_Chase
PMSM CC 1 A_ChangeVelocity(4.625,0,momz,3)
PMSM C 1 A_Chase
PMSM CC 1 A_ChangeVelocity(4.625,0,momz,3)
PMSM D 1 A_Chase
PMSM DD 1 A_ChangeVelocity(4.625,0,momz,3)
PMSM D 1 A_Chase
PMSM DD 1 A_ChangeVelocity(4.625,0,momz,3)
PMSM E 0 A_PlaySound("misc/powerland",CHAN_BODY,0.75)
PMSM E 1 A_Chase
PMSM EE 1 A_ChangeVelocity(4.625,0,momz,3)
PMSM E 1 A_Chase
PMSM EE 1 A_ChangeVelocity(4.625,0,momz,3)
Loop

Missile:
PMSM A 0 A_Stop
PMSM A 0 A_PlaySoundEx("misc/fakereloadshort","Weapon")
PMSM A 0 A_FaceTarget
PMSM C 3
PMSM F 3
PMSM G 0 A_PlaySoundEx("misc/minilaser","Weapon")
PMSM G 0 A_CustomMissile("PowerMusclerBreacherMonsterShot",75)
PMSM G 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
PMSM G 2 Bright
PMSM G 0 Thing_SetTranslation(0,30617) //POWERMUSCLERBREACHERMONSTER
PMSM G 3
PMSM FC 3
PMSM C 1
PMSM A 6 A_FaceTarget
PMSM C 3
PMSM F 3
PMSM G 0 A_PlaySoundEx("misc/minilaser","Weapon")
PMSM G 0 A_CustomMissile("PowerMusclerBreacherMonsterShot",75)
PMSM G 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
PMSM G 2 Bright
PMSM G 0 Thing_SetTranslation(0,30617) //POWERMUSCLERBREACHERMONSTER
PMSM G 3
PMSM FC 3
PMSM C 1
PMSM A 6 A_FaceTarget
PMSM C 3
PMSM F 3
PMSM G 0 A_PlaySoundEx("misc/minilaser","Weapon")
PMSM G 0 A_CustomMissile("PowerMusclerBreacherMonsterShot",75)
PMSM G 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
PMSM G 2 Bright
PMSM G 0 Thing_SetTranslation(0,30617) //POWERMUSCLERBREACHERMONSTER
PMSM G 3
PMSM FC 3
PMSM C 1
Goto See

Pain:
PMSM H 0 A_Stop
Pain.WindStorm:
Pain.GravityHold:
Pain.ConcreteShot:
Pain.TornadoBlow:
Pain.BlackHoleBomb:
PMSM H 0 Thing_SetTranslation(0,30617) //POWERMUSCLERBREACHERMONSTER
PMSM H 10 A_Pain
Goto See

Pain.TimeStopper:
PMSM H 0 A_Stop
PMSM H 0 Thing_SetTranslation(0,30617) //POWERMUSCLERBREACHERMONSTER
PMSM H 0 A_ChangeFlag("NOPAIN",true)
PMSM "########################################################################################" 1 A_SpawnItemEx("TimeStopGFX",random(8,96),0,random(0,150),0,0,0,random(0,359),0,80)
PMSM H 0 A_ChangeFlag("NOPAIN",false)
Goto See

Death:
XDeath:
PMSM H 0 A_Stop
PMSM H 0 A_FaceTarget
PMSM H 0 A_NoBlocking
PMSM H 0 Thing_SetTranslation(0,30617) //POWERMUSCLERBREACHERMONSTER
PMSM H 0 A_PlaySound("misc/gamma2pain",CHAN_BODY,1.0,0,0.0)
PMSM H 2 Bright
PMSM H 0 Thing_SetTranslation(0,30503) //ALLWHITE
PMSM H 2 Bright
PMSM H 0 Thing_SetTranslation(0,30617) //POWERMUSCLERBREACHERMONSTER
PMSM H 2 Bright
PMSM H 0 Thing_SetTranslation(0,30503) //ALLWHITE
PMSM H 2 Bright
PMSM H 0 Thing_SetTranslation(0,30617) //POWERMUSCLERBREACHERMONSTER
PMSM H 2 Bright
PMSM H 0 Thing_SetTranslation(0,30503) //ALLWHITE
PMSM H 2 Bright
PMSM H 0 Thing_SetTranslation(0,30617) //POWERMUSCLERBREACHERMONSTER
PMSM H 2 Bright
PMSM H 0 A_PlaySound("weapon/drillexplode",CHAN_AUTO,1.0,0,0.0)
PMSM H 0 A_SpawnItemEx("ExplosionEffect2",random(-45,45),random(-45,45),random(0,120))
PMSM HZ 3 A_SetTranslucent(0.9)
PMSM H 0 A_PlaySound("weapon/drillexplode",CHAN_AUTO,1.0,0,0.0)
PMSM H 0 A_SpawnItemEx("ExplosionEffect2",random(-45,45),random(-45,45),random(0,120))
PMSM HZ 3 A_SetTranslucent(0.8)
PMSM H 0 A_PlaySound("weapon/drillexplode",CHAN_AUTO,1.0,0,0.0)
PMSM H 0 A_SpawnItemEx("ExplosionEffect2",random(-45,45),random(-45,45),random(0,120))
PMSM HZ 3 A_SetTranslucent(0.7)
PMSM H 0 A_PlaySound("weapon/drillexplode",CHAN_AUTO,1.0,0,0.0)
PMSM H 0 A_SpawnItemEx("ExplosionEffect2",random(-45,45),random(-45,45),random(0,120))
PMSM HZ 3 A_SetTranslucent(0.6)
PMSM H 0 A_PlaySound("weapon/drillexplode",CHAN_AUTO,1.0,0,0.0)
PMSM H 0 A_SpawnItemEx("ExplosionEffect2",random(-45,45),random(-45,45),random(0,120))
PMSM HZ 3 A_SetTranslucent(0.5)
PMSM H 0 A_PlaySound("weapon/drillexplode",CHAN_AUTO,1.0,0,0.0)
PMSM H 0 A_SpawnItemEx("ExplosionEffect2",random(-45,45),random(-45,45),random(0,120))
PMSM HZ 3 A_SetTranslucent(0.4)
PMSM H 0 A_PlaySound("weapon/drillexplode",CHAN_AUTO,1.0,0,0.0)
PMSM H 0 A_SpawnItemEx("ExplosionEffect2",random(-45,45),random(-45,45),random(0,120))
PMSM HZ 3 A_SetTranslucent(0.3)
PMSM H 0 A_PlaySound("weapon/drillexplode",CHAN_AUTO,1.0,0,0.0)
PMSM H 0 A_SpawnItemEx("ExplosionEffect2",random(-45,45),random(-45,45),random(0,120))
PMSM HZ 3 A_SetTranslucent(0.2)
PMSM H 0 A_PlaySound("misc/devildeath",CHAN_AUTO,1.0,0,0.0)
PMSM H 0 A_SpawnItemEx("FakeDeathFX",0,0,70,0,0,0,0,1)
PMSM HZ 3 A_SetTranslucent(0.0)
TNT1 H 0 A_JumpIf(CallACS("Monster_CanDropWeapon"),4)
TNT1 H 0 A_Jump(256,2)
TNT1 H 0 A_JumpIf(True,2)
TNT1 H 0 ACS_NamedExecuteWithResult("Monster_WeaponDrop",4) //Devil Cannon
TNT1 A 42
TNT1 A -1 A_BossDeath
Stop
}
}

Actor PowerMusclerBreacherMonsterShot
{
+BRIGHT
PROJECTILE
Radius 11
Height 8
Speed 20
DeathSound "monster/barrelflash"
Damage (10)
DamageType "Buster"
Scale 2.5
States
{
Spawn:
PMSM J 1 NoDelay
PMSM KLMN 2 
Goto Spawn+1

Death:
TNT1 A 0 A_Explode(60,-1,1,0,0)
TNT1 A 0 A_SpawnItemEx("PowerMusclerBreacherMonsterShot_FX")
stop
}
}

Actor PowerMusclerBreacherMonsterShot_FX : ExplosionEffect2
{
Translation "192:129=4:4", "198:198=176:176"
}

Actor PowerMusclerBreacherMonster_Replaced : PowerMusclerBreacherMonster replaces Cyberdemon {}