actor SwordMan : HighArmorClass
{
Player.ScoreIcon "SWORMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Swordman"
player.soundclass "Swordmanc"
player.startitem "FlameSwordBoss"
player.startitem "UltimateAttackItem3MM8"
player.startitem "UltSoundWatcherSpawn3"
player.startitem "BaseAltfireAmmo", 112
player.startitem "IsFromMM8"
player.startitem "NoHealthBar"
player.viewheight 84
projectilepassheight 99
player.forwardmove 0.75,0.75
player.sidemove 0.73,0.73
player.jumpz 12
States
{
Spawn:
SWOM B 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM B 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM B 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM B 1 A_JumpIf(z-floorz>0,"Jumping")
Spawn.Idle:
SWOM A 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM A 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM A 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM A 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn.Idle

See:
SWOM B 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM B 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM B 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM B 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM B 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM B 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM B 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM B 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM B 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM B 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM B 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM B 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM B 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM B 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM B 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM C 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM C 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM C 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM C 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM C 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM C 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM C 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM C 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM C 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM C 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM C 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM C 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM C 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM C 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM C 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM D 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM D 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM D 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM D 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM D 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM D 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM D 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM D 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM D 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM D 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM D 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM D 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM D 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM D 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM D 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM E 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM E 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM E 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM E 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM E 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM E 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM E 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM E 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM E 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM E 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM E 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM E 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM E 1 A_JumpIf(z-floorz>0,"Jumping")
SWOM E 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM E 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
Goto Spawn

Jumping:
SWOM M 1 A_JumpIf(z-floorz<=0,"Spawn.Idle")
SWOM M 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM M 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
loop

Missile:
SWOM F 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM F 0 A_JumpIfInventory("SwordManStatueDropFlag1",1,"SwordManStatueDropA")
SWOM F 1 A_JumpIf(z-floorz>0,"JumpingMissile")
SWOM F 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM F 0 A_JumpIfInventory("SwordManStatueDropFlag1",1,"SwordManStatueDropA")
SWOM F 1 A_JumpIf(z-floorz>0,"JumpingMissile")
SWOM F 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM F 0 A_JumpIfInventory("SwordManStatueDropFlag1",1,"SwordManStatueDropA")
SWOM F 1 A_JumpIf(z-floorz>0,"JumpingMissile")
SWOM F 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM F 0 A_JumpIfInventory("SwordManStatueDropFlag1",1,"SwordManStatueDropA")
Missile2:
SWOM GGG 1 A_JumpIf(z-floorz>0,"JumpingMissile2")
Missile3:
SWOM IIIIII 1 A_JumpIf(z-floorz>0,"JumpingMissile3")
Goto Spawn.Idle
JumpingMissile:
SWOM J 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM J 0 A_JumpIfInventory("SwordManStatueDropFlag1",1,"SwordManStatueDropA")
SWOM J 1 A_JumpIf(z-floorz<=0,"Missile")
SWOM J 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM J 0 A_JumpIfInventory("SwordManStatueDropFlag1",1,"SwordManStatueDropA")
SWOM J 1 A_JumpIf(z-floorz<=0,"Missile")
SWOM J 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM J 0 A_JumpIfInventory("SwordManStatueDropFlag1",1,"SwordManStatueDropA")
SWOM J 1 A_JumpIf(z-floorz<=0,"Missile")
SWOM J 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM J 0 A_JumpIfInventory("SwordManStatueDropFlag1",1,"SwordManStatueDropA")
JumpingMissile2:
SWOM KKK 1 A_JumpIf(z-floorz<=0,"Missile2")
JumpingMissile3:
SWOM LLLLLL 1 A_JumpIf(z-floorz<=0,"Missile3")
Goto Jumping

SwordManFireSlash:
SWOM UVWX 1 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
SWOM U 1 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
Goto Spawn.Idle
SwordManFireSlash2:
SWOM YY 1
SWOM Y 1 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
Goto SwordManFireSlash

SwordManStatueDropA:
SWOM NN 1 A_JumpIfInventory("SwordManStatueDropFlag2",1,"SwordManStatueDropB")
SWOM N 1 A_JumpIfInventory("SwordManStatueDropFlag1",1,"SwordManStatueDropA")
Goto Spawn.Idle
SwordManStatueDropB:
SWOM OO 1
SWOM O 1 A_JumpIfInventory("SwordManStatueDropFlag2",1,"SwordManStatueDropB")
Goto SwordManStatueDropA

SwordManDividingStrike:
SWOM RR 1 A_JumpIfInventory("SwordManDividingStrikeFlag2",1,"SwordManDividingSwingA")
SWOM R 1 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
Goto Spawn.Idle
SwordManDividingSwingA:
SWOM FF 1 A_JumpIfInventory("SwordManDividingStrikeFlag3",1,"SwordManDividingSwingB")
SWOM F 1 A_JumpIfInventory("SwordManDividingStrikeFlag2",1,"SwordManDividingSwingA")
Goto Spawn.Idle
SwordManDividingSwingB:
SWOM GG 1 A_JumpIfInventory("SwordManDividingStrikeFlag4",1,"SwordManDividingSwingC")
SWOM G 1 A_JumpIfInventory("SwordManDividingStrikeFlag3",1,"SwordManDividingSwingB")
Goto Spawn.Idle
SwordManDividingSwingC:
SWOM II 1
SWOM I 1 A_JumpIfInventory("SwordManDividingStrikeFlag4",1,"SwordManDividingSwingC")
Goto Spawn.Idle

SwordManFireCyclone:
SWOM PPPQQQ 1
SWOM P 1 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
Goto Spawn.Idle

ClassPain:
SWOM H 2 A_SpawnItem("PainFX",0,3)
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
SWOM H 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM H 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM H 2 A_SpawnItem("PainFX",0,3)
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
SWOM H 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM H 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM H 2 A_SpawnItem("PainFX",0,3)
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
SWOM H 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM H 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM H 2 A_SpawnItem("PainFX",0,3)
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
SWOM H 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM H 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM H 2 A_SpawnItem("PainFX",0,3)
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
SWOM H 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM H 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM H 2 A_SpawnItem("PainFX",0,3)
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
SWOM H 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM H 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM H 2 A_SpawnItem("PainFX",0,3)
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
SWOM H 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM H 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM H 2 A_SpawnItem("PainFX",0,3)
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
SWOM H 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM H 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM H 2 A_SpawnItem("PainFX",0,3)
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
SWOM H 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM H 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
SWOM H 2 A_SpawnItem("PainFX",0,3)
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag1",1,"SwordManFireSlash")
SWOM H 0 A_JumpIfInventory("SwordManFireSlashFlag2",1,"SwordManFireSlash2")
SWOM H 0 A_JumpIfInventory("SwordManDividingStrikeFlag1",1,"SwordManDividingStrike")
SWOM H 0 A_JumpIfInventory("SwordManFireCycloneFlag",1,"SwordManFireCyclone")
Goto Spawn.Idle

Death.WaterBalloon:
Death.WaterBalloonGear:
Death.Aquaman:
Death.TrioWaterBalloon:
TNT1 A 0 A_SpawnItemEx("DeadDrenchedSwordMan",0,0,0,0,0,0,0,1)
NOFX Z 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
		
ClassDeath:
TNT1 A 0 A_SpawnItemEx("DeadSwordMan",0,0,0,0,0,0,0,1)
TNT1 A 20 ACS_ExecuteAlways(999,0,0)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
SWOM H 0 A_JumpIfInTargetInventory("FlameSwordWepM",1,2)
SWOM H 0 A_GiveToTarget("WeaponGetter")
SWOM H 0 A_GiveToTarget("FlameSwordWepM")
goto ClassDeath
}
}

