actor ShadowBladeBoss : BaseMM8BDMWep_CBM
{
Tag "$TAGC_3H"
dropitem "ShadowBladeWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Weapon.SlotNumber 1
Obituary "$OB_SHADOWBLADE"
weapon.ammotype "CloakAmmo"
weapon.ammotype2 "CaltropAmmo"
inventory.icon "Sha1Icon"
States
{
Spawn:
C_03 H 1
loop

Ready:
SHMH A 0 A_JumpIfInventory("CloakFlag",1,"ReadyInvis")
SHMH A 0 ACS_ExecuteAlways(998,0,DYE_SHADOWMAN)
SHMH A 0 A_GiveInventory("ShadowSlideSpawnDelay")
goto Ready2

Ready2:
SHMH A 0 A_JumpIfInventory("CloakAmmo",14,"Ready3")
SHMH A 5 A_WeaponReady(WRF_NOSECONDARY | WRF_ALLOWRELOAD)
SHMH A 0 A_GiveInventory("CaltropAmmo",2)
SHMH A 0 A_GiveInventory("A_GiveInventoryClockAmmo1",1)//A_GiveInventory("CloakAmmo",1)
loop
Ready3:
SHMH A 5 A_WeaponReady(WRF_ALLOWRELOAD)
SHMH A 0 A_GiveInventory("CaltropAmmo",2)
SHMH A 0 A_GiveInventory("A_GiveInventoryClockAmmo1",1)//A_GiveInventory("CloakAmmo",1)
loop

ReadyNoAmmo:
SHMH A 5 A_WeaponReady(WRF_NOFIRE)
SHMH A 0 A_GiveInventory("CaltropAmmo",2)
SHMH A 0 A_GiveInventory("A_GiveInventoryClockAmmo1",1)//A_GiveInventory("CloakAmmo",1)
goto Ready2

ReadyInvis:
SHMH A 0 A_GiveInventory("ShadowInvisSpeed",1)
SHMH A 0 A_GiveInventory("ShadowmanFlashState_P",1)
SHMH A 0 A_JumpIf(CallACS("ShadowCloakAmmoCheck")<1,"AltfireEnd")
SHMH A 1 A_WeaponReady
loop

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
SHMH A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SHMH A 1 A_Raise
Loop

Fire:
TNT1 A 0 A_GiveInventory("ShadowInvisCheck_P",1)
TNT1 A 0 A_GiveInventory("ShadowmanFlashInvisOff_P")
SHMH M 0 A_GiveInventory("VivifyDelay5",1)
SHMH A 0 A_PlaySoundEx("weapon/shadow","Weapon")
SHMH A 0 A_GiveInventory("ShadowmanMain_CI",1)
SHMH C 1
SHMH C 1 Offset(-10,68)
SHMH D 1 Offset(-20,128)
SHMH X 1 Offset(-30,188)
TNT1 A 4 Offset(-12,69)
TNT1 A 3
SHMH A 1 Offset(-1,48)
SHMH A 8 A_WeaponReady(14)
goto Ready2

Altfire:
SHMH AA 0 A_JumpIfInventory("ShadowSlideSpawnDelay",1,"Ready2")
SHMH AA 1 A_JumpIf(CallACS("ShadowCloakAmmoCheck")==28,"Altfire2")
goto AltfireSlide
AltfireSlide:
SHMH A 0 A_GiveInventory("ShadowmanSliding_P",1)
SHMH A 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_A") == 1, 1)
SHMH A 1
SHMH A 0 A_GunFlash("Flash_Slide")
SHMH A 0 ACS_NamedExecuteWithResult("BULL_SetState",2)
SHMH A 0 ACS_NamedExecuteWithResult("gondola_cloakplayer", 0, false)
QBUS G 0 A_ChangeFlag("SOLID",0)
SHMH G 0 A_TakeInventory("CloakFlag",999)
SHMH STU 1 A_GiveInventory("ShadowmanFlashInvisOff_P",1)
SHMH U 1 Offset(2,32)
SHMH U 1 Offset(2,30)
SHMH U 1 Offset(-2,32)
SHMH U 1 Offset(-2,30)
SHMH U 1 Offset(2,32)
SHMH U 1 Offset(2,30)
SHMH U 1 Offset(-2,32)
SHMH U 1 Offset(-2,30)
SHMH U 1 Offset(2,32)
SHMH U 1 Offset(2,30)
SHMH U 1 Offset(-2,32)
SHMH U 1 Offset(-2,30)
SHMH U 1 Offset(2,32)
SHMH U 1 Offset(2,30)A_TakeInventory("ShadowSlideButLame",1)
SHMH U 1 Offset(-2,32)A_TakeInventory("ShadowSlide",1)
QBUS G 0 A_SpawnItemEx("ResolidifyPlayer_H")
SHMH UUTTSS 1 A_WeaponReady(14)
SHMH B 1
goto Ready2
Altfire2:
TNT1 A 0 A_PlaySound("weapon/Shad_Poof",1,0.5,0,1.3)
SHAH A 0 A_SpawnItemEx("ShadowCloakSmoke_H",0,0,28,0,0,0,0,1)
SHMH A 1 A_SetTranslucent(0.67,0)
SHMH A 1 A_SetTranslucent(0.33,0)
SHMH AA 1 A_GiveInventory("ShadowmanFlashInvisOn_P",1)
SHMH A 0 ACS_NamedExecuteWithResult("gondola_cloakplayer", 0, true)
SHMH A 0 A_GiveInventory("A_TakeInventoryClockAmmo1",1)//A_TakeInventory("CloakAmmo",1)
goto ReadyInvis

AltfireEnd:
SHMH A 0 ACS_NamedExecuteWithResult("gondola_cloakplayer", 0, false)
SHMH A 0 A_SpawnItemEx("ShadowCloakSmokeEndFX",0,0,28,0,0,0,0,1)
SHMH B 0 A_GiveInventory("A_TakeInventoryClockAmmo1",1)//A_TakeInventory("CloakAmmo",1)
SHMH A 1 A_GiveInventory("ShadowmanFlashInvisOff_P")
goto Ready2

Reload:
SHMH M 0 A_JumpIfInventory("CaltropAmmo",35,1)
goto ReadyNoAmmo
SHMH M 0 A_PlaySound("weapon/Shad_Kunai",1,0.75)
TNT1 A 0 ACS_NamedExecute("BULL_SetState",0,1)
SHMH M 0 A_TakeInventory("ShadowSlide",1)
SHMH M 0 A_TakeInventory("CaltropAmmo",35)
SHMH M 0 A_GiveInventory("VivifyDelay5",1)
SHMH M 0 A_GiveInventory("ShadowmanMain2_CI",1)
SHMH V 1
SHMH W 1
SHMH G 1
SHMH K 1
SHMH L 1
SHMH M 1
TNT1 A 1 OffSet(110,69)
TNT1 A 1
SHMH A 1 OffSet(55,48)
SHMH A 1 A_WeaponReady(14)
Goto Ready2

Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1
loop
Flash_Slide:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
SHMH N 2
SHMH P 1
SHMH R 15
SHMH P 1
SHMH P 1
SHMH N 2
goto Flash
}
}

