actor ConcreteShotBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_9A"
dropitem "ConcreteShotWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 3
Obituary "$OB_CONCRETESHOT"
Inventory.Pickupmessage "$PU_CONCRETESHOT"
weapon.ammotype "ConcreteShoemakerAmmo"
States
{
Spawn:
C_09 A 1
loop
Ready:
CONH A 0 ACS_ExecuteAlways(998,0,DYE_CONCRETEMAN)
goto Ready1
Ready1:
CONH A 0 A_JumpIfInventory("ConcreteBlockReady",1,"Ready3")
Ready2:
CONH A 1 A_WeaponReady
wait
Ready3:
CONH Q 1 A_WeaponReady
wait

Deselect:
CONH AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
CONH A 1 A_Lower
Loop
Select:
CONH AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
CONH A 1 A_Raise
Loop

Fire:
CONH A 0 A_JumpIfInventory("ConcreteBlockReady",1,"FireBlock")
CONH B 0 A_PlaySoundEx("weapon/concreteshot","Weapon")
CONH B 0 A_GiveInventory("ConcretemanFireCheck_P",1)
CONH BC 5
CONH A 5
CONH A 20 A_WeaponReady(WRF_NOPRIMARY)
Goto Ready2
FireBlock:
CONH R 0 A_PlaySoundEx("weapon/concreteshot","Weapon")
CONH R 0 A_GiveInventory("ConcretemanFireCheck_P",1)
CONH RS 5
CONH Q 5
CONH Q 20 A_WeaponReady(WRF_NOPRIMARY)
Goto Ready3

AltFirePickup:
CONH N 0 A_ClearReFire
CONH N 0 A_GiveInventory("ConcreteBlockReady",1)
CONH N 0 A_GiveInventory("CementAni_Pickup",1)
CONH N 0 A_GiveInventory("PowerConcMSlow0",1)
CONH N 0 A_TakeInventory("ConcreteGrabbingFlag",999)
CONH N 0 A_PlaySoundEx("weapon/concreteraise","Weapon")
CONH N 2 A_SpawnItemEx("ConcretemanBlockWarper",32,0,8,0,0,0,0,1)
CONH O 0 A_JumpIf(1,1)
CONH O 0 A_GiveInventory("ConcreteBlockFlag",1)
CONH O 0 A_GiveInventory("ConcreteBlockReady",1)
CONH O 0 A_TakeInventory("ConcreteGrabbingFlag",999)
CONH O 2
CONH P 0 A_TakeInventory("ConcreteChargeFlag",999)
CONH PQ 2
CONH Q 16 A_TakeInventory("PowerConcMSlow0",1)
goto Ready3

AltFire:
CONH A 0 A_JumpIfInventory("CementAni_Leap",1,"CrashLanding")
CONH A 0 A_JumpIfInventory("ConcreteBlockReady",1,"AltBlockCharge")
CONH A 0 A_JumpIfInventory("ConcreteBlockFlag",1,"AltFirePickup")
goto AltfireH1
AltFireH1:
CONH G 1
CONH G 0 A_Refire("AltFireH2")
Goto AltFireH_End
AltFireH2:
CONH G 0 A_GiveInventory("ConcreteGrabbingFlag",1)
CONH G 0 A_JumpIfInventory("PowerRage_ST",1,"AltFireH3")
CONH G 1
CONH G 0 A_Refire("AltFireH3")
Goto AltFireH_End
AltFireH3:
CONH H 0 A_JumpIfInventory("ConcreteBlockFlag",1,"AltFirePickup")
CONH H 1
CONH H 0 A_Refire("AltFireH4")
Goto AltFireH_End
AltFireH4:
CONH H 0 A_JumpIfInventory("PowerRage_ST",1,"AltFireH5")
CONH H 0 A_JumpIfInventory("ConcreteBlockFlag",1,"AltFirePickup")
CONH H 1
CONH H 0 A_Refire("AltFireH5")
Goto AltFireH_End
AltFireH5:
CONH I 0 A_JumpIfInventory("ConcreteBlockFlag",1,"AltFirePickup")
CONH I 1
CONH I 0 A_Refire("AltFireH5")
Goto AltFireH_End

AltFireH_End:
CONH "#" 0 A_TakeInventory("ConcreteGrabbingFlag",999)
CONH "#" 0 A_JumpIfInventory("ConcreteBlockFlag",1,"AltFirePickup")
CONH "#" 0 A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,"Leap")
CONH "#" 0 A_JumpIf(CallACS("cbm_FetchMovementInput")>1,"AltDash")
CONH G 1
goto Ready2

Flash.BlockCharge:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("ConcreteChargeFlag",28,"Flash.BlockChargeSnd")
TNT1 A 0 A_GiveInventory("PowerConcMSlow75",1)
TNT1 A 1 A_GiveInventory("ConcreteChargeFlag_RC",1)
loop
Flash.BlockChargeSnd:
TNT1 A 0 A_PlaySound("weapon/conc_chargeloop",1,0.9)
TNT1 AAAAAAAAA 2 A_JumpIfInventory("IsDead",1,"NoFlash")
loop

