actor CrashbombBoss : BaseMM8BDMWep_CBM
{
Tag "$TAGC_2E"
dropitem "CrashBombWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Obituary "$OB_CRASHBOMB"
Inventory.Pickupmessage "Power up! Crash Bomb!"
weapon.ammotype "ClashAmmo"
+WEAPON.NOAUTOAIM
States
{
Spawn:
C_02 E 1
loop
Ready:
CRAA A 0 ACS_ExecuteAlways(998,0,DYE_CRASHMAN)
CRAA FEDCB 2
goto Ready1

Ready0:
CRAA A 0 A_JumpIfInventory("ClashAmmo",7,"Ready0c")
CRAA A 0 A_JumpIfInventory("ClashAmmo",4,"Ready0b")
CRAA A 10 A_WeaponReady(WRF_NOFIRE)
goto Ready1
Ready0b:
CRAA A 10 A_WeaponReady(WRF_NOPRIMARY)
goto Ready2
Ready0c:
CRAA A 10 A_WeaponReady
goto Ready3

Ready1:
CRAA A 0 A_JumpIfInventory("ClashAmmo",4,"Ready2")
CRAA A 2 A_WeaponReady(WRF_NOFIRE)
CRAA A 0 A_GiveInventory("ClashAmmo",1)
loop
Ready2:
CRAA A 0 A_JumpIfInventory("ClashAmmo",7,"Ready3")
CRAA A 2 A_WeaponReady(WRF_NOPRIMARY)
CRAA A 0 A_GiveInventory("ClashAmmo",1)
loop
Ready3:
CRAA A 2 A_WeaponReady
CRAA A 0 A_GiveInventory("ClashAmmo",1)
loop

Deselect:
CRAA A 0 A_GiveInventory("ClashFlag1")
CRAA A 0 A_GiveInventory("ClashFlag2")
CRAA A 0 A_GiveInventory("ClashFlag3")
CRAA A 0 A_GiveInventory("ClashFlag4")
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
CRAA A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
CRAA A 1 A_Raise
Loop

Fire:
CRAA A 0 A_JumpIfInventory("IsBot",1,"BotFire")
CRAA A 0 A_PlaySoundEx("weapon/dustbit","Weapon")
CRAA A 0 A_GiveInventory("CrashmanAlt_CI",1)
CRAA FG 2
CRAA G 10
CRAA HIA 2
Goto Ready0

Altfire:
CRAA G 0 A_PlaySoundEx("weapon/dustbit","Weapon")
CRAA A 0 A_GiveInventory("CrashmanMain_CI",1)
CRAA BC 2
CRAA C 10
CRAA DEA 2
Goto Ready0

BotFire:
CRAA A 0 A_Jump(32,"BotFire2")
CRAA A 0 A_Jump(96,"Altfire")
goto Fire+1
BotFire2:
CRAA A 0 A_PlaySoundEx("weapon/BoobeamBeep","SoundSlot6")
CRAA A 0 A_GiveInventory("ClashFlag1",1)
CRAA A 0 A_GiveInventory("ClashFlag2",1)
CRAA A 0 A_GiveInventory("ClashFlag3",1)
CRAA A 0 A_GiveInventory("ClashFlag4",1)
CRAA A 0 A_GiveInventory("ClashFlagT",1)
CRAA A 0 A_GiveInventory("ClashAmmo",14)
goto BotFire+1
}
}

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

actor ClashFlag1 : Powerup
{
Powerup.Duration 3
}
actor ClashFlag2 : ClashFlag1{}
actor ClashFlag3 : ClashFlag1{}
actor ClashFlag4 : ClashFlag1{}
actor ClashFlagT : ClashFlag1{}

actor ClashLaunched : Inventory
{
inventory.amount 1
inventory.maxamount 4
}
actor ClashLaunched1 : ClashLaunched{}
actor ClashLaunched2 : ClashLaunched{}
actor ClashLaunched3 : ClashLaunched{}
actor ClashLaunched4 : ClashLaunched{}

actor WeaponFired : OnceC{}

