actor SuperArmBoss : BaseMM8BDMWep_CBM
{
Tag "$TAGC_1B"
dropitem "SuperArmWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Obituary "$OB_BASICPUNCH"//Obituary "$OB_SUPERARM"
weapon.ammotype "GutsArmAmmo"
+WEAPON.NOAUTOAIM
States
{
Spawn:
C_01 B 1
loop
Ready:
GUTP A 0 ACS_ExecuteAlways(998,0,DYE_GUTSMAN)
GUTP A 0 A_GiveInventory("SpawningMisfire",1)
goto Ready0
Ready0:
GUTP A 2 A_WeaponReady
GUTP A 0 A_TakeInventory("SpawningMisfire",1)
Goto Ready1
Ready1:
GUTP A 4 A_WeaponReady
GUTP A 0 A_GiveInventory("GutsArmAmmo",1)
loop

Deselect:
GUTP A 0 A_JumpIfInventory("SuperArmTemp",1,"DeselectToss")
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
GUTP A 1 A_Lower
Goto Deselect+1
DeselectToss:
GUTP A 0 A_GiveInventory("GutsmanMain_CI",1)
GUTP A 0 A_TakeInventory("SuperArmTemp",1)
GUTP C 2 Offset(1,33)A_PlaySound("weapon/GutThrow",4,0.7)
GUTP C 2 Offset(-70,74)
GUTP C 2 Offset(-121,114)
GUTP D 2 Offset(1,33)
GUTP D 2 Offset(-21,56)
GUTP D 2 Offset(-37,84)
GUTP A 0 A_WeaponReady(14)
Goto Deselect+1
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
GUTP A 1 A_Raise
Loop

SpawnProtect:
GUTP A 5
GUTP A 0 A_GiveInventory("GutsArmAmmo",1)
Goto Ready0

Fire:
TNT1 A 0 A_JumpIfInventory("SpawningMisfire",1,"SpawnProtect")
TNT1 A 0 A_JumpIfInventory("SuperArmTemp",1,"Throw")
TNT1 A 0 A_JumpIfInventory("IsBot",1,"BotFire")
TNT1 A 0 A_JumpIfInventory("GutsArmAmmo",7,1)
goto SpawnProtect
GUTP A 0 //A_Stop
GUTP A 0 A_GiveInventory("SuperArmTemp",1)
GUTP A 0 A_TakeInventory("SemiStunArmor",999)
GUTP A 0 A_TakeInventory("GutsArmAmmo",7)
GUTP A 0 A_PlaySoundEx("misc/hugequake2","Weapon")

GUTP A 0 A_JumpIfInventory("PowerRage_ST",1,"Fire_R")
GUTP A 1 Offset(0,80)A_SpawnItemEx("TempGutrock2",18,0,346,0,0,0,0,33)
GUTP A 1 Offset(0,80)A_SpawnItemEx("TempGutrock2",16,0,316,0,0,0,0,33)
GUTP B 1 Offset(-20,131)A_SpawnItemEx("TempGutrock2",14,0,286,0,0,0,0,33)
GUTP B 1 Offset(-20,131)A_SpawnItemEx("TempGutrock2",12,0,256,0,0,0,0,33)
GUTP B 1 Offset(-10,83)A_SpawnItemEx("TempGutrock2",10,0,226,0,0,0,0,33)
GUTP B 1 Offset(-10,83)A_SpawnItemEx("TempGutrock2",8,0,196,0,0,0,0,33)
GUTP B 0 A_WeaponReady(14)
GUTP B 1 A_SpawnItemEx("TempGutrock2",6,0,166,0,0,0,0,33)
GUTP B 1 A_SpawnItemEx("TempGutrock2",4,0,136,0,0,0,0,33)
GUTP B 1 A_SpawnItemEx("TempGutrock2",2,0,106,0,0,0,0,33)
GUTP BBBB 1 A_SpawnItemEx("TempGutrock2",0,0,76,momx,momy,momz,0,9,0)
Goto Holding
Fire_R:
GUTP A 1 Offset(0,80)A_SpawnItemEx("TempGutrock2",18,0,346,0,0,0,0,33)
GUTP B 1 Offset(-20,131)A_SpawnItemEx("TempGutrock2",14,0,286,0,0,0,0,33)
GUTP B 1 Offset(-10,83)A_SpawnItemEx("TempGutrock2",10,0,226,0,0,0,0,33)
GUTP B 0 A_WeaponReady(14)
GUTP B 1 A_SpawnItemEx("TempGutrock2",6,0,166,0,0,0,0,33)
GUTP B 1 A_SpawnItemEx("TempGutrock2",2,0,106,0,0,0,0,33)
GUTP BB 1 A_SpawnItemEx("TempGutrock2",0,0,76,momx,momy,momz,0,9,0)
Goto Holding
Holding:
GUTP B 0 A_SpawnItemEx("TempGutrock2",0,0,76,momx,momy,momz,0,9,0)
GUTP B 1 A_WeaponReady
loop
Throw:
GUTP A 0 A_GiveInventory("GutsmanMain_CI",1)//A_SpawnItemEx("GutRock",0,0,56,20,0,-4,0,0,0)
GUTP A 0 A_TakeInventory("SuperArmTemp",1)
GUTP A 0 A_GiveInventory("SemiStunArmor",1)
GUTP C 2 Offset(1,33)A_PlaySound("weapon/GutThrow",4,0.7)
GUTP C 2 Offset(-70,74)
GUTP C 2 Offset(-121,114)
GUTP D 2 Offset(1,33)
GUTP D 2 Offset(-21,56)
GUTP D 2 Offset(-37,84)
TNT1 A 6
GUTP A 2 Offset(6,92)
GUTP A 2 Offset(4,72)
GUTP A 2 Offset(2,52)
Goto Ready1
Hold:
GUTP A 1
Goto Ready1
Altfire:
TNT1 A 0 A_JumpIfInventory("SuperArmTemp",1,"Altfire2")
TNT1 A 0 A_JumpIfInventory("GutsmanFlag",1,2)
GUTP A 0 A_GiveInventory("GutsmanAlt_CI",1)
GUTP A 0 A_PlaySoundEx("Weapon/GutMelee","Weapon")
GUTP A 0 A_GiveInventory("GutsDestroyFlag",1)
GUTP A 0 A_GiveInventory("GutsArmAmmo",1)
GUTP F 2 Offset(-28,8)
GUTP E 2 Offset(-56,-16)
GUTP A 0 //A_GiveInventory("GutsArmAmmo",1)
GUTP EE 2 Offset(-56,-16)
GUTP A 0 A_GiveInventory("GutsArmAmmo",1)
GUTP E 2 Offset(-56,-16)
GUTP E 2 Offset(-56,-16)A_TakeInventory("GutsDestroyFlag",99)
GUTP A 0 //A_GiveInventory("GutsArmAmmo",1)
GUTP E 2 Offset(-56,-16)A_TakeInventory("GutsmanFlag",99)
GUTP E 2 Offset(-32,2)
GUTP A 0 A_GiveInventory("GutsArmAmmo",1)
GUTP E 2 Offset(-12,20)
GUTP E 2 A_WeaponReady(14)
/*
GUTP F 2 Offset(-16,18)
GUTP E 2 Offset(-36,1)
GUTP EEE 2 Offset(-56,-16)
GUTP F 2 Offset(-40,-3)A_TakeInventory("GutsDestroyFlag",99)
GUTP F 2 Offset(-32,4)A_TakeInventory("GutsmanFlag",99)
GUTP F 2 Offset(-24,11)
GUTP F 2 Offset(-16,18)
GUTP F 2 Offset(-8,25)
*/
Goto Ready1

Altfire2:
GUTP B 0 A_TakeInventory("SuperArmTemp",1)
GUTP B 0 A_GiveInventory("GutsmanFlag",1)
GUTP B 0 A_GiveInventory("SemiStunArmor",1)
GUTP B 0 A_JumpIfInventory("PowerRage_ST",1,"Altfire2_R")
GUTP B 1 A_SpawnItemEx("TempGutrock2",10,0,72,momx,momy,momz,0,41)
GUTP B 1 A_SpawnItemEx("TempGutrock2",25,0,63,momx,momy,momz,0,41)
GUTP B 1 Offset(-12,83)A_SpawnItemEx("TempGutrock2",40,0,54,momx,momy,momz,0,41)
GUTP B 1 Offset(-12,83)A_SpawnItemEx("TempGutrock2",55,0,45,momx,momy,momz,0,41)
GUTP B 1 Offset(-24,131)A_SpawnItemEx("TempGutrock2",60,0,36,momx,momy,momz,0,41)
GUTP B 1 Offset(-24,131)A_SpawnItemEx("TempGutrock2",65,0,18,momx,momy,momz,0,41)
TNT1 A 0 A_SpawnItemEx("SolidGutrock2",70,0,0,momx,momy,momz,0,41)
TNT1 A 1 A_SpawnItemEx("TempGutrock2",70,0,0,momx,momy,momz,0,41)
Altfire2End:
TNT1 A 2 A_WeaponReady(4)
TNT1 A 2 A_TakeInventory("GutsmanFlag",99)
GUTP A 2 Offset(6,92)
GUTP A 2 Offset(4,72)
GUTP A 2 Offset(2,52)
Goto Ready1
Altfire2_R:
GUTP B 1 A_SpawnItemEx("TempGutrock2",10,0,72,momx,momy,momz,0,41)
GUTP B 1 Offset(-12,83)A_SpawnItemEx("TempGutrock2",40,0,54,momx,momy,momz,0,41)
GUTP B 1 Offset(-24,131)A_SpawnItemEx("TempGutrock2",60,0,36,momx,momy,momz,0,41)
TNT1 A 0 A_SpawnItemEx("SolidGutrock2",70,0,0,momx,momy,momz,0,41)
TNT1 A 1 A_SpawnItemEx("TempGutrock2",70,0,0,momx,momy,momz,0,41)
Goto Altfire2End

BotFire:
TNT1 A 0 A_JumpIfCloser(200,"BotAltFire")
goto Fire+3
BotAltFire:
GUTP A 0 A_GiveInventory("BotHugFlag",1)
GUTP A 0 A_FireCustomMissile("GutPunch",0,0,8,0)
//GUTP A 0 A_PlaySoundEx("Weapon/napalm","Weapon")
GUTP A 0 A_PlaySoundEx("Weapon/GutMelee","Weapon")
GUTP EF 5
GUTP F 10
GUTP A 0 A_TakeInventory("BotHugFlag",999)
Goto Ready1
}
}