AltBlockCharge:
CONH T 0 A_GunFlash("Flash.BlockCharge")
CONH T 0 A_PlaySound("weapon/conc_chargestart",1,0.5)
goto AltBlockH
AltBlockH:
CONH T 1 A_JumpIfInventory("ConcreteChargeFlag",28,"AltBlockH2")
CONH T 0 A_Refire("AltBlockH")
goto BlockTossWeak
AltBlockH2:
CONH T 0 ACS_ExecuteAlways(998,0,DYE_CONCRETEMAN_CHARGE,7)
CONH T 1 A_GiveInventory("PowerConcMSlow75",1)
CONH T 0 A_Refire("AltBlockH2.a")
goto BlockTossStronk
AltBlockH2.a:
CONH T 1 A_JumpIfInventory("PowerRage_ST",1,"AltBlockH2.b")
CONH T 0 A_Refire("AltBlockH2.b")
goto BlockTossStronk
AltBlockH2.b:
CONH U 1 ACS_ExecuteAlways(998,0,DYE_CONCRETEMAN,6)
CONH U 0 A_Refire("AltBlockH2.c")
goto BlockTossStronk
AltBlockH2.c:
CONH U 1 A_JumpIfInventory("PowerRage_ST",1,"AltBlockH2")
CONH U 0 A_Refire("AltBlockH2")
goto BlockTossStronk

BlockTossWeak:
CONH A 0 A_GunFlash("NoFlash")
CONH A 0 ACS_ExecuteAlways(998,0,DYE_CONCRETEMAN,1)
CONH A 0 A_PlaySound("weapon/conc_throw",1,0.475)
CONH A 0 A_GiveInventory("CementAni_Throw",1)
CONH A 0 A_TakeInventory("ConcreteBlockFlag",999)
CONH A 0 A_TakeInventory("ConcreteBlockReady",999)
CONH A 0 A_TakeInventory("BashTimer",999)
CONH A 0 A_GiveInventory("ConcretemanAlt2_CI",1)
CONH VW 2
goto BlockTossEnd
BlockTossStronk:
CONH A 0 A_GunFlash("NoFlash")
CONH A 0 ACS_ExecuteAlways(998,0,DYE_CONCRETEMAN,1)
CONH A 0 A_PlaySound("weapon/conc_throw",1,0.475)
CONH A 0 A_GiveInventory("CementAni_Throw",1)
CONH A 0 A_TakeInventory("ConcreteBlockFlag",999)
CONH A 0 A_TakeInventory("ConcreteBlockReady",999)
CONH A 0 A_TakeInventory("BashTimer",999)
CONH A 0 A_GiveInventory("ConcretemanAlt3_CI",1)
CONH VW 2
goto BlockTossEnd
BlockTossEnd:
CONH A 0 ACS_ExecuteAlways(998,0,DYE_CONCRETEMAN,1)
CONH XY 2
CONH A 12
CONH A 2 A_GiveInventory("ConcreteCleanResetFlags",1)
CONH A 2
Goto Ready2

AltDash:
CONH D 0 A_GiveInventory("CementAni_Dash",1)
CONH D 0 A_SetUserVar("user_wepangle",angle)

CONH F 0 A_GiveInventory("ConcreteShoulder_P",1)
CONH F 0 A_PlaySoundEx("weapon/shoulderbash","Weapon")
CONH F 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH F 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH E 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH E 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH E 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH E 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
goto InTheZone+9