actor CrashDetonateItem : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "CrasIcon"
scale 2.0
Tag "$TAGC_2E2"
inventory.pickupmessage "Hey, hey, step aside, Magnet Man. It's time for Crash Man to finish this job with his Time Bombs."
+INVBAR
states
{
Spawn:
CRAA X 1
loop
Use:
TNT1 A 0 A_PlaySoundEx("weapon/BoobeamBeep","SoundSlot6")
//TNT1 A 0 A_JumpIfInventory("ClashFlagT",1,"No")
TNT1 A 0 A_GiveInventory("ClashFlag1",1)
TNT1 A 0 A_GiveInventory("ClashFlag2",1)
TNT1 A 0 A_GiveInventory("ClashFlag3",1)
TNT1 A 0 A_GiveInventory("ClashFlag4",1)
TNT1 A 0 A_GiveInventory("ClashFlagT",1)
fail
No:
TNT1 A 0
fail
}
}

actor ClashBomb_Mine
{
Translation "192:192=4:4","198:198=227:227","202:202=215:215"
PROJECTILE
DamageType "CrashM_Clash"
Obituary "$OB_CRASHBOMB"
+DONTREFLECT
+NOTARGETSWITCH
damage (1)
Radius 6
Height 6
speed 60
scale 2.5
States
{
Spawn:
TNT1 A 0
//TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
CDRL C 1
wait

Death:
TNT1 A 0 Thing_ChangeTID(0, 0)
TNT1 A 0 A_JumpIfInTargetInventory("ClashLaunched1",1,1)
goto Bomb1
TNT1 A 0 A_JumpIfInTargetInventory("ClashLaunched2",1,1)
goto Bomb2
TNT1 A 0 A_JumpIfInTargetInventory("ClashLaunched3",1,1)
goto Bomb3
TNT1 A 0 A_JumpIfInTargetInventory("ClashLaunched4",1,"Bomb1")
goto Bomb4
Bomb1:
TNT1 A 0 A_TakeFromTarget("ClashLaunched2",1)
TNT1 A 0 A_GiveToTarget("ClashLaunched1",1)
TNT1 A 0 A_GiveToTarget("ClashFlag1",1)
TNT1 A 0 A_GiveInventory("ClashLaunched1",1)
goto WallCheck
Bomb2:
TNT1 A 0 A_TakeFromTarget("ClashLaunched3",1)
TNT1 A 0 A_GiveToTarget("ClashLaunched2",1)
TNT1 A 0 A_GiveToTarget("ClashFlag2",1)
TNT1 A 0 A_GiveInventory("ClashLaunched2",1)
goto WallCheck
Bomb3:
TNT1 A 0 A_TakeFromTarget("ClashLaunched4",1)
TNT1 A 0 A_GiveToTarget("ClashLaunched3",1)
TNT1 A 0 A_GiveToTarget("ClashFlag3",1)
TNT1 A 0 A_GiveInventory("ClashLaunched3",1)
goto WallCheck
Bomb4:
TNT1 A 0 A_TakeFromTarget("ClashLaunched1",1)
TNT1 A 0 A_GiveToTarget("ClashLaunched4",1)
TNT1 A 0 A_GiveToTarget("ClashFlag4",1)
TNT1 A 0 A_GiveInventory("ClashLaunched4",1)
goto WallCheck

WallCheck:
CDRL C 0 A_PlaySound("weapon/crashland")
CDRL C 0 A_JumpIf(z-floorz<5,"Floor")
CDRL C 0 A_JumpIf(z-ceilingz==0-6,"Ceiling")
CDRL F 12
CDRL F 0 A_JumpIfInventory("ClashLaunched4",1,"WallBeep4")
CDRL F 0 A_JumpIfInventory("ClashLaunched3",1,"WallBeep3")
CDRL F 0 A_JumpIfInventory("ClashLaunched2",1,"WallBeep2")
CDRL F 0 A_JumpIfInventory("ClashLaunched1",1,"WallBeep1")
goto WallWait1
WallBeep1:
CDRL IIIFFF 1 A_JumpIfInTargetInventory("ClashFlag1",1,"Detonate")
CDRL I 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Detonate")
loop
WallBeep2:
CDRL IIIFFF 1 A_JumpIfInTargetInventory("ClashFlag2",1,"Detonate")
CDRL I 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Detonate")
loop
WallBeep3:
CDRL IIIFFF 1 A_JumpIfInTargetInventory("ClashFlag3",1,"Detonate")
CDRL I 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Detonate")
loop
WallBeep4:
CDRL IIIFFF 1 A_JumpIfInTargetInventory("ClashFlag4",1,"Detonate")
CDRL I 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Detonate")
loop

Floor:
CDRL D 12
CDRL D 0 A_JumpIfInventory("ClashLaunched4",1,"FloorBeep4")
CDRL D 0 A_JumpIfInventory("ClashLaunched3",1,"FloorBeep3")
CDRL D 0 A_JumpIfInventory("ClashLaunched2",1,"FloorBeep2")
CDRL D 0 A_JumpIfInventory("ClashLaunched1",1,"FloorBeep1")
goto FloorBeep1
FloorBeep1:
CDRL GGGDDD 1 A_JumpIfInTargetInventory("ClashFlag1",1,"DetonateF") 
CDRL G 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DetonateF")
loop
FloorBeep2:
CDRL GGGDDD 1 A_JumpIfInTargetInventory("ClashFlag2",1,"DetonateF") 
CDRL G 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DetonateF")
loop
FloorBeep3:
CDRL GGGDDD 1 A_JumpIfInTargetInventory("ClashFlag3",1,"DetonateF") 
CDRL G 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DetonateF")
loop
FloorBeep4:
CDRL GGGDDD 1 A_JumpIfInTargetInventory("ClashFlag4",1,"DetonateF") 
CDRL G 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DetonateF")
loop

Ceiling:
CDRL E 12
CDRL E 0 A_JumpIfInventory("ClashLaunched4",1,"CeilingBeep4")
CDRL E 0 A_JumpIfInventory("ClashLaunched3",1,"CeilingBeep3")
CDRL E 0 A_JumpIfInventory("ClashLaunched2",1,"CeilingBeep2")
CDRL E 0 A_JumpIfInventory("ClashLaunched1",1,"CeilingBeep1")
goto CeilingBeep1
CeilingBeep1:
CDRL HHHEEE 1 A_JumpIfInTargetInventory("ClashFlag1",1,"DetonateC")
CDRL H 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DetonateC")
loop
CeilingBeep2:
CDRL HHHEEE 1 A_JumpIfInTargetInventory("ClashFlag2",1,"DetonateC")
CDRL H 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DetonateC")
loop
CeilingBeep3:
CDRL HHHEEE 1 A_JumpIfInTargetInventory("ClashFlag3",1,"DetonateC")
CDRL H 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DetonateC")
loop
CeilingBeep4:
CDRL HHHEEE 1 A_JumpIfInTargetInventory("ClashFlag4",1,"DetonateC")
CDRL H 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DetonateC")
loop

XDeath:
TNT1 A 1 A_SpawnItemEx("ClashBomb_MineDirectBoom",0,0,0,0,0,0,0,1)
stop
Detonate:
TNT1 A 1 A_SpawnItemEx("ClashBomb_MineDetonate",0,0,0,0,0,0,0,1)
stop
DetonateF:
TNT1 A 1 A_SpawnItemEx("ClashBomb_MineDetonate",0,0,16,0,0,0,0,1)
stop
DetonateC:
TNT1 A 1 A_SpawnItemEx("ClashBomb_MineDetonate",0,0,-16,0,0,0,0,1)
stop
}
}

