/////////////////////////////////////
//   MEGAMANDOS (WOLFENSTEINSS)    //
///////////////////////////////////// 

Actor MegamanDOS 30619
{
//$Category MM8BDM-Monsters (Doom)
//$Title Mega Man DOS (WolfensteinSS)
//$Sprite D027B8B2
Tag "Mega Man DOS"
Translation "192:192=76:76", "198:198=244:244"
MONSTER
Species "MegamanDOSMonster"
Health 50
Radius 20
Height 56
Speed 1 // 8
PainChance 170
PainChance "WindStorm", 170
PainChance "GravityHold", 170
PainChance "ConcreteShot", 170
PainChance "TornadoBlow", 170
PainChance "BlackHoleBomb", 170
PainChance "TimeStopper", 256
DamageFactor "Dummy", 0.0
BloodType "MonsterRipperProtect_Helper"
//+NOBLOOD
+FLOORCLIP
-NOINFIGHTING
+DOHARMSPECIES
SeeSound "monster/megamandossee"
PainSound "monster/megamandospain"
DeathSound "monster/megamandosdeath"
ActiveSound "monster/megamandosactive"
Obituary "$OB_WOLFSS"
//Dropitem "Clip"
Mass 9999
Scale 2.5
States
{
Spawn:
MDOS A 0 NoDelay A_Stop
MDOS A 0 A_TakeInventory("CutterFlag",1)
MDOS A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
MDOS A 0 A_SpawnItemEx("MonsterHitbox20_56")
MDOS A 10 A_Look
Goto Spawn+4

FirstSee:
MDOS A 0 A_TakeInventory("CutterFlag",1)
MDOS A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
MDOS A 0 Thing_SetTranslation(0,30501) //ALLRED
MDOS A 2 Bright
MDOS A 0 Thing_SetTranslation(0,30619) //MEGAMANDOSMONSTER
MDOS A 0 A_GiveInventory("CutterFlag",1)
Goto See

See:
MDOS A 0 A_JumpIfInventory("CutterFlag",1,1)
Goto FirstSee
MDOS B 1 A_Chase
MDOS BB 1 A_ChangeVelocity(2,0,momz,3)
MDOS B 1 A_Chase
MDOS BB 1 A_ChangeVelocity(2,0,momz,3)
MDOS C 1 A_Chase
MDOS CC 1 A_ChangeVelocity(2,0,momz,3)
MDOS C 1 A_Chase
MDOS CC 1 A_ChangeVelocity(2,0,momz,3)
MDOS D 1 A_Chase
MDOS DD 1 A_ChangeVelocity(2,0,momz,3)
MDOS D 1 A_Chase
MDOS DD 1 A_ChangeVelocity(2,0,momz,3)
MDOS E 1 A_Chase
MDOS EE 1 A_ChangeVelocity(2,0,momz,3)
MDOS E 1 A_Chase
MDOS EE 1 A_ChangeVelocity(2,0,momz,3)
Loop

Missile:
MDOS F 0 A_Stop
MDOS F 0 A_PlaySoundEx("misc/fakereloadshort","Weapon")
MDOS F 10 A_FaceTarget
MDOS F 10 A_FaceTarget
MDOS F 0 A_PlaySoundEx("monster/megamandosfire","Weapon")
MDOS F 0 A_CustomMissile("MegamanDOSShot",44,-14,frandom(-5,5),0,0)
MDOS F 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
MDOS G 2 Bright
MDOS G 0 Thing_SetTranslation(0,30619) //MEGAMANDOSMONSTER
MDOS G 2
MDOS F 6 A_FaceTarget
MDOS F 0 A_PlaySoundEx("monster/megamandosfire","Weapon")
MDOS F 0 A_CustomMissile("MegamanDOSShot",44,-14,frandom(-5,5),0,0)
MDOS F 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
MDOS G 2 Bright
MDOS A 0 Thing_SetTranslation(0,30619) //MEGAMANDOSMONSTER
MDOS G 2 
MDOS F 1 A_CPosRefire
Goto Missile+3

Pain:
MDOS H 0 A_Stop
Pain.WindStorm:
Pain.GravityHold:
Pain.ConcreteShot:
Pain.TornadoBlow:
Pain.BlackHoleBomb:
MDOS H 0 Thing_SetTranslation(0,30619) //MEGAMANDOSMONSTER
MDOS H 6 A_Pain
Goto See

Pain.TimeStopper:
MDOS H 0 A_Stop
MDOS H 0 Thing_SetTranslation(0,30619) //MEGAMANDOSMONSTER
MDOS H 0 A_ChangeFlag("NOPAIN",true)
MDOS "##############################################################################################################################################################################################################################################################################################################################################################" 1 A_SpawnItemEx("TimeStopGFX",random(8,56),0,random(0,90),0,0,0,random(0,359),0,80)
MDOS H 0 A_ChangeFlag("NOPAIN",false)
Goto See

Death.WindStorm:
Death.GravityHold:
Death.TornadoBlow:
BlowDeath:
MDOS H 0 A_Stop
MDOS H 0 Thing_SetTranslation(0,30619) //MEGAMANDOSMONSTER
MDOS H 0 A_ChangeFlag("SHOOTABLE",false)
MDOS H 0 A_ChangeFlag("NODAMAGE",false)
MDOS H 0 A_ChangeFlag("SOLID",false)
MDOS H 1 ThrustThingZ(0,10,0,1)
MDOS H 0 A_JumpIf(ceilingz-z<64,"Death")
MDOS H 0 A_GiveInventory("BlowDeathTimer",1)
MDOS H 0 A_JumpIfInventory("BlowDeathTimer",35,"Death")
Goto BlowDeath+5

Death:
XDeath:
MDOS H 0 A_Stop
MDOS H 0 A_FaceTarget
MDOS H 0 Thing_SetTranslation(0,30619) //MEGAMANDOSMONSTER
MDOS H 2 A_NoBlocking
MDOS H 0 A_Scream
MDOS H 0 A_SpawnItemEx("ExplosionEffect1",0,0,32)
MDOS H 0 A_SpawnItemEx("MonsterFakeDeathFX",0,0,32,0,0,0,0,1)
MDOS H 0 A_SpawnItemEx("MegamanDOS_DeathMarker",0,0,32,0,0,8,0,1)
TNT1 A 23
TNT1 A -1
Stop

Raise:
TNT1 A 0 A_SpawnItemEx("MonsterReviveHelper")
TNT1 A 20
TNT1 A 0 A_GiveInventory("DrillFlag",1)
MDOS A 5
TNT1 A 0 A_TakeInventory("DrillFlag",1)
Goto See 
}
}