InTheZone:
CONH D 0 A_JumpIfInventory("BashTimer",9,"End")
CONH D 0 A_GiveInventory("ConcreteShoulder_P",1)
CONH D 0 A_PlaySoundEx("weapon/shoulderbash","Weapon")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)//+9
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("BashTimer",1)
CONH D 0 A_JumpIfInventory("BashTimer",42,"End")
CONH D 0 A_CheckFloor("InTheZone")
goto InTheAir
InTheAir:
CONH D 0 A_GiveInventory("ConcreteShoulder_P",1)
CONH D 0 A_PlaySoundEx("weapon/shoulderbash","Weapon")
CONH D 0 A_GiveInventory("ConcreteDashThrust16",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust16",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust16",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust16",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("BashTimer",1)
CONH D 0 A_JumpIfInventory("BashTimer",42,"End")
CONH D 0 A_CheckFloor("ShortTransition")
loop
ShortTransition:
CONH D 0 A_GiveInventory("ConcreteShoulder_P",1)
CONH D 0 A_PlaySoundEx("weapon/shoulderbash","Weapon")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")

CONH D 0 A_GiveInventory("ConcreteShoulder_P",1)
CONH D 0 A_PlaySoundEx("weapon/shoulderbash","Weapon")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 0 A_GiveInventory("ConcreteDashThrust22",1)
CONH D 1 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
goto InTheZone
End:

CONH D 0 A_TakeInventory("CementAni_Dash",999)
CONH D 0 A_GiveInventory("CementAni_DashStop",1)

CONH D 0 A_JumpIfInventory("ConcreteBashFlag",1,"Rebound")
CONH D 4
CONH B 4
CONH A 10
Goto DashEnd
Rebound:
CONH D 0 A_TakeInventory("CementAni_Dash",999)
CONH D 0 A_GiveInventory("CementAni_DashStop",1)
CONH D 0 A_GiveInventory("NoJumpCancel",1)

CONH D 0 A_PlaySoundEx("weapon/shoulderhit","Weapon")
CONH D 0 A_PlaySoundEx("weapon/shoulderhit","Body")
CONH D 0 A_GiveInventory("ConcreteDashThrustEnd",1)
CONH D 10
CONH A 0 A_TakeInventory("NoJumpCancel",999)
Waitin:
CONH BBBBBBBBBBBBBBBBBBBBBBBBBBBBAA 1 A_CheckFloor("DashEnd")
goto DashEnd
DashEnd:
CONH A 1 A_GiveInventory("ConcreteCleanResetFlags",1)
Goto Ready2

Leap:
CONH J 0 A_GiveInventory("CementAni_Leap",1)
CONH J 0 A_GiveInventory("NoJumpCancel",1)
CONH J 0 A_GiveInventory("LadderDisable",1)
CONH J 0 A_TakeInventory("ConcreteBlockFlag",999)
CONH J 0 A_PlaySoundEx("weapon/buttleap","Weapon")
CONH J 0 A_Recoil(-15)
CONH J 0 ThrustThingZ(0,60,0,0)
CONH J 2
CONH K 12
goto Ready2Stomp

Ready2Stomp:
CONH K 0 A_JumpIf(z-floorz==0,"Landing")
CONH K 0 A_JumpIf(momz==0,"Ready2StompZ")
CONH K 0 A_JumpIfInventory("Quaking",999,"Landing")
CONH K 0 A_GiveInventory("Quaking_RC",1)
CONH K 0 A_SpawnItemEx("ConcreteButt",0,0,-10,0,0,-15)
CONH K 1 A_Refire("CrashLanding")//A_WeaponReady(4)
loop
Ready2StompZ:
CONH K 0 A_GiveInventory("Quaking_RC",1)
CONH K 0 A_SpawnItemEx("ConcreteButt",0,0,-10,0,0,-15)
CONH K 1 A_Refire("CrashLanding")
CONH K 0 A_JumpIf(z-floorz==0,"Landing")
CONH K 0 A_JumpIf(momz==0,"Landing")
CONH K 0 A_JumpIfInventory("Quaking",999,"Landing")
goto Ready2Stomp+3

Ready2Stomp2:
CONH K 0 A_JumpIf(z-floorz==0,"Landing")
CONH K 0 A_JumpIf(momz==0,"Ready2Stomp2Z")
CONH K 0 A_JumpIfInventory("Quaking",999,"Landing")
CONH K 0 A_GiveInventory("Quaking3_RC",1)
CONH K 0 A_SpawnItemEx("ConcreteButt2",0,0,-10,0,0,-15)
CONH K 1 ThrustThingZ(0,-10,0,1)
loop
Ready2Stomp2Z:
CONH K 0 A_GiveInventory("Quaking3_RC",1)
CONH K 0 A_SpawnItemEx("ConcreteButt2",0,0,-10,0,0,-15)
CONH K 1 ThrustThingZ(0,-10,0,1)
CONH K 0 A_JumpIf(z-floorz==0,"Landing")
CONH K 0 A_JumpIf(momz==0,"Landing")
CONH K 0 A_JumpIfInventory("Quaking",999,"Landing")
goto Ready2Stomp2+3

CrashLanding:
CONH L 0 A_JumpIfInventory("ConcreteBlockReady",1,"AltBlockCharge")
CONH L 0 A_Stop
CONH L 0 A_GiveInventory("PowerConcMSlow0",1)
CONH L 0 SetPlayerProperty(0,1,3)
CONH L 4
CONH L 6 A_GiveInventory("Quaking",5)
CONH L 0 ThrustThingZ(0,-250,0,0)
CONH L 0 A_TakeInventory("PowerConcMSlow0",1)
CONH L 0 SetPlayerProperty(0,0,3)
goto Ready2Stomp2
Landing:
CONH M 0 A_PlaySoundEx("weapon/buttstomp","Body")
CONH M 0 A_GiveInventory("ConcreteShockLanding_P",1)
CONH M 0 A_GiveInventory("CementAni_LeapStop",1)
CONH M 0 A_GiveInventory("PowerConcMSlow0",1)
CONH M 0 A_TakeInventory("CementAni_Leap",999)
CONH M 0 A_TakeInventory("ConcreteChargeFlag",999)
CONH M 1
CONH M 0 A_TakeInventory("NoJumpCancel",1)
CONH M 0 A_GiveInventory("LadderEnable",1)
CONH M 8 A_GiveInventory("ConcreteCleanResetFlags",1)
CONH I 2 A_TakeInventory("PowerConcMSlow0",1)
CONH HG 2
goto Ready2


}
}


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

actor ConcreteChargeFlag : Inventory
{
inventory.amount 1
inventory.maxamount 28
}

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

actor PowerConcMSlow75 : PowerSpeed
{
powerup.duration 6
Speed 0.75
+POWERSPEED.NOTRAIL
}
actor PowerConcMSlow0 : PowerSpeed
{
powerup.duration 10
Speed 0.0
+POWERSPEED.NOTRAIL
}


actor ConcreteM_StaminaFlag : Inventory
{
inventory.amount 1
inventory.maxamount 560
}


actor ConcStaminaDelay : Powerup
{
Powerup.Duration -3
}

actor ConcreteGrabbingFlag : OnceC {}
actor ConcreteBlockFlag : OnceC {}
actor ConcreteBlockReady : OnceC {}
actor ConcreteBashFlag : OnceC {}

actor CementAni_Pickup : Powerup
{
Powerup.Duration 8
}
actor CementAni_Dash : OnceC {}
actor CementAni_DashStop : CementAni_Pickup {}
actor CementAni_Leap : OnceC {}
actor CementAni_LeapStop : CementAni_Pickup {}
actor CementAni_Throw : CementAni_Pickup {}


actor ConcreteChargeFlag_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("ConcreteChargeFlag",1)
stop
PickupR:
TNT1 A 0 A_GiveInventory("ConcreteChargeFlag",2)
stop
}
}

actor ConcreteCleanResetFlags : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("ConcreteChargeFlag",999)
TNT1 A 0 A_TakeInventory("BashTimer",999)
TNT1 A 0 A_TakeInventory("Quaking",9999)

