actor PowerStoneBoss : BaseMM8BDMWep_CBM 
{
tag "$TAGC_5C"
dropitem "PowerStoneWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 3
Obituary "$OB_POWERSTONE"
weapon.ammotype "CantStopTheRockAmmo"
States
{
Spawn:
C_05 C 1
loop
Ready:
POWB E 0 ACS_ExecuteAlways(998,0,DYE_STONEMAN)
POWB E 1 offset(0,80)
POWB E 1 offset(0,80)A_GunFlash
POWB E 2 offset(0,64)
POWB E 2 offset(0,48)
goto Ready2
Ready2:
POWB E 0 A_JumpIfInventory("StoneBossLeap2",1,"ReadyAir")
POWB E 1 A_WeaponReady
goto Ready2+1
ReadyAir:
POWB E 1 A_WeaponReady(8)
goto Ready2
Deselect:
POWB EEEEEEEEEEEEEEEEEEEEEE 0 A_Lower
POWB E 1 A_Lower
Loop
Select:
POWB EEEEEEEEEEEEEEEEEEEEEE 0 A_Raise
POWB E 1 A_Raise
Loop
Fire:
POWB E 0 A_JumpIfInventory("StoneBossLeap",1,"FireLeap")
POWB E 2 offset(0,28)A_PlaySoundEx("weapon/powerstone","Weapon")
POWB F 2 offset(0,42)
POWB F 2 offset(0,34)
POWB G 3 offset(0,48)A_GiveInventory("StoneM_FirePitchCheck_P")
POWB G 2 offset(0,34)
POWB G 2 offset(0,48)
POWB F 2 offset(0,26)
POWB F 2 offset(0,40)
POWB E 2 offset(0,20)
POWB E 2 offset(0,22)
POWB E 2 offset(0,24)
POWB E 2 offset(0,26)
POWB E 2 offset(0,28)
POWB E 2 offset(0,30)
Goto Ready2

FireLeap:
POWB E 0 A_GiveInventory("StoneBossLeap2",1)
POWB E 0 A_GiveInventory("LadderEnable",1)
POWB E 0 A_TakeInventory("StoneBossLeap")
POWB E 0 A_TakeInventory("StoneBossCharge")
POWB E 0 A_TakeInventory("NoJumpCancel",9)
POWB E 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)//1.0 speed and jump
POWB E 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
POWB E 0 A_GunFlash
goto Fire+1

Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIf(z-floorz==0,6)
TNT1 A 0 A_JumpIf(momz==0,2)
TNT1 A 1 A_GiveInventory("StonemanHealthCheck",1)
loop
TNT1 A 1 A_GiveInventory("StonemanHealthCheck",1)
TNT1 A 0 A_JumpIf(z-floorz==0,2)
TNT1 A 0 A_JumpIf(momz==0,1)
loop
TNT1 A 0 A_TakeInventory("StoneBossLeap2",9)
TNT1 A 1 A_GiveInventory("StonemanHealthCheck",1)
loop

Altfire:
POWB E 0 A_JumpIfInventory("StoneBossCharge",1,"AltfireStomp")
POWB H 2 offset(0,23)A_GiveInventory("StoneBossCharge",1)
POWB I 2 offset(0,16)A_GiveInventory("StoneBossCharge",1)
AltCharge:
POWB J 0 A_JumpIfInventory("StoneBossCharge",7,"AltCharge1")
POWB J 2 offset(0,10)A_GiveInventory("StoneBossCharge",1)
POWB J 0 A_Refire("AltCharge")
goto StoneJump
AltCharge1:
POWB J 0 A_JumpIfInventory("StoneBossCharge",13,"AltCharge2")
POWB J 2 offset(0,15)A_GiveInventory("StoneBossCharge",1)
POWB J 0 A_Refire("AltCharge1")
goto StoneJump
AltCharge2:
POWB J 0 A_JumpIfInventory("StoneBossCharge",19,"AltCharge3")
POWB J 2 offset(0,20)A_GiveInventory("StoneBossCharge",1)
POWB J 0 A_Refire("AltCharge2")
goto StoneJump
AltCharge3:
POWB J 0 A_JumpIfInventory("StoneBossCharge",25,"AltCharge4")
POWB J 2 offset(0,25)A_GiveInventory("StoneBossCharge",1)
POWB J 0 A_Refire("AltCharge3")
goto StoneJump
AltCharge4:
POWB J 0 A_JumpIfInventory("StoneBossCharge",31,"AltCharge5")
POWB J 2 offset(0,29)A_GiveInventory("StoneBossCharge",1)
POWB J 0 A_Refire("AltCharge4")
goto StoneJump
AltCharge5:
POWB J 0 A_JumpIfInventory("StoneBossCharge",36,"AltCharge6")
POWB J 2 offset(0,33)A_GiveInventory("StoneBossCharge",1)
POWB J 0 A_Refire("AltCharge5")
goto StoneJump
AltCharge6:
POWB J 0 A_JumpIfInventory("StoneBossCharge",41,"AltCharge7")
POWB J 2 offset(0,37)A_GiveInventory("StoneBossCharge",1)
POWB J 0 A_Refire("AltCharge6")
goto StoneJump
AltCharge7:
POWB J 0 A_JumpIfInventory("StoneBossCharge",46,"AltCharge8")
POWB J 2 offset(0,40)A_GiveInventory("StoneBossCharge",1)
POWB J 0 A_Refire("AltCharge7")
goto StoneJump
AltCharge8:
POWB J 0 A_JumpIfInventory("StoneBossCharge",51,"AltCharge9")
POWB J 2 offset(0,43)A_GiveInventory("StoneBossCharge",1)
POWB J 0 A_Refire("AltCharge8")
goto StoneJump
AltCharge9:
POWB J 0 A_JumpIfInventory("StoneBossCharge",56,"AltFullCharge")
POWB J 2 offset(0,46)A_GiveInventory("StoneBossCharge",1)
POWB J 0 A_Refire("AltCharge9")
goto StoneJump

AltFullCharge:
POWB J 1 offset(0,49)A_JumpIfInventory("PowerRage_ST",1,2)
POWB J 0 A_Refire(1)
goto StoneJump
POWB J 1 offset(0,49)
POWB J 0 A_Refire(1)
goto StoneJump
POWB J 1 offset(0,46)A_JumpIfInventory("PowerRage_ST",1,2)
POWB J 0 A_Refire(1)
goto StoneJump
POWB J 1 offset(0,46)
POWB J 0 A_Refire("AltFullCharge")
goto StoneJump
StoneJump:
POWB I 1 offset(0,30)A_GiveInventory("StoneM_AltLeapStart_P")
goto AltfireRise

AltfireJumpLeap:
POWB I 0 offset(0,30)A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,2)
POWB I 1 ThrustThingZ(0,84,0,0)
goto AltfireRise
POWB I 1 ThrustThingZ(0,108,0,0)
goto AltfireRise
AltfireJumpLeap2:
POWB I 0 offset(0,30)A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,2)
POWB I 1 ThrustThingZ(0,108,0,0)
goto AltfireRise
POWB I 1 ThrustThingZ(0,132,0,0)
goto AltfireRise