actor ShadowBladerBoss : BaseMM8BDMWep_CBM
{
Tag "$TAGC_3H2"
dropitem "ShadowBladeWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Weapon.SlotNumber 2
Obituary "$OB_SHADOWKUNAI"
weapon.ammotype "CloakAmmo"
weapon.ammotype2 "CaltropAmmo"
inventory.icon "Sha2Icon"
+WEAPON.NOAUTOAIM
States
{
Spawn:
C_03 H 1
loop

Ready:
SHMH A 0 A_JumpIfInventory("CloakFlag",1,"ReadyInvis")
SHMH B 0 ACS_ExecuteAlways(998,0,DYE_SHADOWMAN)
SHMH B 0 A_GiveInventory("ShadowSlideSpawnDelay",1)//A_GunFlash
goto Ready2

Ready2:
SHMH B 0 A_JumpIfInventory("CloakAmmo",14,"Ready3")
SHMH B 5 A_WeaponReady(WRF_NOSECONDARY | WRF_ALLOWRELOAD)
SHMH B 0 A_GiveInventory("CaltropAmmo",2)
SHMH B 0 A_GiveInventory("A_GiveInventoryClockAmmo1",1)//A_GiveInventory("CloakAmmo",1)
loop
Ready3:
SHMH B 5 A_WeaponReady(WRF_ALLOWRELOAD)
SHMH B 0 A_GiveInventory("CaltropAmmo",2)
SHMH B 0 A_GiveInventory("A_GiveInventoryClockAmmo1",1)//A_GiveInventory("CloakAmmo",1)
loop

ReadyNoAmmo:
SHMH B 5 A_WeaponReady(WRF_NOFIRE)
SHMH B 0 A_GiveInventory("CaltropAmmo",2)
SHMH B 0 A_GiveInventory("A_GiveInventoryClockAmmo1",1)//A_GiveInventory("CloakAmmo",1)
goto Ready2

ReadyInvis:
SHMH B 0 A_GiveInventory("ShadowInvisSpeed",1)
SHMH B 0 A_GiveInventory("ShadowmanFlashState_P",1)
SHMH B 0 A_JumpIf(CallACS("ShadowCloakAmmoCheck")<1,"AltfireEnd")
SHMH B 1 A_WeaponReady
loop

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
SHMH B 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SHMH B 1 A_Raise
Loop

Fire:
TNT1 A 0 A_GiveInventory("ShadowInvisCheck_P",1)
TNT1 A 0 A_GiveInventory("ShadowmanFlashInvisOff_P")
SHMH B 0 A_PlaySound("weapon/Shad_Kunai",1,0.75)
SHMH E 1 A_GiveInventory("ShadowmanMain3L_CI",1)
SHMH F 1
SHMH B 0 A_PlaySound("weapon/Shad_Kunai",1,0.75)
SHMH G 1 A_GiveInventory("ShadowmanMain3_CI",1)
SHMH H 1 
SHMH B 0 A_PlaySound("weapon/Shad_Kunai",1,0.75)
SHMH I 1 A_GiveInventory("ShadowmanMain3R_CI",1)
SHMH J 1
TNT1 A 6 OffSet(110,69)
TNT1 A 5 
SHMH B 1 OffSet(55,48)
SHMH B 6 A_WeaponReady(14) //22
Goto Ready2

Altfire:
SHMH BB 0 A_JumpIfInventory("ShadowSlideSpawnDelay",1,"Ready2")
SHMH BB 1 A_JumpIf(CallACS("ShadowCloakAmmoCheck")==28,"Altfire2")
goto AltfireSlide
AltfireSlide:
SHMH B 0 A_GiveInventory("ShadowmanSliding_P",1)
SHMH G 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_A") == 1, 1)
SHMH B 1
SHMH B 0 A_GunFlash("Flash_Slide")
SHMH B 0 ACS_NamedExecuteWithResult("BULL_SetState",2)
SHMH B 0 ACS_NamedExecuteWithResult("gondola_cloakplayer", 0, false)
QBUS G 0 A_ChangeFlag("SOLID",0)
SHMH STU 1 A_GiveInventory("ShadowmanFlashInvisOff_P",1)
SHMH U 1 Offset(2,32)
SHMH U 1 Offset(2,30)
SHMH U 1 Offset(-2,32)
SHMH U 1 Offset(-2,30)
SHMH U 1 Offset(2,32)
SHMH U 1 Offset(2,30)
SHMH U 1 Offset(-2,32)
SHMH U 1 Offset(-2,30)
SHMH U 1 Offset(2,32)
SHMH U 1 Offset(2,30)
SHMH U 1 Offset(-2,32)
SHMH U 1 Offset(-2,30)
SHMH U 1 Offset(2,32)
SHMH U 1 Offset(2,30)A_TakeInventory("ShadowSlideButLame",1)
SHMH U 1 Offset(-2,32)A_TakeInventory("ShadowSlide",1)
QBUS G 0 A_SpawnItemEx("ResolidifyPlayer_H")
SHMH UUTTSS 1 A_WeaponReady(14)
SHMH B 1
goto Ready2
Altfire2:
TNT1 A 0 A_PlaySound("weapon/Shad_Poof",1,0.5,0,1.3)
SHAH B 0 A_SpawnItemEx("ShadowCloakSmoke_H",0,0,28,0,0,0,0,1)
SHMH A 0 ACS_NamedExecuteWithResult("gondola_cloakplayer", 0, true)
SHMH B 1 A_SetTranslucent(0.67,0)
SHMH B 1 A_SetTranslucent(0.33,0)
SHMH BB 1 A_GiveInventory("ShadowmanFlashInvisOn_P",1)
SHMH B 0 A_GiveInventory("A_TakeInventoryClockAmmo1",1)//A_TakeInventory("CloakAmmo",1)
goto ReadyInvis

AltfireEnd:
SHMH A 0 ACS_NamedExecuteWithResult("gondola_cloakplayer", 0, false)
SHMH A 0 A_SpawnItemEx("ShadowCloakSmokeEndFX",0,0,28,0,0,0,0,1)
SHMH B 0 A_GiveInventory("A_TakeInventoryClockAmmo1",1)//A_TakeInventory("CloakAmmo",1)
SHMH A 1 A_GiveInventory("ShadowmanFlashInvisOff_P")
goto Ready2

Reload:
SHMH M 0 A_JumpIfInventory("CaltropAmmo",35,1)
goto ReadyNoAmmo
SHMH M 0 A_PlaySound("weapon/Shad_Kunai",1,0.75)
TNT1 A 0 ACS_NamedExecute("BULL_SetState",0,1)
SHMH M 0 A_TakeInventory("ShadowSlide",1)
SHMH M 0 A_TakeInventory("CaltropAmmo",35)
SHMH M 0 A_GiveInventory("VivifyDelay5",1)
SHMH M 0 A_GiveInventory("ShadowmanMain2_CI",1)
SHMH V 1
SHMH W 1
SHMH G 1
SHMH K 1
SHMH L 1
SHMH M 1
TNT1 A 1 OffSet(110,69)
TNT1 A 1
SHMH A 1 OffSet(55,48)
SHMH A 1 A_WeaponReady(14)
Goto Ready2

Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1
loop
Flash_Slide:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
SHMH N 2
SHMH P 1
SHMH R 15
SHMH P 1
SHMH P 1
SHMH N 2
goto Flash
}
}