actor GutsArmAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor GutsmanFlag : OnceC{}
actor GutsDestroyFlag : OnceC{}

actor TempGutrock2
{
Scale 2.5
-SOLID
+NOGRAVITY
+CLIENTSIDEONLY
+DONTBLAST
+NOINTERACTION
+NOTIMEFREEZE
States
{
Spawn:
GUTP X 0
GUTP O 1
stop
}
}


actor SolidGutrock1
{
PROJECTILE
damagetype "GutsM_Rock"
Obituary "$OB_SUPERARM"
+NOINTERACTION
Radius 30
Height 64
Speed 0
Scale 2.5
States
{
Spawn:
GUTP O 9
GUTP OO 1 A_JumpIfCloser(64,"SpawnGive")
GUTP P 0 A_SpawnItemEx("SolidGutrock2",0,0,0,momx,momy,momz,0,9)
stop
SpawnGive:
TNT1 A 1 A_GiveToTarget("SuperArmTemp",1)
stop
}
}



actor SolidGutrock2
{
PROJECTILE
damagetype "GutsM_Rock"
Obituary "$OB_SUPERARM"
+DONTRIP
+DONTBLAST
-NOGRAVITY
+NOEXPLODEFLOOR
+DONTSPLASH

+STEPMISSILE
maxstepheight 32

-NOBLOCKMAP
+SHOOTABLE
+NOTAUTOAIMED
+DONTDRAIN
+NOBLOOD
+NOTARGETSWITCH
+NOPAIN
+SOLID
+FORCEALLYCOLLISION

+CANPASS

+DONTREFLECT

Bouncetype Classic//Desync fix?
-BOUNCEONWALLS
-BOUNCEONFLOORS
-BOUNCEONCEILINGS
-ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
+NOEXPLODEFLOOR
BounceFactor 1.0
WallBounceFactor 0.0//Desync fix?

ReactionTime 1

mass 99999
Health 75
damagefactor "SuperArm", 0.0
damagefactor "GutsPunch", 0.0
damagefactor "Fire", 0.1 //MageStaff

damageFactor "IceWallC", 0.125
damageFactor "ConcreteShoulder", 0.04
Species "GutsmanRock"

Damage (30)//50
Radius 30
Height 80//64
Speed 0
Scale 2.5

States
{
Spawn:
GUTP X 0 nodelay A_SetAngle(0)
//TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
goto Spawn1
Spawn1:
GUTP O 1
GUTP X 0
GUTP X 0 A_JumpIfInTargetInventory("GutsDestroyFlag",1,"PunchCheck")
GUTP O 1 A_GiveInventory("WeaponCharge",1)
GUTP X 0 A_JumpIfInventory("WeaponCharge",500,"DeathTime")//220
GUTP X 0 A_JumpIf(momz==0, "MOMZCheck")
GUTP X 0 A_JumpIf(z-floorz<1,"PitCheck")
goto Spawn1+2

MOMZCheck:
GUTP O 1 A_GiveInventory("WeaponCharge",1)
GUTP X 0 A_JumpIf(momz==0,"PitCheck")
GUTP X 0
goto Spawn1+2
PitCheck:
GUTP X 0 A_ChangeVelocity(0,0,momz,CVF_REPLACE)
GUTP X 0 A_GiveInventory("ResyncPickup",1)
GUTP X 0 A_JumpIf(ACS_ExecuteWithResult(107,0)==1,"DeathTime")
goto Spawn2

Spawn2:
GUTP X 0 A_JumpIfInventory("WeaponCharge",500,"DeathTime")
GUTP O 1 A_JumpIfInTargetInventory("GutsDestroyFlag",1,"PunchCheck1")
GUTP O 1 A_JumpIfInTargetInventory("GutsDestroyFlag",1,"PunchCheck2")
GUTP O 1 A_JumpIfInTargetInventory("GutsDestroyFlag",1,"PunchCheck3")
GUTP O 1 A_JumpIfInTargetInventory("GutsDestroyFlag",1,"PunchCheck4")
GUTP P 0 A_GiveInventory("WeaponCharge",5)
GUTP O 1 A_JumpIfInTargetInventory("GutsDestroyFlag",1,"PunchCheck5")
//GUTP X 0 A_JumpIf(momx>=1 || momy>=1 || momx<=-1 || momy<=-1, "Spawn1")
loop
PunchCheck:
GUTP X 0 A_JumpIfCloser(96,"RockScatter")//108
goto Spawn1+3
PunchCheck1:
GUTP O 1 A_JumpIfCloser(96,"RockScatter")
goto Spawn2+2
PunchCheck2:
GUTP O 1 A_JumpIfCloser(96,"RockScatter")
goto Spawn2+3
PunchCheck3:
GUTP O 1 A_JumpIfCloser(96,"RockScatter")
goto Spawn2+4
PunchCheck4:
GUTP O 1 A_JumpIfCloser(96,"RockScatter")
goto Spawn2+5
PunchCheck5:
GUTP O 1 A_JumpIfCloser(96,"RockScatter")
goto Spawn2


DeathTime:
GUTP O 1 A_CountDown
wait
RockScatter:
GUTP X 0 A_GiveInventory("GutsDestroyFlag",1)
goto DeathTime

DeathScatter:
GUTP X 0 A_ChangeFlag("NOGRAVITY",1)
GUTP X 0 A_Stop
GUTP O 1 ACS_ExecuteAlways(259,0,1)//Turns Rock
GUTP X 0 A_SpawnItemEx("GutrockDebris3",0,-32,32,cos(-pitch)*30,0,sin(-pitch)*30,0,1,0)
GUTP X 0 A_SpawnItemEx("GutrockDebris3",0,32,32,cos(-pitch)*30,0,sin(-pitch)*30,0,1,0)
GUTP X 0 A_SpawnItemEx("GutrockDebris3",0,0,32,cos(-pitch)*30,0,sin(-pitch)*30,0,1,0)
GUTP X 0 A_SpawnItemEx("GutrockDebris3",0,0,64,cos(-pitch)*30,0,sin(-pitch)*30,0,1,0)
GUTP X 0 A_SpawnItemEx("GutrockDebris3",0,0,0,cos(-pitch)*30,0,sin(-pitch)*30,0,1,0)
goto Death2

Death2:
GUTP X 0 A_ChangeFlag("DONTRIP",0)
GUTP XPPP 0 A_SpawnItemEx("GutrockFX2",0,0,8,random(-10,10),random(-10,10),random(8,12),random(0,359),1)
TNT1 A 1 A_PlaySoundEx("weapon/GutRock", "Voice")
stop
Death:
GUTP X 0 A_ChangeFlag("SHOOTABLE",0)
GUTP X 0 A_JumpIfInventory("GutsDestroyFlag",1,"DeathScatter")
GUTP X 0 A_JumpIfInventory("WeaponCharge",500,"Death2")
GUTP XPPPPPPP 0 A_SpawnItemEx("GutrockFX2",0,0,8,random(-10,10),random(-10,10),random(5,10),random(0,359),1)
TNT1 A 1 A_PlaySoundEx("weapon/GutRock", "Voice")
stop
}
}