actor ClashBomb_MineB : ClashBomb_Mine{Translation "192:192=205:205","198:198=74:74","202:202=205:205"}
actor ClashBomb_MineR : ClashBomb_Mine{Translation "192:192=54:54","198:198=41:41","202:202=54:54"}
actor ClashBomb_MineO : ClashBomb_Mine{Translation "192:192=104:104","198:198=128:128","202:202=104:104"}
actor ClashBomb_MineP : ClashBomb_Mine{Translation "192:192=229:229","198:198=232:232","202:202=229:229"}

actor ClashBomb_MineDirectBoom : BasicExplosion
{
DamageType "CrashM_Clash"
Obituary "$OB_CLASHBOMB"
+DONTREFLECT
+NOTARGETSWITCH
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySound("weapon/directcrash2")
TNT1 A 0 A_SpawnItemEx("ClashBomb_MineDirectBoomFX",0,0,0,0,0,0,0,1)
TNT1 A 4 A_Explode(15,72,0,0,12)
stop
}
}

actor ClashBomb_MineDirectBoomFX : BasicClientSide
{
ReactionTime 4
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_CountDown
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5")
Spawn1:
X_2V ABCD 1
goto Spawn
Spawn2:
X_2V EFGH 1
goto Spawn
Spawn3:
X_2V IJKL 1
goto Spawn
Spawn4:
X_2V MNOP 1
goto Spawn
Spawn5:
X_2V QRST 1
goto Spawn
}
}