AltfireRise:
POWB I 0 A_TakeInventory("ToadLeapFlagX",999)
POWB I 1 offset(0,30)ThrustThingZ(0,4,1,1)
POWB I 0 A_SpawnItemEx("StoneCrushHead",0,0,56,0,0,20)
POWB H 1 offset(0,13)ThrustThingZ(0,4,1,1)
POWB H 0 A_SpawnItemEx("StoneCrushHead",0,0,56,0,0,20)
POWB H 1 offset(0,13)ThrustThingZ(0,4,1,1)
Fallcheck:
POWB F 0 ThrustThingZ(0,1,1,1)
POWB F 0 A_SpawnItemEx("StoneCrushHead",0,0,56,0,0,20)
POWB F 0 A_JumpIf(momz<=0,"Fall")
POWB F 0 A_GiveInventory("StoneBossLeap",1)
POWB F 1 A_WeaponReady(2)//6//WRF_NOPRIMARY
loop

Fall:
POWB G 0 ThrustThingZ(0,1,1,1)//10
POWB G 0 A_SpawnItemEx("StoneCrush",0,0,-10,0,0,-10)
POWB G 0 A_JumpIf(z-floorz==0, "Shockland")
POWB G 0 A_JumpIfInventory("StoneBossLeap",999,"Shockland")
POWB G 0 A_GiveInventory("StoneBossLeap",1)
POWB G 0 A_JumpIfInventory("ToadLeapFlagX",1,"AltfireJumpLeap")
POWB G 1 A_WeaponReady(2)
loop