TNT1 A 0 A_TakeInventory("ConcreteGrabbingFlag",999)
TNT1 A 0 A_TakeInventory("ConcreteBlockFlag",999)
TNT1 A 0 A_TakeInventory("ConcreteBlockReady",999)
TNT1 A 0 A_TakeInventory("ConcreteBashFlag",999)
TNT1 A 0 A_TakeInventory("CementAni_Dash",999)
TNT1 A 0 A_TakeInventory("CementAni_Leap",999)
TNT1 A 0 A_TakeInventory("CementAni_Throw",999)

TNT1 A 0 A_TakeInventory("CementAni_Pickup",999)
TNT1 A 0 A_TakeInventory("CementAni_DashStop",999)
TNT1 A 0 A_TakeInventory("CementAni_LeapStop",999)
stop
}
}

actor ConcreteDashThrust16 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SetUserVar("user_wepangle", ACS_ExecuteWithResult(812,ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM),angle,1))//3
TNT1 A 0 A_ChangeVelocity(13.5*cos(ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)),13.5*sin(ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)),momz,CVF_REPLACE)
stop
}
}

actor ConcreteDashThrust22 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SetUserVar("user_wepangle", ACS_ExecuteWithResult(812,ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM),angle,3))//4
TNT1 A 0 A_ChangeVelocity(18*cos(ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)),18*sin(ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)),momz,CVF_REPLACE)
stop
}
}

actor ConcreteDashThrustEnd : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_CheckFloor("PickupF")
goto PickupA
PickupF:
TNT1 A 0 ThrustThingZ(0,40,0,0)
TNT1 A 0 ThrustThing(ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)*256/360,-36,1,0)
stop
PickupA:
TNT1 A 0 ThrustThingZ(0,40,0,0)
TNT1 A 0 ThrustThing(ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)*256/360,-28,1,0)
stop
}
}


actor ConcretemanBlockWarper : ShieldWarper_CBM
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("cbm_clientwarper",0,91)
Goto Shield
Shield:
Y_9A X 1 A_Warp(AAPTR_TARGET,32,0,8,0,24)
Y_9A X 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
Y_9A X 1 A_Warp(AAPTR_TARGET,28,5,14,0,24)
Y_9A X 1 A_Warp(AAPTR_TARGET,24,10,20,0,24)
Y_9A X 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
Y_9A X 1 A_Warp(AAPTR_TARGET,20,15,26,0,24)
Y_9A X 1 A_Warp(AAPTR_TARGET,16,20,32,0,24)
Y_9A X 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
Y_9A X 1 A_Warp(AAPTR_TARGET,12,25,38,0,24)
Y_9A X 1 A_Warp(AAPTR_TARGET,8,30,44,0,24)
Y_9A X 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
Y_9A X 1 A_Warp(AAPTR_TARGET,4,35,50,0,24)
Y_9A X 1 A_Warp(AAPTR_TARGET,0,40,56,0,24)
wait
}
}

actor ConcreteShotgun
{
Translation "202:202=88:88", "199:199=95:95"
PROJECTILE
damagetype "ConcreteM_Shot"
Obituary "$OB_CONCRETESHOT"
species "ConcreteShot"
-NOGRAVITY
+THRUSPECIES
damage (100)	
Radius 16
Height 32
speed 33
scale 2.5
States
{
Spawn:
Y_9A A 0
Y_9A A 0 ThrustThingZ(0,10,0,1)
goto Spawn2
Spawn2:
Y_9A AB 2
loop
XDeath:
TNT1 A 1 A_PlaySoundEx("weapon/concreteblock","Weapon")
stop
Death:
Y_9A W 0 A_ChangeFlag(NOGRAVITY,1)
Y_9A W 4
Y_9A W 0 A_JumpIfCloser(48,"XDeath")
Y_9A W 0 A_SpawnItemEx("ConcreteShotgunBlock",0,0,0,0,0,0,0,5)
Y_9A X 0 A_PlaySoundEx("weapon/concreteblock","Weapon")
stop
}
}

actor ConcreteShotgunB : ConcreteShotgun{translation"202:202=205:205","199:199=74:74"}
actor ConcreteShotgunR : ConcreteShotgun{translation"202:202=171:171","199:199=41:41"}
actor ConcreteShotgunO : ConcreteShotgun{translation"202:202=104:104","199:199=128:128"}
actor ConcreteShotgunP : ConcreteShotgun{translation"202:202=229:229","199:199=232:232"}

actor ConcreteShotgunX : ConcreteShotgun
{
var int user_S;
States
{
Death:
Y_9A W 0 A_SetUserVar("user_S",random(0,3))
Y_9A W 0 A_ChangeFlag(NOGRAVITY,1)
Y_9A W 4
Y_9A W 0 A_SpawnItemEx("ConcreteShotgunXFX",0,0,0,-2-user_S/3,2+user_S/3,5+user_S,0,1)
Y_9A W 0 A_SpawnItemEx("ConcreteShotgunXFX",0,0,0,-2-user_S/3,-2-user_S/3,5+user_S,0,1)
Y_9A W 0 A_SpawnItemEx("ConcreteShotgunXFX",0,0,0,-2-user_S/3,2+user_S/3,3+user_S,0,1)
Y_9A W 0 A_SpawnItemEx("ConcreteShotgunXFX",0,0,0,-2-user_S/3,-2-user_S/3,3+user_S,0,1)
Y_9A X 0 A_PlaySoundEx("weapon/concreteblock","Weapon")
stop
}
}

