actor Slashman_W : BaseMM8BDMWep_CBM
{
tag "$TAGC_7F"
dropitem "SlashClawWep"
Weapon.AmmoUse 0
Weapon.AmmoGive 56
Weapon.AmmoUse2 0
Weapon.AmmoGive2 0
Obituary "$OB_SLASHCLAW"
Inventory.Pickupmessage "Power up! Slash Claw!"
weapon.ammotype "GeppouAmmo"
weapon.ammotype2 "AdamantiumAmmo"
States
{
Spawn:
C_07 F 1
loop

Deselect:
SLSA A 0
goto DeselectSwap
Select:
SLSA A 0
goto SelectSwap

Ready:
SLSA A 0 ACS_NamedExecuteWithResult("core_weaponcolor",DYE_SLASHMAN)
goto Ready1
Ready1:
SLSA A 2 A_GiveInventory("Slashman_Ready_P")
SLSA A 0 A_GiveInventory("Slashman_ReadyAmmo_P")
loop

//SLSA D LIMIT IS  -7

Fire:

SLSA B 1 offset(15,47)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA B 1 offset(30,62)
SLSA B 1 offset(45,77)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA B 1 offset(60,92)

SLSA B 0 A_GiveInventory("Slashman_Fire_P")

SLSA C 1 offset(30,73)
SLSA C 1 offset(3,54)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA C 1 offset(-21,35)
SLSA D 1 offset(-16,35)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA D 1 offset(-24,19)
SLSA D 1 offset(-18,4)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA D 8 offset(-9,-6)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA D 1 offset(-7,-1)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA D 1 offset(-5,5)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA B 1 offset(-4,-5)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA B 1 offset(-3,2)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA B 1 offset(-2,9)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA B 1 offset(-1,15)A_GiveInventory("SlashDashAmmoCheck",1)

SLSA A 1 offset(-5,17)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA A 1 offset(-4,22)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-3,26)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA A 1 offset(-2,29)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-1,31)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA A 0 A_GiveInventory("SlashDashAmmoCheck",1)
Goto Ready1

Fire2:
SLSA A 1 offset(15,47)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA A 1 offset(30,62)
SLSA A 1 offset(45,77)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA B 1 offset(91,-33)
SLSA B 0 A_GiveInventory("Slashman_Fire_P")
goto SlashEnd
SlashEnd:
SLSA A 0 A_JumpIfInventory("PlayerPropertyRage",1,"SlashEndR")
SLSA B 1 offset(45,-18)
SLSA B 1 offset(1,-3)
SLSA B 1 offset(-14,12)
SLSA B 1 offset(-29,27)
SLSA B 1 offset(-44,42)
SLSA B 1 offset(-59,57)
SLSA B 1 offset(-79,77)
SLSA B 1 offset(-99,97)
SLSA B 1 offset(-119,117)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA B 1 offset(-139,137)
SLSA A 1 offset(-20,132)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-18,122)
SLSA A 1 offset(-16,112)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-14,102)
SLSA A 1 offset(-12,92)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-10,82)
SLSA A 1 offset(-8,72)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-6,62)
SLSA A 1 offset(-4,52)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-2,42)
Goto Ready1
SlashEndR:
SLSA B 1 offset(45,-18)
SLSA B 1 offset(-14,12)
SLSA B 1 offset(-44,42)
SLSA B 1 offset(-79,77)
SLSA B 1 offset(-119,117)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-20,132)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-16,112)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-12,92)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-8,72)A_GiveInventory("SlashDashAmmoCheck",1)
SLSA A 1 offset(-4,52)A_GiveInventory("SlashDashAmmoCheck",1)
Goto Ready1

