actor GutsManGBossWeapon : MegaBuster
{
tag "Centrifugal Claw"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Weapon.SlotNumber 1
Obituary "%o was executed by \c[d4]Guts Man G\c- (%k)'s Claw!"
+INVENTORY.UNDROPPABLE
weapon.ammotype "BossJumpCharge"
weapon.ammotype2 "BossRageCharge"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Ready:
GMGC A 0 ACS_NamedExecuteAlways("GiveExecution",0)
GMGC A 0 A_JumpIfInventory("PowerGMGArmor",1,"ReadyX")
GMGC A 0 ACS_ExecuteAlways(991,0,537)
GMGC A 1 A_WeaponReady
Goto Ready2
Ready2:
GMGC A 0 A_JumpIfInventory("PowerGMGArmor",1,"ReadyX")
GMGC A 0 ACS_ExecuteAlways(991,0,537)
GMGC A 1 A_WeaponReady
Goto Ready2
ReadyX:
GMGC W 0 ACS_ExecuteAlways(991,0,543)
GMGC W 1 A_WeaponReady
GMGC W 0 A_JumpIfInventory("PowerGMGArmor",1,"ReadyX")
Goto Ready2

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
GMGC A 1 A_Lower
loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
GMGC A 1 A_Raise
Loop

Fire:
GMGC A 0 A_JumpIfInventory("PowerGMGArmor",1,"FireX")
GMGC A 0 ACS_ExecuteAlways(191,0,APROP_Speed,60,100)
GMGC A 0 A_PlaySoundEx("weapon/freezecrackerhit","Weapon")
GMGC A 0 A_JumpIfInventory("GutsClawAmmo",28,"FireWaiting")
GMGC D 6 A_GiveInventory("GutsClawAmmo",4)
TNT1 A 0 A_Refire("Fire.b")
goto FireRam
Fire.b:
GMGC A 0 A_JumpIfInventory("GutsClawAmmo",28,"FireWaiting")
GMGC A 0 A_PlaySoundEx("weapon/freezecrackerhit","Weapon")
GMGC A 6 A_GiveInventory("GutsClawAmmo",4)
TNT1 A 0 A_Refire("Fire")
goto FireRam
FireWaiting:
GMGC A 0 A_JumpIfInventory("PowerGMGArmor",1,"FireWaitingX")
GMGC A 4 
GMGC A 0 A_Refire("FireWaiting")
GMGC A 2 ACS_ExecuteAlways(191,0,APROP_Speed,100,100)
goto FireRam
FireRam:
GMGC A 0 A_JumpIfInventory("PowerGMGArmor",1,"FireRamX")
GMGC D 0 ACS_ExecuteAlways(191,0,APROP_Speed,100,100)
//GMGC D 0 ACS_NamedExecute("StateChange",0,2)
GMGC D 0 A_TakeInventory("GutsClawAmmo",4)
GMGC D 0 A_ChangeVelocity(7,0,0,CVF_RELATIVE)
GMGC D 0 A_PlaySoundEx("misc/gutsgboost","Weapon")

GMGC D 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunch")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhack")

GMGC D 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunch")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhack")

GMGC D 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunch")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhack")

GMGC A 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunch")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhack")

GMGC A 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunch")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhack")

GMGC A 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunch")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhack")

GMGC D 0 A_JumpIfInventory("GutsClawAmmo",4,"FireRam")
GMGC D 0
GMGC DA 0 A_TakeInventory("GutsManCanWhack",99)
goto FireWhackWeak

FireWhackWeak:
GMGC A 0 ACS_NamedExecute("StateChange",0,3)
GMGC DA 0 A_TakeInventory("GutsManCanWhack",99)
GMGC A 0 A_PlaySoundEx("weapon/powerstone","Weapon")
GMGC A 0 A_TakeInventory("GutsManCanWhack",1)
GMGC A 0 A_TakeInventory("GutsClawAmmo",28)
GMGC A 0 A_FireCustomMissile("ClawWhackGMGWeak",0,1,0,10)
GMGC B 1
GMGC C 21 
GMGC A 0 A_TakeInventory("GutsManCanWhack",1)
GMGC A 0 A_TakeInventory("GutsClawAmmo",28)
GMGC B 2
Goto Ready2