actor ConcreteShotgunXB : ConcreteShotgunX{translation "202:202=205:205", "199:199=74:74"}
actor ConcreteShotgunXR : ConcreteShotgunX{translation "202:202=171:171", "199:199=41:41"}
actor ConcreteShotgunXO : ConcreteShotgunX{translation "202:202=104:104", "199:199=128:128"}
actor ConcreteShotgunXP : ConcreteShotgunX{translation "202:202=229:229", "199:199=232:232"}

actor ConcreteShotgunXFX
{
+MISSILE
+THRUACTORS
+CLIENTSIDEONLY
+NOPAIN
-SOLID
Damage (0)
radius 2
height 2
scale 2.5
States
{
Spawn:
TNT1 A 1
TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8)
Spawn2:
CONC PQRS 2
loop
Spawn3:
CONC PSRQ 2
loop
}
}

actor ConcreteShotgunBlock
{
+FORCEYBILLBOARD
+GHOST
+NOGRAVITY
+DONTRIP
+CANTSEEK
+MISSILE
+TOUCHY
+SHOOTABLE
+NOTAUTOAIMED
+NOBLOOD
+DONTBLAST
+DONTDRAIN
+NOTARGETSWITCH
+THRUSPECIES
damagefactor "ConcreteShot", 0.0
damagefactor "ConcreteM_Shot", 0.0
damagefactor "ConcreteM_Bash", 5.0
damagefactor "VehicleHazard", 9999.0

DamageFactor "ColdM_WallFloor", 0.125
DamageFactor "ColdM_WallAir", 0.125
species "ConcreteShot"//MovingPlatform
Health 300
Mass 9999
radius 16
height 32
scale 2.0
States
{
Spawn://Y_9A minus one letter
Y_9A W 0
Y_9A W 0
Y_9A W 1 A_SetArg(3,20)
Y_9A W 0 A_ChangeFlag("TOUCHY",0)
Y_9A W 0 A_ChangeFlag("MISSILE",0)
Y_9A W 0 A_ChangeFlag("SOLID",1)
goto SpawnL
SpawnL:
Y_9A X 0 A_JumpIfInventory("WeaponCharge",64,"SpawnL2")
Y_9A X 1 A_GiveInventory("WeaponCharge",1)
Y_9A X 0 A_JumpIfInTargetInventory("ConcreteGrabbingFlag",1,"Spawn_Check")
loop
SpawnL2:
Y_9A Y 1 A_CountDownArg(3)
Y_9A Y 0 A_JumpIfInTargetInventory("ConcreteGrabbingFlag",1,"Spawn_Check2")
loop
Spawn_Check:
Y_9A X 0 A_JumpIfInTargetInventory("ConcreteBlockReady",1,"SpawnL")
Y_9A X 0 A_JumpIfInTargetInventory("ConcreteBlockFlag",1,"SpawnL")
Y_9A X 0 A_JumpIfCloser(64,"Give")
goto SpawnL
Give:
Y_9A X 0 A_JumpIfInTargetInventory("ConcreteBlockFlag",1,"SpawnL")
Y_9A X 0 A_GiveToTarget("ConcreteBlockFlag",1)
TNT1 A 0 A_NoBlocking
TNT1 A 1
stop
Spawn_Check2:
Y_9A Y 0 A_JumpIfInTargetInventory("ConcreteBlockReady",1,"SpawnL2")
Y_9A Y 0 A_JumpIfInTargetInventory("ConcreteBlockFlag",1,"SpawnL2")
Y_9A Y 0 A_JumpIfCloser(64,"Give2")
goto SpawnL2
Give2:
Y_9A Y 0 A_JumpIfInTargetInventory("ConcreteBlockFlag",1,"SpawnL2")
Y_9A Y 0 A_GiveToTarget("ConcreteBlockFlag",1)
TNT1 A 0 A_NoBlocking
TNT1 A 1
stop
Death:
Y_9A Y 1 A_ChangeFlag("NOGRAVITY",1)
Y_9A Y 2 A_NoBlocking
Y_9A Z 3
stop
}
}

actor ConcreteShoulder
{
Translation "202:202=88:88", "199:199=95:95"
PROJECTILE
damagetype "ConcreteM_Bash"
Obituary "$OB_CONCRETESHOULDER"
renderstyle translucent
alpha 0.4
//species "ConcreteShot"
ReactionTime 1
damage (250)
Radius 14
Height 25
speed 40
scale 2.5
States
{
Spawn:
TNT1 A 0
X_5F DDEEFF 1 A_JumpIfInTargetInventory("ConcreteBashFlag",1,"Cease")
stop
Cease:
TNT1 A 1 A_CountDown
wait
Death:
TNT1 A 1
stop
}
}

actor ConcreteShoulderChecker
{
PROJECTILE
+DONTBLAST
+DONTREFLECT
+THRUSPECIES
Species "Megaman"
damage (0)
Radius 4
Height 4
Speed 20
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 AA 1 A_JumpIfInTargetInventory("ConcreteBashFlag",1,"Cease")
stop
XDeath:
Death:
TNT1 A 0 A_GiveToTarget("ConcreteBashFlag",1)
Crash:
Cease:
TNT1 A 1
stop
}
}

actor ConcreteM_BashProtect : PowerProtection
{
Powerup.Duration 6
DamageFactor "ConcreteM_Bash", 0.0
}

actor ConcreteShoulder_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0
//TNT1 A 0 A_SpawnItemEx("ConcreteShoulder",2,0,36,32,0,0,ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)-angle,1)