AltfireStomp:
POWB G 1 offset(0,40)ThrustThingZ(0,40,1,1)
POWB G 0 A_SpawnItemEx("StoneCrush",0,0,-10,0,0,-10)
POWB G 0 A_GiveInventory("StoneBossLeap",2)
POWB G 0 A_JumpIf(z-floorz==0, "Shockland")
POWB G 0 A_JumpIfInventory("ToadLeapFlagX",1,"AltfireJumpLeap2")
POWB G 0 A_Refire(1)
goto Fall
POWB G 1 offset(0,43)ThrustThingZ(0,40,1,1)
POWB G 0 A_SpawnItemEx("StoneCrush",0,0,-10,0,0,-10)
POWB G 0 A_GiveInventory("StoneBossLeap",2)
POWB G 0 A_JumpIf(z-floorz==0, "Shockland")
POWB G 0 A_JumpIfInventory("ToadLeapFlagX",1,"AltfireJumpLeap2")
POWB G 0 A_Refire("AltfireStomp")
goto Fall

Shockland:
POWB G 0 A_GiveInventory("LadderEnable",1)
POWB G 0 A_TakeInventory("NoJumpCancel",9)
POWB G 0 A_TakeInventory("StoneBossCharge")
POWB G 0 A_GiveInventory("StonemanAlt_CI",1)
POWB F 0 A_GiveInventory("StoneQuakePickup",1)
POWB F 0 A_Stop
POWB F 1 offset(0,36)SetPlayerProperty(0,1,0)
POWB F 1 A_Stop
POWB H 2 offset(0,32)
POWB I 2 offset(0,53)
POWB J 2 offset(0,74)
TNT1 A 7 offset(0,95)A_JumpIfInventory("StoneM_LandedDelay",1,1)
Goto ShocklandEnd
ShocklandX:
TNT1 A 13 offset(0,95)
goto ShocklandEnd
ShocklandEnd:
POWB E 0 SetPlayerProperty(0,0,0)
POWB E 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)//1.0 speed and jump
POWB E 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
POWB E 2 offset(0,77)
POWB E 2 offset(0,67)
POWB E 2 offset(0,58)
POWB E 2 offset(0,50)
POWB E 2 offset(0,43)
POWB E 2 offset(0,37)
Goto Ready2
}
}

actor CantStopTheRockAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 3
+INVENTORY.IGNORESKILL
}

actor StoneBossCharge : Inventory
{
inventory.amount 1
inventory.maxamount 56
}

actor StoneBossLeap : Inventory
{
inventory.amount 1
inventory.maxamount 999
}

actor StoneBossLeap2 : OnceC {}

actor StoneM_LandedDelay : Powerup
{
Powerup.Duration 10
}

actor StoneM_FirePitchCheck_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(pitch<340 && pitch>=270, "FireUp")
TNT1 A 0 A_JumpIf(pitch>20 && pitch<=90, "FireDown")
TNT1 A 0 A_GiveInventory("StonemanMain1_CI")
stop
FireUp:
TNT1 A 0 A_GiveInventory("StonemanMain3_CI")
stop
FireDown:
TNT1 A 0 A_GiveInventory("StonemanMain2_CI")
stop
}
}

actor StoneM_AltLeapStart_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,2,1)//2.0 speed
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,0,1)//No jump
TNT1 A 0 A_Recoil(-10)//A_Recoil(-25)
TNT1 A 0 A_GiveInventory("StoneBossLeap",1)
TNT1 A 0 A_GiveInventory("NoJumpCancel",1)
TNT1 A 0 A_GiveInventory("LadderDisable",1)
TNT1 A 0 A_SpawnItemEx("StoneCrushHead",0,0,56,0,0,20)
TNT1 A 0 ThrustThingZ(0,60+CallACS("cbm_countinv_acs",52,0)*15/11,0,0)
stop
}
}

actor StoneM_PowerStoneStart_H : BasicHelper
{
Translation "192:192=215:215","198:198=216:216"
Speed 0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("PowerStoneMan",46,0,0,1,0,0,0,1+32)
TNT1 A 0 A_SpawnItemEx("PowerStoneMan",46,0,0,1,0,0,120,1+32)
TNT1 A 0 A_SpawnItemEx("PowerStoneMan",46,0,0,1,0,0,240,1+32)
//TNT1 A 0 A_SpawnItemEx("PowerStoneMan",46,0,0,0,0,0,0+28,1)//v9e
//TNT1 A 0 A_SpawnItemEx("PowerStoneMan",46,0,0,0,0,0,180+28,1)
//TNT1 A 0 A_SpawnItemEx("PowerStoneMan",54,0,0,0,0,0,0,1)//Oldest?
//TNT1 A 0 A_SpawnItemEx("PowerStoneMan2",54,0,0,0,0,0,180,1)
stop
}
}
actor StoneM_PowerStoneStart_HB : StoneM_PowerStoneStart_H{Translation "192:192=205:205","198:198=74:74"}
actor StoneM_PowerStoneStart_HR : StoneM_PowerStoneStart_H{Translation "192:192=171:171","198:198=41:41"}
actor StoneM_PowerStoneStart_HO : StoneM_PowerStoneStart_H{Translation "192:192=104:104","198:198=128:128"}
actor StoneM_PowerStoneStart_HP : StoneM_PowerStoneStart_H{Translation "192:192=229:229","198:198=232:232"}