actor DeadSwordMan : DeadTenguMan
{
meleerange 862
States
{
Spawn:
SWO2 H 0
"####" "#" 0
goto loopit

Death:
TNT1 A 0 A_PlaySoundEx("swordman/dead","Auto")
TNT1 A 0 A_PlaySoundEx("mm8/dead","Auto")
TNT1 A 2 A_SpawnItemEx("FakeDeathFXMM8",0,0,32)
stop
}
}

actor DeadDrenchedSwordMan
{
PROJECTILE
+MISSILE
species "DeadBody"
+THRUSPECIES
+THRUACTORS
+NOGRAVITY
-NOEXPLODEFLOOR
+NOINTERACTION
scale 2.5
ReactionTime 12
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("weapon/acidwave","Voice")
TNT1 A 0 A_PlaySoundEx("misc/meltinghands","Body")
Spawn2:
SWO2 FFFGGG 1
TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 0
TNT1 A 0 A_StopSoundEx("Body")
TNT1 A 0 A_PlaySoundEx("swordman/dead","Auto")
TNT1 A 0 A_PlaySoundEx("mm8/dead","Auto")
TNT1 A 2 A_SpawnItemEX("CriticalDeathSpawner",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
Stop
}
}

Actor FlameSwordBoss : VCBaseWeapon
{
weapon.ammotype "BaseAltfireAmmo"
Obituary "$OB_SWORDMAN1"
States
{
Ready:
FHUB A 0 A_JumpIfInventory("DividingStrikeCoolDown",1,"Ready.NoTF")
FHUB A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,56))
FHUB A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
FHUB A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
FHUB A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,56))
FHUB A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
FHUB A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
FHUB A 0 A_GiveInventory("BaseAltfireAmmo",1)
loop

Ready.NoTF:
FHUB A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,56))
FHUB A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
FHUB A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,56))
FHUB A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
FHUB A 0 A_GiveInventory("BaseAltfireAmmo",1)
Goto Ready

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
FHUB A 1 A_Lower
loop

Select:
TNT1 A 0 ACS_ExecuteAlways(991,0,862)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
FHUB A 1 A_Raise
loop

Fire:
FHUB A 0 A_PlaySoundEx("weapon/flamesword","Weapon")
FHUB A 0 A_CheckFloor("Fire.Ground")
Goto Fire.Air

Fire.Ground:
FHUB C 1 A_FireCustomMissile("FlameSwordRM", 60,0,0,16,0, -8)
FHUB C 0 A_FireCustomMissile("FlameSwordRM", 45,0,0,16,0, -6)
FHUB C 0 A_SpawnItemEx("FSSParkSpawnerRM", 32,0,8,0,16,0,0,0,0)
FHUB D 1 A_FireCustomMissile("FlameSwordRM", 30,0,0,16,0, -4)
FHUB D 0 A_FireCustomMissile("FlameSwordRM", 15,0,0,16,0, -2)
FHUB E 1 A_FireCustomMissile("FlameSwordRM",  0,0,0,16,0,  0)
FHUB E 0 A_FireCustomMissile("FlameSwordRM",-15,0,0,16,0,  2)
FHUB F 1 A_FireCustomMissile("FlameSwordRM",-30,0,0,16,0,  4)
FHUB F 0 A_FireCustomMissile("FlameSwordRM",-45,0,0,16,0,  6)
FHUB G 1 A_FireCustomMissile("FlameSwordRM",-60,0,0,16,0,  8)
Goto Fire.End

Fire.Air:
FHUB G 1 A_FireCustomMissile("FlameSwordRM2",-60,0,0,16,0,  8)
FHUB G 0 A_FireCustomMissile("FlameSwordRM2",-45,0,0,16,0,  6)
FHUB F 1 A_FireCustomMissile("FlameSwordRM2",-30,0,0,16,0,  4)
FHUB F 0 A_FireCustomMissile("FlameSwordRM2",-15,0,0,16,0,  2)
FHUB E 1 A_FireCustomMissile("FlameSwordRM2",  0,0,0,16,0,  0)
FHUB E 0 A_FireCustomMissile("FlameSwordRM2", 15,0,0,16,0, -2)
FHUB D 1 A_FireCustomMissile("FlameSwordRM2", 30,0,0,16,0, -4)
FHUB D 0 A_FireCustomMissile("FlameSwordRM2", 45,0,0,16,0, -6)
FHUB C 1 A_FireCustomMissile("FlameSwordRM2", 60,0,0,16,0, -8)
Goto Fire.End

Fire.End:
TNT1 A 14 Offset(0,122)
TNT1 A 1 Offset(0,122)
FHUB A 1 Offset(0,109)
FHUB A 1 Offset(0,96)
FHUB A 1 Offset(0,85)
FHUB A 1 Offset(0,74)
FHUB A 1 Offset(0,65)
FHUB A 1 Offset(0,56)
FHUB A 1 Offset(0,49)
FHUB A 1 Offset(0,42)
Goto Ready

Altfire:
FHUB A 0 A_JumpIfInventory("NoAltfire",1,"Ready")
FHUB A 0 A_CheckFloor("Altfire.FireSlash.Check")
FHUB A 0 A_JumpIf(callACS("core_CheckFooting")== 1 || (abs(z-floorz) < 30 && momz <= 0),"Altfire.FireSlash.Check")
Goto Altfire.StatueDrop

Altfire.FireSlash.Check:
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",112,"Altfire.FireSlash.Start")
Goto Altfire.NoAmmo

Altfire.NoAmmo:
FHUB A 2
FHUB A 0 A_GiveInventory("BaseAltfireAmmo",1)
Goto Ready