ACTOR A_GiveInventoryClockAmmo1 : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 1 A_GiveInventory("CloakAmmo",1)
Stop
}
} 
 
ACTOR A_TakeInventoryClockAmmo1 : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 1 A_TakeInventory("CloakAmmo",1)
Stop
}
}

ACTOR A_TakeInventoryClockAmmo7 : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 1 A_TakeInventory("CloakAmmo",7)
Stop
}
}

actor ShadowCloakSmokeStartFX : BasicExplosion
{
RenderStyle Translucent
Alpha 0.75
ReactionTime 8
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2")
Spawn1:
SHAH W 2 //A_Warp(AAPTR_TARGET,momx,momy,momz+28,0,24)
TNT1 A random(1,2)
SHAH W 2 //A_Warp(AAPTR_TARGET,momx,momy,momz+28,0,24)
TNT1 A random(1,2)
SHAH W 2 //A_Warp(AAPTR_TARGET,momx,momy,momz+28,0,24)
TNT1 A random(1,2)
SHAH V 2 //A_Warp(AAPTR_TARGET,momx,momy,momz+28,0,24)
TNT1 A random(1,2)
SHAH U 2 //A_Warp(AAPTR_TARGET,momx,momy,momz+28,0,24)
stop
Spawn2:
SHAH Z 2 //A_Warp(AAPTR_TARGET,momx,momy,momz+28,0,24)
TNT1 A random(1,2)
SHAH Z 2 //A_Warp(AAPTR_TARGET,momx,momy,momz+28,0,24)
TNT1 A random(1,2)
SHAH Z 2 //A_Warp(AAPTR_TARGET,momx,momy,momz+28,0,24)
TNT1 A random(1,2)
SHAH Y 2 //A_Warp(AAPTR_TARGET,momx,momy,momz+28,0,24)
TNT1 A random(1,2)
SHAH X 2 //A_Warp(AAPTR_TARGET,momx,momy,momz+28,0,24)
stop
}
}