actor StoneM_PowerStoneStart_H2 : StoneM_PowerStoneStart_H{Speed 1}
actor StoneM_PowerStoneStart_H2B : StoneM_PowerStoneStart_HB{Speed 1}
actor StoneM_PowerStoneStart_H2R : StoneM_PowerStoneStart_HR{Speed 1}
actor StoneM_PowerStoneStart_H2O : StoneM_PowerStoneStart_HO{Speed 1}
actor StoneM_PowerStoneStart_H2P : StoneM_PowerStoneStart_HP{Speed 1}

actor StoneM_RockProtect : PowerProtection
{
Powerup.Duration 3
DamageFactor "StoneM_Rock", 0.281
}

actor PowerStoneMan
{
var int user_speed;
var int user_maxturn;
var int user_turndivisor;
var int user_turn_add;
//var int user_warpZ;
PROJECTILE
damagetype "StoneM_Rock"
Obituary "$OB_POWERSTONE"
+FORCEXYBILLBOARD
Radius 38
Height 10
damage (250)
speed 10
scale 2.5
States
{
Spawn:
X_5C Q 0
X_5C Q 0 A_SetUserVar("user_speed",38)//30
X_5C Q 0 A_SetUserVar("user_maxturn",1000)//1500
X_5C Q 0 A_SetUserVar("user_turndivisor",96)//40
X_5C Q 0 A_SetUserVar("user_turn_add",4)//14
Spawn2:
X_5C Q 0 A_ChangeVelocity(30,0,momz,3)
X_5C QRS 2
X_5C T 1 A_Stop
POWB V 3 A_Setangle(angle-80)//A_SetRenderStyle(1.0,STYLE_Stencil)
X_5C T 0
goto Spawn3+1
/*
X_5C Q 0 A_Setangle(angle-user_maxturn/user_turndivisor)
X_5C Q 1 A_ChangeVelocity(user_speed,0,momz,3)
X_5C Q 0 A_SetUserVar("user_turndivisor",user_turndivisor+user_turn_add)
X_5C Q 0 A_Setangle(angle-user_maxturn/user_turndivisor)
X_5C Q 1 A_ChangeVelocity(user_speed,0,momz,3)
X_5C R 0 A_SetUserVar("user_turndivisor",user_turndivisor+user_turn_add)
X_5C R 0 A_Setangle(angle-user_maxturn/user_turndivisor)
X_5C R 1 A_ChangeVelocity(user_speed,0,momz,3)
X_5C R 0 A_SetUserVar("user_turndivisor",user_turndivisor+user_turn_add)
X_5C R 0 A_Setangle(angle-user_maxturn/user_turndivisor)
X_5C R 1 A_ChangeVelocity(user_speed,0,momz,3)
X_5C S 0 A_SetUserVar("user_turndivisor",user_turndivisor+user_turn_add)
X_5C S 0 A_Setangle(angle-user_maxturn/user_turndivisor)
X_5C S 1 A_ChangeVelocity(user_speed,0,momz,3)
X_5C S 0 A_SetUserVar("user_turndivisor",user_turndivisor+user_turn_add)
X_5C S 0 A_Setangle(angle-user_maxturn/user_turndivisor)
X_5C S 1 A_ChangeVelocity(user_speed,0,momz,3)
X_5C T 0 A_SetUserVar("user_turndivisor",user_turndivisor+user_turn_add)
*/
Spawn3:
X_5C T 0 A_Setangle(angle-user_maxturn/user_turndivisor)
X_5C T 1 A_ChangeVelocity(user_speed,0,momz,3)
//X_5C T 0 A_LogInt(user_maxturn*10000/user_turndivisor)
X_5C T 0 A_JumpIf(user_turndivisor*100/user_maxturn>92,"Spawn4")
X_5C T 0 A_SetUserVar("user_turndivisor",user_turndivisor+user_turn_add)
loop
Spawn4:
X_5C T 1
wait
//XDeath:
//Crash:
Death:
TNT1 A 0 A_SpawnItemEX("PowerStonemanFX",16,0,0,frandom(4,8),0,frandom(1,5),random(-20,20),1)
TNT1 A 0 A_SpawnItemEX("PowerStonemanFX",16,0,0,frandom(4,8),0,frandom(1,5),random(-20,20)+120,1)
TNT1 A 0 A_SpawnItemEX("PowerStonemanFX",16,0,0,frandom(4,8),0,frandom(1,5),random(-20,20)+240,1)

TNT1 A 1
stop
}
}