Altfire.FireSlash.Start:
FHUB A 0 A_GunFlash("FireSlashing")
FHUB A 0 A_GiveInventory("SwordManAltfireStartPickUp",1)
FHUB PQRSPQRSPQRSPQRSPQRSPQRSPQRSPQRSPQRS 1
FHUB A 0 A_GunFlash("SwordStopping")
FHUB A 0 A_GiveInventory("SwordManAltfireTorsoPickUp",1)
Goto Altfire.FireSlash.Hold

Altfire.FireSlash.Hold:
TNT1 A 0 ChangeCamera(400+TID,0,0)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",280,"Altfire.FireSlash.Finish")
TNT1 A 1 A_JumpIfInventory("BaseCustomFlag1",1,"Altfire.FireSlash.Finish")
TNT1 A 0 ChangeCamera(400+TID,0,0)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",280,"Altfire.FireSlash.Finish")
TNT1 A 1 A_JumpIfInventory("BaseCustomFlag1",1,"Altfire.FireSlash.Finish")
loop

Altfire.FireSlash.Finish:
FHUB A 0 A_GunFlash("FireSlashing")
FHUB A 0 A_GiveInventory("SwordManAltfireFinishPickUp",1)
FHUB PQRSPQRSPQRSPQRSPQRSPQRSPQRSPQRSPQRS 1
TNT1 A 1 Offset(0,122)A_GunFlash("NoFlash")
FHUB A 1 Offset(0,109)A_GiveInventory("SwordManAltfireEndPickUp",1)
FHUB A 1 Offset(0,96)
FHUB A 1 Offset(0,85)
FHUB A 1 Offset(0,74)
FHUB A 1 Offset(0,65)
FHUB A 1 Offset(0,56)
FHUB A 1 Offset(0,49)
FHUB A 1 Offset(0,42)
Goto Ready

Altfire.StatueDrop:
FHUB A 1 Offset(5,42)A_GunFlash("SwordStopping")
FHUB A 1 Offset(10,52)A_GiveInventory("SwordManAltfire2StartPickUp",1)
FHUB A 1 Offset(15,62)
FHUB A 1 Offset(20,72)
FHUB A 1 Offset(25,82)
FHUB A 1 Offset(30,92)
FHUB A 1 Offset(35,102)
FHUB A 1 Offset(40,112)A_GiveInventory("SwordManAltfire2AttackPickUp",1)
FHUB O 6 Offset(40,112)
FHUB A 0 A_GunFlash("NoFlash")
FHUB A 1 Offset(40,112)A_GiveInventory("SwordManAltfire2EndPickUp",1)
FHUB A 1 Offset(40,112)A_CheckFloor(1)
wait
FHUB A 1 Offset(35,102)
FHUB A 1 Offset(30,92)
FHUB A 1 Offset(25,82)
FHUB A 1 Offset(20,72)
FHUB A 1 Offset(15,62)
FHUB A 1 Offset(10,52)
FHUB A 1 Offset(5,42)
Goto Ready

User1:
FHUB A 1 A_GunFlash("DividingStriking") FHUB A 0 A_SpawnItemEx("RisingStrikeLegsSpawner")
FHUB A 1 A_GiveInventory("SwordManThirdFireStartPickUp",1) FHUB A 0 A_SpawnItemEx("RisingStrikeLegsSpawner")
FHUB A 1 A_GiveInventory("SwordManThirdFireStartPickUp",1) FHUB A 0 A_SpawnItemEx("RisingStrikeLegsSpawner")
FHUB A 1 A_Jump(256,"User1.Ascend")
Goto User1.Ascend

User1.Ascend:
FHUB B 1 A_SpawnItemEx("RisingStrikeLegsSpawner")
FHUB B 0 A_CheckFloor("User1.DividingStrike")
FHUB B 0 A_JumpIf(momz<=0,"User1.Descend")
FHUB B 1 A_SpawnItemEx("RisingStrikeLegsSpawner")
FHUB B 0 A_CheckFloor("User1.DividingStrike")
FHUB B 0 A_JumpIf(momz<=0,"User1.Descend")
loop

User1.Descend:
FHUB B 1 A_SpawnItemEx("FallingStrikeLegsSpawner")
FHUB B 0 A_CheckFloor("User1.DividingStrike")
FHUB B 0 A_JumpIf(momz>0,"User1.Ascend")
FHUB B 1 A_SpawnItemEx("FallingStrikeLegsSpawner")
FHUB B 0 A_CheckFloor("User1.DividingStrike")
FHUB B 0 A_JumpIf(momz>0,"User1.Ascend")
loop

User1.DividingStrike:
FHUB A 0 A_GunFlash("SwordStopping")
FHUB A 0 A_PlaySoundEx("weapon/adapterreturn","Body")
FHUB B 1 Offset(3,32)A_GiveInventory("SwordManDividingStrikeFlag2",1)
FHUB B 1 Offset(-3,32)
FHUB B 1 Offset(3,32)
FHUB B 1 Offset(-3,32)
FHUB B 1 Offset(3,32)
FHUB B 1 Offset(-3,32)
FHUB B 1 Offset(3,32)
FHUB B 1 Offset(-3,32)
FHUB B 1 Offset(3,32)
FHUB B 1 Offset(-3,32)
FHUB B 1 Offset(3,32)
FHUB B 1 Offset(-3,32)
FHUB B 1 Offset(3,32)
FHUB B 1 Offset(-3,32)
FHUB B 1 Offset(3,32)
FHUB B 1 Offset(-3,32)A_GiveInventory("SwordManThirdFireAttackPickUp",1)
FHUB A 0 A_Quake(2,10,0,200)
FHUB BCD 1 A_GiveInventory("SwordManDividingStrikeFlag3",1)
FHUB EFG 1 A_GiveInventory("SwordManDividingStrikeFlag4",1)
TNT1 A 8 Offset(0,132)
FHUB A 1 Offset(0,122)
FHUB A 1 Offset(0,112)
FHUB A 1 Offset(0,102)
FHUB A 1 Offset(0,92)
FHUB A 1 Offset(0,82)
FHUB A 1 Offset(0,72)
FHUB A 1 Offset(0,62)
FHUB A 1 Offset(0,52)A_GunFlash("NoFlash")
FHUB A 1 Offset(0,42)A_GiveInventory("SwordManThirdFireEndPickUp",1)
Goto Ready

UltimateAttack:
FHUB A 1 Offset(-20,52)
FHUB A 1 Offset(-40,72)
FHUB A 1 Offset(-60,92)A_GunFlash("FireCycloning")
FHUB A 1 Offset(-80,112)A_GiveInventory("SwordManUltimateStartPickUp",1)
TNT1 A 0 A_PlaySoundEX("weapon/heatsurge","Auto")
Goto UltimateAttack.Hold