FireWhack:
GMGC A 0 ACS_NamedExecute("StateChange",0,3)
GMGC DA 0 A_TakeInventory("GutsManCanWhack",99)
GMGC A 0 A_PlaySoundEx("weapon/powerstone","Weapon")
GMGC A 0 A_TakeInventory("GutsManCanWhack",1)
GMGC A 0 A_TakeInventory("GutsClawAmmo",28)
GMGC A 2 A_FireCustomMissile("ClawWhackGMG",0,1,0,10)
GMGC B 1
GMGC C 27 
GMGC A 0 A_TakeInventory("GutsManCanWhack",1)
GMGC A 0 A_TakeInventory("GutsClawAmmo",28)
GMGC B 2
Goto Ready2

AltFire:
GMGC A 0 A_JumpIfInventory("BossRageCharge",500,"Rage")
GMGC A 0 A_JumpIfInventory("GutsBlockCooldown",1,"NoAmmo")
GMGC A 0 A_JumpIfInventory("PowerGMGArmor",1,"AltfireX")
GMGC A 1 ThrustThingZ(0,33,0,0)
FallLoopCheck:
GMGC A 1 A_JumpIf(momz==0, "RockFall")
loop
RockFall:
GMGC A 0 A_Stop
GMGC A 0 A_PlaySoundEx("misc/hugequake2", "Weapon")
GMGC A 0 SetPlayerProperty(0,1,0)
GMGC A 1 A_GunFlash("Flash")
GMGC A 0 A_FireCustomMissile("ConstructCubeSpawner",0,0,0,40)
GMGC A 10
GMGC A 0 SetPlayerProperty(0,0,0)
goto Ready2
CubeLaunch:
GUTG D 0 A_PlaySoundEx("weapon/powerstone","weapon")
TNT1 A 0 A_Stop
TNT1 A 0 //A_SpawnItemEx("ConstructCubeShot",32,0,0,40)
GMGC A 0 SetPlayerProperty(0,1,0)
GMGC B 1
GMGC C 14
GMGC B 3 
GMGC A 0 SetPlayerProperty(0,0,0)
TNT1 A 0 A_TakeInventory("ConstructCubeFlag",99)
GMGC A 0 A_TakeInventory("GutsManCanWhack",1)
GMGC A 0 A_TakeInventory("GutsClawAmmo",28)
Goto Ready2

Rage:
GMGC A 0 A_PlaySoundEx("weapon/pcharge","Item")
GMGC A 0 A_TakeInventory("BossRageCharge",500)
GMGC A 0 SetPlayerProperty(0,1,0)
GMGC A 0 A_PlaySoundEx("misc/gutsgboost","Voice")
GMGC A 0 A_PlaySoundEx("class/NeedleRevup","Weapon")
GMGC BX 5
GMGC X 1 A_GunFlash("Flash")//Just incase, sneaky devils.
GMGC W 0 ACS_ExecuteAlways(191,0,APROP_Speed,115,100)
GMGC W 0 A_GiveInventory("GutsGRageTimer",525)
GMGC W 0 A_GiveInventory("GutsManGSuperArmor",1)
GMGC W 0 A_GiveInventory("GutsManGSuperArmor2",1)
GMGC CYCYCY 5
GMGC X 10
GMGC W 0 ACS_ExecuteAlways(991,0,538)
GMGC W 0 A_PlaySoundEx("misc/wilylightning","Item")
GMGC W 5
GMGC A 0 SetPlayerProperty(0,0,0)
goto Ready2
NoAmmo:
GMGC A 1 ACS_Execute(979,0)
GMGC A 0 A_Refire
goto Ready2