Actor MegamanDOS_DeathMarker : Monster_DeathMarker
{
States
{
Spawn:
TNT1 A 0 NoDelay A_Jump(128,2)
TNT1 A 0 A_SetScale(-ScaleX,ScaleY)
SpawnLoop:
TNT1 A 0 A_Jump(128,4)
TNT1 A 0 A_Jump(64,4)
TNT1 A 0 A_Jump(32,4)
MDOS IIIIIJJJJJKKKKKLLLLL 1 A_CheckFloor("SpawnFloor")
loop

SpawnFloor:
MDOS "#" 1 A_JumpIfInTargetInventory("DrillFlag",1,"Death")
wait
}
}

Actor MegamanDOSShot : FastProjectile
{
Translation "215:215=213:213", "208:208=213:213"
+BRIGHT
Radius 5
Height 5
Speed 80
FastSpeed 90
Damage (10)
DamageType "Buster"
Scale 3.0
States
{
Spawn:
BASB A 1 NoDelay
wait
}
}

Actor MegamanDOS_Replaced : MegamanDOS replaces WolfensteinSS {}

/////////////////////////////////////
//   HANGING BECK (COMMANDERKEEN)  //
///////////////////////////////////// 

Actor HangingBeck 30620
{
//$Category MM8BDM-Monsters (Doom)
//$Title Beck (CommanderKeen)
//$Sprite BECKA0
//$NotAngled
Tag "Beck"
Translation "192:192=87:87", "198:198=93:93"
Health 100
Radius 16
Height 72
Mass 9999
PainChance 256
DamageFactor "Dummy", 0.0
Species "HangingBeckMonster"
BloodType "MonsterRipperProtect_Helper"
//+NOBLOOD
+SOLID 
+SPAWNCEILING
+NOGRAVITY 
+SHOOTABLE 
+COUNTKILL 
+NOICEDEATH
+ISMONSTER
PainSound "misc/monkeybutt"
DeathSound "monster/death"
Scale 2.5
States
{
Spawn:
BECK A 0 NoDelay A_SpawnItemEx("MonsterHitbox16_72")
BECK A -1
Goto Spawn+1

Pain:
BECK B 0 A_Pain
BECK B 1 A_SpawnItemEx("PainFX",-5,0,54,0,0,0)
BECK B 11 
Goto Spawn

Death:
BECK C 0 A_FaceTarget
BECK C 0 A_NoBlocking
BECK C 0 A_Scream
BECK C 0 A_SpawnItemEx("ExplosionEffect1",0,0,58)
BECK C 0 A_SpawnItemEx("MonsterFakeDeathFX",0,0,58,0,0,0,0,1)
BECK C 0 A_SpawnItemEx("HangingBeck_DeathMarker",0,0,72,0,0,8,0,1)
BECK C 60
BECK C 6 A_KeenDie
BECK C -1
Stop
}
}

Actor HangingBeck_DeathMarker : Monster_DeathMarker
{
ReactionTime 10
RenderStyle Translucent
Alpha 1.0
States
{
Spawn:
TNT1 A 0 NoDelay A_Jump(128,2)
TNT1 A 0 A_SetScale(-ScaleX,ScaleY)
SpawnLoop:
TNT1 A 0 A_Jump(128,4)
TNT1 A 0 A_Jump(64,4)
TNT1 A 0 A_Jump(32,4)
BECK DDDDDEEEEEFFFFFGGGGG 1 A_CheckFloor("SpawnFloor")
loop

SpawnFloor:
BECK "#" 6
BECK "#" 1 A_SetTranslucent(0.0)
BECK "#" 1 A_SetTranslucent(1.0)
BECK "#" 0 A_CountDown
Goto SpawnFloor+1

Death:
TNT1 A 0
stop
}
}

Actor HangingBeck_Replaced : HangingBeck replaces CommanderKeen {}