//actor PowerStoneMan2 : PowerStoneMan{MeleeRange 180}

actor PowerStoneManFX
{
+MISSILE
+NOBLOCKMAP
+DOOMBOUNCE
+DONTSPLASH
//+THRUACTORS
+CLIENTSIDEONLY
bouncecount 3
Reactiontime 5
Damage (0)
Radius 8
Height 8
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Jump(256,"FX1","FX2","FX3")
FX1:
POWB A 2
TNT1 A 1 A_CountDown
loop
FX2:
POWB B 2
TNT1 A 1 A_CountDown
loop
FX3:
POWB C 2
TNT1 A 1 A_CountDown
loop
}
}

actor StoneCrush
{
PROJECTILE
Damagetype "StoneM_Leap"
Obituary "$OB_STONECRUSH"
+DONTBLAST
+DONTREFLECT
+THRUGHOST
+HITTRACER
renderstyle none
damage (150)
Radius 24
Height 2
States
{
Spawn:
PLAY A 1
stop
XDeath:
PLAY A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"DeathCrushCheck")
stop
DeathCrushCheck:
PLAY A 0 A_GiveToTarget("ToadLeapFlagX",1)
PLAY A 0 A_JumpIfInventory("StoneCrushHitDelay",1,"Death",AAPTR_TRACER)
PLAY A 1 A_JumpIf(ACS_NamedExecuteWithResult("cbm_pointerheightfromground",1)>0,"DeathGravity")
stop
DeathGravity:
PLAY A 0 A_JumpIfInventory("StoneCrushHitDelay",1,"Death",AAPTR_TRACER)
PLAY A 0 A_GiveInventory("StoneCrushHitDelay",1,AAPTR_TRACER)
PLAY A 1 A_SpawnItemEx("PainStoneCrushSlamHit",0,0,0,0,0,0,0,1025)
PLAY A 1
stop
Death:
PLAY H 1
stop
}
}

actor StoneCrushHitDelay : Powerup
{
Powerup.Duration 5
}

actor StoneM_LeapProtect : PowerProtection
{
Powerup.Duration 6
DamageFactor "StoneM_Leap", 0.0
}

actor PainStoneCrushSlamHit : BasicExplosion//StoneCrush
{
var int user_GravStack;
Obituary "$OB_STONECRUSHB"
damagetype "StoneM_Dunked"
Renderstyle None
Mass 250
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_ExecuteAlways(C_GRAVITY_SLAM,0,CallACS("cbm_GetPointerTID_147",8))
goto CollideWait
CollideWait:
TNT1 A 1 A_JumpIfInventory("CollideFlag",1,"CollideCheck")
loop

CollideCheck:
TNT1 A 0 A_SetScale(user_GravStack)
TNT1 A 0 A_JumpIf(user_GravStack>=Mass,"CollideX")
TNT1 A 0 A_JumpIf(user_GravStack>=1,"Collide")
TNT1 A 2
stop
Collide:
TNT1 A 0 A_Warp(8,0,0,28)
TNT1 A 2 A_SpawnItemEX("StoneCrushSlamCollide",0,0,0,0,0,0,0,16384)
TNT1 A 2
stop
CollideX:
TNT1 A 0 A_Warp(8,0,0,28)
TNT1 A 2 A_SpawnItemEX("StoneCrushSlamCollideX",0,0,0,0,0,0,0,16384)
TNT1 A 2
stop
}
}

actor StoneCrushSlamCollide : BasicCollideSlam
{
Obituary "$OB_STONECRUSHB"
damagetype "StoneM_Dunked"
}
actor StoneCrushSlamCollideX : BasicCollideSlam
{
Obituary "$OB_STONECRUSHX"
damagetype "StoneM_Dunked"
}

actor StoneLeap_Pickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("ToadLeapFlagX",1)
TNT1 A 0 A_JumpIfInventory("ToadLeapStack",8,"Pickup2")
TNT1 A 0 A_GiveInventory("ToadLeapStack",1)
goto Pickup1
Pickup1:
TNT1 A 0 A_PlaySoundEx("weapon/ToadCrush","Body")
goto PickupT
Pickup2:
TNT1 A 0 A_PlaySoundEx("weapon/ToadCrushUp","Body")
TNT1 A 0 A_GiveInventory("CBM_HealThing10_P",1)
goto PickupT
PickupT:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,"PickupT2")
goto PickupT1
PickupT1:
TNT1 A 0 ThrustThingZ(0,48,0,0)
stop
PickupT2:
TNT1 A 0 ThrustThingZ(0,96,0,0)
stop
}
}