actor ClashBomb_MineDetonate : ClashBomb_MineDirectBoom
{
DamageType "CrashM_Mine"
Obituary "$OB_CLASHBOMB"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySound("weapon/directclash")//weapon/directcrash
TNT1 A 0 A_SpawnItemEx("ClashBomb_MineDetonateFX",0,0,0,0,0,0,0,1)
TNT1 AAAA 9 A_Explode(20,86,0,0,20)
stop
}
}

actor ClashBomb_MineDetonateFX : BasicClientSide
{
States
{
Spawn:
X_2V ABCDEFGHIJKLMNOPQRSTEFGHIJKLMNOP 1
stop
/*
ABCD
4
EFGH
4
IZJZKL
1
MNOP
4
QZRZSZTZ
0
EZFZGZH
0
IZJZKL
1
MZNZOP
*/
}
}

actor ClashBomb_Timer
{
Translation "198:198=227:227","192:192=4:4","202:202=215:215"
PROJECTILE
DamageType "DMGNoHitstunHeal"
Obituary "$OB_CLASHBOMB"
+DONTREFLECT
+HITTRACER
damage (1)
Radius 7
Height 6
speed 50
scale 2.5
States
{
Spawn:
X_2E A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
X_2E A 1
wait
Death:
X_2E A 0 A_JumpIf(z-floorz<5,"Floor")
X_2E A 0 A_JumpIf(z-ceilingz==0-6,"Ceiling")
X_2E B 3 A_PlaySound("weapon/crashland")
X_2E C 3
X_2E DDDCCCDDDCCCDDDCCCDDDCCCDDDCCCDDDCCCDDDCCC 1 A_JumpIfInTargetInventory("ClashFlagT",1,"DeathDetonate")
TNT1 A 3 A_SpawnItemEx("ClashBomb_TimerDelayBoom",0,0,0,0,0,0,0,1)
stop
DeathDetonate:
TNT1 A 3 A_SpawnItemEx("ClashBomb_TimerDelayBoom2",0,0,0,0,0,0,0,1)
stop
Floor:
X_2E E 3 A_PlaySound("weapon/crashland")
X_2E F 3
X_2E GGGFFFGGGFFFGGGFFFGGGFFFGGGFFFGGGFFFGGGFFF 1 A_JumpIfInTargetInventory("ClashFlagT",1,"DeathDetonateF")
TNT1 A 3 A_SpawnItemEx("ClashBomb_TimerDelayBoom",0,0,16,0,0,0,0,1)
stop
DeathDetonateF:
TNT1 A 3 A_SpawnItemEx("ClashBomb_TimerDelayBoom2",0,0,16,0,0,0,0,1)
stop
Ceiling:
X_2E H 3 A_PlaySound("weapon/crashland")
X_2E I 3
X_2E JJJIIIJJJIIIJJJIIIJJJIIIJJJIIIJJJIIIJJJIII 1 A_JumpIfInTargetInventory("ClashFlagT",1,"DeathDetonateC")
TNT1 A 3 A_SpawnItemEx("ClashBomb_TimerDelayBoom",0,0,-16,0,0,0,0,1)
stop
DeathDetonateC:
TNT1 A 3 A_SpawnItemEx("ClashBomb_TimerDelayBoom2",0,0,-16,0,0,0,0,1)
stop

XDeath:
TNT1 A 0 Thing_ChangeTID(0,0)
X_2E B 0 A_PlaySound("weapon/crashland")
X_2E BBB 1 A_Warp(AAPTR_TRACER,0,0,28,180,0)
X_2E CCC 1 A_Warp(AAPTR_TRACER,0,0,28,180,0)
X_2E DDDCCCDDDCCCDDDCCCDDDCCCDDDCCC 1 A_Warp(AAPTR_TRACER,0,0,28,180,0)
X_2E D 0 A_PlaySound("weapon/BoobeamBeep")
X_2E DDD 1 A_Warp(AAPTR_TRACER,0,0,28,180,0)
X_2E C 0 A_PlaySound("weapon/BoobeamBeep")
X_2E CCC 1 A_Warp(AAPTR_TRACER,0,0,28,180,0)
X_2E D 0 A_PlaySound("weapon/BoobeamBeep")
X_2E DDD 1 A_Warp(AAPTR_TRACER,0,0,28,180,0)
X_2E C 0 A_PlaySound("weapon/BoobeamBeep")
X_2E CCC 1 A_Warp(AAPTR_TRACER,0,0,28,180,0)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"SDeath")
TNT1 A 3 A_SpawnItemEx("ClashBomb_TimerDirectBoom",0,0,0,0,0,0,0,1)
stop
SDeath:
TNT1 A 5 A_PlaySound("BaBH/Fart")
stop
}
}