TNT1 A 0 A_SpawnItemEx("ConcreteShoulder",2,0,36,32,0,0,ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)-angle,1)
TNT1 A 0 A_SpawnItemEx("ConcreteShoulder",2,0,0,32,0,0,ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)-angle,1)

TNT1 A 0 A_SpawnItemEx("ConcreteShoulder",2,-28,36,32,0,0,ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)-angle,1)
TNT1 A 0 A_SpawnItemEx("ConcreteShoulder",2,-28,0,32,0,0,ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)-angle,1)
TNT1 A 0 A_SpawnItemEx("ConcreteShoulder",2,28,36,32,0,0,ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)-angle,1)
TNT1 A 0 A_SpawnItemEx("ConcreteShoulder",2,28,0,32,0,0,ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)-angle,1)

TNT1 A 0 A_SpawnItemEx("ConcreteShoulderChecker",2,0,32,20,0,0,ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM)-angle,1)
stop
}
}

actor ConcreteButt
{
PROJECTILE
damagetype "ConcreteM_Flat"
Obituary "$OB_CONCRETEBUTT"
+DONTBLAST
+THRUGHOST
renderstyle none
damage (100)
Radius 15
Height 2
States
{
Spawn:
TNT1 A 1
stop
}
}

actor ConcreteButt2 : ConcreteButt
{
damage (200)
}

actor ConcreteShockLanding : BasicExplosion
{
damagetype "ConcreteM_HalfShock"
Obituary "$OB_CONCRETESLAM"
States
{
Spawn:
TNT1 A 0
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("ConcreteShockLandingFX",128,0,0,0,0,0,random(0,360),5)
TNT1 A 2 A_Explode(200,192,0,0,32)
stop
}
}

actor ConcreteShockLanding_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("Quaking",70,"Pickup6")
TNT1 A 0 A_JumpIfInventory("Quaking",60,"Pickup5")
TNT1 A 0 A_JumpIfInventory("Quaking",50,"Pickup4")
TNT1 A 0 A_JumpIfInventory("Quaking",40,"Pickup3")
TNT1 A 0 A_JumpIfInventory("Quaking",30,"Pickup2")
goto Pickup1

Pickup6:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_FloorQuakeDamage",0,450,30,90)
TNT1 A 0 A_SpawnItemEx("Concreteman_QuakeFX_H6",0,0,0,0,0,0,0,1)
goto PickupE
Pickup5:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_FloorQuakeDamage",0,400,26,90)
TNT1 A 0 A_SpawnItemEx("Concreteman_QuakeFX_H5",0,0,0,0,0,0,0,1)
goto PickupE
Pickup4:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_FloorQuakeDamage",0,350,22,90)
TNT1 A 0 A_SpawnItemEx("Concreteman_QuakeFX_H4",0,0,0,0,0,0,0,1)
goto PickupE
Pickup3:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_FloorQuakeDamage",0,300,18,90)
TNT1 A 0 A_SpawnItemEx("Concreteman_QuakeFX_H3",0,0,0,0,0,0,0,1)
goto PickupE
Pickup2:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_FloorQuakeDamage",0,250,14,90)
TNT1 A 0 A_SpawnItemEx("Concreteman_QuakeFX_H2",0,0,0,0,0,0,0,1)
goto PickupE
Pickup1:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_FloorQuakeDamage",0,200,10,90)
TNT1 A 0 A_SpawnItemEx("Concreteman_QuakeFX_H1",0,0,0,0,0,0,0,1)
goto PickupE

PickupE:
TNT1 A 0
stop
}
}

actor Concreteman_FloorQuakeSpawn : BasicExplosion
{
Obituary "$OB_CONCRETESLAM"
damagetype "ConcreteM_HalfShock"
+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("Concreteman_FloorQuakeBoom",0,0,28,0,0,0,0,16384)
stop
}
}

actor Concreteman_FloorQuakeBoom : Hardman_FloorQuakeBoom
{
Obituary "$OB_CONCRETESLAM"
damagetype "ConcreteM_HalfShock"
}

actor Concreteman_QuakeFX : BasicClientSide
{
var int user_A;
var int user_Dist;
reactiontime 1
Renderstyle None
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("user_A",random(0,5))
TNT1 A 0 A_SetUserVar("user_Dist",ScaleX)
TNT1 A 0 A_SetArg(4,pitch)
TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("ConcreteShockLandingFX",10*random(1,user_Dist),0,0,0,0,0,5*random(0,71)+user_A,1)
goto Spawn2
Spawn2:
TNT1 AAAAAA 0 A_SpawnItemEx("ConcreteShockLandingFX",10*random(1,user_Dist),0,0,0,0,0,5*random(0,71)+user_A,1)
TNT1 A 0 A_CountdownArg(4,"End")
loop
End:
TNT1 A 1 A_Countdown
wait

Death:
TNT1 A 0 A_SpawnItemEx("ConcreteShockLandingFX",random(10,30),random(-20,20),0,0,0,0,30,1)
TNT1 A 0 A_SpawnItemEx("ConcreteShockLandingFX",random(10,30),random(-20,20),0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("ConcreteShockLandingFX",random(10,30),random(-20,20),0,0,0,0,-30,1)
TNT1 A 1
stop
}
}