Altfire:
SLSA B 1 A_GiveInventory("Slashman_Alt_P")
SLSA B 1 offset(15,47)A_GiveInventory("AdamantiumAmmo",2)
SLSA B 1 offset(30,62)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA B 1 offset(45,77)A_GiveInventory("AdamantiumAmmo",2)
SLSA B 1 offset(45,77)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA B 1 offset(30,62)A_GiveInventory("AdamantiumAmmo",2)
SLSA B 1 offset(15,47)A_JumpIfInventory("PlayerPropertyRage",1,1)
SLSA B 0 A_GiveInventory("AdamantiumAmmo",2)
SLSA B 2 A_WeaponReady(8)
SLSA B 0 A_GiveInventory("AdamantiumAmmo",2)
SLSA B 2 A_WeaponReady(8)
SLSA B 0 A_GiveInventory("AdamantiumAmmo",2)
SLSA B 2 A_WeaponReady(8)
SLSA B 0 A_GiveInventory("AdamantiumAmmo",2)
Goto Ready1
}
}

actor SlashDashFlag : Powerup
{
Powerup.Duration 50
}

actor GeppouAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 56
+INVENTORY.IGNORESKILL
}

actor AdamantiumAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 56
+INVENTORY.IGNORESKILL
}


actor Slashman_Ready_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("GeppouAmmo",14,2)
TNT1 A 0 A_WeaponReady(8)
stop
TNT1 A 0 A_WeaponReady
stop
}
}
actor Slashman_ReadyAmmo_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("SlashDashFlag",1,4)
TNT1 A 0 A_GiveInventory("GeppouAmmo",1)
TNT1 A 0 A_TakeInventory("AdamantiumAmmo",1)
TNT1 A 0 A_TakeInventory("AdamantiumAmmo",1,1)
TNT1 A 0
stop
}
}

actor SlashDashAmmoCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("SlashDashFlag",1,2)
TNT1 A 0 A_GiveInventory("GeppouAmmo",1)
TNT1 A 0
stop
}
}

actor SlashThrustCheck
{
PROJECTILE
+DONTBLAST
+DONTSPLASH
+THRUACTORS
+DONTREFLECT
+SERVERSIDEONLY
Damage (0)
radius 32
height 72
speed 0
States
{
Spawn:
TNT1 A 0
TNT1 A 0
TNT1 A 0 A_GiveToTarget("SlashThrustWall_P2",1)
stop
Death:
TNT1 A 0 A_GiveToTarget("SlashThrustWall_P1",1)
stop
}
}

actor Slashman_Alt_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("SlashThrustFX",0,0,8,0,0,0,0,1)

TNT1 A 0 A_GiveInventory("SlashDashFlag",1)
TNT1 A 0 A_TakeInventory("GeppouAmmo",4)
TNT1 A 0 A_TakeInventory("GeppouAmmo",10,1)
//TNT1 A 0 A_ScaleVelocity(0.5)
//TNT1 A 0 A_ChangeVelocity(cos(pitch)*40,0,-sin(pitch)*25,1)
TNT1 A 0 A_PlaySound("weapon/SlashDash",1)
TNT1 A 0 A_JumpIf(z-floorz==0,"Pickup1")
TNT1 A 0 A_SpawnItemEx("SlashThrustCheck",0,0,-8,momx,momy,momz,0,8)
stop
Pickup1:
TNT1 A 0 A_ChangeVelocity(cos(pitch)*40,0,-sin(pitch)*18+7,3)
Pickup2:
TNT1 A 0 A_GiveInventory("CBM_BeatBoostRemoveCheck_P")
TNT1 A 0 A_SpawnItemEx("SlashGoop",0,0,8,momx*1.2,momy*1.2,momz*1.2,0,8)
TNT1 A 0 A_SpawnItemEx("SlashGoop",0,0,8,momx*0.8,momy*0.8,momz*0.8,0,8)
TNT1 A 0 A_JumpIfInventory("PlayerPropertySpread",1,"Pickup2_S")
stop
Pickup2_S:
TNT1 A 0 A_SpawnItemEx("SlashGoop",0,0,8,momx*1.2,momy*1.2,momz*1.2,15,8)
TNT1 A 0 A_SpawnItemEx("SlashGoop",0,0,8,momx*0.8,momy*0.8,momz*0.8,15,8)
TNT1 A 0 A_SpawnItemEx("SlashGoop",0,0,8,momx*1.2,momy*1.2,momz*1.2,-15,8)
TNT1 A 0 A_SpawnItemEx("SlashGoop",0,0,8,momx*0.8,momy*0.8,momz*0.8,-15,8)
stop
}
}

