actor DuoBoss 11112
{
//$Category MM8BDM-Bosses
Height 64
Radius 40
Scale 2.5
Obituary "%o got in the way of \chduo\c-'s justice."
Translation "192:192=220:220", "198:198=195:195"
Health 1500
mass 99999999
Speed 0
Damage 0
BounceFactor 0.9
WallBounceFactor 0.9
Damagefactor 1.5
SeeSound "misc/quake"
MONSTER
-ISMONSTER
+NORADIUSDMG
-COUNTKILL
+NOBLOOD
States
{
Spawn:
DUOR A 5
DUOR A 220 A_LookEx(LOF_NOSOUNDCHECK,0,50)
Goto Looking
Looking:
DUOR A 4 A_LookEx(LOF_NOSEESOUND)
loop
See:
DUOR A 0 A_Stop
DUOR S 0 A_ChangeFlag("CANPASS",1)
DUOR A 0 A_ChangeFlag("SOLID",1)
DUOR AAA 5 A_FaceTarget
DUOR A 0 A_Chase
DUOR A 4 A_JumpIfCloser(300,"Ranged")
DUOR A 4 A_Jump(100,"Rise")
Goto Charge
Ranged:
DUOR GG 6 A_FaceTarget
DUOR G 0 A_PlaySound("weapon/cfire")
DUOR G 8 A_CustomMissile("MidFist",35,-12,random(-5,5),0)
DUOR GG 6 A_FaceTarget
DUOR G 0 A_PlaySound("weapon/cfire")
DUOR G 8 A_CustomMissile("MidFist",35,-12,random(-5,5),0)
DUOR GG 6 A_FaceTarget
DUOR G 0 A_PlaySound("weapon/cfire")
DUOR G 8 A_CustomMissile("MidFist",35,-12,random(-5,5),0)
DUOR S 0 A_JumpIfHealthLower(800,"Charge")
DUOR A 12
Goto Looking
Charge:
DUOR N 5 A_PlaySound("weapon/superboost")
DUOR N 0 A_FaceTarget
DUOR N 8 A_Recoil(-90)
Rush:
DUOR N 0 A_JumpIfCloser(128,"GroundSlam")
DUOR N 0 A_JumpIfInventory("CutterFlag",9,"GroundSlam")
DUOR N 1 A_GiveInventory("CutterFlag",1)
loop
GroundSlam:
DUOR S 0 A_Stop
DUOR S 0 A_ChangeFlag("SOLID",0)
DUOR S 0 A_TakeInventory("CutterFlag",999)
DUOR OPQR 3
DUOR S 0 A_FaceTarget
DUOR S 0 A_PlaySound("misc/hugequake2")
DUOR S 30 A_SpawnItemEx("DuoShockWave")
DUOR S 0 A_ChangeFlag("SOLID",1)
DUOR AA 2 A_FaceTarget
Goto Looking
Rise:
DUOR A 0 A_ChangeFlag("NOGRAVITY",1)
DUOR N 0 A_FaceTarget
DUOR A 0 ThrustThingZ(0,5,0,0)
DUOR G 0 A_PlaySound("weapon/pcharge")
DUOR IJKIJKIJK 2
DUOR A 0 A_ChangeFlag("NOBLOCKMAP",1)
DUOR A 0 A_ChangeFlag("MISSILE",1)
DUOR A 0 A_ChangeFlag("RIPPER",1)
DUOR A 0 A_ChangeFlag("SHOOTABLE",0)
DUOR A 0 A_ChangeFlag("DOOMBOUNCE",1)
DUOR LM 2 A_Stop
DUOR A 0 ThrustThingZ(0,40,random(0,1),0)
DUOR A 0 A_FaceTarget
DUOR A 0 A_Recoil(40)
Goto Ball
Ball:
DUOR L 0 A_GiveInventory("CutterFlag",1)
DUOR L 0 Radius_Quake(5, 20, 0, 100, 136)
DUOR L 0 A_SpawnItemEx("GigaFistFX",0,0,12)
DUOR LLMM 1 A_Explode(10,80,1)
DUOR N 0 A_JumpIfInventory("CutterFlag",30,"Fall")
loop
Fall:
DUOR S 0 A_ChangeFlag("SOLID",0)
DUOR S 0 A_ChangeFlag("CANPASS",0)
DUOR S 0 A_TakeInventory("CutterFlag",999)
DUOR A 0 A_ChangeFlag("MISSILE",0)
DUOR A 0 A_ChangeFlag("SHOOTABLE",1)
DUOR A 0 A_ChangeFlag("RIPPER",0)
DUOR A 0 A_ChangeFlag("DOOMBOUNCE",0)
DUOR A 0 A_ChangeFlag("NOBLOCKMAP",0)
DUOR S 0 A_JumpIfHealthLower(500,"Fall2")
DUOR I 10
DUOR A 0 A_ChangeFlag("NOGRAVITY",0)
Goto Falling
Falling:
DUOR I 1 A_JumpIf(z==floorz,"See")
loop
Fall2:
DUOR A 0 A_Stop
DUOR N 10
DUOR A 0 A_FaceTarget
DUOR A 0 A_Recoil(-35)
DUOR A 0 A_ChangeFlag("NOGRAVITY",0)
Goto Falling2
Falling2:
DUOR N 1 A_JumpIf(z==floorz,"GroundSlam")
loop
Death:
DUOR H 28
DeathFall:
DUOR H 1 A_JumpIf(z==floorz,"Leaving")
loop
Leaving:
TFOG A 0 ACS_ExecuteAlways(38,0)
DUOR U 37
TFOG A 0 A_PlaySoundEx("misc/teleportout", "Voice", 0, 1)
TFOG A 0 A_ChangeFlag("NOINTERACTION", 1)
TFOG B 0 A_ChangeFlag("NOGRAVITY",1)
TFOG BBBAAACCC 1
TFOG A 65 A_ChangeVelocity(0,0,13,CVF_RELATIVE|CVF_REPLACE)
stop
}
}

actor DuoShockWave
{
PROJECTILE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(20,64,0)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,0)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,15)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,30)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,45)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,60)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,75)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,90)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,105)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,120)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,135)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,150)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,165)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,180)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,195)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,210)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,225)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,240)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,255)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,270)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,285)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,300)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,315)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,330)
TNT1 A 0 A_SpawnItemEx("DuoShockwavePart",0,0,0,18,0,0,345)
stop
}
}

actor DuoShockwavePart
{
PROJECTILE
Scale 2.0
+FLOORHUGGER
Speed 30
Damage (15)
Radius 32
Height 32
States
{
Spawn:
DUOR T 1 A_FadeOut(0.05)
loop
}
}