actor ShadowCloakSmokeEndFX : BasicExplosion
{
RenderStyle Translucent
Alpha 0.75
ReactionTime 8
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySound("weapon/Shad_Poof",1,1.0)
Spawn1:
SHAH WVU 2
stop
}
}

actor ShadowCloakSmokeFX : BasicClientSide
{
RenderStyle Translucent
Alpha 0.75
ReactionTime 8
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetScale(ScaleX+frandom(-1,1))
TNT1 A 0 A_Jump(256,"Spawn0","Spawn2")
Spawn0:
TNT1 A 0
TNT1 A 0 A_CountDown
TNT1 A 0 A_Jump(256,"S1.U","S1.V","S1.W")
S1.U:
SHAH U 2
goto Spawn0
S1.V:
SHAH V 2
goto Spawn0
S1.W:
TNT1 A 2
goto Spawn1
Spawn1:
TNT1 A 0
TNT1 A 0 A_CountDown
TNT1 A 0 A_Jump(256,"S1.U","S1.V")
goto S1.U

Spawn2:
TNT1 A 0
TNT1 A 0 A_CountDown
TNT1 A 0 A_Jump(256,"S1.X","S1.Y","S1.Z")
S1.X:
SHAH X 2
goto Spawn2
S1.Y:
SHAH Y 2
goto Spawn2
S1.Z:
TNT1 A 2
goto Spawn3
Spawn3:
TNT1 A 0
TNT1 A 0 A_CountDown
TNT1 A 0 A_Jump(256,"S1.X","S1.Y")
goto S1.X
}
}