actor Concreteman_QuakeFX_H1 : BasicHelper
{
Mass 0
Scale 20
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetPitch(Mass)
TNT1 A 1 A_SpawnItemEx("Concreteman_QuakeFX",0,0,0,0,0,0,0,16384+512+1)
TNT1 A 1
stop
}
}
actor Concreteman_QuakeFX_H2 : Concreteman_QuakeFX_H1
{
Mass 1
Scale 25
}
actor Concreteman_QuakeFX_H3 : Concreteman_QuakeFX_H1
{
Mass 2
Scale 30
}
actor Concreteman_QuakeFX_H4 : Concreteman_QuakeFX_H1
{
Mass 3
Scale 35
}
actor Concreteman_QuakeFX_H5 : Concreteman_QuakeFX_H1
{
Mass 4
Scale 40
}
actor Concreteman_QuakeFX_H6 : Concreteman_QuakeFX_H1
{
Mass 5
Scale 45
}


actor ConcreteShockLandingFX : BasicClientSide
{
//Translation "202:202=88:88"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,1,2)
CONC T 1
goto Spawn2
CONC U 1
goto Spawn2
Spawn2:
"####" "#" 3
stop
}
}

actor WeakConcreteBlock
{
Translation "202:202=88:88", "199:199=95:95"
PROJECTILE
damagetype "ConcreteM_Toss"
Obituary "$OB_CONCRETETOSS"
-NOGRAVITY
Damage (300)
Radius 16
Height 16
Speed 34
scale 2.5
States
{
Spawn:
Y_9A X 0
Y_9A X 0 ThrustThingZ(0,20,0,1)
Y_9A X 1
wait
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/concreteblockw","Weapon")
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
Y_9A YZ 3
stop
}
}


actor WeakConcreteBlockB : WeakConcreteBlock{translation "202:202=205:205", "199:199=74:74"}
actor WeakConcreteBlockR : WeakConcreteBlock{translation "202:202=171:171", "199:199=41:41"}
actor WeakConcreteBlockO : WeakConcreteBlock{translation "202:202=104:104", "199:199=128:128"}
actor WeakConcreteBlockP : WeakConcreteBlock{translation "202:202=229:229", "199:199=232:232"}

actor StronkConcreteBlock
{
Translation "202:202=88:88", "199:199=95:95"
PROJECTILE
damagetype "ConcreteM_Toss"
Obituary "$OB_CONCRETETOSS2"
Damage (50)
Radius 16
Height 16
Speed 68
scale 2.5
States
{
Spawn:
Y_9A X 0
Y_9A XXXXXXXXXXXXXXX 1 A_SpawnItemEx("StronkConcreteBlockFX",0,0,0,0,0,0,0,1)
Y_9A X 0 A_ChangeFlag("NOGRAVITY",0)
Y_9A X 1 A_SpawnItemEx("StronkConcreteBlockFX",0,0,0,0,0,0,0,1)
wait
Death:
TNT1 A 0 A_JumpIf(ceilingz-z<=16,"Ceiling")
TNT1 AA 0 A_SpawnItemEx("ConcreteDebFX",0,0,8,random(5,9),0,7,random(0,360),1)
TNT1 A 0 A_SpawnItemEx("ConcreteDebFX",0,0,8,random(7,12),0,7,random(0,90),1)
TNT1 A 0 A_SpawnItemEx("ConcreteDebFX",0,0,8,random(7,12),0,7,random(90,180),1)
TNT1 A 0 A_SpawnItemEx("ConcreteDebFX",0,0,8,random(7,12),0,7,random(180,270),1)
TNT1 A 0 A_SpawnItemEx("ConcreteDebFX",0,0,8,random(7,12),0,7,random(270,360),1)
TNT1 AA 0 A_SpawnItemEx("ConcreteDebFX",0,0,8,random(12,15),0,7,random(0,360),1)
goto DeathEnd
Ceiling:
TNT1 AA 0 A_SpawnItemEx("ConcreteDebFX",0,0,-8,random(5,9),0,0,random(0,360),1)
TNT1 A 0 A_SpawnItemEx("ConcreteDebFX",0,0,-8,random(7,12),0,0,random(0,90),1)
TNT1 A 0 A_SpawnItemEx("ConcreteDebFX",0,0,-8,random(7,12),0,0,random(90,180),1)
TNT1 A 0 A_SpawnItemEx("ConcreteDebFX",0,0,-8,random(7,12),0,0,random(180,270),1)
TNT1 A 0 A_SpawnItemEx("ConcreteDebFX",0,0,-8,random(7,12),0,0,random(270,360),1)
TNT1 AA 0 A_SpawnItemEx("ConcreteDebFX",0,0,-8,random(12,15),0,0,random(0,360),1)
goto DeathEnd
DeathEnd:
TNT1 A 0 A_PlaySoundEx("weapon/concreteblocks","Voice")
TNT1 A 2 A_SpawnItemEx("StronkConcreteBlockBoom",0,0,8,0,0,0,0,1)
stop
}
}

actor StronkConcreteBlockB : StronkConcreteBlock{translation "202:202=205:205", "199:199=74:74"}
actor StronkConcreteBlockR : StronkConcreteBlock{translation "202:202=171:171", "199:199=41:41"}
actor StronkConcreteBlockO : StronkConcreteBlock{translation "202:202=104:104", "199:199=128:128"}
actor StronkConcreteBlockP : StronkConcreteBlock{translation "202:202=229:229", "199:199=232:232"}

actor StronkConcreteBlockBoom : BasicExplosion
{
damagetype "ConcreteM_TossBit"
Obituary "$OB_CONCRETETOSS2"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(350,128,0,0,16)
TNT1 A 2 A_SpawnItemEx("BasicBoom6FX_Y3",0,0,0,0,0,0,0,1+32)
stop
}
}