actor SlashThrustWall_P1 : Slashman_Alt_P{States{Pickup:goto Pickup1}}
actor SlashThrustWall_P2 : Slashman_Alt_P
{
States
{
Pickup:
TNT1 A 0 //A_ChangeVelocity(momx,momy,0,3)
TNT1 A 0 A_ChangeVelocity(cos(pitch)*22,0,-sin(pitch)*10+5,1)
goto Pickup2
}
}

actor SlashThrustFX : BasicExplosion//BasicGraphicEffect
{
+NOTIMEFREEZE
States
{
Spawn:
TNT1 A 0
//SpawnFrame:
SLSA MNOP 4
stop
}
}

actor Slashman_Fire_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("AdamantiumAmmo",28,"Pickup2")
TNT1 A 0 A_PlaySound("weapon/SlashClaw",1)
TNT1 A 0 A_JumpIfInventory("AdamantiumAmmo",21,"Fire4")
TNT1 A 0 A_JumpIfInventory("AdamantiumAmmo",14,"Fire3")
TNT1 A 0 A_JumpIfInventory("AdamantiumAmmo",7,"Fire2")
goto Fire1
Pickup2:
TNT1 A 0 A_PlaySound("weapon/SlashDClaw",1)
TNT1 A 0 A_JumpIfInventory("AdamantiumAmmo",56,"Fire9")
TNT1 A 0 A_JumpIfInventory("AdamantiumAmmo",49,"Fire8")
TNT1 A 0 A_JumpIfInventory("AdamantiumAmmo",42,"Fire7")
TNT1 A 0 A_JumpIfInventory("AdamantiumAmmo",35,"Fire6")
goto Fire5

Fire9:TNT1 A 0 A_FireCustomMissile("ClawmanSlash9",0,0,0,0)goto End
Fire8:TNT1 A 0 A_FireCustomMissile("ClawmanSlash8",0,0,0,0)goto End
Fire7:TNT1 A 0 A_FireCustomMissile("ClawmanSlash7",0,0,0,0)goto End
Fire6:TNT1 A 0 A_FireCustomMissile("ClawmanSlash6",0,0,0,0)goto End
Fire5:TNT1 A 0 A_FireCustomMissile("ClawmanSlash5",0,0,0,0)goto End
Fire4:TNT1 A 0 A_FireCustomMissile("ClawmanSlash4",0,0,0,0)goto End
Fire3:TNT1 A 0 A_FireCustomMissile("ClawmanSlash3",0,0,0,0)goto End
Fire2:TNT1 A 0 A_FireCustomMissile("ClawmanSlash2",0,0,0,0)goto End
Fire1:TNT1 A 0 A_FireCustomMissile("ClawmanSlash1",0,0,0,0)goto End
End:
TNT1 A 0 A_TakeInventory("AdamantiumAmmo",56)
stop
}
}

actor SlashM_SwipeProtect : PowerProtection
{
Powerup.Duration 11
DamageFactor "SlashM_Swipe", 0.1
}

actor ClawmanSlash : ProjSpawnFuncActor
{
Translation "202:202=4:4","199:199=210:210"
PROJECTILE
Obituary "$OB_SLASHCLAW"
Damagetype "SlashM_Swipe"
+THRUACTORS
+DONTBLAST
+DONTSPLASH
+FORCEXYBILLBOARD
+DONTREFLECT
Mass 190
Meleerange 1
ReactionTime 1
damage (0)
Radius 4
Height 4
speed 18
scale 2.5
States
{
Spawn:
SLSA H 0
SLSA H 1 A_Explode(Mass-0,ScaleX*27,0,0,ScaleX*27)//38
SLSA H 1 A_Explode(Mass-10,ScaleX*27,0,0,ScaleX*27)
SLSA I 1 A_Explode(Mass-20,ScaleX*25,0,0,ScaleX*25)//35.5
SLSA I 1 A_Explode(Mass-30,ScaleX*25,0,0,ScaleX*25)
SLSA J 1 A_Explode(Mass-40,ScaleX*23,0,0,ScaleX*23)//33
SLSA J 1 A_Explode(Mass-50,ScaleX*23,0,0,ScaleX*23)
SLSA K 1 A_Explode(Mass-60,ScaleX*21,0,0,ScaleX*21)//22
SLSA K 1 A_Explode(Mass-70,ScaleX*21,0,0,ScaleX*21)
SLSA L 1 A_Explode(Mass-80,ScaleX*17,0,0,ScaleX*17)//16
SLSA L 1 A_Explode(Mass-90,ScaleX*17,0,0,ScaleX*17)
stop
}
}