actor ClashBomb_TimerB : ClashBomb_Timer{translation "192:192=205:205","198:198=74:74","202:202=205:205"}
actor ClashBomb_TimerR : ClashBomb_Timer{translation "192:192=54:54","198:198=41:41","202:202=54:54"}
actor ClashBomb_TimerO : ClashBomb_Timer{translation "192:192=104:104","198:198=128:128","202:202=104:104"}
actor ClashBomb_TimerP : ClashBomb_Timer{translation "192:192=229:229","198:198=232:232","202:202=229:229"}

actor DMGHealCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BlockShield",1,"Blockman")
TNT1 A 0 HealThing(1)
stop
Blockman:
TNT1 A 0 A_GiveInventory("BlockShield",1)
stop
}
}

actor ClashBomb_TimerDirectBoom : ClashBomb_MineDirectBoom
{
Obituary "$OB_CRASHBOMB"
//DamageType "Clash"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySound("weapon/directcrash2")
TNT1 A 0 A_SpawnItemEx("ClashBomb_TimerDirectBoomFX",0,0,0,0,0,0,0,1)
TNT1 A 4 A_Explode(18,72,0,0,72)
stop
}
}

actor ClashBomb_TimerDirectBoomFX : BasicClientSide
{
ReactionTime 4
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_CountDown
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4")
Spawn1:
CDRL KLM 1
goto Spawn
Spawn2:
CDRL MOP 1
goto Spawn
Spawn3:
CDRL QRS 1
goto Spawn
Spawn4:
CDRL TUV 1
goto Spawn
}
}

actor ClashBomb_TimerDelayBoom : ClashBomb_MineDirectBoom
{
Obituary "$OB_CRASHBOMB"
//DamageType "Clash"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySound("weapon/directclash2")
TNT1 A 0 A_SpawnItemEx("ClashBomb_TimerDelayBoomFX",0,0,0,0,0,0,0,1)
TNT1 AAAA 9 A_Explode(16,72,0,0,16)
stop
}
}

actor ClashBomb_TimerDelayBoom2 : ClashBomb_MineDirectBoom
{
Obituary "$OB_CRASHBOMB"
//DamageType "Clash"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySound("weapon/directcrash",1,0.9)
TNT1 A 0 A_SpawnItemEx("ClashBomb_TimerDelayBoomFX",0,0,0,0,0,0,0,1)
TNT1 AAAA 9 A_Explode(14,72,0,0,12)
stop
}
}

actor ClashBomb_TimerDelayBoomFX : BasicClientSide
{
States
{
Spawn:
CDRL KLMNOPQRSTUVW 3
stop
}
}


actor CrashmanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ClashBomb_Timer",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ClashBomb_TimerB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ClashBomb_TimerR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ClashBomb_TimerO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ClashBomb_TimerP",0,1,8,0)
goto Done
Done:
TNT1 A 0 A_TakeInventory("ClashAmmo",4)
stop
}
}

actor CrashmanAlt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ClashBomb_Mine",0,1,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ClashBomb_MineB",0,1,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ClashBomb_MineR",0,1,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ClashBomb_MineO",0,1,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ClashBomb_MineP",0,1,-8,0)
goto Done
Done:
TNT1 A 0 A_TakeInventory("ClashAmmo",7)
stop
}
}