UltimateAttack.Hold:
TNT1 A 1 Offset(-80,112)
TNT1 A 0 A_JumpIfInventory("MediumUltimateAmmo",1,1)
Goto UltimateAttack.End
TNT1 A 1 Offset(-80,112)
TNT1 A 0 A_JumpIfInventory("MediumUltimateAmmo",1,"UltimateAttack.Hold")
Goto UltimateAttack.End

UltimateAttack.End:
FHUB A 1 Offset(-80,112)A_GunFlash("NoFlash")
FHUB A 1 Offset(-60,92)A_GiveInventory("SwordManUltimateEndPickUp",1)
FHUB A 1 Offset(-40,72)
FHUB A 1 Offset(-20,52)
Goto Ready

FireSlashing:
TNT1 A 0 A_PlaySound("weapon/flamesword",2,0.7)
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") TNT1 A 0 A_SpawnItemEx("FireSlashDamager",0,0,32)
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") TNT1 A 0 A_SpawnItemEx("FireSlashDamager",0,0,32)
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") TNT1 A 0 A_SpawnItemEx("FireSlashDamager",0,0,32)
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash") TNT1 A 0 A_SpawnItemEx("FireSlashDamager",0,0,32)
loop

SwordStopping:
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
loop

DividingStriking:
TNT1 A 1 A_GiveInventory("DividingStrikeMovement") TNT1 A 0 A_SpawnItemEx("DividingStrikeDamager",0,0,32) TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1 A_GiveInventory("DividingStrikeMovement") TNT1 A 0 A_SpawnItemEx("DividingStrikeDamager",0,0,32) TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
loop

FireCycloning:
TNT1 A 0 A_Quake(2,7,0,100)
TNT1 A 0 A_SpawnItemEx("FireCyclone",0,0,16,0,0,13)
TNT1 A 0 A_PlaySoundEx("weapon/atomicfire","Body")
TNT1 A 0 A_PlaySound("weapon/flamesword",2,0.7)
TNT1 AAA 0 A_SpawnItemEx("SwordUltFX",128,0,random(0,40),0,0,0,random(-10,10))
TNT1 AAA 0 A_SpawnItemEx("SwordUltFX",128,0,random(0,40),0,0,0,random(80,100))
TNT1 AAA 0 A_SpawnItemEx("SwordUltFX",128,0,random(0,40),0,0,0,random(170,190))
TNT1 AAA 0 A_SpawnItemEx("SwordUltFX",128,0,random(0,40),0,0,0,random(260,280))
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("SwordUltFX2",random(130,138),0,0,0,0,random(20,40),random(0,359))
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",4) TNT1 A 0 A_SpawnItemEx("FireCycloneHitBox")
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",4) TNT1 A 0 A_SpawnItemEx("FireCycloneHitBox")
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",4) TNT1 A 0 A_SpawnItemEx("FireCycloneHitBox")
TNT1 A 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
TNT1 AAA 0 A_SpawnItemEx("SwordUltFX",128,0,random(0,40),0,0,0,random(-10,10))
TNT1 AAA 0 A_SpawnItemEx("SwordUltFX",128,0,random(0,40),0,0,0,random(80,100))
TNT1 AAA 0 A_SpawnItemEx("SwordUltFX",128,0,random(0,40),0,0,0,random(170,190))
TNT1 AAA 0 A_SpawnItemEx("SwordUltFX",128,0,random(0,40),0,0,0,random(260,280))
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("SwordUltFX2",random(130,138),0,0,0,0,random(20,40),random(0,359))
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",4) TNT1 A 0 A_SpawnItemEx("FireCycloneHitBox")
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",4) TNT1 A 0 A_SpawnItemEx("FireCycloneHitBox")
TNT1 A 1 A_Stop TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",4) TNT1 A 0 A_SpawnItemEx("FireCycloneHitBox")
loop
}
}

actor FlameSwordRM
{
PROJECTILE
+RIPPER
+DONTREFLECT
+NOEXPLODEFLOOR
damage (0)
height 5
radius 5
Speed 26
scale 2.5
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 AAAAAAAAAA 1 A_SpawnItemEx("FlameSwordTrailRM")
Goto Death
Death:
TNT1 A 0 
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
stop
}
}

actor FlameSwordRM2 : FlameSwordRM
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 AAAAAAAAAA 1 A_SpawnItemEx("FlameSwordTrailRM2")
Goto Death
}
}

actor FlameSwordTrailRM
{
Translation "192:192=219:219","198:198=43:43"
+FORCEXYBILLBOARD
+DONTREFLECT
PROJECTILE
height 8
radius 8
speed 20
damage (21) 
damagetype "SwordMan"
Obituary "$OB_SWORDMAN1"
scale 2.5 
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
X_8C E 0 A_ChangeVelocity(0, -15, 0, CVF_RELATIVE | CVF_REPLACE)
X_8C EFGEFG 1 
stop
}
}

actor FlameSwordTrailRM2 : FlameSwordTrailRM
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
FSWD D 0 A_ChangeVelocity(0, 15, 0, CVF_RELATIVE | CVF_REPLACE)
X_8C EFGEFG 1 
stop
}
}

actor FSSParkSpawnerRM
{
scale 2.5
PROJECTILE
+RIPPER
-SOLID
-NOGRAVITY
+NOINTERACTION
+DONTREFLECT
damage (0)
radius 1
height 1
speed 0
ReactionTime 10
states
{
Spawn:
TNT1 A 1 A_SpawnItemEx("FlameSwordSparkRM",Random(0,16),Random(-48, -8),8,random(50,55),random(-15,15),random(0,15),0, 0, 0)
TNT1 A 0 A_SpawnItemEx("FlameSwordSparkRM",Random(0,16),0,8,random(45,55),random(-15,15),random(-15,15),0, 0, 0)
TNT1 A 0 A_SpawnItemEx("FlameSwordSparkRM",Random(0,16),Random(8, 48),8,random(40,55),random(-15,15),random(0,15),0, 0, 0)
TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 0
stop
}
}

actor FlameSwordSparkRM : FlameSwordTrailRM
{
damagetype "SwordMan2"
Obituary "$OB_SWORDMAN1"
+DONTSPLASH
+DONTREFLECT
damage (1)
height 2
radius 2
Scale 2.0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
X_8C ABCD 1
stop
}
}

actor FlameSwordRMProtect : PowerProtection
{
Powerup.Duration 30
damagefactor "SwordMan", 0.0
}

