////////////////////////////////////
//    BIG EYE ARTILLERY (FATSO)   //
////////////////////////////////////

Actor BigEyeArtilleryMonster 30614
{
//$Category MM8BDM-Monsters (Doom)
//$Title Big Eye Artillery (Mancubus)
//$Sprite D022B8B2
Tag "Big Eye Artillery"
Translation "192:192=4:4", "198:198=75:75"
MONSTER
Species "BigEyeMonster"
BloodType "MonsterRipperProtect_Helper"
//+NOBLOOD
+FLOORCLIP
-NOINFIGHTING
+DONTHARMSPECIES
+BOSSDEATH
Health 600
Radius 48
Height 64
Speed 1 // 8
PainChance 80
PainChance "WindStorm", 80
PainChance "GravityHold", 80
PainChance "ConcreteShot", 80
PainChance "TornadoBlow", 80
PainChance "BlackHoleBomb", 80
PainChance "TimeStopper", 256
DamageFactor "Dummy", 0.0
SeeSound "item/rushdetect"
PainSound "monster/mm2pain"
DeathSound "monster/death"
ActiveSound "misc/repairing"
Obituary "$OB_FATSO"
Mass 9999
Scale 2.5
States
{
Spawn:
BIGI A 0 NoDelay A_Stop
BIGI A 0 A_TakeInventory("CutterFlag",1)
BIGI A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
BIGI A 0 A_SpawnItemEx("MonsterHitbox48_64")
BIGI A 15 A_Look
Goto Spawn+4

FirstSee:
BIGI A 0 A_TakeInventory("CutterFlag",1)
BIGI A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
BIGI A 0 Thing_SetTranslation(0,30501) //ALLRED
BIGI A 2 Bright
BIGI A 0 Thing_SetTranslation(0,30614) //BIGEYEARTILLERYMONSTER
BIGI A 0 A_GiveInventory("CutterFlag",1)
Goto See

See:
BIGI A 0 A_JumpIfInventory("CutterFlag",1,1)
Goto FirstSee
BIGI B 1 A_Chase
BIGI BBB 1 A_ChangeVelocity(2,0,momz,3)
BIGI B 1 A_Chase
BIGI CCC 1 A_ChangeVelocity(2,0,momz,3)
BIGI C 1 A_Chase
BIGI CDD 1 A_ChangeVelocity(2,0,momz,3)
BIGI D 1 A_Chase
BIGI DD 1 A_ChangeVelocity(2,0,momz,3)
BIGI D 0 A_PlaySound("robot/bigeye",CHAN_BODY,0.375)
BIGI E 1 A_ChangeVelocity(2,0,momz,3)
BIGI E 1 A_Chase
BIGI EEE 1 A_ChangeVelocity(2,0,momz,3)
Loop

Missile:
BIGI A 0 A_Stop
BIGI A 0 A_PlaySoundEx("misc/fakereloadshort","Weapon")
BIGI A 0 A_FaceTarget
BIGI A 2
BIGI B 0 ThrustThingZ(0,25,0,0)
BIGI BBBBBB 2
BIGI B 0 A_PlaySoundEx("robot/bigeye","Body")
BIGI FEE 2
BIGI A 0 A_PlaySound("weapon/magnetmissile",CHAN_WEAPON,1.0,0,0.75)
BIGI A 0 A_CustomMissile("BigEyeArtilleryMonsterShot",95,30,-11.25,0,0)
BIGI A 0 A_CustomMissile("BigEyeArtilleryMonsterShot",95,-30,0,0,0)
BIGI A 0 A_CustomMissile("HardKnuckleFX",95,30,0,0,0)
BIGI A 0 A_CustomMissile("HardKnuckleFX",95,-30,0,0,0)
BIGI A 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
BIGI F 2 Bright
BIGI F 0 Thing_SetTranslation(0,30614) //BIGEYEARTILLERYMONSTER
BIGI DFFA 2
BIGI A 0 A_FaceTarget
BIGI AAAAF 2
BIGI A 0 A_PlaySound("weapon/magnetmissile",CHAN_WEAPON,1.0,0,0.75)
BIGI A 0 A_CustomMissile("BigEyeArtilleryMonsterShot",95,30,0,0,0)
BIGI A 0 A_CustomMissile("BigEyeArtilleryMonsterShot",95,-30,11.25,0,0)
BIGI A 0 A_CustomMissile("HardKnuckleFX",95,30,0,0,0)
BIGI A 0 A_CustomMissile("HardKnuckleFX",95,-30,0,0,0)
BIGI A 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
BIGI F 2 Bright
BIGI F 0 Thing_SetTranslation(0,30614) //BIGEYEARTILLERYMONSTER
BIGI DFFA 2
BIGI A 0 A_FaceTarget
BIGI AAAAF 2
BIGI A 0 A_PlaySound("weapon/magnetmissile",CHAN_WEAPON,1.0,0,0.75)
BIGI A 0 A_CustomMissile("BigEyeArtilleryMonsterShot",95,30,-5.625,0,0)
BIGI A 0 A_CustomMissile("BigEyeArtilleryMonsterShot",95,-30,5.625,0,0)
BIGI A 0 A_CustomMissile("HardKnuckleFX",95,30,0,0,0)
BIGI A 0 A_CustomMissile("HardKnuckleFX",95,-30,0,0,0)
BIGI A 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
BIGI F 2 Bright
BIGI F 0 Thing_SetTranslation(0,30614) //BIGEYEARTILLERYMONSTER
BIGI DFFA 2
BIGI A 0 A_FaceTarget
BIGI AAAAF 2
Goto See

Pain:
BIGI H 0 A_Stop
Pain.WindStorm:
Pain.GravityHold:
Pain.ConcreteShot:
Pain.TornadoBlow:
Pain.BlackHoleBomb:
BIGI H 0 Thing_SetTranslation(0,30614) //BIGEYEARTILLERYMONSTER
BIGI H 6 A_Pain
Goto See

Pain.TimeStopper:
BIGI H 0 A_Stop
BIGI H 0 Thing_SetTranslation(0,30614) //BIGEYEARTILLERYMONSTER
BIGI H 0 A_ChangeFlag("NOPAIN",true)
BIGI "##############################################################################################################################################################################################################################################################################################################################################################" 1 A_SpawnItemEx("TimeStopGFX",random(8,56),0,random(0,130),0,0,0,random(0,359),0,80)
BIGI H 0 A_ChangeFlag("NOPAIN",false)
Goto See

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

Death:
XDeath:
BIGI H 0 A_Stop
BIGI H 0 A_FaceTarget
BIGI H 0 Thing_SetTranslation(0,30614) //BIGEYEARTILLERYMONSTER
BIGI H 2 A_NoBlocking
BIGI H 0 A_PlaySound("monster/explode",CHAN_AUTO,1.0)
BIGI H 0 A_SpawnItemEx("ExplosionEffect2",random(-32,32),random(-32,32),random(16,96))
BIGI HZ 2
BIGI H 0 A_PlaySound("monster/explode",CHAN_AUTO,1.0)
BIGI H 0 A_SpawnItemEx("ExplosionEffect2",random(-32,32),random(-32,32),random(16,96))
BIGI HZ 2
BIGI H 0 A_PlaySound("monster/explode",CHAN_AUTO,1.0)
BIGI H 0 A_SpawnItemEx("ExplosionEffect2",random(-32,32),random(-32,32),random(16,96))
BIGI HZ 2
BIGI H 0 A_PlaySound("monster/explode",CHAN_AUTO,1.0)
BIGI H 0 A_SpawnItemEx("ExplosionEffect2",random(-32,32),random(-32,32),random(16,96))
BIGI HZ 2
BIGI H 0 A_PlaySound("monster/explode",CHAN_AUTO,1.0)
BIGI H 0 A_SpawnItemEx("ExplosionEffect2",random(-32,32),random(-32,32),random(16,96))
BIGI HZ 2
BIGI H 0 A_Scream
BIGI H 0 A_SpawnItemEx("ExplosionEffect1",0,0,64)
BIGI H 0 A_SpawnItemEx("MonsterFakeDeathFX",0,0,64,0,0,0,0,1)
BIGI H 0 A_SpawnItemEx("BigEyeArtilleryMonster_DeathMarker",0,0,80,0,0,8,0,1)
BIGI H 0 A_JumpIf(CallACS("Monster_CanDropWeapon"),4)
BIGI H 0 A_Jump(64,2)
BIGI H 0 A_JumpIf(True,2)
BIGI H 0 ACS_NamedExecuteWithResult("Monster_WeaponDrop",4) //Devil Cannon
TNT1 A 32
TNT1 A -1 A_BossDeath
Stop

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

Actor BigEyeArtilleryMonster_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)
BIGI IIIIIJJJJJKKKKKLLLLL 1 A_CheckFloor("SpawnFloor")
loop

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

Actor BigEyeArtilleryMonsterShot
{
Translation "199:199=75:75", "229:229=75:75"
+BRIGHT
PROJECTILE
Radius 6
Height 8
Speed 20
Damage (20)
DamageType "Buster"
SeeSound "monster/bigeyefire"
DeathSound "misc/mm10crsh"
Scale 2.5
States
{
Spawn:
PMIS BCD 3 NoDelay
loop

Death:
HARD E 0 //A_SetScale(3.5,3.5)
HARD EDCB 2
stop
}
}

Actor BigEyeArtilleryMonster_Replaced : BigEyeArtilleryMonster replaces Fatso {}

//////////////////////////////////////
//    BIG EYE BARRAGER (HECTEBUS)   //
//////////////////////////////////////

Actor BigEyeBarragerMonster : BigEyeArtilleryMonster 30630
{
//$Category MM8BDM-Monsters (Skulltag)
//$Title Big Eye Barrager (Hectebus)
//$Sprite D023B8B2
Tag "Big Eye Barrager"
Translation "192:192=104:104", "198:198=118:118" 
Health 1200
PainChance 20
PainChance "WindStorm", 20
PainChance "GravityHold", 20
PainChance "ConcreteShot", 20
PainChance "TornadoBlow", 20
PainChance "BlackHoleBomb", 20
Obituary "$OB_HECTEBUS"
States
{
FirstSee:
BIGI A 0 A_TakeInventory("CutterFlag",1)
BIGI A 0 ACS_NamedExecuteAlways("Monster_PassivePain",0)
BIGI A 0 Thing_SetTranslation(0,30501) //ALLRED
BIGI A 2 Bright
BIGI A 0 Thing_SetTranslation(0,30630) //BIGEYEBARRAGERMONSTER
BIGI A 0 A_GiveInventory("CutterFlag",1)
Goto See

See:
BIGI A 0 A_JumpIfInventory("CutterFlag",1,1)
Goto FirstSee
BIGI B 1 A_Chase
BIGI BBB 1 A_ChangeVelocity(2,0,momz,3)
BIGI B 1 A_Chase
BIGI CCC 1 A_ChangeVelocity(2,0,momz,3)
BIGI C 1 A_Chase
BIGI CDD 1 A_ChangeVelocity(2,0,momz,3)
BIGI D 1 A_Chase
BIGI DD 1 A_ChangeVelocity(2,0,momz,3)
BIGI D 0 A_PlaySound("robot/bigeye",CHAN_BODY,0.375)
BIGI E 1 A_ChangeVelocity(2,0,momz,3)
BIGI E 1 A_Chase
BIGI EEE 1 A_ChangeVelocity(2,0,momz,3)
Loop

Missile:
BIGI A 0 A_Stop
BIGI A 0 A_PlaySoundEx("misc/fakereloadshort","Weapon")
BIGI A 0 A_FaceTarget
BIGI A 2
BIGI B 0 ThrustThingZ(0,25,0,0)
BIGI BBBBBB 2
BIGI B 0 A_PlaySoundEx("robot/bigeye","Body")
BIGI FEE 2
BIGI A 0 A_PlaySound("weapon/magnetmissile",CHAN_WEAPON,1.0,0,0.75)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,-30,0)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,-30,5.625,0)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,-30,11.25,0)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,-30,16.875,0)
BIGI A 0 A_CustomMissile("HardKnuckleFX",95,-30,0,0,0)
BIGI A 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
BIGI F 2 Bright
BIGI F 0 Thing_SetTranslation(0,30630) //BIGEYEBARRAGERMONSTER
BIGI DFFA 2
BIGI A 0 A_FaceTarget
BIGI AAAAF 2
BIGI A 0 A_PlaySound("weapon/magnetmissile",CHAN_WEAPON,1.0,0,0.75)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,30,0,0)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,30,-5.625,0)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,30,-11.25,0)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,30,-16.875,0)
BIGI A 0 A_CustomMissile("HardKnuckleFX",95,30,0,0,0)
BIGI A 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
BIGI F 2 Bright
BIGI F 0 Thing_SetTranslation(0,30630) //BIGEYEBARRAGERMONSTER
BIGI DFFA 2
BIGI A 0 A_FaceTarget
BIGI AAAAF 2
BIGI A 0 A_PlaySound("weapon/magnetmissile",CHAN_WEAPON,1.0,0,0.75)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,-30,11.25,0)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,-30,5.625,0)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,0,0,0)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,30,-5.625,0)
BIGI A 0 A_CustomMissile("BigEyeBarragerMonsterShot",95,30,-11.25,0)
BIGI A 0 A_CustomMissile("HardKnuckleFX",95,30,0,0,0)
BIGI A 0 A_CustomMissile("HardKnuckleFX",95,-30,0,0,0)
BIGI A 0 Thing_SetTranslation(0,30504) //MISSILEFLASH
BIGI F 2 Bright
BIGI F 0 Thing_SetTranslation(0,30630) //BIGEYEBARRAGERMONSTER
BIGI DFFA 2
BIGI A 0 A_FaceTarget
BIGI AAAAF 2
Goto See