actor StoneCrushHead
{
PROJECTILE
Damagetype "StoneM_Head"
Obituary "$OB_STONEHEAD"
+DONTBLAST
+DONTREFLECT
+THRUGHOST
renderstyle none
damage (150)
Radius 16
Height 2
States
{
Spawn:
PLAY A 0
PLAY A 1
stop
}
}

actor StoneQuakePickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("StoneBossLeap",30,"P_Stun")
goto P_NoStun
P_NoStun:
TNT1 A 0 A_SpawnItemEx("Stoneman_QuakeFX_H")
TNT1 A 0 A_PlaySoundEX("weapon/StoneQuakeWeak","Weapon")
TNT1 A 0 ACS_NamedExecuteAlways("cbm_FloorQuakeDamage",0,200,15,1052)
goto P_End
P_Stun:
TNT1 A 0 A_GiveInventory("StoneM_LandedDelay",1)
TNT1 A 0 A_SpawnItemEx("Stoneman_QuakeFX_H2")
TNT1 A 0 A_PlaySoundEX("misc/hugequake","Weapon")
TNT1 A 0 A_Quake(7,20,0,300,0)
TNT1 A 0 ACS_NamedExecuteAlways("cbm_FloorQuakeDamage",0,250,20,52)
goto P_End
P_End:
TNT1 A 0 A_TakeInventory("StoneBossLeap")
stop
}
}

actor Stoneman_QuakeFX_H : Hardman_QuakeFX_H1
{
Mass 1
Scale 20
}
actor Stoneman_QuakeFX_H2 : Hardman_QuakeFX_H1
{
Mass 2
Scale 25
}

actor Stoneman_FloorQuakeSpawn : BasicExplosion
{
Obituary "$OB_STONECRUSH"
damagetype "StoneM_Shock"
+NOCLIP
Renderstyle None
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetScale(angle*256/360)
TNT1 A 0 Thing_Move(0,1000+momz*8,1)
TNT1 A 4 A_SpawnItemEx("Stoneman_FloorQuakeBoom",0,0,28,0,0,0,0,16384)
stop
}
}
actor Stoneman2_FloorQuakeSpawn : Stoneman_FloorQuakeSpawn
{
damagetype "StoneM_Quake"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetScale(angle*256/360)
TNT1 A 0 Thing_Move(0,1000+momz*8,1)
TNT1 A 4 A_SpawnItemEx("Stoneman2_FloorQuakeBoom",0,0,28,0,0,0,0,16384)
stop
}
}
actor Stoneman_FloorQuakeBoom : Hardman_FloorQuakeBoom
{
Obituary "$OB_STONECRUSH"
damagetype "StoneM_Shock"
}
actor Stoneman2_FloorQuakeBoom : Stoneman_FloorQuakeBoom
{
damagetype "StoneM_Quake"
}

actor StoneHandBoss
{
Translation "192:192=215:215", "198:198=216:216"
PROJECTILE
damagetype "StoneM_Hand"
Obituary "$OB_STONEHAND"
+SEEKERMISSILE
+SCREENSEEKER
+FLOORHUGGER
+NOINTERACTION
ReactionTime 20
damage (100)
radius 16
height 32
speed 15
scale 2.5
States
{
Spawn:
TNT1 A 2
TNT1 A 0 A_Stop
POWB TSRQPONK 2 ACS_ExecuteAlways(259,0,2)
POWB K 0 A_ChangeFlag("NOINTERACTION",0)
POWB K 0 A_ChangeVelocity(20,0,0,3)
Spawn2:
POWB LM 2 A_SeekerMissile(2,10,3,50,6)
POWB L 0 A_CountDown
loop
Death:
POWB K 0 A_Stop
POWB KNOPQRST 2 
stop
Crash:
XDeath:
TNT1 A 1
stop
}
}

actor StoneHandBossB : StoneHandBoss{translation "192:192=205:205", "198:198=74:74"}
actor StoneHandBossR : StoneHandBoss{translation "192:192=171:171", "198:198=41:41"}
actor StoneHandBossO : StoneHandBoss{translation "192:192=104:104", "198:198=128:128"}
actor StoneHandBossP : StoneHandBoss{translation "192:192=229:229", "198:198=232:232"}




actor StonemanMain1_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_H",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_HB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_HR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_HO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_HP",0,0,0,0)
goto Done
}
}

actor StonemanMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_H2",0,0,0,-8)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_H2B",0,0,0,-8)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_H2R",0,0,0,-8)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_H2O",0,0,0,-8)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_H2P",0,0,0,-8)
goto Done
}
}