actor ShadowCloakSmoke_H : BasicHelper
{
ReactionTime 35
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Warp(2,0,0,28,0,8)
TNT1 A 1 A_SpawnItemEx("ShadowCloakSmokeFX",random(-15,15),random(-20,20),random(-28,42),0,0,0,0,33)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 1
stop
}
}

actor ShadowCloakSmokePain_H : ShadowCloakSmoke_H{ReactionTime 15}

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

actor CaltropAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 140
+INVENTORY.IGNORESKILL
}

actor CloakFlag : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor ShadowItemCheck : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

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

actor PowerShadowmanInvis : Inventory {
inventory.maxamount 1
}

actor ShadowSlide : PowerSpeed
{
Speed 1.0
Powerup.Duration 35
}

actor ShadowSlideSpawnDelay : PowerUp
{
Powerup.Duration 25
}

actor ShadowSlideButLame : PowerSpeed
{
Speed 1.0
Powerup.Duration 35
+POWERSPEED.NOTRAIL
}

actor ShadowInvisSpeed : PowerSpeed
{
Speed 1.6
Powerup.Duration 3
+POWERSPEED.NOTRAIL
}

actor ShadowCaltropBleed_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("ShadowCaltropBleed")
stop
}
}

actor ShadowCaltropBleed : PowerSpeed
{
+ADDITIVETIME
Speed 0.2
Powerup.Duration 15
+POWERSPEED.NOTRAIL
}

actor ShadowmanFlashState_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CloakFlag",1,"Pickup2")
stop
Pickup2:
TNT1 A 0 A_SpawnItemEx("CloakVisualSpawner",0,0,0,momx,momy,momz,0,9,0)
TNT1 A 0 A_GiveInventory("CloakFlagDelay",1)
TNT1 A 0 A_JumpIfInventory("CloakFlagDelay",4,"Pickup3")
stop
Pickup3:
TNT1 A 0 A_GiveInventory("A_TakeInventoryClockAmmo1",1)//A_TakeInventory("CloakAmmo",1)
TNT1 A 0 A_TakeInventory("CloakFlagDelay",999)
stop
}
}

actor ShadowmanSliding_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CloakFlag",1,"Pickup2")
SHMH M 0 A_GiveInventory("ShadowSlideButLame",1)
TNT1 A 0 A_ChangeVelocity(40,0,momz,3)
TNT1 A 0 A_TakeInventory("CloakAmmo",14)
TNT1 A 0 A_PlaySoundEx("weapon/shadowmanslide","Weapon")
stop
Pickup2:
SHMH M 0 A_GiveInventory("ShadowSlide",1)
TNT1 A 0 A_ChangeVelocity(50,0,momz,3)
TNT1 A 0 A_TakeInventory("CloakAmmo",14)
TNT1 A 0 A_PlaySoundEx("weapon/shadowmanslide","Weapon")
stop
}
}

actor ShadowInvisCheck_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CloakFlag",1,"Pickup2")
stop
Pickup2:
TNT1 A 0 A_SpawnItemEx("ShadowCloakSmokeEndFX",0,0,28,0,0,0,0,1)
TNT1 A 0 A_TakeInventory("CloakFlag",1)
TNT1 A 0 A_GiveInventory("A_TakeInventoryClockAmmo7",1)//A_TakeInventory("CloakAmmo",7)
stop
}
}

actor ShadowmanFlashInvisOn_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("CloakFlag",1)
TNT1 A 0 A_ChangeFlag("CANTSEEK",1)
TNT1 A 0 A_ChangeFlag("DONTSPLASH",1)
TNT1 A 0 A_ChangeFlag("DONTIDENTIFYTARGET",1)
TNT1 A 0 A_SetTranslucent(0.0,0)
stop
}
}

actor ShadowmanFlashInvisOff_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("CloakFlag",1)
TNT1 A 0 A_ChangeFlag("CANTSEEK",0)
TNT1 A 0 A_ChangeFlag("DONTSPLASH",0)
TNT1 A 0 A_ChangeFlag("DONTIDENTIFYTARGET",0)
TNT1 A 0 A_SetTranslucent(1.0,0)
stop
}
}