actor FlameSwordBitRM
{
Translation "192:192=219:219","198:198=43:43"
damage 0
+RIPPER
-NOGRAVITY
+CLIENTSIDEONLY
-SOLID
scale 2.5
Height 2
Radius 2
ReactionTime 5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
Spawn2:
X_7H P 2
TNT1 A 2
TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 0
stop
}
}

actor SwordManFireSlashFlag1 : VCOnce {}
actor SwordManFireSlashFlag2 : VCOnce {}

actor SwordManAltfireStartPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("NoSpeed",1)
TNT1 A 0 A_TakeInventory("CutterFlag",999)
TNT1 A 0 A_GiveInventory("SwordManFireSlashFlag1",1)
stop
}
}

actor SwordManAltfireTorsoPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_ChangeFlag("INVULNERABLE",True)
TNT1 A 0 A_GiveInventory("InvProtection",1)
TNT1 A 0 A_GiveInventory("SwordManFireSlashFlag2",1)
TNT1 A 0 A_FireCustomMissile("SwordManTorso",0,0,0,0)
stop
}
}

actor SwordManAltfireFinishPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_TakeInventory("SwordManFireSlashFlag2",1)
stop
}
}

actor SwordManAltfireEndPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("NoSpeed",1)
TNT1 A 0 A_TakeInventory("CutterFlag",999)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_TakeInventory("BaseCustomFlag1",1)
TNT1 A 0 A_TakeInventory("SwordManFireSlashFlag1",1)
stop
}
}

actor FireSlashDamager : BasicExplosion
{
Obituary "$OB_SWORDMAN2"
damagetype "SwordManAlt"
States
{
Spawn:
TNT1 AA 0
TNT1 A 1 A_Explode(7,96,0,0,48)
stop
}
}

actor FireSlashDamager2 : FireSlashDamager
{
States
{
Spawn:
TNT1 AA 0
TNT1 A 1 A_Explode(8,96,0,0,48)
stop
}
}

actor FireSlashProtect : PowerProtection
{
Powerup.Duration 5
damagefactor "SwordManAlt", 0.0
}

actor SwordManTorso
{
Translation "192:192=219:219","198:198=43:43"
PROJECTILE
-MISSILE
+DONTBLAST
+DONTSPLASH
+DONTREFLECT
+NOBLOCKMONST
+SLIDESONWALLS
+NODAMAGETHRUST
Obituary "$OB_SWORDMAN2"
damagetype "SwordManAlt"
Radius 16
Height 26
CameraHeight 18
scale 2.5
damage (0)
speed 0
const int SPD = 22;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 Thing_ChangeTID(0,400+ACS_ExecuteWithResult(257,0))
Spawn2:
TNT1 A 0 A_PlaySound("weapon/flamesword",2,0.7)
TNT1 A 0 A_JumpIfInTargetInventory("CutterFlag",280,"Death")
TNT1 A 0 A_SpawnItemEx("FireSlashDamager2",0,0,32,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_GiveInventory("CutterFlag",2) TNT1 A 0 A_TakeFromTarget("BaseAltfireAmmo",2)
TNT1 A 0 A_SpawnItemEx("SwordManTorsoHitBox",0,0,32,8) TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,-8)
SWO2 A 1 A_JumpIfInventory("CutterFlag",112,"Return") TNT1 A 0 A_GiveInventory("SwordM_Torso_P")
TNT1 A 0 A_JumpIfInTargetInventory("CutterFlag",280,"Death")
TNT1 A 0 A_SpawnItemEx("FireSlashDamager2",0,0,32,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_SpawnItemEx("SwordManTorsoHitBox",0,0,32,8) TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,-8)
SWO2 B 1 A_JumpIfInventory("CutterFlag",112,"Return") TNT1 A 0 A_GiveInventory("SwordM_Torso_P")
TNT1 A 0 A_JumpIfInTargetInventory("CutterFlag",280,"Death")
TNT1 A 0 A_SpawnItemEx("FireSlashDamager2",0,0,32,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_GiveInventory("CutterFlag",3) TNT1 A 0 A_TakeFromTarget("BaseAltfireAmmo",3)
TNT1 A 0 A_SpawnItemEx("SwordManTorsoHitBox",0,0,32,8) TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,-8)
SWO2 C 1 A_JumpIfInventory("CutterFlag",112,"Return") TNT1 A 0 A_GiveInventory("SwordM_Torso_P")
TNT1 A 0 A_SpawnItemEx("FireSlashDamager2",0,0,32,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_JumpIfInTargetInventory("CutterFlag",280,"Death")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_SpawnItemEx("SwordManTorsoHitBox",0,0,32,8) TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,-8)
SWO2 D 1 A_JumpIfInventory("CutterFlag",112,"Return") TNT1 A 0 A_GiveInventory("SwordM_Torso_P")
loop

Death:
TNT1 A 0
stop

Return:
TNT1 A 0 A_ChangeFlag("MISSILE",1)
TNT1 A 0 A_SpawnItemEx("SwordManTorsoReturn",0,0,0,0,0,0,0,33,0)
stop
}
}

//CBM
actor SwordM_Torso_P : CustomInventory
{
//156 TorsoSpeed
States
{
Pickup:
TNT1 A 0 ACS_NamedExecuteWithResult("cbm_CopyPointerAnglePitch",2,1)
TNT1 A 0 //A_TakeFromTarget("TorsoSpeed",1)
TNT1 A 0 A_JumpIf(Args[1]<1,2)
TNT1 A 0 A_SetArg(1,Args[1]-1)

TNT1 A 0 A_ChangeVelocity(cos(pitch)*22,0,-sin(pitch)*22,3)
TNT1 A 0
stop
}
}

