const int FUSE_LENGTH = 105;

actor MorshuBossWeapon : MegaBuster
{
tag "Morshu Arsenal"
Weapon.AmmoUse 0
Weapon.AmmoGive 1
Weapon.SlotNumber 1
Obituary "$OB_MORSHUBOMB"
+INVENTORY.UNDROPPABLE
weapon.ammotype "BossJumpCharge"
weapon.ammotype2 "BossRageCharge"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
TNT1 A 0
stop
Ready:
SXH3 M 0 ACS_NamedExecuteAlways("GiveExecution",0)
SXH3 M 0 A_SpawnItemEx("MorshuOfficialSupplier")
SXH1 A 0 ACS_ExecuteAlways(991,0,509)
SXH1 A 0 A_TakeInventory("WeaponCharge", 999)
SXH3 M 1 A_WeaponReady(WRF_NOSWITCH)
Goto Ready+2
Deselect:
SXH3 M 0 A_JumpIfInventory("SuperArmTemp",1,24)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
SXH3 M 1 A_Lower
Goto Deselect+1
SXH3 M 0
SXH3 M 0 A_FireCustomMissile("MorshuBomb",0,1,0,56)
SXH3 RSTUV 3
SXH3 Y 0 A_TakeInventory("SuperArmTemp",1)
Goto Deselect+1
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SXH3 M 1 A_Raise
Loop
Fire:
SXH3 M 0 A_JumpIfInventory("CutterFlag", 1, "BurnBurnBaby")
SXH3 M 1 A_GiveInventory("WeaponCharge", 1)
SXH3 M 0 A_JumpIfInventory("WeaponCharge", 6, "TheLampPartOfTheLampOil")
SXH3 M 0 A_Refire
TheOilPartOfTheLampOil:
SXH3 M 0 A_JumpIfInventory("MorshuOilSupply", 1, "ShitSomeOil")
goto NoAmmo
ShitSomeOil:
SXH3 M 0 A_PlaySoundEx("weapon/concreteshot", "Weapon")
SXH3 M 0 A_TakeInventory("MorshuOilSupply", 1)
SXH3 M 2 Offset(15, 40) A_FireCustomMissile("MorshuOilBlob", 0, 0, 0, 0)
SXH3 M 2 Offset(30, 80)
SXH3 M 2 Offset(45, 120)
SXH3 M 2 Offset(60, 160)
SXH3 MM 2 Offset(75, 200)
SXH3 M 2 Offset(60, 160)
SXH3 M 3 Offset(45, 120)
SXH3 M 3 Offset(30, 80)
SXH3 M 2 Offset(15, 40)
goto Ready+2

TheLampPartOfTheLampOil:
SXH3 M 0 A_JumpIfInventory("MorshuLampSupply", 30, "BurnSomeMajorAsses")
goto NoAmmo
BurnSomeMajorAsses:
SXH3 M 1 Offset(15, 40)
//SXH3 M 1 Offset(45, 120)
SXH3 M 1 Offset(75, 200)
SXH3 M 1 Offset(105, 280)
MORS O 0 A_WeaponReady(WRF_NOSWITCH | WRF_NOPRIMARY | WRF_NOSECONDARY) // this resets the offset
MORS O 1 Offset(120, 110)
MORS O 1 Offset(90, 90)
MORS P 1 Offset(60, 70)
MORS P 1 Offset(30, 50)
BurnBurnBaby:
MORS O 0 A_GiveInventory("CutterFlag", 1)
MORS O 0 A_JumpIfInventory("MorshuLampSupply", 24, 1)
goto LockOff
MORS O 0 A_PlaySoundEx("Morshu/FireCandle", "Weapon")
MORS O 0 A_FireCustomMissile("MorshuFlame", random(-5, 5), 0,  0, 13)
MORS OO 1 Offset(15, 30) A_TakeInventory("MorshuLampSupply", 3)
MORS O 0 A_FireCustomMissile("MorshuFlame", random(-5, 5), 0,  0, 13)
MORS OO 1 A_TakeInventory("MorshuLampSupply", 3)
MORS P 0 A_FireCustomMissile("MorshuFlame", random(-5, 5), 0,  0, 13)
MORS PP 1 A_TakeInventory("MorshuLampSupply", 3)
MORS P 0 A_FireCustomMissile("MorshuFlame", random(-5, 5), 0,  0, 13)
MORS PP 1 A_TakeInventory("MorshuLampSupply", 3)
MORS P 0 A_WeaponReady(WRF_NOSWITCH | WRF_NOSECONDARY)
LockOff:
MORS O 2 Offset(60, 120)
MORS O 2 Offset(30, 100)
MORS P 2 Offset(90, 140)
MORS P 2 Offset(120, 160)
SXH3 M 1 Offset(105, 280)
SXH3 M 1 Offset(75, 200)
SXH3 M 1 Offset(45, 120)
SXH3 M 1 Offset(15, 40)
MORS O 0 A_TakeInventory("CutterFlag", 999)
SXH3 M 3
goto Ready+2

Altfire:
SXH3 M 0 A_JumpIfInventory("SuperArmTemp",1,"Throw")
SXH3 M 1 A_GiveInventory("WeaponCharge", 1)
SXH3 M 0 A_JumpIfInventory("WeaponCharge", 6, "TheFattyIsAngry")
SXH3 M 0 A_Refire
GrabbingSomeBombz:
SXH3 M 0 A_JumpIfInventory("MorshuBombSupply", 1, "HoldingTheTrophey")
goto NoAmmo
HoldingTheTrophey:
SXH3 M 0 A_TakeInventory("MorshuBombSupply", 1)
SXH3 M 0 A_PlaySoundEx("weapon/superarmuse","Weapon")
SXH3 M 0 A_Stop
SXH3 M 0 A_GiveInventory("SuperArmTemp",1)
SXH3 M 0 SetPlayerProperty(0,1,0)
SXH3 NN 1 A_SpawnItemEx("TempMorshuBomb",32,0,-28,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
SXH3 OO 1 A_SpawnItemEx("TempMorshuBomb",32,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
SXH3 PP 1 A_SpawnItemEx("TempMorshuBomb",32,0,28,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
SXH3 QQ 1 A_SpawnItemEx("TempMorshuBomb",32,0,56,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
SXH3 Q 0 SetPlayerProperty(0,0,0)
TNT1 AAAAA 1 A_SpawnItemEx("TempMorshuBomb",0,0,56,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
Goto Holding
Holding:
TNT1 A 0 A_JumpIfInventory("MorshuBombTimer",105,"Asplode")
TNT1 A 0 A_SpawnItemEx("TempMorshuBomb",0,0,56,0,0,0,0,0,0)
TNT1 A 0 A_GiveInventory ("MorshuBombTimer",1)
TNT1 A 1 A_WeaponReady(WRF_NOSWITCH|WRF_NOPRIMARY)
TNT1 A 0 A_JumpIfInventory("MorshuBombTimer",105,"Asplode")
TNT1 A 0 A_SpawnItemEx("TempMorshuBomb",0,0,56,0,0,0,0,0,0)
TNT1 A 0 A_GiveInventory("MorshuBombTimer",1)
TNT1 A 1 //A_GiveInventory("BossJumpItem",1) // <== WTF Silversin? o_o
loop
Asplode:
TNT1 A 0 A_SpawnItemEx("MorshuBombSelfDamage",0,0,56,0,0,0,0,0,0)
TNT1 A 0 A_TakeInventory("SuperArmTemp",1)
TNT1 A 0 A_TakeInventory("MorshuBombTimer",105)
SXH3 QQ 1
SXH3 PP 1
SXH3 OO 1
SXH3 NN 1
Goto Ready+2
Throw:
SXH3 A 0 A_FireCustomMissile("MorshuBomb",0,1,0,56)
SXH3 A 0 A_TakeInventory("SuperArmTemp",1)
SXH3 A 0 A_TakeInventory("MorshuBombTimer",105)
SXH3 RSTUV 3
SXH3 V 3 Offset(-12, 52)
TNT1 A 35
SXH3 M 3 Offset(0, 40)
SXH3 M 3 Offset(0, 20)
Goto Ready+2
TheFattyIsAngry:
SXH3 M 0 A_JumpIfInventory("BossRageCharge",500,"Kill")
goto NoAmmo

/*
Holding:
TNT1 A 0 A_JumpIfInventory("MorshuBombTimer",105,"Asplode")
TNT1 A 0 A_SpawnItemEx("TempMorshuBomb",0,0,56,0,0,0,0,0,0)
TNT1 A 0 A_GiveInventory ("MorshuBombTimer",1)
TNT1 A 1 A_WeaponReady(WRF_NOSWITCH|WRF_NOPRIMARY)
TNT1 A 0 A_JumpIfInventory("MorshuBombTimer",105,"Asplode")
TNT1 A 0 A_SpawnItemEx("TempMorshuBomb",0,0,56,0,0,0,0,0,0)
TNT1 A 0 A_GiveInventory("MorshuBombTimer",1)
TNT1 A 1 //A_GiveInventory("BossJumpItem",1) // <== WTF Silversin? o_o
loop
*/
Kill:
SXH3 M 0 A_TakeInventory("BossRageCharge",500)
SXH3 M 0 A_PlaySoundEx("Morshu/Rage","Item")
SXH3 M 0 SetPlayerProperty(0,1,0)
SXH3 NN 1 A_SpawnItemEx("TempGiantMorshuBomb",32,0,-28,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
SXH3 OO 1 A_SpawnItemEx("TempGiantMorshuBomb",32,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
SXH3 PP 1 A_SpawnItemEx("TempGiantMorshuBomb",32,0,28,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
SXH3 QQ 1 A_SpawnItemEx("TempGiantMorshuBomb",32,0,56,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
SXH3 Q 0 SetPlayerProperty(0,0,0)
TNT1 AAAAA 1 A_SpawnItemEx("TempGiantMorshuBomb",0,0,56,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM)
SXH3 A 0 A_FireCustomMissile("GiantMorshuBomb",0,1,0,56)
SXH3 A 0 A_TakeInventory("SuperArmTemp",1)
SXH3 A 0 A_TakeInventory("MorshuBombTimer",105)
SXH3 RSTUV 3
SXH3 V 3 Offset(-12, 52)
TNT1 A 90 // 105 - 160
SXH3 M 3 Offset(0, 40)
SXH3 M 3 Offset(0, 20)
Goto Ready+2
NoAmmo:
SXH3 M 1 ACS_Execute(979,0)
Goto Ready+2
}
}

actor MorshuOilBlob
{
PROJECTILE
-NOGRAVITY
+DONTBLAST
gravity 0.44
speed 20
damage (15)
Obituary "$OB_MORSHUOIL"
damagetype "MorshuBlooper"
radius 18
height 14
scale 5.0
states
{
Spawn:
BOMB XY 3
loop
Crash:
XDeath:
BOMB X 0 A_Stop
BOMB X 0 A_ChangeFlag("NOINTERACTION", 1)
BOMB XY 3 ThrustThingZ(0, 10, 1, 1)
BOMB XXXYYYXXXY 1 A_FadeOut(0.08)
stop
Death:
BOMB X 0 A_CheckFloor("OilOceanZoneAct1")
//BOMB X 1 A_SpawnItemEx("MorshuOilBlob", 0, 0, 0, 0, 0, 0)
stop
OilOceanZoneAct1:
BOMB X 0 A_SpawnItemEx("MorshuOilTrail", -16, 0, 0, 29, 0, 0)
BOMB XYXY 2 A_FadeOut(0.24)
stop
}
}

actor MorshuOilTrail
{
PROJECTILE
+NOINTERACTION
states
{
Spawn:
TNT1 A 0
TNT1 AAAA 2 A_SpawnItemEx("MorshuOilLake1", 0, 0, 0, 0, 0, 0)
stop
}
}

actor MorshuOilLake1
{
PROJECTILE
+DONTBLAST
scale 0.40
Obituary "%o tripped over %hself by running into \c[MORSHU]Morshu \c-(%k)'s oil!"
radius 2
height 9
damagetype "SurfingMorshu"
damage (9)
states
{
Spawn:
BOMB W 3
BOMB W 0 A_SpawnItemEx("MorshuOilLake2")
stop
Death:
TNT1 A 0
stop
}
}

actor MorshuOilLake2 : MorshuOilLake1
{
scale 0.8
radius 5
states
{
Spawn:
BOMB W 3
BOMB W 0 A_SpawnItemEx("MorshuOilLake3")
stop
}
}

actor MorshuOilLake3 : MorshuOilLake1
{
scale 1.20
radius 7
states
{
Spawn:
BOMB W 3
BOMB W 0 A_SpawnItemEx("MorshuOilLake4")
stop
}
}

actor MorshuOilLake4 : MorshuOilLake1
{
scale 1.6
radius 10
states
{
Spawn:
BOMB W 3
BOMB W 0 A_SpawnItemEx("MorshuOilLake5")
stop
}
}

actor MorshuOilLake5 : MorshuOilLake1
{
scale 2.0
radius 12
states
{
Spawn:
BOMB W 3
BOMB W 0 A_SpawnItemEx("MorshuOilLake6")
stop
}
}

actor MorshuOilLake6 // inspired by Oil Slider's flame thing
{
+MISSILE
+NODAMAGETHRUST
+NOBLOOD
+DONTSPLASH
+NOEXPLODEFLOOR
+NOTARGETSWITCH
+DONTBLAST
Obituary "%o tripped over %hself by running into \c[MORSHU]Morshu \c-(%k)'s oil!"
damagetype "SurfingMorshu"
damage (9)
mass 99999
scale 2.7
radius 18
height 11
painchance 256
states
{
Spawn:
BOMB W 1
BOMB W 0 A_Stop
BOMB W 0 A_ChangeFlag("SHOOTABLE",1)
BOMB W 17
BOMB W 0 A_ChangeFlag("FLOORHUGGER", 1)
BOMB WW 17
BOMB WWWWW 2 A_FadeOut(0.2)
stop
pain.OilCanister:
pain.PharaohShot1:
pain.PharaohShot2:
pain.PharaohShot3:
pain.FlameBlast:
Pain.FireStorm:
Pain.FireSpin:
Pain.FlameSword:
Pain.FlameSwordSpark:
pain.AtomicFire1:
pain.AtomicFire2:
pain.AtomicFire3:
pain.ScorchWheel:
pain.FireTrap:
Pain.WaveBurner:
pain.ContagiousBurningMorshu:
pain.MorshuFire:
Pain.MagmaBazooka:
Pain.SolarBlaze:
BOMB W 0 A_SpawnItemEx("MorshuOilLakeFlame",0,0,0)
BOMB W 0 A_SpawnItemEx("MorshuOilLakeFlameRadius",0,0,0)
BOMB W 0 A_SpawnItemEx("MorshuOilLakeBurnRooster",0,0,0)
BOMB W 0 A_SpawnItemEx("MorshuOilLakeBurnSoundy",0,0,0)
stop
}
}

actor MorshuOilLakeBurnSoundy
{
+DONTBLAST
states
{
Spawn:
TNT1 A 0
TNT1 A 17 A_PlaySoundEx("Morshu/FireField", "Weapon")
TNT1 A 17 A_PlaySoundEx("Morshu/FireField", "Item")
TNT1 A 17 A_PlaySoundEx("Morshu/FireField", "Weapon")
TNT1 A 17 A_PlaySoundEx("Morshu/FireField", "Item")
TNT1 A 17 A_PlaySoundEx("Morshu/FireField", "Weapon")
TNT1 A 17 A_PlaySoundEx("Morshu/FireField", "Item")
TNT1 A 17 A_PlaySoundEx("Morshu/FireField", "Weapon")
TNT1 A 17 A_PlaySoundEx("Morshu/FireField", "Item")
TNT1 A 17 A_PlaySoundEx("Morshu/FireField", "Weapon")
stop
}
}

actor MorshuOilLakeBurnRooster
{
+DONTBLAST
+NOINTERACTION
PROJECTILE
states
{
Spawn:
TNT1 A 0
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 7 A_SpawnItemEx("MorshuToutFeuToutFlamme", random(-210, 210), random(-210, 210), 0, 0, 0, random(4, 14))
stop
}
}

actor MorshuToutFeuToutFlamme
{
+DONTBLAST
+NOGRAVITY
+NOINTERACTION
scale 1.35
states
{
Spawn:
MORS STS 3
MORS TSTS 3 A_FadeOut(0.28)
stop
}
}

actor MorshuOilLakeFlame
{
PROJECTILE
+NOINTERACTION
scale 2.4
Obituary "$OB_MORSHULAMPOIL"
+DONTBLAST
states
{
Spawn:
BOMB W 0
BOMB WWWW 35 A_SpawnItemEx("MorshuFireColumn", random(-130, 130), random(-130, 130), 0)
BOMB WW 35
BOMB WWWWW 2 A_FadeOut(0.2)
stop
}
}

actor MorshuOilLakeFlameRadius
{
PROJECTILE
+NOINTERACTION
damagetype "ContagiousBurningMorshu"
Obituary "$OB_MORSHULAMPOIL"
+DONTBLAST
+DONTBLAST
reactiontime 9
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("OilPitIgnite", 0, 0, -5, 0, 0, 0)
TNT1 A 10 A_Explode(8, 250, 0)
TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 0
stop
}
}

actor MorshuFireColumn
{
PROJECTILE
+NOINTERACTION
scale 3.0
renderstyle "translucent"
reactiontime 3
alpha 0.2
states
{
Spawn:
BOMB U 0
BOMB UV 3 A_FadeIn(0.4)
BOMB UVUVUVUVUVUVUVUVUV 3
BOMB UV 3 A_FadeOut(0.2)
stop
}
}

actor MorshuFlame
{
PROJECTILE
scale 1.2
radius 13
height 10
damage (3)
Obituary "$OB_MORSHULAMP"
renderstyle "translucent"
alpha 0.85
damagetype "MorshuFire"
speed 28
+HEXENBOUNCE
+HITTRACER
+DONTBLAST
states
{
Spawn:
MORS Q 0
MORS Q 0 //ThrustThingZ(0, 15, 1, 0)
TNT1 A 2 A_SpawnItemEx("OilPitIgnite", 0, 0, -5, 0, 0, 0)
MORS QRRQQ 2 A_SpawnItemEx("OilPitIgnite", 0, 0, -5, 0, 0, 0)
TNT1 A 0 A_SpawnItemEx("OilPitIgnite", 0, 0, -5, 0, 0, 0)
RisingLikeASolarMan:
MORS R 2 ThrustThingZ(0, random(2,3), 0, 0)
TNT1 A 0 A_SpawnItemEx("OilPitIgnite", 0, 0, -5, 0, 0, 0)
MORS R 2 ThrustThingZ(0, random(2,3), 0, 0)
TNT1 A 0 A_SpawnItemEx("OilPitIgnite", 0, 0, -5, 0, 0, 0)
MORS Q 2 ThrustThingZ(0, random(2,3), 0, 0)
TNT1 A 0 A_SpawnItemEx("OilPitIgnite", 0, 0, -5, 0, 0, 0)
MORS Q 2 ThrustThingZ(0, random(2,3), 0, 0)
TNT1 A 0 A_SpawnItemEx("OilPitIgnite", 0, 0, -5, 0, 0, 0)
MORS R 2 ThrustThingZ(0, random(2,3), 0, 0)
TNT1 A 0 A_SpawnItemEx("OilPitIgnite", 0, 0, -5, 0, 0, 0)
MORS R 2 ThrustThingZ(0, random(2,3), 0, 0)
TNT1 A 0 A_SpawnItemEx("OilPitIgnite", 0, 0, -5, 0, 0, 0)
MORS Q 2 ThrustThingZ(0, random(2,3), 0, 0)
TNT1 A 0 A_SpawnItemEx("OilPitIgnite", 0, 0, -5, 0, 0, 0)
MORS Q 2 ThrustThingZ(0, random(2,3), 0, 0)
MORS RRQQRRRRQ 1 A_FadeOut(0.1)
stop
Death:
TNT1 A 0
stop
Crash:
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_Stop
TNT1 A 0 A_JumpIfInventory("MorshuMark",1,"Death",AAPTR_TRACER)
TNT1 A 0 A_GiveInventory("MorshuMark",1,AAPTR_TRACER)
Goto BurnDamage
BurnSustain:
TNT1 A 0 A_GiveInventory("MorshuMark",1,AAPTR_TRACER)
Goto BurnDamage
BurnDamage:
TNT1 AAAAAAAAAA 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SpawnItemEx("MorshuLampBurn",0,0,28,0,0,0,0,SXF_ABSOLUTEMOMENTUM)
TNT1 A 0 A_JumpIfInventory("MorshuMark",1,"BurnDamage",AAPTR_TRACER)
goto Death2
Death2:
TNT1 A 0
stop
}
}

actor MorshuMark : Powerup{inventory.amount 1 inventory.maxamount 1 powerup.duration 20}
Actor MorshuLampBurn
{
PROJECTILE
+DONTBLAST
+RIPPER
damagetype "BossInstagib"
Obituary "$OB_MORSHULAMP"
Radius 1
Height 1
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(2,32,0,0,32)
stop
}
}

actor TempMorshuBomb
{
+NOINTERACTION
-SOLID
+NOGRAVITY
radius 0
height 0
scale 2.5
States
{
Spawn:
TNT1 A 0
BOMB S 1
stop
}
}

actor MorshuBombSelfDamage
{
+NOINTERACTION
-SOLID
+NOGRAVITY
Obituary "$OB_MORSHUKILL"
radius 0
damagetype "BusterRodG"
height 0
scale 2.5
States
{
Spawn:
BOMB S 0 A_Stop
BOMB S 0 A_PlaySoundEx("weapon/hyperbomb","Weapon")
BOMB S 0 A_ChangeFlag("NOGRAVITY",1)
BOMB S 0 A_Explode(150,200,1)
BOMB BCDEFGHIJKLMNOPQR 1
stop
}
}


actor MorshuBomb
{
Obituary "$OB_MORSHUBOMB"
PROJECTILE
Height 10
Radius 10
-NOGRAVITY
Speed 30
damagetype "BossInstagib"
scale 3.0
States
{
Spawn:
BOMB S 0
BOMB S 0 ThrustThingZ(0,20,0,1)
BOMB SZ 4
Goto Spawn+2
Death:
BOMB A 0 A_Stop
BOMB A 0 A_PlaySoundEx("weapon/hyperbomb","Weapon")
BOMB A 0 A_ChangeFlag("NOGRAVITY",1)
BOMB A 0 A_Explode(40,180,0,0,64)
BOMB BCDEFGHIJKLMNOPQR 1
stop
stop
}
}

actor MorshuBombTimer : Inventory
{
inventory.amount 1
inventory.maxamount 105
}



// Rage //

actor TempGiantMorshuBomb
{
+NOINTERACTION
-SOLID
+NOGRAVITY
radius 0
height 0
scale 26.0 // 10.0
States
{
Spawn:
BOMB SS 1
stop
}
}

actor GiantMorshuBomb : MorshuBomb
{
+RIPPER
+BOUNCEONACTORS
damagetype "BossInstagib"
scale 28.0 // 10.0
Obituary "$OB_MORSHUGIANTBOMB"
speed 25 //20 // 15
reactiontime 85
+HEXENBOUNCE
+CANBOUNCEWATER
bouncefactor 0.9
gravity 2.0 // I added this too
Args 40, 3 //Redos
States
{
Spawn:
BOMB A 0
BOMB A 0 ThrustThingZ(0,20,0,1) // older thrust = 12
PrepareToBlast:
BOMB SSSS 1 A_Countdown
BOMB S 0 A_GiveInventory("HyperBombAmmo",1)
BOMB ZZZZ 1 A_CountDown
BOMB SSSS 1 A_Countdown
BOMB ZZZZ 1 A_CountDown
BOMB SSSS 1 A_Countdown
BOMB ZZZZ 1 A_CountDown
BOMB S 0 Thing_SetTranslation(0,68) BOMB S 0 A_PlaySoundEx("misc/scorebounce","Body")
BOMB SSSS 1 A_Countdown
BOMB ZZZZ 1 A_CountDown
BOMB S 0 Thing_SetTranslation(0,0)
BOMB SSSS 1 A_Countdown
BOMB ZZZZ 1 A_CountDown
BOMB S 0 Thing_SetTranslation(0,68) BOMB S 0 A_PlaySoundEx("misc/scorebounce","Body")
BOMB SS 1 A_Countdown
BOMB ZZ 1 A_CountDown
BOMB S 0 Thing_SetTranslation(0,0)
BOMB SS 1 A_Countdown
BOMB ZZ 1 A_CountDown
BOMB S 0 Thing_SetTranslation(0,68) BOMB S 0 A_PlaySoundEx("misc/scorebounce","Body")
BOMB SS 1 A_Countdown
BOMB ZZ 1 A_CountDown
BOMB S 0 Thing_SetTranslation(0,0)
BOMB SS 1 A_Countdown
BOMB ZZ 1 A_CountDown
BOMB S 0 Thing_SetTranslation(0,68) BOMB S 0 A_PlaySoundEx("misc/scorebounce","Body")
BOMB SS 1 A_Countdown
BOMB S 0 Thing_SetTranslation(0,0)
BOMB ZZ 1 A_CountDown
BOMB S 0 Thing_SetTranslation(0,68) BOMB S 0 A_PlaySoundEx("misc/scorebounce","Body")
BOMB SS 1 A_Countdown
BOMB S 0 Thing_SetTranslation(0,0)
BOMB ZZ 1 A_CountDown
BOMB S 0 Thing_SetTranslation(0,68) BOMB S 0 A_PlaySoundEx("misc/scorebounce","Body")
Prepare3:
BOMB S 0 Thing_SetTranslation(0,0)
BOMB S 1 A_Countdown
BOMB S 0 Thing_SetTranslation(0,68) BOMB S 0 A_PlaySoundEx("misc/scorebounce","Body")
BOMB Z 1 A_CountDown
loop

Death:
BOMB A 0 A_Stop
BOMB A 0 A_PlaySoundEx("misc/hugequake", "Body")
BOMB A 0 A_ChangeFlag("NOGRAVITY",1)
BOMB A 0 A_JumpIfInventory("HyperBombAmmo",1,"Actual")
BOMB A 0 A_Explode(150,750,0) 
BOMB BCDEFGHIJKLMNOPQR 1
stop
Actual:
BOMB AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("DrillExplode",random(64,500),random(64,500),random(-120,480),random(0,24),0,random(-24,24),random(0,359))
TNT1 A 2 
BOMB AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("DrillExplode",random(64,500),random(64,500),random(-120,480),random(0,24),0,random(-24,24),random(0,359))
ActualDeath:
BOMB A 0 A_Explode(650,1000,0)
BOMB BCDEFGHIJKLMNOPQR 1
stop
}
}

actor MorshuBombSupply : Inventory
{
inventory.amount 1
inventory.maxamount 4
}

actor MorshuOilSupply : Inventory
{
inventory.amount 1
inventory.maxamount 16
}

actor MorshuLampSupply : Inventory
{
inventory.amount 1
inventory.maxamount 600
}

actor MorshuRopeSupply : Inventory
{
inventory.amount 1
inventory.maxamount 5
}

actor GiantMorshuBombPercentage : Inventory
{
inventory.amount 1
inventory.maxamount 100
}

actor MorshuOfficialSupplier
{
PROJECTILE
+NOINTERACTION
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("MorshuOfficialLamp")
TNT1 A 0 A_SpawnItemEx("MorshuOfficialOil")
TNT1 A 0 A_SpawnItemEx("MorshuOfficialRopes")
TNT1 A 0 A_SpawnItemEx("MorshuOfficialBombs")
stop
}
}

actor MorshuOfficialRopes
{
PROJECTILE
+NOINTERACTION
states
{
Spawn:
TNT1 A 3
HelpingMorshoo:
TNT1 A 2 //A_GiveToTarget("BossJumpCharge", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BossJumpCharge", 96, "ProvideRope")
loop
ProvideRope:
TNT1 A 1
TNT1 A 0 A_JumpIfInTargetInventory("MorshuRopeSupply", 5, "ProvideRope")
TNT1 A 0 A_GiveToTarget("MorshuRopeSupply", 1)
TNT1 A 0 A_TakeFromTarget("BossJumpCharge", 999)
goto HelpingMorshoo
}
}

actor MorshuOfficialBombs : MorshuOfficialRopes
{
states
{
Spawn:
TNT1 A 240
HelpingMorshoo:
TNT1 A 240 A_GiveToTarget("MorshuBombSupply", 1)
loop
}
}

actor MorshuOfficialOil : MorshuOfficialBombs
{
states
{
Spawn:
TNT1 A 110
HelpingMorshoo:
TNT1 A 110 A_GiveToTarget("MorshuOilSupply", 1)
loop
}
}

actor MorshuOfficialLamp : MorshuOfficialBombs
{
states
{
Spawn:
TNT1 A 3
HelpingMorshoo:
TNT1 A 3 A_GiveToTarget("MorshuLampSupply", 1)
//TNT1 A 8 A_GiveToTarget("MorshuLampSupply", 1)
loop
}
}