actor Gutrock2 : Gutrock
{
Translation "204:204=216:216","195:195=220:220"
Damage (30)//55
Speed 35//30
damagetype "GutsM_Rock"
States
{
Spawn:

GUTP X 0
GUTP X 0 ThrustThingZ(0,20,0,1)
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
GUTP O 1
wait
Crash:
GUTP XPPP 0 A_SpawnItemEx("GutrockFX2",0,0,0,random(-10,10),random(-10,10),random(5,10),random(0,359),1)
TNT1 A 2 A_PlaySoundEx("weapon/GutRock", "Voice")
stop
Death:
GUTP X 0 A_CheckCeiling("DeathCeiling")
GUTP X 0 A_SpawnItemEx("GutrockDebris2",-16,-16,16,22.5,0,0,0,1)
GUTP X 0 A_SpawnItemEx("GutrockDebris2",-16,16,16,33.75,0,0,0,1)
GUTP X 0 A_SpawnItemEx("GutrockDebris2",16,-16,16,33.75,0,6,0,1)
GUTP X 0 A_SpawnItemEx("GutrockDebris2",16,16,16,22.5,0,3,0,1)
TNT1 A 2 A_PlaySoundEx("weapon/GutRock", "Voice")
stop
DeathCeiling:
GUTP X 0 A_SpawnItemEx("GutrockDebris2",-16,-16,16,22.5,0,0,0,1)
GUTP X 0 A_SpawnItemEx("GutrockDebris2",-16,16,16,33.75,0,0,0,1)
GUTP X 0 A_SpawnItemEx("GutrockDebris2",-16,-16,16,33.75,0,-6,0,1)
GUTP X 0 A_SpawnItemEx("GutrockDebris2",-16,16,16,22.5,0,-3,0,1)
TNT1 A 2 A_PlaySoundEx("weapon/GutRock", "Voice")
stop
}
}