//RAGE EDITIONS
FireX:
GMGC W 0 ACS_ExecuteAlways(191,0,APROP_Speed,100,100)
GMGC W 0 A_PlaySoundEx("weapon/freezecrackerhit","Weapon")
GMGC W 0 A_JumpIfInventory("GutsClawAmmo",28,"FireWaiting")
GMGC Z 3 A_GiveInventory("GutsClawAmmo",4)
TNT1 A 0 A_Refire("FireX.b")
goto FireRam
FireX.b:
GMGC W 0 A_JumpIfInventory("GutsClawAmmo",28,"FireWaiting")
GMGC W 0 A_PlaySoundEx("weapon/freezecrackerhit","Weapon")
GMGC W 3 A_GiveInventory("GutsClawAmmo",4)
TNT1 A 0 A_Refire("FireX")
goto FireRam
FireWaitingX:
GMGC W 2 
GMGC W 0 A_Refire("FireWaiting")
GMGC W 2 
goto FireRam
FireRamX:
GMGC D 0 ACS_ExecuteAlways(191,0,APROP_Speed,115,100)
//GMGC D 0 ACS_NamedExecute("StateChange",0,2)
GMGC D 0 A_TakeInventory("GutsClawAmmo",4)
GMGC D 0 A_ChangeVelocity(12,0,0,CVF_RELATIVE)
GMGC D 0 A_PlaySoundEx("misc/gutsgboost","Weapon")

GMGC Z 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunchX")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhackX")

GMGC Z 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunchX")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhackX")

GMGC Z 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunchX")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhackX")

GMGC W 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunchX")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhackX")

GMGC W 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunchX")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhackX")

GMGC W 1 A_SpawnItemEx("GutsManGRam",20,0,32,velx*2,vely*2,velz*2,0,SXF_ABSOLUTEVELOCITY)
GMGH D 0 A_JumpifInventory("ConstructCubeFlag",1,"CubeLaunchX")
GMGC D 0 A_JumpifInventory("GutsManCanWhack",1,"FireWhackX")

GMGC D 0 A_JumpIfInventory("GutsClawAmmo",4,"FireRam")
GMGC D 0
GMGC DA 0 A_TakeInventory("GutsManCanWhack",99)
goto FireWhackWeakX

FireWhackWeakX:
GMGC A 0 ACS_NamedExecute("StateChange",0,3)
GMGC DA 0 A_TakeInventory("GutsManCanWhack",99)
GMGC A 0 A_PlaySoundEx("weapon/powerstone","Weapon")
GMGC A 0 A_TakeInventory("GutsManCanWhack",1)
GMGC A 0 A_TakeInventory("GutsClawAmmo",28)
GMGC A 0 A_FireCustomMissile("ClawWhackGMGWeak",0,1,0,10)
GMGC X 1
GMGC Y 6 
GMGC X 2
Goto Ready2

FireWhackX:
GMGC A 0 ACS_NamedExecute("StateChange",0,3)
GMGC DA 0 A_TakeInventory("GutsManCanWhack",99)
GMGC A 0 A_PlaySoundEx("weapon/powerstone","Weapon")
GMGC A 0 A_TakeInventory("GutsManCanWhack",1)
GMGC A 0 A_TakeInventory("GutsClawAmmo",28)
GMGC W 2 A_FireCustomMissile("ClawWhackGMGX",0,1,0,10)
GMGC X 1
GMGC Y 8 
GMGC X 3
Goto Ready2


AltFireX:
GMGC A 0 A_JumpIfInventory("BossRageCharge",500,"Rage")
GMGC W 1 ThrustThingZ(0,33,0,0)
FallLoopCheckX:
GMGC W 1 A_JumpIf(momz==0, "RockFallX")
loop
RockFallX:
GMGC W 0 A_Stop
GMGC W 0 A_PlaySoundEx("misc/hugequake2", "Weapon")
GMGC W 0 SetPlayerProperty(0,1,0)
GMGC W 1 A_GunFlash("Flash")
GMGC W 0 A_FireCustomMissile("ConstructCubeSpawner",0,0,0,40)
GMGC W 5
GMGC W 0 SetPlayerProperty(0,0,0)
goto Ready2
CubeLaunchx:
GUTG D 0 A_PlaySoundEx("weapon/powerstone","weapon")
TNT1 A 0 A_Stop
TNT1 A 0 //A_SpawnItemEx("ConstructCubeShot",32,0,0,40)
GMGC A 0 SetPlayerProperty(0,1,0)
GMGC X 1
GMGC Y 4
GMGC X 3 
GMGC A 0 SetPlayerProperty(0,0,0)
TNT1 A 0 A_TakeInventory("ConstructCubeFlag",99)
GMGC A 0 A_TakeInventory("GutsManCanWhack",1)
GMGC A 0 A_TakeInventory("GutsClawAmmo",28)
Goto Ready2