actor ShadowBladeCBM : ShadowBlade 
{
translation "202:202=4:4", "199:199=210:210"
var int user_dmg; 
Damage (18-user_dmg)//16
damagetype "ShadowM_Blade1"
Radius 10
Height 14
Speed 40
Scale 3
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SHAH OOOPPPOOOPPP 1
SHAH O 0 A_ScaleVelocity(-1)
TNT1 A 0 A_SetUserVar("user_dmg",12)
SHAH O 0 A_SetDamageType("DMGNoHitstun")
SHAH OOOPPPOOOPPP 1
stop
XDeath:
TNT1 A 1
stop
Death:
TNT1 A 1 A_SpawnItemEx("ShadowBladeCBMDead",0,0,0,0,0,0,0,1)
stop
}
}

actor ShadowBladeCBMB : ShadowBladeCBM{translation "202:202=205:205", "199:199=74:74"}
actor ShadowBladeCBMR : ShadowBladeCBM{translation "202:202=171:171", "199:199=41:41"}
actor ShadowBladeCBMO : ShadowBladeCBM{translation "202:202=104:104", "199:199=128:128"}
actor ShadowBladeCBMP : ShadowBladeCBM{translation "202:202=229:229", "199:199=232:232"}

actor ShadowBladeCBMDead : ShadowBladeCBM
{
+DONTSPLASH
-RIPPER
Damage (24)
Speed 0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SHAH O 0 
SHAH O 1 A_Jump(256,"A","B")
A:
SHAH O 105
SHAH O 0 A_ChangeFlag("NOINTERACTION",1)
SHAH O 0 A_ChangeFlag("MISSILE",0)
goto End1
B:
SHAH P 105
SHAH P 0 A_ChangeFlag("NOINTERACTION",1)
SHAH P 0 A_ChangeFlag("MISSILE",0)
goto End2
End1:
SHAH O 2 A_Fadeout(0.1)
loop
End2:
SHAH P 2 A_Fadeout(0.1)
loop
Death:
TNT1 A 1
stop
}
}

actor ShadowM_Blade1Protect : PowerProtection
{
Powerup.Duration 10
DamageFactor "ShadowM_Blade1", 0.34
}

actor ShadowKunaiBlade
{
Translation "250:250=87:87","249:249=93:93"
PROJECTILE
damagetype "DMGNoHitstun"
Obituary "$OB_SHADOWKUNAI"
Damage (7)
Radius 8
Height 8
Speed 50
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SHAH Q 10
SHAH Q 1 A_ChangeFlag(NOGRAVITY,FALSE)
loop
XDeath:
TNT1 A 1
stop
Death:
TNT1 A 0 A_PlaySound("wep/shieldtink",1,0.6)
TNT1 A 2 A_SpawnItemEx("ShadowKunaiBladeFX",0,0,0,-3,0,2,0,1)
stop
XDeath:
TNT1 A 0 A_PlaySound("wep/shieldtink",1,0.5)
TNT1 A 2
stop
}
}

actor ShadowNoReturnBlade : ShadowKunaiBlade
{
translation "192:192=4:4"
//damage (8)
damage (5)
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SHAH MNMN 3
loop
}
}

actor ShadowKunaiBladeB : ShadowKunaiBlade{translation "250:250=196:196","249:249=75:75"}
actor ShadowKunaiBladeR : ShadowKunaiBlade{translation "250:250=170:170","249:249=43:43"}
actor ShadowKunaiBladeO : ShadowKunaiBlade{translation "250:250=138:138","249:249=131:131"}
actor ShadowKunaiBladeP : ShadowKunaiBlade{translation "250:250=214:214","249:249=223:223"}


actor ShadowKunaiBlade2 : ShadowKunaiBlade
{
damage (10)
}

actor ShadowKunaiBlade2B : ShadowKunaiBladeB{damage (9)}
actor ShadowKunaiBlade2R : ShadowKunaiBladeR{damage (9)}
actor ShadowKunaiBlade2O : ShadowKunaiBladeO{damage (9)}
actor ShadowKunaiBlade2P : ShadowKunaiBladeP{damage (9)}

actor ShadowKunaiBladeFX
{
+MISSILE
+THRUACTORS
+CLIENTSIDEONLY
Gravity 1.25
Radius 2
Height 2
scale 2.5
States
{
Spawn:
SHAH Q 1
TNT1 A 1
loop
}
}