actor ClawmanSlash1 : ClawmanSlash{mass 190 speed 18 scale 2.5}
actor ClawmanSlash2 : ClawmanSlash{mass 210 speed 21 scale 2.6}
actor ClawmanSlash3 : ClawmanSlash{mass 230 speed 24 scale 2.7}
actor ClawmanSlash4 : ClawmanSlash{mass 250 speed 27 scale 2.8}
actor ClawmanSlash5 : ClawmanSlash{mass 270 speed 30 scale 2.9}
actor ClawmanSlash6 : ClawmanSlash{mass 290 speed 33 scale 3.0}
actor ClawmanSlash7 : ClawmanSlash{mass 310 speed 36 scale 3.1}
actor ClawmanSlash8 : ClawmanSlash{mass 330 speed 39 scale 3.2}
actor ClawmanSlash9 : ClawmanSlash{mass 350 speed 42 scale 3.3}

actor SlashGoop : ProjSpawnFuncActor
{
PROJECTILE
Obituary "$OB_SLASHGOOP"
Damagetype "SlashM_Goop"
-NOGRAVITY
+SKYEXPLODE
+EXPLODEONWATER
+FORCEXYBILLBOARD
scale 2.5
radius 10
height 10
damage (50)
speed 25
states
{
Spawn:
SLSA Q 0
SLSA Q 0 A_ChangeVelocity(0,0,1.5)
SLSA Q 1
wait
Crash:
XDeath:
SLSA Q 1
stop
Death:
SLSA Q 0
SLSA Q 0 A_JumpIf(z-floorz<=0,"Death2")
SLSA Q 1 A_GiveInventory("CutterFlag", 1)
SLSA Q 0 A_JumpIfInventory("CutterFlag", 175, "Xdeath")
loop
Death2:
SLSA Q 0 A_PlaySoundEx("weapon/SlashGoop2","Weapon")
SLSA Q 1 A_SpawnItemEx("SlashGoop2",0,0,0,0,0,0,0,1)
stop
}
}

actor SlashM_GoopSlowGiver : PowerApropGiver {}
actor SlashM_GoopSlow : PowerSpeed
{
powerup.duration 50
speed 1.0//speed 0.50
}



actor SlashGoop2 : SlashGoop
{
+DONTBLAST
+NOGRAVITY
-FORCEXYBILLBOARD
reactiontime 215
damage (50)
Speed 0
states
{
Spawn:
SLSA RVW 3
//TNT1 A 0 A_ChangeFlag("NOINTERACTION", 0)
Spawn2:
SLSA X 1
SLSA X 0 A_CountDown
loop
Death:
TNT1 A 0 //A_PlaySoundEx("weapon/SlashGoop","Weapon")
TNT1 A 0 A_SpawnItemEx("SlashGoop3",0,0,0,2,2,4,0,1)
TNT1 A 0 A_SpawnItemEx("SlashGoop3",0,0,0,2,2,4,90,1)
TNT1 A 0 A_SpawnItemEx("SlashGoop3",0,0,0,2,2,4,-90,1)
TNT1 A 1 A_SpawnItemEx("SlashGoop3",0,0,0,2,2,4,180,1)
stop
}
}

actor SlashGoop3 : BasicGraphicEffect
{
+FORCEXYBILLBOARD
states
{
SpawnFrame:
SLSA S 0
SLSA STU 4 ThrustThingZ(0,14,1,1)
stop
}
}


actor Slashman_W_NormalBar : NormalBar {Args 228,111}
actor Slashman_W_SecondBar : SecondBar {Args 218,40}