Flash:
TNT1 A 0 A_JumpIfInventory("PowerGMGArmor",1,"FlashX")
TNT1 A 0 A_TakeInventory("GutsGRageTimer",1)
TNT1 A 1 A_TakeInventory("GutsBlockCooldown",1)
loop
FlashX:
TNT1 A 0 A_TakeInventory("GutsGRageTimer",1)
TNT1 A 1 A_TakeInventory("GutsBlockCooldown",2)
TNT1 A 0 A_JumpIfInventory("PowerGMGArmor",1,"FlashX")
goto Flash
}
}

actor GutsClawAmmo : inventory
{
inventory.amount 1
inventory.maxamount 28
}
actor GutsBlockCooldown : inventory
{
inventory.amount 1
inventory.maxamount 175
}
actor GutsGRageTimer : inventory
{
inventory.amount 1
inventory.maxamount 525
}
actor GutsManCanWhack : OnceC {}

actor ClawWhackGMG : SaxtonFist
{
translation "192:192=68:68", "198:198=92:92"
Obituary "%o was executed by \c[d4]Guts Man G\c- (%k)'s Claw!"
//+NOINTERACTION
radius 30
height 40
damage (25)
scale 3.5
speed 40
damagetype "GutsClaw1"
States
{
Spawn:
F_PR B 0
F_PR B 2
F_PR B 2 A_CountDown
wait
XDeath:
Death:
F_PR B 0 A_Explode(35,140,0,0,140)
F_PR B 0 A_Stop
F_PR B 0 A_SpawnItemEx("DrillExplode",0,0,0,0,0,0,0)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,0)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,0)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,45)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,45)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,90)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,90)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,135)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,135)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,180)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,180)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,225)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,225)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,270)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,270)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,315)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,315)
F_PR B 2
F_PR A 2
F_PR BC 2
stop
}
}

actor ClawWhackGMGWeak : SaxtonFist
{
translation "192:192=68:68", "198:198=92:92"
Obituary "%o was executed by \c[d4]Guts Man G\c- (%k)'s Claw!"
//+NOINTERACTION
radius 10
height 40
damage (25)
scale 3.5
speed 60
damagetype "GutsClaw1"
States
{
Spawn:
F_PR B 0
F_PR B 2
F_PR B 2 A_CountDown
wait
Death:
F_PR B 0 A_Explode(30,40,0,0,40)
goto XDeath
}
}

actor ClawWhackGMGX : ClawWhackGMG
{
scale 8.1
radius 34
height 144
damage (25)
damagetype "GutsClaw1"
States
{
XDeath:
Death:
F_PR B 0 A_Explode(35,260,0,0,260)
F_PR B 0 A_Stop
F_PR B 0 A_SpawnItemEx("DrillExplode",0,0,0,0,0,0,0)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,0)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,0)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,45)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,45)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,90)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,90)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,135)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,135)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,180)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,180)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,225)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,225)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,270)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,270)
F_PR B 0 A_SpawnItemEx("DrillExplode",32,0,0,0,0,0,315)
F_PR B 0 A_SpawnItemEx("DrillExplode",64,0,0,0,0,0,315)
F_PR B 2
F_PR A 2
F_PR BC 2
stop
}
}

actor GutsManGRam
{
PROJECTILE
+DONTBLAST
+DONTREFLECT
+NOTARGETSWITCH
+FOILINVUL
Radius 40
Height 60
Damage (1)
damagetype "BossInstagib"
Obituary "%o was executed by \c[d4]Guts Man G\c- (%k)'s Claw!"
states
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Death:
TNT1 A 0 
stop
XDeath:
TNT1 A 0 A_GiveToTarget("GutsManCanWhack",1)
TNT1 A 1
stop
}
}