actor Gutrock2B : Gutrock2{Translation "204:204=205:205","195:195=74:74"}
actor Gutrock2R : Gutrock2{Translation "204:204=171:171","195:195=41:41"}
actor Gutrock2O : Gutrock2{Translation "204:204=104:104","195:195=128:128"}
actor Gutrock2P : Gutrock2{Translation "204:204=229:229","195:195=232:232"}


actor GutrockFX2 : GutrockFX
{
+THRUSPECIES
Species "GutsmanRock"
States
{
Spawn:
GUTP Q 2
TNT1 A 2
GUTP Q 2
TNT1 A 2
GUTP Q 2
TNT1 A 2
GUTP Q 2
TNT1 A 2
GUTP Q 2
TNT1 A 2
stop
}
}

actor GutrockDebris2
{
PROJECTILE
damagetype "GutsM_RockBit"
Obituary "$OB_SUPERARM"
Damage (5)//150
Radius 12
Height 12
Speed 20
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
GUTP Q 1
loop
}
}


actor GutrockDebris3 : GutrockDebris2
{
+THRUSPECIES
Damage (8)//12
Species "GutsmanRock"
Speed 25
Height 10
Radius 10
scale 2.0
}

actor GutPunch : BasicPunch
{
damagetype "GutsM_Punch"
Obituary "$OB_GUTSPUNCH"
mass 55
}

