actor SuperArmBoss : BaseMM8BDMWep_CBM
{
dropitem "SuperArmWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Weapon.SlotNumber 1
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,721)
GUTP A 10 A_WeaponReady
//GUTP A 0 A_GiveInventory("GutsArmAmmo",2)
Goto Ready+1
Deselect:
GUTP A 0 A_JumpIfInventory("SuperArmTemp",1,24)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
GUTP A 1 A_Lower
Goto Deselect+1
GUTP A 0 A_GiveInventory("GutsmanMain_CI",1)
GUTP A 0 A_TakeInventory("SuperArmTemp",1)
GUTP FGHIJK 2
Goto Deselect+1
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
GUTP A 1 A_Raise
Loop
Fire:
TNT1 A 0 A_JumpIfInventory("SuperArmTemp",1,"Throw")
TNT1 A 0 A_JumpIfInventory("IsBot",1,"BotFire")
//GUTP A 1 A_JumpIfNoAmmo("NoAmmo")
GUTP A 0 A_JumpIf(z-floorz==0, "GrabBlock")
GUTP A 0 A_JumpIf(momz==0, "MomZVerify")
goto NoAmmo
MomZVerify:
GUTP A 1
GUTP A 0 A_JumpIf(z-floorz==0, "GrabBlock")
GUTP A 0 A_JumpIf(momz==0, "GrabBlock")
goto NoAmmo
GrabBlock:
GUTP A 0 A_Stop
GUTP A 0 A_GiveInventory("SuperArmTemp",1)
GUTP A 0 A_TakeInventory("SemiStunArmor",999)
GUTP A 0 SetPlayerProperty(0,1,0)
TNT1 A 0 ACS_ExecuteAlways(648,0,1)
GUTP A 0 A_PlaySoundEx("misc/hugequake2","Weapon")
GUTP B 1 A_SpawnItemEx("TempGutrock2",32,0,324,0,0,0,0,33)//const int SXF_NOCHECKPOSITION = 32;
GUTP B 1 A_SpawnItemEx("TempGutrock2",32,0,306,0,0,0,0,33)
GUTP B 1 A_SpawnItemEx("TempGutrock2",32,0,288,0,0,0,0,33)
GUTP C 1 A_SpawnItemEx("TempGutrock2",32,0,270,0,0,0,0,33)
GUTP C 1 A_SpawnItemEx("TempGutrock2",32,0,252,0,0,0,0,33)
GUTP C 1 A_SpawnItemEx("TempGutrock2",32,0,234,0,0,0,0,33)
GUTP D 1 A_SpawnItemEx("TempGutrock2",32,0,216,0,0,0,0,33)
GUTP D 1 A_SpawnItemEx("TempGutrock2",32,0,198,0,0,0,0,33)
GUTP D 1 A_SpawnItemEx("TempGutrock2",32,0,180,0,0,0,0,33)
GUTP E 1 A_SpawnItemEx("TempGutrock2",32,0,162,0,0,0,0,33)
GUTP E 1 A_SpawnItemEx("TempGutrock2",32,0,144,0,0,0,0,33)
GUTP E 1 A_SpawnItemEx("TempGutrock2",32,0,126,0,0,0,0,33)
GUTP E 1 A_SpawnItemEx("TempGutrock2",32,0,108,0,0,0,0,33)
GUTP E 1 A_SpawnItemEx("TempGutrock2",32,0,90,0,0,0,0,33)
GUTP E 1 A_SpawnItemEx("TempGutrock2",32,0,72,0,0,0,0,33)
GUTP E 0 SetPlayerProperty(0,0,0)
TNT1 A 0 ACS_ExecuteAlways(648,0,0)
TNT1 AAAAAAAA 1 A_SpawnItemEx("TempGutrock2",0,0,64,momx,momy,momz,0,9,0)
Goto Holding
Holding:
TNT1 A 0 A_SpawnItemEx("TempGutrock2",0,0,64,momx,momy,momz,0,9,0)
TNT1 A 1 A_WeaponReady(WRF_NOSWITCH)
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 A 0 A_TakeInventory("GutsArmAmmo",4)
GUTP FGHIJK 3
TNT1 A 9
GUTP LMA 3
Goto Ready+1
Hold:
GUTP A 1 ACS_Execute(979,0)
Goto Ready+1
Altfire:
TNT1 A 0 A_JumpIfInventory("SuperArmTemp",1,"Altfire2")
//GUTP A 0 A_JumpIfNoAmmo("NoAmmo")
GUTP A 0 A_GiveInventory("GutsmanAlt_CI",1)
//GUTP A 0 A_FireCustomMissile("GutPunch2",0,0,8,0)
//GUTP A 0 A_PlaySoundEx("Weapon/napalm","Weapon")
GUTP A 0 A_PlaySoundEx("Weapon/GutMelee","Weapon")
GUTP A 0 A_GiveInventory("GutsDestroyFlag",1)
GUTP NO 5
GUTP O 0 A_TakeInventory("GutsDestroyFlag",99)
GUTP O 10
Goto Ready+1