actor ConstructCubeSpawner : FastProjectile
{
PROJECTILE
+DONTBLAST
+DONTREFLECT
Radius 4
Height 4
scale 2.5
speed 35
damage (0)
States
{
Spawn:
TNT1 AA 2
TNT1 A 0 A_SpawnItemEx("ConstructCubeSpawn",0,0,0,0,0,300)
stop
Death:
TNT1 A 0 A_SpawnItemEx("ConstructCubeSpawn",-70,0,0,0,0,300)
stop
}
}

actor ConstructCubeSpawn : FastProjectile
{
PROJECTILE
+RIPPER
+DONTBLAST
+DONTREFLECT
+SKYEXPLODE
radius 1
height 8
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_JumpIf(z-ceilingz==0-10, "Death")
Death:
TNT1 A 0 A_SpawnItemEx("ConstructCubeAir",0,0,-16,0,0,-48,0)
Stop
}
}

actor ConstructCubeAir
{
PROJECTILE
-NOGRAVITY
damage (25)
Obituary "%o was squashed by %k's \ckFalling Rock"
damagetype "BetweenEnemies"
Height 8
Radius 64
scale 2.5
States
{
Spawn:
GGRK A 1 
loop
XDeath:
Death:
TNT1 A 0 A_CheckFloor("SummonRock")
TNT1 AAAAAA 0 A_SpawnItemEx("ConstructCubeSmallRock",random(-10,10),random(-10,10),random(10,30),random(-10,10),random(-10,10),10)
TNT1 A 2 A_PlaySoundEx("weapon/napalm", "Voice")
stop
SummonRock:
TNT1 A 0 A_SpawnItemEx("ConstructCube",0,0,0,0,0,0)
TNT1 A 2 A_PlaySoundEx("misc/hugequake2", "Voice")
stop
}
}

actor ConstructCube
{
-EXTREMEDEATH
+NOEXPLODEFLOOR
+DONTBLAST
-NOGRAVITY
+NOBLOOD
+SHOOTABLE
+NOEXTREMEDEATH
-NOBLOCKMAP
//+SOLID
+DONTRIP
health 100
Radius 60
Height 64
//damage (20)
mass 0x7fffffff
scale 2.5
painchance 256
damagetype "DioFlash"
damagefactor "Normal", 1.0
damagefactor "BetweenEnemies", 9999.9
damagefactor "BossInstagib", 9999.9
damagefactor "GutsClaw1", 9999.9
damagefactor "GutsClaw2", 9999.9
var int user_time;
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("GutsBlockCooldown",175)
TNT1 A 0 A_SetUserVar("user_time",175)
GGRK A 1 A_CheckFloor("Spawn2")
goto Spawn
Spawn2:
TNT1 A 0
GGRK A 0 A_GiveToTarget("TargetMarkerT", 1)
GGRK A 0 ACS_ExecuteAlways(989, 0, ACS_ExecuteWithResult(257)+100)
GGRK A 1 A_SetUserVar("user_time",user_time-1)
TNT1 A 0 A_CheckRange(100,"Spawn3")
TNT1 A 0 A_JumpIf(user_time<=0,"Death")
goto Spawn2
Spawn3:
TNT1 A 0 A_ChangeFlag("SOLID",1)
GGRK A 0 A_GiveToTarget("TargetMarkerT", 1)
GGRK A 0 ACS_ExecuteAlways(989, 0, ACS_ExecuteWithResult(257)+100)
GGRK A 1  A_SetUserVar("user_time",user_time-1)
TNT1 A 0 A_JumpIf(user_time<=0,"Death")
goto Spawn3+1
Pain:
GGRK AA 1 A_SpawnItem("PainFX",0,3)
Goto Spawn3+1
Death.BossInstagib:
//Death.GutsClaw1:
//Death.GutsClaw2:
TNT1 A 0 A_TakefromTarget("GutsManCanWhack",1)
TNT1 A 0 A_GiveToTarget("ConstructCubeFlag",1)
Death.BetweenEnemies:
//stop
GGRK A 1 A_GiveToTarget("TargetMarkerT", 1)
GGRK A 1 ACS_ExecuteAlways(989, 0, ACS_ExecuteWithResult(257)+100)
TNT1 A 0 A_JumpIfInTargetInventory("PowerGMGArmor",1,"ShootX")
TNT1 A 0 A_SpawnItemEx("ConstructCubeShot",0,0,0,30,0,0,0,SXF_TRANSFERPITCH)
stop
ShootX:
TNT1 A 0 A_SpawnItemEx("ConstructCubeShotX",0,0,0,50,0,0,0,SXF_TRANSFERPITCH)
stop
Death:
TNT1 AAAAAA 0 A_SpawnItemEx("ConstructCubeSmallRockB",random(-10,10),random(-10,10),random(10,30),random(-10,10),random(-10,10),10)
TNT1 A 2 A_PlaySoundEx("weapon/napalm","Auto")
stop
}
}