actor StronkConcreteBlockFX : BasicClientSide
{
renderstyle translucent
alpha 0.6
States
{
Spawn:
TNT1 A 1
Y_9A D 1 A_FadeOut(0.125)
wait
}
}

actor ConcreteDeb
{
PROJECTILE
damagetype "ConcreteM_TossBit"
Obituary "$OB_CONCRETETOSS2"
-NOGRAVITY
Damage (9)
Radius 8
Height 8
scale 2.5
States
{
Spawn:
Y_5C A 1
loop
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
UMFX CD 4
stop
}
}

actor ConcreteDebFX
{
+MISSILE
+DONTBLAST
+THRUACTORS
+CLIENTSIDEONLY
+FLOORCLIP
+DONTSPLASH
Damage (0)
Height 4
Radius 4
Scale 2.5
States
{
Spawn:
Y_5C A 1
wait
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
UMFX CD 4
stop
}
}


actor ConcretemanFireCheck_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("ConcreteM_StaminaFlag",1,"Pickup2")
goto PickupX
Pickup2:
TNT1 A 0 A_GiveInventory("ConcretemanMain_CI",1)
stop
PickupX:
TNT1 A 0 A_GiveInventory("ConcretemanMainX_CI",1)
stop
}
}

actor ConcreteStamina_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_CheckFloor("End")
goto P_Stam
P_Stam:
TNT1 A 0 A_JumpIfInventory("ConcStaminaDelay",1,"P_StamX")
TNT1 A 0 A_GiveInventory("ConcStaminaDelay",1)
stop
P_StamX:
TNT1 A 0 A_JumpIfInventory("HelperIsActiveFlag1",1,3)
TNT1 A 0 A_GiveInventory("HelperIsActiveFlag1",1)
TNT1 A 0 A_SpawnItemEx("ConcreteStaminaHelper")
TNT1 A 0 A_TakeInventory("ConcreteM_StaminaFlag",10)
goto P_Stam+1
End:
TNT1 A 0
stop
}
}

actor ConcreteStaminaHelper : BasicHelper
{
States
{
Spawn:
TNT1 A 1
goto SpawnWait
Spawn2:
TNT1 A 0 A_GiveToTarget("ConcreteM_StaminaFlag",2)
TNT1 A 1
TNT1 A 0 A_JumpIfInTargetInventory("ConcreteM_StaminaFlag",0,"Death")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("ConcStaminaDelay",1,"SpawnWait")
loop
SpawnWait:
TNT1 A 1
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("ConcStaminaDelay",1,"SpawnWait")
goto Spawn2
Death:
TNT1 A 1 A_TakeFromTarget("HelperIsActiveFlag1")
stop
}
}

actor ConcretemanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ConcreteShotgun",0,0,-8,0)
TNT1 A 0 A_FireCustomMissile("ConcreteShotgun",random(-4,-12),0,-8,0,0,random(0,5))
TNT1 A 0 A_FireCustomMissile("ConcreteShotgun",random(4,12),0,-8,0,0,random(0,5))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunB",0,0,-8,0)
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunB",random(-4,-12),0,-8,0,0,random(0,5))
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunB",random(4,12),0,-8,0,0,random(0,5))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunR",0,0,-8,0)
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunR",random(-4,-12),0,-8,0,0,random(0,5))
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunR",random(4,12),0,-8,0,0,random(0,5))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunO",0,0,-8,0)
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunO",random(-4,-12),0,-8,0,0,random(0,5))
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunO",random(4,12),0,-8,0,0,random(0,5))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunP",0,0,-8,0)
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunP",random(-4,-12),0,-8,0,0,random(0,5))
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunP",random(4,12),0,-8,0,0,random(0,5))
goto Done
Done:
TNT1 A 0 A_GiveInventory("ConcreteStamina_P",1)
stop
}
}

actor ConcretemanMainX_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunX",0,0,-8,0)
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunX",random(-4,-12),0,-8,0,0,random(0,5))
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunX",random(4,12),0,-8,0,0,random(0,5))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXB",0,0,-8,0)
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXB",random(-4,-12),0,-8,0,0,random(0,5))
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXB",random(4,12),0,-8,0,0,random(0,5))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXR",0,0,-8,0)
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXR",random(-4,-12),0,-8,0,0,random(0,5))
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXR",random(4,12),0,-8,0,0,random(0,5))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXO",0,0,-8,0)
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXO",random(-4,-12),0,-8,0,0,random(0,5))
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXO",random(4,12),0,-8,0,0,random(0,5))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXP",0,0,-8,0)
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXP",random(-4,-12),0,-8,0,0,random(0,5))
TNT1 A 0 A_FireCustomMissile("ConcreteShotgunXP",random(4,12),0,-8,0,0,random(0,5))
goto Done
Done:
TNT1 A 0 A_GiveInventory("ConcreteStamina_P",1)
stop
}
}

actor ConcretemanAlt2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("WeakConcreteBlock",0,0,0,56)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("WeakConcreteBlockB",0,0,0,56)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("WeakConcreteBlockR",0,0,0,56)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("WeakConcreteBlockO",0,0,0,56)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("WeakConcreteBlockP",0,0,0,56)
goto Done
}
}


actor ConcretemanAlt3_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("StronkConcreteBlock",0,0,0,16)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("StronkConcreteBlockB",0,0,0,16)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("StronkConcreteBlockR",0,0,0,16)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("StronkConcreteBlockO",0,0,0,16)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("StronkConcreteBlockP",0,0,0,16)
goto Done
}
}