Pain:
BIGI H 0 A_Stop
Pain.WindStorm:
Pain.GravityHold:
Pain.ConcreteShot:
Pain.TornadoBlow:
Pain.BlackHoleBomb:
BIGI H 0 Thing_SetTranslation(0,30630) //BIGEYEBARRAGERMONSTER
BIGI H 6 A_Pain
Goto See

Pain.TimeStopper:
BIGI H 0 A_Stop
BIGI H 0 Thing_SetTranslation(0,30630) //BIGEYEBARRAGERMONSTER
BIGI H 0 A_ChangeFlag("NOPAIN",true)
BIGI "##############################################################################################################################################################################################################################################################################################################################################################" 1 A_SpawnItemEx("TimeStopGFX",random(8,56),0,random(0,130),0,0,0,random(0,359),0,80)
BIGI H 0 A_ChangeFlag("NOPAIN",false)
Goto See

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

Death:
XDeath:
BIGI H 0 A_Stop
BIGI H 0 A_FaceTarget
BIGI H 0 Thing_SetTranslation(0,30630) //BIGEYEBARRAGERMONSTER
BIGI H 2 A_NoBlocking
BIGI H 0 A_PlaySound("monster/explode",CHAN_AUTO,1.0)
BIGI H 0 A_SpawnItemEx("ExplosionEffect2",random(-32,32),random(-32,32),random(16,96))
BIGI HZ 2
BIGI H 0 A_PlaySound("monster/explode",CHAN_AUTO,1.0)
BIGI H 0 A_SpawnItemEx("ExplosionEffect2",random(-32,32),random(-32,32),random(16,96))
BIGI HZ 2
BIGI H 0 A_PlaySound("monster/explode",CHAN_AUTO,1.0)
BIGI H 0 A_SpawnItemEx("ExplosionEffect2",random(-32,32),random(-32,32),random(16,96))
BIGI HZ 2
BIGI H 0 A_PlaySound("monster/explode",CHAN_AUTO,1.0)
BIGI H 0 A_SpawnItemEx("ExplosionEffect2",random(-32,32),random(-32,32),random(16,96))
BIGI HZ 2
BIGI H 0 A_PlaySound("monster/explode",CHAN_AUTO,1.0)
BIGI H 0 A_SpawnItemEx("ExplosionEffect2",random(-32,32),random(-32,32),random(16,96))
BIGI HZ 2
BIGI H 0 A_Scream
BIGI H 0 A_SpawnItemEx("ExplosionEffect1",0,0,64)
BIGI H 0 A_SpawnItemEx("MonsterFakeDeathFX",0,0,64,0,0,0,0,1)
BIGI H 0 A_SpawnItemEx("BigEyeBarragerMonster_DeathMarker",0,0,80,0,0,8,0,1)
BIGI H 0 A_JumpIf(CallACS("Monster_CanDropWeapon"),4)
BIGI H 0 A_Jump(128,2)
BIGI H 0 A_JumpIf(True,2)
BIGI H 0 ACS_NamedExecuteWithResult("Monster_WeaponDrop",4) //Devil Cannon
TNT1 A 32
TNT1 A -1
Stop
}
}

Actor BigEyeBarragerMonster_DeathMarker : BigEyeArtilleryMonster_DeathMarker {}

Actor BigEyeBarragerMonsterShot : BigEyeArtilleryMonsterShot
{
Translation "199:199=118:118", "229:229=104:104"
Speed 22
Damage (24)
}