actor SwordManTorsoReturn
{
Translation "192:192=219:219","198:198=43:43"
PROJECTILE
Obituary "$OB_SWORDMAN2"
damagetype "SwordManAlt"
+RIPPER
+SKYEXPLODE
+DONTSPLASH
+HEXENBOUNCE
+NOINTERACTION
+SEEKERMISSILE
+NOTARGETSWITCH
damage (0)
Speed 22
Radius 8
Height 8
scale 2.5
ReactionTime 999
const int RTRN = 32;
const int SEEK = 90;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_TARGET)//Target >> Tracer
TNT1 A 0 A_FaceTarget
Goto Spawn2
Spawn2:
TNT1 A 0 A_JumpIfCloser(RTRN,"Returned")
TNT1 A 0 A_PlaySound("weapon/flamesword",2,0.7)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 AAAA 0 A_SeekerMissile(SEEK,SEEK,SMF_PRECISE)
SWO2 A 1 A_SpawnItemEx("FireSlashDamager2",0,0,32,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_JumpIfCloser(RTRN,"Returned")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 AAAA 0 A_SeekerMissile(SEEK,SEEK,SMF_PRECISE)
SWO2 B 1 A_SpawnItemEx("FireSlashDamager2",0,0,32,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_JumpIfCloser(RTRN,"Returned")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 AAAA 0 A_SeekerMissile(SEEK,SEEK,SMF_PRECISE)
SWO2 C 1 A_SpawnItemEx("FireSlashDamager2",0,0,32,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_JumpIfCloser(RTRN,"Returned")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 AAAA 0 A_SeekerMissile(SEEK,SEEK,SMF_PRECISE)
SWO2 D 1 A_SpawnItemEx("FireSlashDamager2",0,0,32,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_CountDown
loop
Returned:
TNT1 A 0 A_PlaySoundEx("weapon/adapterreturn","Body")
SWO2 A 1 A_GiveToTarget("BaseCustomFlag1",1)
Death:
TNT1 A 1
stop
}
}

actor SwordManTorsoHitBox
{
PROJECTILE
-NOBLOCKMAP
+DONTBLAST
+THRUACTORS
+DONTREFLECT
damage (0)
Speed 0
Radius 16
Height 24
scale 2.5
States
{
Spawn:
TNT1 A 1
stop
Death:
TNT1 A 1 A_PlaySound("item/protoreflect",2,0.7)
TNT1 AAAAA 0 A_SpawnItemEx("FlameSwordWallTrail",0,0,16,Random(9,18),0,Random(-10,10),Random(0,359))
stop
}
}

actor FlameSwordWallTrail
{
Translation "192:192=219:219","198:198=43:43"
+FORCEXYBILLBOARD
PROJECTILE
height 8
radius 8
damage (0) 
damagetype "SwordManAlt"
Obituary "$OB_SWORDMAN2"
scale 2.5 
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
X_8C EFGEFG 1 
stop
}
}

actor SwordManStatueDropFlag1 : VCOnce {}
actor SwordManStatueDropFlag2 : VCOnce {}

actor SwordManAltfire2StartPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SetGravity(0.0)
TNT1 A 0 A_GiveInventory("SwordManStatueDropFlag1",1)
stop
}
}

actor SwordManAltfire2AttackPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",56)
TNT1 A 0 A_FireCustomMissile("StatueDropStart")
TNT1 A 0 A_PlaySoundEx("weapon/FireStorm","Weapon")
TNT1 A 0 A_GiveInventory("SwordManStatueDropFlag2",1)
stop
}
}

actor SwordManAltfire2EndPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("GravityRestore",1)
TNT1 A 0 A_TakeInventory("SwordManStatueDropFlag1",1)
TNT1 A 0 A_TakeInventory("SwordManStatueDropFlag2",1)
stop
}
}

actor StatueDropStart : FastProjectile
{
PROJECTILE
+SPECTRAL
Radius 4
Height 4
scale 2.5
-DONTBLAST
+RIPPER
+SKYEXPLODE
speed 600
damage (0)
States
{
Spawn:
TNT1 AA 0
TNT1 A 5
Death:
Death:
TNT1 A 0 A_ChangeFlag("FLOORHUGGER",True)
TNT1 A 1 A_Stop
TNT1 A 0 A_CheckFloor("Death.Floor")
TNT1 A 0 A_CheckCeiling("Death.Ceiling")
Goto Death.wall
Death.Floor:
TNT1 A 0 A_spawnItemEx("StatueDropStart2",0,0,16)
stop
Death.Ceiling:
TNT1 A 0 A_spawnItemEx("StatueDropStart2",0,0,-16)
stop
Death.Wall:
TNT1 A 0 A_spawnItemEx("StatueDropStart2",-16)
stop
}
}

actor StatueDropStart2 : StatueDropStart
{

States
{
Spawn:
TNT1 AA 0
TNT1 A 1 A_SpawnItemEx("StatueDropMark",0,0,0,0,0,100)
stop
}
}

actor StatueDropMark
{
PROJECTILE
+SPECTRAL
+RIPPER
-DONTBLAST
+SKYEXPLODE
radius 2
height 8
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 AAA 1
Death:
TNT1 A 0 A_SpawnItemEx("SwordManStatue",0,0,-16,0,0,-7)
stop
}
}

actor SwordManStatue
{
PROJECTILE
Obituary "$OB_SWORDMAN3"
damagetype "SwordManAlt2"
-NOGRAVITY
+THRUACTORS
+SKYEXPLODE
+FORCEXYBILLBOARD
+DONTREFLECT
damage(0)
speed 30
Radius 4
Height 4
scale 2.5
const int SPD = 18;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySound("misc/catcherdrop",1,0.8)
Spawn2:
STTU A 1
wait
Death:
TNT1 A 0 A_PlaySound("weapon/GutsmanToss", "Weapon")
TNT1 A 0 A_SpawnItemEx("BrokenSwordManStatueA",Random(0,32),0,Random(16,48),Random(6,18),0,Random(6,18),Random(0,359))
TNT1 A 0 A_SpawnItemEx("BrokenSwordManStatueB",Random(0,32),0,Random(16,48),Random(6,18),0,Random(6,18),Random(0,359))
TNT1 A 0 A_SpawnItemEx("BrokenSwordManStatueC",Random(0,32),0,Random(16,48),Random(6,18),0,Random(6,18),Random(0,359))
TNT1 A 0 A_SpawnItemEx("BrokenSwordManStatueD",Random(0,32),0,Random(16,48),Random(6,18),0,Random(6,18),Random(0,359))
TNT1 A 0 A_SpawnItemEx("BrokenSwordManStatueE",Random(0,32),0,Random(16,48),Random(6,18),0,Random(6,18),Random(0,359))
TNT1 A 0 A_PlaySoundEx("misc/quake","weapon")
TNT1 A 0 A_Explode(40,100,0,0,100)
TNT1 A 20 A_Quake(2,20,0,300)
stop
}
}

actor BrokenSwordManStatueA
{
+MISSILE
+RIPPER
+THRUACTORS
+CLIENTSIDEONLY
+FLOORCLIP
Damage (0)
Scale 2.5
Height 5
Radius 5
-NOGRAVITY
+BOUNCEONFLOORS
+DOOMBOUNCE
bouncefactor 0.5
Bouncecount 2
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
STTU B 2
TNT1 A 2
loop
Death:
XDeath:
TNT1 A 0
stop
}
}

actor BrokenSwordManStatueB : BrokenSwordManStatueA
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
STTU C 2
TNT1 A 2
loop
}
}

actor BrokenSwordManStatueC : BrokenSwordManStatueA
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
STTU D 2
TNT1 A 2
loop
}
}

actor BrokenSwordManStatueD : BrokenSwordManStatueA
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
STTU E 2
TNT1 A 2
loop
}
}