Altfire2:
TNT1 A 0 //A_Stop
TNT1 A 0 //SetPlayerProperty(0,1,0)
TNT1 A 0 ACS_ExecuteAlways(648,0,1)
TNT1 A 0 A_TakeInventory("SuperArmTemp",1)
TNT1 A 0 A_GiveInventory("SemiStunArmor",1)
GUTP E 1 A_SpawnItemEx("TempGutrock2",10,0,72,momx,momy,momz,0,41)
GUTP E 1 A_SpawnItemEx("TempGutrock2",25,0,63,momx,momy,momz,0,41)
GUTP D 1 A_SpawnItemEx("TempGutrock2",40,0,54,momx,momy,momz,0,41)
GUTP D 1 A_SpawnItemEx("TempGutrock2",55,0,45,momx,momy,momz,0,41)
GUTP C 1 A_SpawnItemEx("TempGutrock2",60,0,36,momx,momy,momz,0,41)
GUTP C 1 A_SpawnItemEx("TempGutrock2",65,0,18,momx,momy,momz,0,41)
GUTP C 0 A_SpawnItemEx("SolidGutrock2",70,0,0,momx,momy,momz,0,41)
GUTP C 1 A_SpawnItemEx("TempGutrock2",70,0,0,momx,momy,momz,0,41)
TNT1 A 0 //SetPlayerProperty(0,0,0)
TNT1 A 0 ACS_ExecuteAlways(648,0,0)
TNT1 A 9
GUTP LMA 3
Goto Ready+1

NoAmmo:
GUTP A 0 ACS_Execute(979,0)
Goto Hold

BotFire:
TNT1 A 0 A_JumpIfCloser(200,"BotAltFire")
goto Fire+2
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 NO 5
GUTP O 10
GUTP A 0 A_TakeInventory("BotHugFlag",999)
Goto Ready+1
}
}

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

actor GutsDestroyFlag : OnceC{}

actor GutPuncher
{
PROJECTILE
Radius 7
Height 7
scale 2.5
damage (45)
damagetype "Punch"
Obituary "$OB_BASICPUNCH"
speed 40
States
{
Spawn:
TNT1 A 3 A_RadiusThrust (120000, 1, 0)
stop
}
}

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