actor StonemanMain3_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_H2",0,0,0,8)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_H2B",0,0,0,8)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_H2R",0,0,0,8)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_H2O",0,0,0,8)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("StoneM_PowerStoneStart_H2P",0,0,0,8)
goto Done
}
}

actor StonemanAlt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("StoneHandBoss",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("StoneHandBossB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("StoneHandBossR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("StoneHandBossO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("StoneHandBossP",0,0,0,0)
goto Done
}
}

actor StonemanHealthCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfHealthLower(2,"Pickup_Core")
stop
Pickup_Core:
TNT1 A 0 ThrustThingZ(0,4,0,1)
TNT1 A 0 A_GiveInventory("StoneDestroyedFX_P",1)
stop
}
}

actor PowerStoneCoreBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_5C2"
dropitem "PowerStoneWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 3
Obituary "$OB_POWERSTONE"
weapon.ammotype "TheRockWasStoppedAmmo"
+WEAPON.CHEATNOTWEAPON
States
{
Spawn:
C_05 C 1
stop
Ready:
POWB Y 0 ACS_ExecuteAlways(998,0,DYE_STONEMAN,1)
POWB Y 0 A_GunFlash
POWB Y 0 A_TakeInventory("StoneCoreBounceFlag",99)
POWB Y 1
POWB Y 1 A_JumpIfInventory("StoneCoreBounceFlag",8,"ReadyX")
wait
ReadyX:
POWB YZ 5
loop
Flash:
TNT1 AA 7 A_GiveInventory("StoneCoreFlagX",1)
TNT1 A 7 A_GiveInventory("StoneCoreFlag_P",1)
TNT1 AA 7 A_GiveInventory("StoneCoreFlagX",1)
TNT1 A 0 A_JumpIfInventory("StoneCoreFlag",0,1)
loop
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 5 A_GiveInventory("StoneRebornFX_P",1)
stop
}
}

actor TheRockWasStoppedAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 3
+INVENTORY.IGNORESKILL
}

actor StoneCoreFlag : Inventory
{
inventory.amount 1
inventory.maxamount 9
}
actor StoneCoreFlagX : Inventory
{
inventory.amount 1
inventory.maxamount 40
}
actor StoneCoreBuddha : OnceC {}

actor StoneCoreBounceFlag : Inventory
{
inventory.amount 1
inventory.maxamount 8
}

actor StonemanInvulnerability : PowerInvulnerable
{
powerup.duration 15
}

actor StonemanGutsGWeakness : PowerProtection
{
Powerup.duration -10
DamageFactor "Melee", 2.0
}

actor StonemanSpawnStart_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,1,16)
TNT1 A 0 A_GiveInventory("StoneCoreBuddha",1)
stop
}
}

actor StoneCoreFlag_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("StoneCoreFlag",1)
TNT1 A 0 A_GiveInventory("StoneCoreFlagX",1)
TNT1 A 0 A_SpawnItemEx("StoneTimeSlowFX",0,0,8,0,0,0,0,1)
stop
}
}

actor StoneDestroyedFX_P : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_ChangeFlag("NOTELEPORT",1)
TNT1 A 0 A_ChangeFlag("PICKUP",0)
TNT1 A 0 A_ChangeFlag("SOLID",0)
TNT1 A 0 A_ChangeFlag("THRUSPECIES",1)
TNT1 A 0 A_TakeInventory("UnSolid",99)
TNT1 A 0 A_SpawnItemEx("StoneDestroyedFX",0,0,0,0,0,0,0,1)

TNT1 A 0 //A_Stop
TNT1 A 0 ThrustThing(angle*256/360,18,1,0)
TNT1 A 0 ThrustThingZ(0,4,0,1)

TNT1 A 0 A_GiveInventory("PowerStoneCoreBoss",1)
TNT1 A 0 SetPlayerProperty(0,0,16)//Buddha off
TNT1 A 0 A_GiveInventory("StonemanInvulnerability",1)
TNT1 A 0 A_GiveInventory("StonemanGutsGWeakness",1)
TNT1 A 0 A_GiveInventory("SelfStoppedTF",1)
TNT1 A 0 A_GiveInventory("StunArmor",1)
TNT1 A 0 A_GiveInventory("StoneCoreFlag",1)

//TNT1 A 0 ACS_ExecuteAlways(C_JAX_SPECTRUM_SET1,0,2,3)//user_wepaimlimit
TNT1 A 0 A_SetUserVar("user_wepaimlimit",0)//Bounce tracking on Stoneman playerclass