actor BrokenSwordManStatueE : BrokenSwordManStatueA
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
Spawn2:
STTU F 2
TNT1 A 2
loop
}
}

actor SwordManDividingStrikeFlag1 : VCOnce {}
actor SwordManDividingStrikeFlag2 : VCOnce {}
actor SwordManDividingStrikeFlag3 : VCOnce {}
actor SwordManDividingStrikeFlag4 : VCOnce {}

actor SwordManThirdFireStartPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_Stop
TNT1 A 0 ThrustThingZ(0,75,0,1)
TNT1 A 0 A_TakeInventory("UnSolid",1)
TNT1 A 0 A_ChangeFlag("THRUACTORS",True)
TNT1 A 0 A_PlaySoundEx("weapon/pshot","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/chargekick","Body")
TNT1 A 0 A_GiveInventory("SwordManDividingStrikeFlag1",1)
stop
}
}

actor SwordManThirdFireAttackPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_WeaponReady(WRF_NOFIRE)
TNT1 A 0 A_PlaySoundEx("weapon/flamesword","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/SlashManClaw","Body") 
TNT1 A 0 A_FireCustomMissile("DividingStrikeFlame",0,0)
TNT1 A 0 A_FireCustomMissile("DividingStrikePointBlankDamager",0,0)
stop
}
}

actor SwordManThirdFireEndPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("Resolidifier")
TNT1 A 0 A_ChangeFlag("THRUACTORS",False)
TNT1 A 0 A_SpawnItemEx("DividingStrikeCoolDownWatcher")
TNT1 A 0 A_TakeInventory("SwordManDividingStrikeFlag1",1)
TNT1 A 0 A_TakeInventory("SwordManDividingStrikeFlag2",1)
TNT1 A 0 A_TakeInventory("SwordManDividingStrikeFlag3",1)
TNT1 A 0 A_TakeInventory("SwordManDividingStrikeFlag4",1)
stop
}
}

Actor DividingStrikeMovement : BaseMovement
{
states
{
itTimeGo:
TNT1 A 0 A_ChangeVelocity(CallACS("VC_XYMob", 18.0),0,momz,CVF_RELATIVE|CVF_REPLACE)//
stop
}
}

actor DividingStrikeDamager : BasicExplosion
{
Obituary "$OB_SWORDMAN4"
damagetype "SwordManTF"
States
{
Spawn:
TNT1 AA 0
TNT1 A 1 A_Explode(5,64,0,0,32)
stop
}
}

actor DividingStrikeDamagerFoot : BasicExplosion
{
Obituary "$OB_SWORDMAN4"
damagetype "SwordManTFFoot"
States
{
Spawn:
TNT1 AA 0
TNT1 A 1 A_Explode(5,64,0,0,64)
stop
}
}

actor DividingStrikeProtectFoot : PowerProtection
{
Powerup.Duration 9
damagefactor "SwordManTFFoot", 0.0
}

actor DividingStrikeProtect : PowerProtection
{
Powerup.Duration 1
damagefactor "SwordManTF", 0.0
}

actor RisingStrikeLegsSpawner : FastProjectile
{
Translation "192:192=219:219","198:198=43:43"
PROJECTILE
Obituary "$OB_SWORDMAN4"
damagetype "SwordManTF"
+THRUACTORS
+SKYEXPLODE
damage (0)
speed 20
Radius 1
Height 1
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1 ThrustThingZ(0,-600,0,1)
wait
Death:
TNT1 A 1
SWOM SS 1 A_SpawnItemEx("DividingStrikeDamagerFoot",0,0,16,0,0,0,0)
stop
}
}

actor FallingStrikeLegsSpawner : RisingStrikeLegsSpawner
{
States
{
Death:
TNT1 A 1
SWOM TT 1 A_SpawnItemEx("DividingStrikeDamagerFoot",0,0,16,0,0,0,0)
stop
}
}

actor DividingStrikePointBlankDamager
{
species "DustManType"
+THRUSPECIES
Projectile
Scale 2.5
Height 6
Radius 6
damagetype "SwordManTF2"
Obituary "$OB_SWORDMAN4"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(35,96,0,0,48)
stop
}
}

actor SwordManWallRush_CI : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("NewWallSlam",1,"PickupNo")
TNT1 A 0 A_GiveInventory("NoNewWallSlam",1)
TNT1 A 0 A_GiveInventory("NewWallSlam",1)
TNT1 A 0 A_GiveInventory("WallSlamRealTimer",1)
TNT1 A 0 A_SpawnItemEX("SwordManWallRushChecker")
stop
PickupNo:
TNT1 A 0
stop
}
}

actor SwordManWallRushChecker : BaseWallRushChecker
{
DamageType "RaThorWallRush"
Obituary "$OB_SWORDMAN4"
states
{
DeathCheck:
TNT1 A 0 //A_JumpIfInventory("NewWallSlam",1,"Death",AAPTR_TRACER)
TNT1 A 0 A_SpawnItemEx("RaThorWallBonk")
TNT1 A 0 A_GiveInventory("WallSlamTimer",1)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SwordManSlamRocks",random(-8,8),random(-8,8),random(-8,8),random(-8,8),random(-8,8),random(-8,8))
TNT1 A 0 A_Quake(3,10,0,256)
TNT1 A 0 A_PlaySoundEx("misc/quake","Body")
TNT1 A 0 A_PlaySoundEx("weapon/wallrush","Weapon")
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,CallACS("TracerHeightGet")/2,0,0)
TNT1 A 0 A_Explode(25,12,0,0,12)
TNT1 A 35
Death:
TNT1 A 2 A_GiveInventory("TempPitProtectEnd_P",1,AAPTR_TRACER)
stop
}
}

actor SwordManSlamRocks : ThorSlamRocks
{
translation "208:208=215:215", "46:46=230:230", "8:8=234:234"
}

actor DividingStrikeFlame
{
PROJECTILE
+THRUACTORS
+FLOORHUGGER
Damage (0)
speed 25
radius 1
height 1
const int SPD = -10;
const int OFS = 15;
States
{
Spawn:
TNT1 AA 0
Spawn2:
TNT1 A 0 A_PlaySoundEx("weapon/flamesword","Weapon")
TNT1 A 1
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("FlameSwordTrailRM3",0,0,0,SPD,Random(-OFS,OFS),Random(-OFS,OFS))
TNT1 A 1
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("FlameSwordTrailRM3",0,0,0,SPD,Random(-OFS,OFS),Random(-OFS,OFS))
TNT1 A 1
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("FlameSwordTrailRM3",0,0,0,SPD,Random(-OFS,OFS),Random(-OFS,OFS))
TNT1 A 1
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("FlameSwordTrailRM3",0,0,0,SPD,Random(-OFS,OFS),Random(-OFS,OFS))
TNT1 A 1
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("FlameSwordTrailRM3",0,0,0,SPD,Random(-OFS,OFS),Random(-OFS,OFS))
TNT1 A 1
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("FlameSwordTrailRM3",0,0,0,SPD,Random(-OFS,OFS),Random(-OFS,OFS))
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",4,"Death")
loop
Death:
TNT1 A 0
stop
}
}