actor SolidGutrock2
{
PROJECTILE
+DONTRIP
+DONTBLAST
-NOGRAVITY
+NOEXPLODEFLOOR
+DONTSPLASH

-NOBLOCKMAP
+SHOOTABLE
+NOTARGETSWITCH
+NOPAIN
+SOLID

+CANPASS

+DONTREFLECT

damagetype "SuperArm"
Obituary "$OB_SUPERARM"
Damage (60)
Scale 2.5
Radius 30
Height 64
Speed 0

mass 99999
Health 60
damagefactor "SuperArm", 0.0
damagefactor "GutsPunch", 0.0
damagefactor "Fire", 0.1 //MageStaff
Species "GutsmanRock"
States
{
Spawn:
GUTP P 1
GUTP P 0 //A_ChangeFlag("MISSILE",0)
GUTP P 0 A_JumpIfInTargetInventory("GutsDestroyFlag",1,"PunchCheck")
GUTP P 0 //A_GiveInventory("ResyncPickup",1)
GUTP P 1 A_GiveInventory("WeaponCharge",1)
GUTP P 0 A_JumpIfInventory("WeaponCharge",220,"DeathTime2")
GUTP P 0 A_JumpIfInventory("Clip",1,2)
GUTP P 0 A_JumpIf(momz==0, "MOMZCheck")
GUTP P 0 A_JumpIf(z-floorz<1,"PitCheck")
goto Spawn+2
PitCheck:
GUTP P 0 A_ChangeVelocity(0,0,momz,CVF_REPLACE)
GUTP P 0 A_GiveInventory("ResyncPickup",1)
GUTP P 0 A_JumpIf(ACS_ExecuteWithResult(107,0)==1,"DeathTime")
goto Spawn2a
Spawn2a:
GUTP P 0 A_TakeInventory("Clip",99)
GUTP P 1 A_GiveInventory("WeaponCharge",1)
GUTP P 0 A_GiveInventory("ResyncPickup",1)
GUTP P 0 A_JumpIfInTargetInventory("GutsDestroyFlag",1,"PunchCheck2")
GUTP P 1 A_GiveInventory("WeaponCharge",1)
GUTP P 0 A_GiveInventory("ResyncPickup",1)
GUTP P 0 A_JumpIfInTargetInventory("GutsDestroyFlag",1,"PunchCheck2")
GUTP P 1 A_GiveInventory("WeaponCharge",1)
GUTP P 0 A_GiveInventory("ResyncPickup",1)
GUTP P 0 A_JumpIfInTargetInventory("GutsDestroyFlag",1,"PunchCheck2")
goto Spawn2
//ResyncPickup
//TNT1 A 0 ThrustThingZ(0,0,0,1)
//TNT1 A 0 ThrustThing(angle*256/360,0)
Spawn2:
GUTP P 0
GUTP P 0 A_JumpIfInTargetInventory("GutsDestroyFlag",1,"PunchCheck2")
GUTP P 1 A_GiveInventory("WeaponCharge",1)
GUTP P 0 A_JumpIfInventory("WeaponCharge",220,"DeathTime2")
GUTP P 0 A_JumpIf(momx>=1 || momy>=1 || momx<=-1 || momy<=-1, "Spawn")
goto Spawn2
PunchCheck:
GUTP P 0 A_JumpIfCloser(108,"RockScatter")
goto Spawn+3
PunchCheck2:
GUTP P 0 A_JumpIfCloser(108,"RockScatter")
goto Spawn2+2
MOMZCheck:
GUTP P 1 A_GiveInventory("WeaponCharge",1)
GUTP P 0 A_GiveInventory("ResyncPickup",1)
GUTP P 0 A_JumpIf(momz==0, "MOMZCheck2")
GUTP P 0
goto Spawn+2
MOMZCheck2:
GUTP P 0 A_ChangeVelocity(0,0,0,CVF_REPLACE)
GUTP P 0 A_GiveInventory("Clip",1)
GUTP P 0 A_JumpIf(ACS_ExecuteWithResult(107,0)==1, "DeathTime")
goto Spawn2a
RockScatter:
GUTP P 0 A_ChangeFlag("NOINTERACTION",1)
GUTP P 1 ACS_ExecuteAlways(790,0)

GUTP P 0 A_SpawnItemEx ("GutrockDebris3",0,-16,32,cos(-pitch)*25,0,sin(-pitch)*25,4,1,0)
GUTP P 0 A_SpawnItemEx ("GutrockDebris3",0,16,32,cos(-pitch)*25,0,sin(-pitch)*25,-4,1,0)
GUTP P 0 A_SpawnItemEx ("GutrockDebris3",0,0,32,cos(-pitch)*25,0,sin(-pitch)*25,0,1,0)
GUTP P 0 A_SpawnItemEx ("GutrockDebris3",0,0,48,cos(-pitch+2)*25,0,sin(-pitch+2)*25,0,1,0)
GUTP P 0 A_SpawnItemEx ("GutrockDebris3",0,0,16,cos(-pitch-2)*25,0,sin(-pitch-2)*25,0,1,0)

//GUTP P 0 A_CustomMissile("GutrockDebris3",32,-16,4,2,-pitch)
//GUTP P 0 A_CustomMissile("GutrockDebris3",32,16,-4,2,-pitch)
//GUTP P 0 A_CustomMissile("GutrockDebris3",32,0,0,2,-pitch)
//GUTP P 0 A_CustomMissile("GutrockDebris3",48,0,0,2,-pitch+2)
//GUTP P 0 A_CustomMissile("GutrockDebris3",16,0,0,2,-pitch-2)
goto DeathTime
DeathTime2:
GUTP P 1
goto DeathTime
DeathTime:
GUTP P 0 A_ChangeFlag("DONTRIP",0)
GUTP P 1 A_ChangeFlag("NOINTERACTION",1)
GUTP PPPP 0 A_SpawnItemEx("GutrockFX2",0,0,8,random(-10,10),random(-10,10),random(8,12),random(0,360),1)
TNT1 A 1 A_PlaySoundEx("weapon/GutRock", "Voice")
stop
Death:
GUTP P 0 A_ChangeFlag("NOINTERACTION",1)
GUTP PPPPPPPP 0 A_SpawnItemEx("GutrockFX2",0,0,8,random(-10,10),random(-10,10),random(5,10),random(0,360),1)
TNT1 A 1 A_PlaySoundEx("weapon/GutRock", "Voice")
stop
}
}