actor ConstructCubeShot
{
PROJECTILE
+STEPMISSILE
-NOGRAVITY
+NOEXPLODEFLOOR
Obituary "%o was squashed by %k's \ckRock"
damage (50)
damagetype "BossInstagib"
speed 30
Height 48
Radius 60
scale 2.5
MaxStepHeight 24
States
{
Spawn:
GGRK A 2
loop
Death:
TNT1 AAAAAA 0 A_SpawnItemEx("ConstructCubeSmallRock",random(-10,10),random(-10,10),random(10,30),random(-10,10),random(-10,10),10)
TNT1 A 2 A_PlaySoundEx("weapon/napalm", "Voice")
stop
}
}

actor ConstructCubeShotX
{
PROJECTILE
+STEPMISSILE
-NOGRAVITY
+NOEXPLODEFLOOR
Obituary "%o was squashed by %k's \ckRock"
damage (100)
damagetype "BossInstagib"
speed 30
Height 48
Radius 60
MaxStepHeight 24
scale 2.5
States
{
Spawn:
GGRK A 2 A_SpawnItemEx("ConstructCubeFX")
loop
Death:
TNT1 AAAAAA 0 A_SpawnItemEx("ConstructCubeSmallRock",random(-10,10),random(-10,10),random(10,30),random(-10,10),random(-10,10),10)
TNT1 A 2 A_PlaySoundEx("weapon/napalm", "Voice")
stop
}
}

actor ConstructCubeFX
{
+CLIENTSIDEONLY
+NOINTERACTION
-SOLID
scale 2.5
renderstyle Translucent
alpha 0.8
states
{
	Spawn:
	GGRK A 1 A_FadeOut(0.1)
	loop
}
}

actor ConstructCubeSmallRock
{
Obituary "%o was squashed by %k's \ckRock"
Projectile
-NOGRAVITY
Scale 2.5
damagetype "BossInstagib"
Speed 30
Height 5
Radius 5
Damage (5)
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Rock1", "Rock2","Rock3","Rock4","Rock5","Rock6")
Rock1:
GGRK B 1
loop
Rock2:
GGRK C 1
loop
Rock3:
GGRK D 1
loop
Rock4:
GGRK E 1
loop
Rock5:
GGRK F 1
loop
Rock6:
GGRK G 1
loop
Death:
TNT1 A 0
stop
}
}

actor ConstructCubeSmallRockB : ConstructCubeSmallRock
{
+CLIENTSIDEONLY
damage (0)
}

actor ConstructCubeFlag : inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor GutsManGSuperArmor : PowerupGiver
{
+COUNTITEM
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
Inventory.MaxAmount 0
Powerup.Type "PowerGMGArmor"
Powerup.Color 228 0 88, 0.4
Powerup.Duration 525
}
actor GutsManGSuperArmor2 : PowerupGiver
{
+COUNTITEM
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
Inventory.MaxAmount 0
Powerup.Type "PowerGMGArmor2"
Powerup.Duration 525
}

actor PowerGMGArmor : PowerProtection
{
damagefactor "normal", 0.75
}
actor PowerGMGArmor2 : PowerStrength
{
damagefactor "normal", 1.50
}