actor CloakVisualSpawner
{
scale 2.5
Radius 1
Height 1
-SOLID
+NOGRAVITY
+NOINTERACTION
+DONTBLAST
RenderStyle "Translucent"
Alpha 0.6
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==-1,"Spawn2")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==0,"Blue")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==1,"Red")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==2,"Orange")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(143,0)==3,"Purple")
Spawn2:
TNT1 A 1
stop
Blue:
TNT1 A 0 A_SpawnItemEx("CloakVisualB",0,0,60,momx,momy,momz,0,9)
TNT1 A 1
stop
Red:
TNT1 A 0 A_SpawnItemEx("CloakVisualR",0,0,60,momx,momy,momz,0,9)
TNT1 A 1
stop
Orange:
TNT1 A 0 A_SpawnItemEx("CloakVisualO",0,0,60,momx,momy,momz,0,9)
TNT1 A 1
stop
Purple:
TNT1 A 0 A_SpawnItemEx("CloakVisualP",0,0,60,momx,momy,momz,0,9)
TNT1 A 1
stop
}
}

actor CloakVisualB : CloakVisualSpawner
{
Translation "56:56=85:85","192:192=205:205","198:198=74:74","195:195=74:74","199:199=74:74","202:202=205:205","204:204=205:205","249:249=75:75","250:250=196:196"
//+CLIENTSIDEONLY
+NONETID
VisibleToTeam 0
states
{
Spawn:
SHAM J 0
SHAM J 1
stop
}
}

actor CloakVisualR : CloakVisualB
{
Translation "56:56=85:85","192:192=171:171","198:198=41:41","195:195=41:41","199:199=41:41","202:202=171:171","204:204=171:171","249:249=43:43","250:250=170:170"
VisibleToTeam 1
}

actor CloakVisualO : CloakVisualB
{
Translation "56:56=85:85","192:192=104:104","198:198=128:128","195:195=128:128","199:199=128:128","202:202=104:104","204:204=104:104","249:249=131:131","250:250=138:138"
VisibleToTeam 2
}

actor CloakVisualP : CloakVisualB
{
Translation "56:56=85:85","192:192=229:229","198:198=232:232","195:195=232:232","199:199=232:232","202:202=229:229","204:204=229:229","249:249=223:223","250:250=214:214"
VisibleToTeam 3
}

actor ShadowCaltropToss_H : BasicHelper
{
translation "202:202=4:4", "199:199=210:210"
Speed 1
States
{
Spawn:
TNT1 A 0
TNT1 A 2 A_SpawnItemEx("ShadowCaltropToss",0,0,0,momx*frandom(25,25),momy*frandom(25,25),momz*frandom(25,25),0,9)
stop
}
}

actor ShadowCaltropToss_HB : ShadowCaltropToss_H{translation "202:202=205:205", "199:199=74:74"}
actor ShadowCaltropToss_HR : ShadowCaltropToss_H{translation "202:202=171:171", "199:199=41:41"}
actor ShadowCaltropToss_HO : ShadowCaltropToss_H{translation "202:202=104:104", "199:199=128:128"}
actor ShadowCaltropToss_HP : ShadowCaltropToss_H{translation "202:202=229:229", "199:199=232:232"}

actor ShadowCaltropTossX_H : BasicHelper
{
translation "202:202=4:4", "199:199=210:210"
Speed 1
States
{
Spawn:
TNT1 A 0
TNT1 A 2 A_SpawnItemEx("ShadowCaltropTossInvis",0,0,0,momx*frandom(25,25),momy*frandom(25,25),momz*frandom(25,25),0,9)
stop
}
}

actor ShadowCaltropTossX_HB : ShadowCaltropTossX_H{translation "202:202=205:205", "199:199=74:74"}
actor ShadowCaltropTossX_HR : ShadowCaltropTossX_H{translation "202:202=171:171", "199:199=41:41"}
actor ShadowCaltropTossX_HO : ShadowCaltropTossX_H{translation "202:202=104:104", "199:199=128:128"}
actor ShadowCaltropTossX_HP : ShadowCaltropTossX_H{translation "202:202=229:229", "199:199=232:232"}

actor ShadowCaltropToss
{
PROJECTILE
damagetype "DMGNoHitstun"
Obituary "$OB_SHADOWCALTROPX"
-NOGRAVITY
//+THRUACTORS
//+THRUGHOST
+DONTREFLECT
+DONTSPLASH
+BOUNCEONWALLS
+BOUNCEONFLOORS
+BOUNCEONCEILINGS
bouncefactor 0.40
wallbouncefactor 0.55
BounceCount 4
gravity 0.90
Damage (3)
Radius 16
Height 16
Speed 26
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 0
TNT1 A 0 ThrustThingZ(0,random(15,21),0,1)
TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
Spawn1:
SHAX YZOPQRST 2
loop
Spawn2:
SHAX TSRQPOZY 2
loop
XDeath:
Crash:
TNT1 A 0
TNT1 A 1
stop
Death:
TNT1 A 0 A_SpawnItemEx("ShadowCaltropTossX",0,0,0,0,0,0,0,1)
TNT1 A 1
stop
}
}