actor Gutrock2 : Gutrock
{
translation "199:199=92:92"
Damage (55)
Speed 35//30
States
{
Spawn:
GUTP P 0
GUTP P 0 ThrustThingZ(0,20,0,1)
GUTP P 1
Goto Spawn+2
Crash:
GUTP PPPP 0 A_SpawnItemEx("GutrockFX2",0,0,0,random(-10,10),random(-10,10),random(5,10),random(0,360),1)
TNT1 A 2 A_PlaySoundEx("weapon/GutRock", "Voice")
stop
Death:
GUTP P 0 A_SpawnItemEx("GutrockDebris2",-16,-16,16,20,0,0,0,1)
GUTP P 0 A_SpawnItemEx("GutrockDebris2",-16,16,16,30,0,0,0,1)
GUTP P 0 A_SpawnItemEx("GutrockDebris2",16,-16,16,30,0,6,0,1)
GUTP P 0 A_SpawnItemEx("GutrockDebris2",16,16,16,20,0,3,0,1)
TNT1 A 2 A_PlaySoundEx("weapon/GutRock", "Voice")
stop
}
}

actor Gutrock2B : Gutrock2{translation "199:199=74:74"}
actor Gutrock2R : Gutrock2{translation "199:199=41:41"}
actor Gutrock2O : Gutrock2{translation "199:199=128:128"}
actor Gutrock2P : Gutrock2{translation "199:199=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 : GutrockDebris
{
States
{
Spawn:
GUTP Q 1
loop
}
}


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


/*
actor GutPunch : SlashClaw
{
damagetype "Punch"
Obituary "$OB_BASICPUNCH"
damage (9)
States
{
Spawn:
TNT1 AAAA 1 A_Explode(15,75,0)
//SCLA L 1 A_Explode(5,90,0)
stop
}
}
*/

actor GutPunch
{
translation "202:202=210:210"
PROJECTILE
+DONTBLAST
Radius 20
Height 20
scale 2.5
Obituary "$OB_BASICPUNCH"
speed 60
damage (60)
reactiontime 1
damagetype "GutsPunch"
States
{
Spawn:
GUTP Y 0
GUTP Y 1 A_CountDown
goto Spawn+1
Death:
GUTP Y 0 A_Explode(60,40,0)
goto XDeath
XDeath:
GUTP Y 0 A_Stop
GUTP YZYX 2
stop
}
}

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


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
}
}