actor FlameSwordTrailRM3 : FlameSwordTrailRM
{
+RIPPER
damagetype "SwordManTF"
Obituary "$OB_SWORDMAN4"
Damage (3)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
X_8C EFGEFGEFG 1
stop
Death:
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,-40)
stop
}
}

Actor DividingStrikeCoolDownWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 AA 0
TNT1 A 1 A_GiveToTarget("DividingStrikeCoolDown",280)
Goto Spawn2

Spawn2:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 1 A_TakeFromTarget("DividingStrikeCoolDown",1)
TNT1 A 0 A_JumpIfInTargetInventory("DividingStrikeCoolDown",1,"Spawn2")
Goto Death

Death:
TNT1 A 1
stop
}
}

actor DividingStrikeCoolDown : Inventory
{
inventory.amount 1
inventory.maxamount 280
}

actor SwordManFireCycloneFlag : VCOnce {}

actor SwordManUltimateStartPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,1,3)
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 A_GiveInventory("HalfDamageProtection",1)
TNT1 A 0 A_GiveInventory("PowerUltBuildCooldown",1)
TNT1 A 0 A_GiveInventory("SwordManFireCycloneFlag",1)
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,71)
TNT1 A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
TNT1 A 0 A_GiveInventory("NoPushFlag",1)
stop
}
}

actor SwordManUltimateEndPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,0,3)
TNT1 A 0 A_TakeInventory("HalfDamageProtection",1)
TNT1 A 0 A_TakeInventory("SwordManFireCycloneFlag",1)
TNT1 A 0 A_TakeInventory("NoPushFlag",1)
stop
}
}

actor FireCyclone
{
PROJECTILE
+RIPPER
+THRUSPECIES
+DONTREFLECT
damagetype "SwordManUlt"
Obituary "$OB_SWORDMAN5"
Species "FireCyclone"
damage (0)
height 1
radius 1
Speed 26
scale 2.5
const int OFS = 80;
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
Spawn2:
FCYC A 1 A_Explode(10,96,0) TNT1 A 0 A_SpawnItemEx("FireCycloneBlocker",0,0,-16) TNT1 A 0 A_GiveToTarget("SwordUltBuildCooldownGiver",1)
FCYC B 1 A_Explode(10,96,0) TNT1 A 0 A_SpawnItemEx("FireCycloneBlocker",0,0,-16) TNT1 A 0 A_GiveToTarget("SwordUltBuildCooldownGiver",1)
FCYC B 1 A_Explode(10,96,0) TNT1 A 0 A_SpawnItemEx("FireCycloneBlocker",0,0,-16) TNT1 A 0 A_GiveToTarget("SwordUltBuildCooldownGiver",1)
FCYC C 1 A_Explode(10,96,0) TNT1 A 0 A_SpawnItemEx("FireCycloneBlocker",0,0,-16) TNT1 A 0 A_GiveToTarget("SwordUltBuildCooldownGiver",1)
FCYC C 1 A_Explode(10,96,0) TNT1 A 0 A_SpawnItemEx("FireCycloneBlocker",0,0,-16) TNT1 A 0 A_GiveToTarget("SwordUltBuildCooldownGiver",1)
FCYC D 1 A_Explode(10,96,0) TNT1 A 0 A_SpawnItemEx("FireCycloneBlocker",0,0,-16) TNT1 A 0 A_GiveToTarget("SwordUltBuildCooldownGiver",1)
FCYC D 1 A_Explode(10,96,0) TNT1 A 0 A_SpawnItemEx("FireCycloneBlocker",0,0,-16) TNT1 A 0 A_GiveToTarget("SwordUltBuildCooldownGiver",1)
loop
}
}

actor FireCycloneBlocker
{
PROJECTILE
-NOBLOCKMAP
+GHOST
+NOBLOOD
+DONTRIP
+SHOOTABLE
+NORADIUSDMG
+DONTREFLECT
+THRUSPECIES
Species "FireCyclone"
health 99999
mass 99999
height 56
radius 96
Damage (0)
Speed 0
scale 2.5
painchance 256
States
{
Spawn:
TNT1 AA 0
TNT1 A 1
stop
Pain:
TNT1 A 1 A_PlaySound("weapon/firestorm")
TNT1 A 0 A_SpawnItemEx("FlameSwordBitRM",0,0,0,random(-10,10),random(-10,10),random(10,15),random(0,359))
stop
}
}

actor FireCycloneHitBox : BasicExplosion
{
damagetype "SwordManUlt"
Obituary "$OB_SWORDMAN5"
States
{
Spawn:
TNT1 A 0
TNT1 A 1
TNT1 A 1 ACS_ExecuteAlways(247, 0, 3, 400)
stop
}
}

actor FireCycloneProtect : PowerProtection
{
Powerup.Duration 3
damagefactor "SwordManUlt", 0.0
}

actor SwordUltBuildCooldownGiver : UltBuildCooldownGiver
{
Powerup.Duration 8
}

actor SwordUltFX : BasicClientSide
{
Translation "192:192=219:219","198:198=43:43"
reactiontime 60
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_SetAngle(angle+90)
loopit:
X_8C E 0 A_CheckCeiling("Death")
X_8C E 0 A_ChangeVelocity(20,0,16,CVF_RELATIVE|CVF_REPLACE)
X_8C E 1 A_SetAngle(angle+9)
X_8C F 0 A_CheckCeiling("Death")
X_8C F 0 A_ChangeVelocity(20,0,16,CVF_RELATIVE|CVF_REPLACE)
X_8C F 1 A_SetAngle(angle+9)
X_8C G 0 A_CheckCeiling("Death")
X_8C G 0 A_ChangeVelocity(20,0,16,CVF_RELATIVE|CVF_REPLACE)
X_8C G 1 A_SetAngle(angle+9)
X_8C G 0 A_Countdown
loop
Death:
X_8C ABCD 2 A_Stop
stop
}
}

actor SwordUltFX2 : SwordUltFX
{
Translation "192:192=215:215","198:198=218:218"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
X_8C AABBCCDD 1 A_ScaleVelocity(0.88)
stop
}
}

actor SwordManFireSlashFlag : VCOnce {}