actor GutPunchB : GutPunch{translation "202:202=4:4", "199:199=205:205"}
actor GutPunchR : GutPunch{translation "202:202=4:4", "199:199=171:171"}
actor GutPunchO : GutPunch{translation "202:202=4:4", "199:199=104:104"}
actor GutPunchP : GutPunch{translation "202:202=4:4", "199:199=229:229"}

/*actor GutsPunch_PowerProtect : PowerProtection
{
Powerup.Duration 5
DamageFactor "GutsPunch", 0.0
}

actor GutPunchFX
{
translation "202:202=210:210"
PROJECTILE
+DONTBLAST
reactiontime 1
damage (0)
Radius 20
Height 20
speed 60
scale 2.5
States
{
Spawn:
UMFX R 0
UMFX J 1 A_CountDown
wait
Death:
UMFX J 0 //A_Explode(550,40,0)
goto XDeath
XDeath:
UMFX J 0 A_Stop
UMFX J 2
XMFX S 2
UMFX JK 2
stop
}
}*/


actor GutsmanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("GutRock2",0,1,0,56)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("GutRock2B",0,1,0,56)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("GutRock2R",0,1,0,56)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("GutRock2O",0,1,0,56)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("GutRock2P",0,1,0,56)
goto Done
}
}

actor GutsmanAlt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("GutPunch",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("GutPunchB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("GutPunchR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("GutPunchO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("GutPunchP",0,0,8,0)
goto Done
}
}