actor ShadowCaltropTossX
{
PROJECTILE
damagetype "ShadowM_Caltrop"
Obituary "$OB_SHADOWCALTROP"
-NOGRAVITY
+THRUGHOST
+DONTBLAST
Bouncetype Hexen
-BOUNCEONFLOORS
-BOUNCEONWALLS
-ALLOWBOUNCEONACTORS
+DONTSPLASH
+NOEXPLODEFLOOR
+STEPMISSILE
+NOTARGETSWITCH
+HITTRACER
maxstepheight 24
BounceCount 1
BounceFactor 1.0
WallBounceFactor 0.15
gravity 1.0
ReactionTime 61
Damage (9)
Radius 16
Height 16
speed 20
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SHAX Y 0
SHAX Y 0 A_PlaySound("DuckHunt/Flap",1,0.85)
SHAX Y 6 A_CountDown
wait
XDeath:
Crash:
TNT1 A 1 A_PlaySound("S3_K/Spikes",1,0.65)
stop
Death:
TNT1 A 1
stop
}
}

actor ShadowCaltropTossInvis
{
PROJECTILE
damagetype "ShadowM_Caltrop"
Obituary "$OB_SHADOWCALTROPX"
-NOGRAVITY
//+THRUACTORS
//+THRUGHOST
+DONTREFLECT
+DONTSPLASH
+BOUNCEONWALLS
+BOUNCEONFLOORS
+BOUNCEONCEILINGS
bouncefactor 0.40
wallbouncefactor 0.55
BounceCount 4
gravity 0.90
Damage (1)
Radius 16
Height 16
Speed 26
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 0
TNT1 A 0 ThrustThingZ(0,random(15,21),0,1)
TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
Spawn1:
SHAX YZOPQRST 2
loop
Spawn2:
SHAX TSRQPOZY 2
loop
XDeath:
Crash:
TNT1 A 0
TNT1 A 1
stop
Death:
TNT1 A 0 A_SpawnItemEx("ShadowCaltropTossInvisX",0,0,0,0,0,0,0,1)
TNT1 A 1
stop
}
}

actor ShadowCaltropTossInvisX
{
PROJECTILE
damagetype "ShadowM_Caltrop"
Obituary "$OB_SHADOWCALTROP"
-NOGRAVITY
+THRUGHOST
+DONTBLAST
Bouncetype Hexen
-BOUNCEONFLOORS
-BOUNCEONWALLS
-ALLOWBOUNCEONACTORS
+DONTSPLASH
+NOEXPLODEFLOOR
+STEPMISSILE
maxstepheight 24
BounceCount 1
BounceFactor 1.0
WallBounceFactor 0.15
gravity 1.0
ReactionTime 61
Damage (10)
Radius 16
Height 16
speed 20
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
SHAX Y 0
SHAX Y 0 A_PlaySound("DuckHunt/Flap",1,0.85)
SHAX Y 6 A_CountDown
wait
XDeath:
Crash:
TNT1 A 1 A_PlaySound("S3_K/Spikes",1,0.65)
stop
Death:
TNT1 A 1
stop
}
}

actor ShadowmanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ShadowBladeCBM",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ShadowBladeCBMB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ShadowBladeCBMR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ShadowBladeCBMO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ShadowBladeCBMP",0,1,8,0)
goto Done
}
}

actor ShadowmanMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_H",-10,0,0,0)
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_H",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_H",10,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HB",-10,0,0,0)
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HB",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HB",10,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HR",-10,0,0,0)
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HR",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HR",10,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HO",-10,0,0,0)
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HO",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HO",10,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HP",-10,0,0,0)
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HP",0,0,0,0)
TNT1 A 0 A_FireCustomMissile("ShadowCaltropToss_HP",10,0,0,0)
goto Done
}
}

actor ShadowmanMain3L_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBlade",2,0,-5,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeB",2,0,-5,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeR",2,0,-5,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeO",2,0,-5,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeP",2,0,-5,0)
goto Done
}
}

actor ShadowmanMain3_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBlade",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeP",0,0,0,0)
goto Done
}
}

actor ShadowmanMain3R_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBlade",-2,0,5,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeB",-2,0,5,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeR",-2,0,5,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeO",-2,0,5,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ShadowKunaiBladeP",-2,0,5,0)
goto Done
}
}