TNT1 A 0 HealThing(30000,ACS_ExecuteWithResult(CBM_FetchMyHealth,1)*0.355)//Heal back to 550

TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,0,1)//No jump

TNT1 A 0 A_TakeInventory("StoneCoreBuddha",9)
TNT1 A 0 A_TakeInventory("StoneBossLeap")
TNT1 A 0 A_TakeInventory("StoneBossLeap2",9)
TNT1 A 0 A_TakeInventory("StoneBossCharge",99999)
TNT1 A 0 A_TakeInventory("StoneCoreFlagX")

TNT1 A 0 A_TakeInventory("PowerStoneBoss",1)
stop
}
}

actor StoneRebornFX_P : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_ChangeFlag("NOTELEPORT",0)
TNT1 A 0 A_ChangeFlag("PICKUP",1)
TNT1 A 0 A_ChangeFlag("THRUSPECIES",0)
TNT1 A 0 A_SpawnItemEx("ResolidifyPlayer_H")
TNT1 A 0 A_SpawnItemEx("StoneRebornFX",0,0,0,0,0,0,0,1)

TNT1 A 0 HealThing(30000,ACS_ExecuteWithResult(CBM_FetchMyHealth,1)*0.549)//Heal back to 850

TNT1 A 0 SetPlayerProperty(0,1,16)//Buddha on
TNT1 A 0 A_GiveInventory("StoneCoreBuddha",1)
TNT1 A 0 A_GiveInventory("PowerStoneBoss",1)

TNT1 A 0 A_TakeInventory("StoneCoreFlag")
TNT1 A 0 A_GiveInventory("LadderEnable",1)
TNT1 A 0 A_TakeInventory("StonemanInvulnerability",1)
TNT1 A 0 A_TakeInventory("StunArmor",1)
TNT1 A 0 A_TakeInventory("StonemanGutsGWeakness",1)
TNT1 A 0 A_GiveInventory("SelfStoppedUnfreeze",1)
TNT1 A 0 A_GiveInventory("TimeStoppedUnfreeze",1)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)//1.0 speed and jump
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
TNT1 A 0 SetPlayerProperty(0,0,0)

TNT1 A 0 A_TakeInventory("PowerStoneCoreBoss",1)
stop
}
}

actor StoneDestroyedFX : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/StoneCore","Weapon",0,0)
TNT1 A 0 A_PlaySoundEx("weapon/StoneBreak","Body",0,0)
TNT1 AAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("StonemanBrickBreakFX",random(0,16),0,random(0,75),random(0,8),0,random(0,2),random(0,359),1)
TNT1 A 1
stop
}
}

actor StoneRebornFX : BasicHelper
{
ReactionTime 19
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/StoneBreak","Body",0,0)
TNT1 A 0 A_Warp(2)
TNT1 A 0 A_SpawnItemEx("StonemanBrickRezFX",100,0,0,0,0,0,random(0,359),1)
TNT1 A 1 A_CountDown
goto Spawn+2
}
}

actor StoneTimeSlowFX : BasicExplosion
{
scale 1.75
States
{
Spawn:
TNT1 A 0
X_1G NMLKJIHFENMLKJIHFE 1
stop
}
}


actor StonemanBrickRezFX
{
PROJECTILE
//+CLIENTSIDEONLY
+NOINTERACTION
+THRUACTORS
Damage (0)
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_FaceTarget//1
TNT1 A 0 //A_ChangeVelocity(random(5,10),0,random(0,6),3)
TNT1 A 0 A_Jump(256,"FX1","FX2","FX3")
FX1:
TNT1 A 1 A_FaceTarget
POWB A 10 A_ChangeVelocity(random(5,10),0,random(0,6),3)
stop
FX2:
TNT1 A 1 A_FaceTarget
POWB B 10 A_ChangeVelocity(random(5,10),0,random(0,6),3)
stop
FX3:
TNT1 A 1 A_FaceTarget
POWB C 10 A_ChangeVelocity(random(5,10),0,random(0,6),3)
stop
}
}

actor StonemanBrickBreakFX
{
PROJECTILE
//+CLIENTSIDEONLY
-NOGRAVITY
+DOOMBOUNCE
+DONTSPLASH
+THRUACTORS
bouncecount 3
Damage (0)
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Jump(256,"FX1","FX2","FX3")
FX1:
POWB AADAADAADAADAADAADAADAADAADAAD 1
stop
FX2:
POWB BBDBBDBBDBBDBBDBBDBBDBBDBBDBBD 1
stop
FX3:
POWB CCDCCDCCDCCDCCDCCDCCDCCDCCDCCD 1
stop
}
}
