actor BlazingTorchBoss : BaseMM8BDMWep_CBM 
{
tag "$TAGC_11F"
dropitem "BlazingTorchWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 28
Obituary "$OB_BLAZINGTORCH"
Inventory.Pickupmessage "Prepare yourself to feel the heat! TORCHJUTSU!"
weapon.ammotype "TorchjutsuAmmo"
weapon.ammotype2 "WaveDashAmmo"
States
{
Spawn:
C_01 E 1
loop
Ready:
TCCC Z 0 ACS_ExecuteAlways(998,0,DYE_TORCHMAN)
TCCC Z 0 A_GunFlash
goto Ready1
Ready1:
TCCC Z 1 A_WeaponReady
TCCC Z 0 A_GiveInventory("WaveDashAmmo",8)
loop
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 2 A_Lower
TNT1 Z 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
TCCC Z 1 A_Raise
Loop

NoAmmo:
TCCC Z 0 A_TakeInventory("TorchBashFlag",999)
//TCCC Z 0 A_PlaySoundEx("weapon/noammo","Auto")
TCCC Z 1 A_GiveInventory("WaveDashAmmo",8)
goto Ready1

Fire:
TNT1 A 0 A_JumpIfInventory("TorchJutsuAmmo",400,"PowerFire")
TCCC Z 1 offset(20,25)
TCCC Y 2 offset(40,40)
TCCC X 2 offset(50,50)
TCCC X 2 offset(50,50)
TCCC Z 0 A_GiveInventory("TorchM_MainInv_CI")
TCCC Y 2 offset(-20,12)
TCCC Z 2 offset(-20,12)
TCCC C 0 A_Refire("Fire2")
EndFireAnim:
TCCC Z 2 offset(-20,12)
TCCC Z 2 offset(-15,17)
TCCC Z 2 offset(-10,22)
TCCC Z 1 offset(-5,27)
TCCC Z 3
goto Ready1
Fire2:
TCCC Z 1 offset(25,25)
TCCC Z 1 offset(35,50)
TCCD Y 1 offset(-40,50)
TCCD Y 1 offset(-25,40)
TCCD X 2 offset(15,14)
TCCC Z 0 A_GiveInventory("TorchM_MainXInv_CI")
TCCD Y 3 offset(15,14)
TCCD Z 3 offset(5,25)
TCCD Z 3 offset(-20,40)
TCCD Z 3 offset(-45,75)
FireFinish:
TCCC Z 2 offset(50,46)
TCCC Z 2 offset(40,41)
TCCC Z 2 offset(25,36)
TCCC Z 1 offset(8,34)
TCCC Z 1 offset(8,33)
TCCC Z 2 
goto Ready1

PowerFire:
TCCC Z 1
TCCC Y 2 offset(40,40)
TCCC X 2 offset(50,50)
TCCC X 2 offset(50,50)
TCCC Z 0 A_GiveInventory("TorchM_MainInv_CI")
TCCC X 2 offset(-20,12)
TCCC Y 2 offset(-20,12)
TCCC C 0 A_Refire("PowerFire2")
EndPowerFireAnim:
TCCC Z 2 offset(-20,12)
TCCC Z 2 offset(-15,17)
TCCC Z 2 offset(-10,22)
TCCC Z 1 offset(-5,27)
TCCC Z 3
goto Ready1
PowerFire2:
TCCC Z 1 offset(25,25)
TCCC Z 1 offset(35,50)
TCCD Y 1 offset(-40,50)
TCCD Y 1 offset(-25,40)
TCCD X 2 offset(15,14)
TCCD Z 0 A_GiveInventory("TorchM_MainXInv_CI")
TCCD X 3 offset(15,14)
TCCD Y 3 offset(5,25)
TCCD Z 0 offset(5,25)A_JumpIfInventory("TorchJutsuAmmo",400,"PunchKickWait")
TCCD Z 3 offset(-20,40)
TCCD Z 3 offset(-45,75)
PowerFireFinish:
TCCC Z 2 offset(50,46)
TCCC Z 2 offset(40,41)
TCCC Z 2 offset(25,36)
TCCC Z 1 offset(8,34)
TCCC Z 1 offset(8,33)
TCCC Z 2 
goto Ready1

PunchKickWait:
TCCD Z 1 offset(18,15)A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
TCCD Z 1 offset(15,19)A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
TCCD Z 1 offset(11,24)A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
TCCD Z 1 offset(6,30)A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
TCCD Z 1 offset(0,38)A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
TCCD Z 1 offset(0,46)A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
goto FireFinish


Altfire:
TCCC Z 0 A_JumpIfInventory("WaveDashAmmo",200,"Kick")
goto NoAmmo

Kick:
KINH A 0 A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,"DiveKick")
TNT1 A 0 A_JumpIfInventory("TorchJutsuAmmo",400,"PowerKick")
goto MultiKick

MultiKick:
TNT1 A 1 Offset(-245,52)//A_TakeInventory("WaveDashAmmo",200)
TCCC A 0 ACS_NamedExecute("BULL_SetState",0,2)
TCCC A 0 A_PlaySoundEx("weapon/torchkick","Weapon")
TCCC A 1 Offset(-245,52)A_GiveInventory("TorchKick_CI",1)
TCCC A 1 Offset(-185,52)A_TakeInventory("WaveDashAmmo",40)
TCCC A 1 Offset(-165,42)A_GiveInventory("TorchKick_CI",1)
TCCC B 1 Offset(-125,32)A_TakeInventory("WaveDashAmmo",40)
TCCC B 1 Offset(-85,22)A_GiveInventory("TorchKick_CI",1)
TCCC B 1 Offset(-45,12)A_TakeInventory("WaveDashAmmo",40)
TCCC B 1 Offset(-5,2)A_GiveInventory("TorchKick_CI",1)
TCCC B 1 Offset(35,12)A_TakeInventory("WaveDashAmmo",40)
FR3A K 0 A_PlaySoundEx("weapon/torchroundhouse","Body")
TCCC B 1 Offset(75,22)A_GiveInventory("TorchKickEX_CI",1)
TCCC B 0 A_TakeInventory("WaveDashAmmo",40)
TCCC B 1 OffSet(115,32)
TCCC A 2 Offset(155,42)
TCCC A 2 Offset(175,52)
TNT1 A 16 A_WeaponReady(14)
TCCC Z 2 Offset(0,85)
TCCC Z 2 Offset(0,60)
TCCC Z 2 Offset(0,40)
TCCC Z 5 A_WeaponReady(14)
Goto Ready1

PowerKick: //pretty sure since first state has a delay, one wont be required here
TCCC A 0 A_PlaySoundEx("weapon/searchdash","Weapon")
TCCC A 0 A_JumpIfInventory("WaveDashAmmo",200,"LightPowerKick")
goto NoAmmo
LightPowerKick:
TCCC A 0 ACS_NamedExecute("BULL_SetState",0,5)
TCCC A 0 SetPlayerProperty(0,1,3)
TCCC A 1 SetPlayerProperty(0,1,4)
TCCC A 0 A_Recoil(-50)
TCCC A 1 offset(-245,52) A_SpawnItemEx("TorchKickChecker",8,0,0,momx,momy,momz,0,8)
TCCC A 0 A_JumpIfInventory("TorchMustKick",1,"LightPowerKickFinish")
TCCC A 1 offset(-245,52) A_SpawnItemEx("TorchKickChecker",8,0,0,momx,momy,momz,0,8)
TCCC A 0 A_JumpIfInventory("TorchMustKick",1,"LightPowerKickFinish")
TCCC A 1 offset(-245,52) A_SpawnItemEx("TorchKickChecker",8,0,0,momx,momy,momz,0,8)
TCCC A 0 A_JumpIfInventory("TorchMustKick",1,"LightPowerKickFinish")
TCCC A 1 offset(-245,52) A_SpawnItemEx("TorchKickChecker",8,0,0,momx,momy,momz,0,8)
TCCC A 0 A_JumpIfInventory("TorchMustKick",1,"LightPowerKickFinish")
TCCC A 1 Offset(-55,52) A_SpawnItemEx("TorchKickChecker",8,0,0,momx,momy,momz,0,8)
TCCC A 0 A_JumpIfInventory("TorchMustKick",1,"LightPowerKickFinish")
TCCC A 1 Offset(-55,52) A_SpawnItemEx("TorchKickChecker",8,0,0,momx,momy,momz,0,8)
TCCC A 0 A_JumpIfInventory("TorchMustKick",1,"LightPowerKickFinish")
TCCC C 1 Offset(-54,32)
LightPowerKickFinish:
TCCC A 0 ACS_NamedExecute("BULL_SetState",0,1)
//TCCC A 0 A_TakeInventory("WaveDashAmmo",200)
TCCC A 0 A_TakeInventory("TorchMustKick",1)
TCCC A 0 A_Stop
TCCC A 0 A_PlaySoundEx("weapon/torchexkick","Weapon")
TCCC C 1 Offset(-53,22)A_GiveInventory("TorchKickVertEX_CI",1)
TCCC C 0 A_TakeInventory("WaveDashAmmo",40)
TCCC C 1 Offset(-52,12)A_GiveInventory("TorchKickVertEX_CI",1)
TCCC C 0 A_TakeInventory("WaveDashAmmo",40)
TCCC C 1 Offset(-51,2)A_GiveInventory("TorchKickVertEX_CI",1)
TCCC C 0 A_TakeInventory("WaveDashAmmo",40)
TCCC C 1 Offset(-50,12)A_GiveInventory("TorchKickVertEX_CI",1)
TCCC C 0 A_TakeInventory("WaveDashAmmo",40)
TCCC C 1 OffSet(-51,32)A_GiveInventory("TorchKickVertEX_CI",1)
TCCC C 0 A_TakeInventory("WaveDashAmmo",40)
//TCCC C 0 A_JumpIfInventory("PGRagingKick_P",1,"RagingDemon")
TCCC A 0 A_GiveInventory("TorchRagingDemon_CI",1)
TCCC C 1 Offset(-53,32)
TCCC C 1 Offset(-55,32)
TCCC C 1 Offset(-52,32)
TCCC B 1 Offset(-55,34)
TCCC B 1 Offset(-52,36)
TCCC B 1 Offset(-55,38)
TCCC B 1 Offset(-52,40)
TCCC A 1 Offset(-55,32)
TCCC A 1 Offset(-52,34)
TCCC A 1 Offset(-55,36)
TCCC A 1 Offset(-52,38)
TNT1 A 6
TCCC A 0 SetPlayerProperty(0,0,3)
TCCC A 0 SetPlayerProperty(0,0,4) 
TCCC Z 2 Offset(0,85)
TCCC Z 2 Offset(0,60)
TCCC Z 2 Offset(0,40)
TCCC Z 5 A_WeaponReady(14)
Goto Ready1

/*RagingDemon:
TNT1 A 1 Offset(-245,52)
TCCC A 0 A_GiveInventory("TorchRagingDemon_CI",1)
TCCC A 0 SetPlayerProperty(0,0,3)
TCCC A 0 SetPlayerProperty(0,0,4) 
TCCC B 1 OffSet(115,32)
TCCC A 2 Offset(155,42)
TCCC A 2 Offset(175,52)
TNT1 A 16 A_WeaponReady(14)
TCCC Z 2 Offset(0,85)
TCCC Z 2 Offset(0,60)
TCCC Z 2 Offset(0,40)
TCCC Z 5 A_WeaponReady(14)
Goto Ready1*/

DiveKick:
TCCC C 0 A_JumpIfInventory("WaveDashAmmo",200,"DiveKickReal")
Goto Kick +1

DiveKickReal:
TCCC A 0 ACS_NamedExecute("BULL_SetState",0,3)
TCCC A 0 A_JumpIfInventory("TorchJutsuAmmo",400,"DiveKickPower")
TCCC Z 0 ThrustThingZ(0,60,0,0)
TCCC Z 0 A_PlaySoundEx("weapon/torchexkick","Weapon")
TCCC Z 2 
TCCC V 2 OffSet(60,30)
TCCC V 2 OffSet(83,23)
TCCC V 2 OffSet(83,23)
TCCC V 1 OffSet(116,18)
TCCC V 1 OffSet(188,11)
TCCC B 0 A_GiveInventory("TorchAltPitch_P",1)
TCCC B 0 A_SetArg(2,momx)
TCCC B 0 A_SetArg(3,momy)
TCCC B 0 A_SetArg(4,momz)
TCCC B 0 A_GiveInventory("NoJumpCancel",1)
TCCC B 0 A_GiveInventory("LadderDisable",1)
CMDH C 0 A_TakeInventory("UnSolid",99)
CMDH C 0 A_ChangeFlag("SOLID",0)
CMDH C 0 A_ChangeFlag("THRUSPECIES",1)
TCCC B 0 A_GiveInventory("TorchKickDive_CI",1)
DiveKickRealLoop:
TCCC A 0 ACS_NamedExecute("BULL_SetState",0,4)
TCCC B 0 A_PlaySoundEx("weapon/superboost","Body")
TCCC B 0 A_ChangeVelocity(args[2],args[3],args[4]-5,2)
TCCC C 1 OffSet(-14,10)A_JumpIf(z-floorz==0,"DiveKickEnd")
//TCCC C 1 OffSet(-14,10)A_JumpIf(z-floorz==0,"DiveKickEnd")
TCCC B 0 //A_TakeInventory("WaveDashAmmo",10)
TCCC B 1 OffSet(-14,17)A_JumpIf(z-floorz==0,"DiveKickEnd")
TCCC B 0 A_ChangeVelocity(args[2],args[3],args[4]-5,2)
TCCC B 0 A_JumpIf(z-floorz==0,"DiveKickEnd")
TCCC B 0 A_TakeInventory("TorchDiveTimeAmmo",10)
TCCC B 0 A_JumpIfInventory("TorchDiveTimeAmmo",1,1)
goto DiveKickEnd
TCCC B 0 A_JumpIfInventory("WaveDashAmmo",1,"DiveKickRealLoop")
goto DiveKickEnd

DiveKickPower:
TCCC X 0 ThrustThingZ(0,60,0,0)
TCCC X 0 A_PlaySoundEx("weapon/torchexkick","Weapon")
TCCC X 2 
TCCC W 2 OffSet(60,30)
TCCC W 2 OffSet(83,23)
TCCC W 2 OffSet(83,23)
TCCC W 1 OffSet(116,18)
TCCC W 1 OffSet(188,11)
TCCC C 0 A_GiveInventory("TorchAltPitch_P",1)
TCCC C 0 A_SetArg(2,momx)
TCCC C 0 A_SetArg(3,momy)
TCCC C 0 A_SetArg(4,momz)
TCCC C 0 A_TakeInventory("UnSolid",99)
TCCC C 0 A_ChangeFlag("SOLID",0)
TCCC C 0 A_ChangeFlag("THRUSPECIES",1)
TCCC C 0 A_GiveInventory("NoJumpCancel",1)
TCCC C 0 A_GiveInventory("LadderDisable",1)
TCCC C 0 A_GiveInventory("TorchKickDive_CI",1)
DiveKickPowerLoop:
TCCC A 0 ACS_NamedExecute("BULL_SetState",0,4)
TCCC C 0 A_PlaySoundEx("weapon/superboost","Body")
TCCC C 0 A_ChangeVelocity(args[2],args[3],args[4]-5,2)
TCCC C 1 A_JumpIf(z-floorz==0,"DiveKickPowerEnd")
TCCC C 1 OffSet(-14,17)A_JumpIf(z-floorz==0,"DiveKickPowerEnd")
TCCC C 0 //A_TakeInventory("WaveDashAmmo",10)
TCCC C 1 OffSet(-14,10)A_JumpIf(z-floorz==0,"DiveKickPowerEnd")
TCCC C 0 A_ChangeVelocity(args[2],args[3],args[4]-5,2)
TCCC C 0 A_JumpIf(z-floorz==0,"DiveKickPowerEnd")
TCCC C 0 A_TakeInventory("TorchDiveTimeAmmo",10)
TCCC C 0 A_JumpIfInventory("TorchDiveTimeAmmo",1,1)
goto DiveKickPowerEnd
TCCC C 0 A_JumpIfInventory("WaveDashAmmo",1,"DiveKickPowerLoop")
goto DiveKickPowerEnd

DiveKickEnd:
TCCC B 0 A_GiveInventory("TorchDiveTimeAmmo",350)
TCCC B 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)
TCCC B 0 A_TakeInventory("NoJumpCancel",999)
TCCC B 0 A_GiveInventory("LadderEnable",1)
CMDH C 0 A_ChangeFlag("THRUSPECIES",0)
CMDH C 0 A_SpawnItemEx("ResolidifyPlayer_H")
TCCC B 0 A_PlaySoundEx("weapon/torchkickland","Body")
TCCC Z 0 A_ScaleVelocity(0.05)
TCCC Z 0 A_GiveInventory("TorchDiveEnd",1)
TCCC B 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH) //same deal as before, moved up ammo and added weaponready
TCCC B 0 //A_SpawnItemEx("TorchCrushFX",0,0,-10,0,0,-10)
//TCCC C 0 offset(0,82)A_Quake(4,15,0,192,0)
TCCC B 0 offset(0,82)
TCCC B 0 A_PlaySoundEx("weapon/flamesword","Weapon")
TCCC C 0 A_FireCustomMissile("TorchKickDiveLand")
TCCC C 0 A_GiveInventory("TorchBossWaveSpawnerWeak_CI")
TCCC B 2 offset(-14,40) A_TakeInventory("WaveDashAmmo",200)
TCCC C 2 offset(-14,70)
TCCC B 2 offset(-14,130)
TCCC C 2 offset(-14,200)
TCCC B 2 offset(-14,300)
TCCC C 2 offset(-14,400)
TCCC B 17 offset(-14,600)
TNT1 A 1 A_WeaponReady(14)
TCCC Z 1 Offset(0,85)
TCCC Z 1 Offset(0,60)
TCCC Z 1 Offset(0,40)
TCCC Z 1 Offset(0,20)
TCCC Z 1 A_WeaponReady(14)
Goto Ready1

DiveKickPowerEnd:
TCCC C 0 A_GiveInventory("TorchDiveTimeAmmo",350)
TCCC C 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)
TCCC C 0 A_TakeInventory("NoJumpCancel",999)
TCCC C 0 A_GiveInventory("LadderEnable",1)
CMDH C 0 A_ChangeFlag("THRUSPECIES",0)
CMDH C 0 A_SpawnItemEx("ResolidifyPlayer_H")
TCCC B 0 A_PlaySoundEx("weapon/torchkickland","Body")
TCCC Z 0 A_ScaleVelocity(0.05)
TCCC Z 0 A_GiveInventory("TorchDiveEnd",1)
TCCC C 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH) //same deal as before, moved up ammo and added weaponready
TCCC C 0 //A_SpawnItemEx("TorchCrushFX",0,0,-10,0,0,-10)
TCCC C 0 offset(0,82)A_Quake(4,15,0,192,0)
TCCC C 0 offset(0,82)
TCCC C 0 A_PlaySoundEx("weapon/flamesword","Weapon")
TCCC C 0 A_FireCustomMissile("TorchKickDiveLandStrong")
TCCC C 0 A_GiveInventory("TorchBossWaveSpawner_CI")
TCCC C 2 offset(-14,40) A_TakeInventory("WaveDashAmmo",200)
TCCC C 2 offset(-14,70)
TCCC C 2 offset(-14,130)
TCCC C 2 offset(-14,200)
TCCC C 2 offset(-14,300)
TCCC C 2 offset(-14,400)
TCCC C 17 offset(-14,600)
TNT1 A 1 A_WeaponReady(14)
TCCC X 1 Offset(0,85)
TCCC X 1 Offset(0,60)
TCCC X 1 Offset(0,40)
TCCC Y 1 Offset(0,20)
TCCC Y 1 A_WeaponReady(14)
Goto Ready1

Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("PowerGearEnabled",1,"FlashPG")
TNT1 A 0 A_JumpIfInventory("TorchjutsuAmmo",400,"FlashPGSound")
TNT1 A 1 A_GiveInventory("TorchTake_P",1)
loop
FlashPGSound:
TNT1 A 0 A_GiveInventory("PowerGearEnabled",1)
TNT1 A 0 A_PlaySound("weapon/torchsuper","Body")
TNT1 A 0 //A_GiveInventory("TorchjutsuAmmo",20)
TNT1 A 0 A_GiveInventory("TorchPGArmor",1)
//TNT1 A 0 A_GiveInventory("TorchGearBoost",1)
TNT1 A 0 A_GiveInventory("GuardUpFlag",1)
TNT1 A 0 A_GiveInventory("WaveDashAmmo",600)
FlashPG:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
//TNT1 A 0 A_JumpIfInventory("PGStall_P",1,1)
TNT1 A 1 A_GiveInventory("TorchTakePG_P",1)
TNT1 A 0 A_JumpIfInventory("TorchjutsuAmmo",400,"FlashPG")
TNT1 A 0 A_PlaySound("body/torchextinguish","Body")
TNT1 A 0 A_TakeInventory("PowerGearEnabled",1)
TNT1 A 0 A_TakeInventory("TorchPGArmor",1)
//TNT1 A 0 A_TakeInventory("TorchGearBoost",1)
TNT1 A 0 A_TakeInventory("GuardUpFlag",1)
//TNT1 A 0 A_CheckSight("StreetFighterFlash")
goto Flash
}
}

actor TorchjutsuAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 500
+INVENTORY.IGNORESKILL
}

actor WaveDashAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 800
+INVENTORY.IGNORESKILL
}

actor LightHeavyChargeAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 400
+INVENTORY.IGNORESKILL
}

actor TorchTakeFlag : Inventory
{
inventory.amount 1
inventory.maxamount 20
+INVENTORY.IGNORESKILL
}

actor TorchDiveTimeAmmo : Inventory
{
inventory.amount 1
inventory.maxamount 350
+INVENTORY.IGNORESKILL
}

Actor TorchBashFlag : OnceC {}
actor PowerGearEnabled : OnceC {}
actor TorchMustKick : OnceC{}
actor TorchMagicSeriesFlag : OnceC {}

actor PGStall_P : Powerup
{
Powerup.Duration 50
}

actor PGRagingKick_P : Powerup
{
Powerup.Duration 10
}

actor TorchDiveEnd : Powerup
{
Powerup.Duration 5
}

actor TorchPGArmor : BasePowerPro
{
damagefactor "Normal", 0.9
}

actor TorchGearBoost : PowerSpeed
{
Speed 1.1
+POWERSPEED.NOTRAIL
}

actor TorchTake_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PGStall_P",1,"No")
TNT1 A 0 A_JumpIfInventory("TorchTakeFlag",5,"Take")
TNT1 A 0 A_GiveInventory("TorchTakeFlag",1)
stop
Take:
TNT1 A 2 A_TakeInventory("TorchjutsuAmmo",1)
TNT1 A 0 A_TakeInventory("TorchTakeFlag",20)
stop
No:
TNT1 A 0 A_TakeInventory("TorchTakeFlag",20)
stop
}
}

actor TorchTakePG_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PGStall_P",1,"No")
TNT1 A 0 A_JumpIfInventory("TorchTakeFlag",2,"Take")
TNT1 A 0 A_GiveInventory("TorchTakeFlag",1)
stop
Take:
TNT1 A 2 A_TakeInventory("TorchjutsuAmmo",3)
TNT1 A 0 A_TakeInventory("TorchTakeFlag",20)
stop
No:
TNT1 A 0 A_TakeInventory("TorchTakeFlag",20)
stop
}
}

actor TorchmanJutsu //: FastProjectile //Causes ridiculous rips from PGTorchmanJutsu. //Surely increasing the projectile speed will lead to nothing funny, right guys? Guys?
{
Translation "192:192=216:216", "198:199=42:42", "202:202=216:216"
PROJECTILE
damagetype "TorchHit1"
Obituary "$OB_TORCH"
+FORCEXYBILLBOARD
+BRIGHT
Damage (16)
radius 24
height 24
Speed 60
scale 2
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
TRCP AAAABBBBCCCC 1 A_SpawnItemEx("TorchmanJutsuFX",0,0,0,0,0,0,0,1)
Death:
TNT1 A 0 A_SpawnItemEx("TorchHandBoomFX",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
stop
}
}

actor PGTorchmanJutsu : TorchmanJutsu
{
Obituary "$OB_TORCHX"
damagetype "TorchHit1X"
damage (9)
+RIPPER
scale 3
radius 28
height 28
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
TRCP EFGHEFGHEFGHEFGH 1 A_SpawnItemEx("PGTorchmanJutsuFX",0,0,0,0,0,0,0,1)
Death:
TNT1 A 0 A_SpawnItemEx("TorchHandBoomFX",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("TorchSpinBoomFX",0,0,0,0,0,0,0,1)
TRCP A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
stop
}
}

actor TorchmanJutsuFX : TorchmanJutsu
{
damage (0)
speed 0
renderstyle add
alpha 0.6
+BRIGHT
States
{
Spawn:
TNT1 AA 1
SpawnLoop:
TRCP D 1 A_Fadeout
TRCP D 0 A_SetScale(ScaleX-0.1)
TRCP D 0 A_SetScale(ScaleY-0.1)
loop
}
}

actor TorchHandBoomFX : SpringFistHitFX
{
Scale 1.5
+BRIGHT
renderstyle add
States
{
Spawn:
X_8B ABCDEF 1
stop
}
}

actor TorchSpinBoomFX : TorchHandBoomFX
{
States
{
Spawn:
TRCP IIJJKKLL 1 A_SetScale(ScaleX+0.075)
stop
}
}

actor PGTorchmanJutsuFX : TorchmanJutsuFX{scale 3}

actor TorchKick
{
Translation "192:192=216:216", "198:198=42:42"
PROJECTILE
damagetype "TorchHit2"
Obituary "$OB_TORCH2"
+DONTBLAST
+DONTREFLECT
+HITTRACER
+BRIGHT
damage (4)
Radius 28
Height 16
speed 68
yscale 1.75
xscale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 //ACS_NamedExecuteAlways("BULL_Tidifier", 0)
11TK GFE 1
goto Death
Crash:
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedexecuteWithResult("cbm_istracerenemy")==1,"Death_Give")
Goto Death
Death_Give:
TNT1 A 2 A_SpawnItemEx("OilPitIgnite",0,0,8)
TNT1 A 0 A_PlaySoundEx("weapon/GrenadeShot","Weapon")
TNT1 A 0 A_Recoil(-8)
Goto Death
Death:
TNT1 A 0 A_Stop
11TK DCBA 1
stop
}
}

actor PainTorch_DiveHit : PainBaseFlingHit{Mass 9}

actor TorchKickVert : TorchKick
{
Translation "192:192=216:216", "198:198=42:42"
PROJECTILE
damagetype "TorchHit1"
damage (5)
Radius 36
Height 48
States
{
Spawn:
STEA MNO 1
stop
Crash:
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedexecuteWithResult("cbm_istracerenemy")==1,"Death_Give")
Goto Death
Death_Give:
TNT1 A 2 A_SpawnItemEx("OilPitIgnite",0,0,8)
TNT1 A 0 A_PlaySoundEx("weapon/GrenadeShot","Weapon")
TNT1 A 0 A_Recoil(-8)
Goto Death
Death:
STEA MNO 1
stop
}
}

actor TorchKickDive : TorchKick
{
PROJECTILE
damagetype "TorchHit3Air"
damage (0)
Radius 1
Height 1
+THRUACTORS
+NOINTERACTION
States
{
Spawn:
TNT1 AA 0
SpawnLoop:
11TK H 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
11TK H 0 A_SetPitch(CallACS("Bull_CheckFor",AAPTR_Target,4), 0)
11TK H 0 A_JumpIfInTargetInventory("TorchDiveEnd",1,"Death")
11TK H 0 A_Warp(AAPTR_Target, 36*cos(pitch), 0, 16 + 64*sin(-pitch), 0, WARPF_NOCHECKPOSITION)
11TK H 0 A_SpawnItemEx("TorchM_DiveKickFXHelper",0,0,0,0,0,0,0,1)
11TK H 0 A_Explode(3,48,0,0,36)
loop
Crash:
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedexecuteWithResult("cbm_istracerenemy")==1,"Death_Give")
Goto Death
Death_Give:
TNT1 A 2 A_SpawnItemEx("OilPitIgnite",0,0,8)
TNT1 A 0 A_PlaySoundEx("weapon/GrenadeShot","Weapon")
TNT1 A 0 A_Recoil(-8)
Goto Death
Death:
11TK H 1
stop
}
}

Actor TorchM_DiveKickFXHelper : BasicHelper
  {
    States
	{
		Spawn:
		TNT1 AA 0
		TNT1 A 0 A_SpawnItemEx("TorchM_DiveKickFX",18,0,16,-5,0,10,0,1)
		TNT1 A 0 A_SpawnItemEx("TorchM_DiveKickFX",18,0,16,-5,10,5,0,1)
		TNT1 A 0 A_SpawnItemEx("TorchM_DiveKickFX",18,0,16,-5,-10,5,0,1)
		TNT1 A 0 A_SpawnItemEx("TorchM_DiveKickFX",18,0,16,-5,7.5,-10,0,1)
		TNT1 A 0 A_SpawnItemEx("TorchM_DiveKickFX",18,0,16,-5,-7.5,-10,0,1)
		Stop
	}
  }
  
actor TorchM_DiveKickFX
{
PROJECTILE
+NOINTERACTION
+BRIGHT
Scale 2.5
alpha 1.0
renderstyle translucent
States
{
Spawn:
TNT1 AA 0
TNT1 A 3
X_8C FFGGEE 1 A_FadeOut(0.05)
wait
}
}

actor TorchKickDiveLand 
{
Translation "192:192=216:216", "198:198=42:42"
	+THRUSPECIES
	PROJECTILE
	damagetype "TorchHit3"
	Obituary "$OB_TORCH2"
	+RIPPER
	+NOINTERACTION
	+DONTBLAST
	damage (0)
	radius 1
	height 1
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 1 A_Explode(9,90,0,0,45)
		//PFBX BCDEFGHI 2 
		stop
		Crash:
		Death:
		XDeath:
		TNT1 A 0
		stop
	}
}

actor TorchM_RagingDemon 
{
Translation "192:192=216:216", "198:198=42:42"
	+THRUSPECIES
	+BRIGHT
	PROJECTILE
	renderstyle add
	damagetype "PGTorchHit25BOOM"
	Obituary "%k made %o \c[fire]fry one thousand deaths\c-."
	+RIPPER
	+NOINTERACTION
	+DONTBLAST
	damage (0)
	radius 1
	height 1
	xscale 2.5
	yscale 1
	alpha 0.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 2 A_Recoil(5)
		TNT1 A 0 A_stop
		TNT1 A 1 A_Explode(15,150,0,0,100)
		TNT1 A 0 A_PlaySound("weapon/ragingtorch","Voice",1.0)
		TNT1 A 0 A_JumpIfInTargetInventory("PGRagingKick_P",1,"TrueBlazingDemon")
		ECL4 HIJKLM 1 //A_SpawnItemEx("RagingDemonFireFXSpawner",0,0,0,0,0,0,0,1)
		stop		
		TrueBlazingDemon:
		TNT1 A 0 A_PlaySound("weapon/ragingtorchreal","SoundSlot7",1.0)
		TNT1 AAAA 0 A_SpawnItemEx("RagingDemonTrueFX",0,0,30,0,0,1,0,1)
		ECL4 HHIIJJIIJJIIJJIIJJKLM 1 A_SpawnItemEx("RagingDemonFireFXSpawner",0,0,0,0,0,0,0,1)
		stop
		Crash:
		Death:
		XDeath:
		TNT1 A 0
		stop
	}
}

actor TorchM_RagingDemonB : TorchM_RagingDemon{Translation"192:192=196:196","198:198=205:205","199:199=74:74"}
actor TorchM_RagingDemonR : TorchM_RagingDemon{Translation"192:192=170:170","198:198=171:171","199:199=41:41"}
actor TorchM_RagingDemonO : TorchM_RagingDemon{Translation"192:192=138:138","198:198=104:104","199:199=128:128"}
actor TorchM_RagingDemonP : TorchM_RagingDemon{Translation"192:192=214:214","198:198=229:229","199:199=232:232"}

actor RagingDemonFireFXSpawner
{
PROJECTILE
+NOINTERACTION
renderstyle add
scale .5
States
{
Spawn:
TNT1 AAAAA 0 A_SpawnItemEx("RagingDemonFireFX",frandom(-100,100),0,0,0,0,frandom(15,35),frandom(1,359),1)
stop
}
}

actor RagingDemonFireFX
{
PROJECTILE
+NOINTERACTION
+BRIGHT
renderstyle add
xscale .35
yscale .75
alpha .35
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/ragingtorchflame","Voice",1)
ECLP H 2 A_Fadeout
ECLP H 0 A_SetScale(ScaleX-0.05)
ECLP H 0 A_SetScale(ScaleY-0.05)
ECLP I 2 A_Fadeout
ECLP I 0 A_SetScale(ScaleX-0.05)
ECLP I 0 A_SetScale(ScaleY-0.05)
ECLP J 2 A_Fadeout
ECLP J 0 A_SetScale(ScaleX-0.05)
ECLP J 0 A_SetScale(ScaleY-0.05)
ECLP K 2 A_Fadeout
ECLP K 0 A_SetScale(ScaleX-0.05)
ECLP K 0 A_SetScale(ScaleY-0.05)
ECLP L 2 A_Fadeout
ECLP L 0 A_SetScale(ScaleX-0.05)
ECLP L 0 A_SetScale(ScaleY-0.05)
ECLP M 2 A_Fadeout
ECLP M 0 A_SetScale(ScaleX-0.05)
ECLP M 0 A_SetScale(ScaleY-0.05)
stop
}
}

actor RagingDemonTrueFX
{
renderstyle translucent
PROJECTILE
+BRIGHT
+NOINTERACTION
alpha 0.35
scale 2
reactiontime 8
States
{
Spawn:
TNT1 A 0
RGDM A 1
TNT1 A 1
RGDM B 1
TNT1 A 1
RGDM A 1
TNT1 A 1
RGDM B 1
TNT1 A 1 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor TorchKickDiveLandStrong : TorchKickDiveLand
{
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 1 A_Explode(15,90,0,0,45)
		stop
	}
}

actor TorchKick2
{
Translation "198:198=228:228", "192:192=160:160"
PROJECTILE
damagetype "TorchHit25"
Obituary "$OB_TORCH2X"
+DONTBLAST
+DONTREFLECT
+HITTRACER
+BRIGHT
damage (4)
Radius 39
Height 22
speed 68
yscale 1.75
xscale 2.5
States
{
Spawn:
TNT1 AA 0 
11TK GFE 1
Goto Death
Crash:
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedexecuteWithResult("cbm_istracerenemy")==1,"Death_Give")
Goto Death
Death_Give:
TNT1 A 2 A_SpawnItemEx("OilPitIgnite",0,0,8)
TNT1 A 0 A_PlaySoundEx("weapon/pharaohpunchhit","Weapon")
TNT1 A 0 A_Recoil(-8)
Goto Death
Death:
TNT1 A 0 A_Stop
11TK DCBA 1
stop
}
}

actor TorchKickVert2 : TorchKick2
{
damage (4)
damagetype "PGTorchHit25"
Obituary "%k made %o \c[fire]fry one thousand deaths\c-."
Radius 56
Height 64
speed 68
scale 6
States
{
Spawn:
STEA MNO 1
stop
Crash:
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedexecuteWithResult("cbm_istracerenemy")==1,"Death_Give")
Goto Death
Death_Give:
TNT1 A 2 A_SpawnItemEx("OilPitIgnite",0,0,8)
TNT1 A 0 A_PlaySoundEx("weapon/pharaohpunchhit","Weapon")
TNT1 A 0 A_Recoil(-8)
Goto Death
Death:
STEA MNO 1
stop
}
}

Actor TorchKickChecker
{
	+MISSILE
	+NOBLOCKMAP
	+NOGRAVITY
	+NOEXPLODEFLOOR
	+DONTBLAST
	+DONTREFLECT
	+HITTRACER
	+THRUGHOST
	+THRUSPECIES
	species "SmartDuoGrab"
	Obituary "$OB_TORCH2X"
	height 56
	radius 18
	renderstyle none
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 1
		stop
		
		Crash:
		TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"GiveKick")
		stop
		
		GiveKick:
		TNT1 A 0 A_GiveToTarget("TorchMustKick",1,AAPTR_DEFAULT)
		stop
		
		Death:
		TNT1 A 1
		stop
	}
}

actor TorchBossWaveSpawner
{
PROJECTILE
damagetype "TorchWave"
Obituary "$OB_BLAZINGTORCH"
Scale 2.0
+FLOORHUGGER
Speed 0
Damage (0)
+ripper
+THRUGHOST
+NOCLIP
Radius 0
Height 0
States
{
Spawn:
TNT1 A 0 
TNT1 A 1 
TNT1 A 0 A_ChangeFlag("NOCLIP",0)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,0,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,15,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,30,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,45,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,60,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,75,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,90,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,105,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,120,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,135,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,150,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,165,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,180,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,195,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,210,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,225,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,240,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,255,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,270,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,285,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,300,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,315,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,330,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,15,0,0,345,33)
stop
}
}

actor TorchBossWaveSpawnerB : TorchBossWaveSpawner{Translation"202:202=196:196","198:198=205:205","199:199=74:74"}
actor TorchBossWaveSpawnerR : TorchBossWaveSpawner{Translation"202:202=170:170","198:198=171:171","199:199=41:41"}
actor TorchBossWaveSpawnerO : TorchBossWaveSpawner{Translation"202:202=138:138","198:198=104:104","199:199=128:128"}
actor TorchBossWaveSpawnerP : TorchBossWaveSpawner{Translation"202:202=214:214","198:198=229:229","199:199=232:232"}

actor TorchBossWaveSpawnerWeak : TorchBossWaveSpawner
{
States
{
Spawn:
TNT1 A 0 
TNT1 A 1
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,25,0,0,345,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,25,0,0,0,33)
TNT1 A 0 A_SpawnItemEx("TorchBossWave",0,0,0,25,0,0,15,33)
stop
}
}

actor TorchBossWaveSpawnerWeakB : TorchBossWaveSpawnerWeak{Translation"202:202=196:196","198:198=205:205","199:199=74:74"}
actor TorchBossWaveSpawnerWeakR : TorchBossWaveSpawnerWeak{Translation"202:202=170:170","198:198=171:171","199:199=41:41"}
actor TorchBossWaveSpawnerWeakO : TorchBossWaveSpawnerWeak{Translation"202:202=138:138","198:198=104:104","199:199=128:128"}
actor TorchBossWaveSpawnerWeakP : TorchBossWaveSpawnerWeak{Translation"202:202=214:214","198:198=229:229","199:199=232:232"}

actor TorchBossWave
{
PROJECTILE
+FLOORHUGGER
+BRIGHT
damagetype "TorchWave"
Obituary "$OB_BLAZINGTORCH"
Scale 2.0
Speed 0
+RIPPER
+THRUGHOST
Damage (0)
Radius 32
Height 32
States
{
Spawn:
TNT1 A 3
TNT1 A 0 A_SpawnItemEx("TorchBossFlare",0,0,0,0,0,0,0,33)
TNT1 A 0 A_PlaySoundEx("weapon/torchwave","Weapon")
TNT1 A 3
TNT1 A 0 A_SpawnItemEx("TorchBossFlare",0,0,0,0,0,0,0,33)
TNT1 A 0 A_PlaySoundEx("weapon/torchwave","Weapon")
TNT1 A 3
TNT1 A 0 A_SpawnItemEx("TorchBossFlare",0,0,0,0,0,0,0,33)
TNT1 A 0 A_PlaySoundEx("weapon/torchwave","Weapon")
TNT1 A 3
TNT1 A 0 A_SpawnItemEx("TorchBossFlare",0,0,0,0,0,0,0,33)
TNT1 A 0 A_PlaySoundEx("weapon/torchwave","Weapon")
TNT1 A 3
TNT1 A 0 A_SpawnItemEx("TorchBossFlare",0,0,0,0,0,0,0,33)
TNT1 A 0 A_PlaySoundEx("weapon/torchwave","Weapon")
TNT1 A 3
TNT1 A 0 A_SpawnItemEx("TorchBossFlare",0,0,0,0,0,0,0,33)
TNT1 A 0 A_PlaySoundEx("weapon/torchwave","Weapon")
stop
XDeath:
TNT1 A 1
stop
Death:
TNT1 A 1
stop
}
}

actor TorchBossFlare
{
PROJECTILE
damagetype "TorchWave"
Obituary "$OB_BLAZINGTORCH"
Scale 3.0
Speed 0
Damage (3)
+BRIGHT
+THRUGHOST
+RIPPER
Radius 9
Height 48
States
{
Spawn:
BTRC ABCDEFGHIJK 1
stop
XDeath:
TNT1 A 1
stop
Death:
TNT1 A 1
stop
}
}

actor TorchPunch : TorchmanJutsu
{
Obituary "$OB_TORCHPUNCH"
+DONTBLAST
reactiontime 1
damage (16)
Radius 20
Height 20
speed 120
scale 2.5
States
{
Spawn:
UMFX J 0
DKC1 G 1 A_CountDown
wait
XDeath:
UMFX J 0 A_Stop
TCCC X 0 A_PlaySoundEx("weapon/torchpunch","Voice")
Death:
UMFX J 0 A_Stop
DKC1 GHIJK 1
stop
}
}

actor TorchPunchB : TorchPunch{translation "198:199=199:199", "192:192=74:74", "202:202=74:74"}
actor TorchPunchR : TorchPunch{translation "198:199=43:43", "192:192=41:41", "202:202=41:41"}
actor TorchPunchO : TorchPunch{translation "198:199=131:131", "192:192=128:128", "202:202=128:128"}
actor TorchPunchP : TorchPunch{translation "198:199=223:223", "192:192=232:232", "202:202=232:232"}

actor TorchM_MainInv_CI : CustomInventory
{
States
{
Pickup:
DKN2 J 0 A_Jumpif(CallACS("CCBM_ButtonCheck",BT_ALTATTACK) == True,"Pickup3")
TNT1 A 0 A_JumpIfInventory("WaveDashAmmo",100,"PickupPGCHECK")
goto Pickup3
PickupPGCHECK:
TCCC Z 0 A_TakeInventory("WaveDashAmmo",100)
TNT1 A 0 A_JumpIfInventory("TorchJutsuAmmo",400,"Pickup1")
goto Pickup2
Pickup1:
TCCC X 0 A_PlaySoundEx("weapon/torchfireball","Body")
TCCC X 0 A_PlaySoundEx("weapon/torchexfireball","Weapon")
TNT1 A 0 A_GiveInventory("TorchMain2_CI")
stop
Pickup2:
TCCC X 0 A_PlaySoundEx("weapon/torchfireball","Weapon")
TNT1 A 0 A_GiveInventory("TorchMain_CI")
stop
Pickup3:
TCCC X 0 A_PlaySoundEx("weapon/torchpunchweak","Weapon")
TNT1 A 0 A_GiveInventory("TorchMainMelee_CI")
stop
}
}

actor TorchM_MainXInv_CI : CustomInventory
{
States
{
Pickup:
DKN2 J 0 A_Jumpif(CallACS("CCBM_ButtonCheck",BT_ALTATTACK) == True,"Pickup3")
TNT1 A 0 A_JumpIfInventory("WaveDashAmmo",100,"PickupPGCHECK")
goto Pickup3
PickupPGCHECK:
TCCC Z 0 A_TakeInventory("WaveDashAmmo",100)
TNT1 A 0 A_JumpIfInventory("TorchJutsuAmmo",400,"Pickup1")
goto Pickup2
Pickup1:
TCCC X 0 A_PlaySoundEx("weapon/torchfireball","Body")
TCCC X 0 A_PlaySoundEx("weapon/torchexfireball","Weapon")
TNT1 A 0 A_GiveInventory("TorchMain2X_CI")
stop
Pickup2:
TCCC X 0 A_PlaySoundEx("weapon/torchfireball","Weapon")
TNT1 A 0 A_GiveInventory("TorchMainX_CI")
stop
Pickup3:
TCCC X 0 A_PlaySoundEx("weapon/torchpunchweak","Weapon")
TNT1 A 0 A_GiveInventory("TorchMainMeleeX_CI")
stop
}
}

actor TorchmanJutsuB : TorchmanJutsu{translation "198:198=199:199", "192:192=74:74"}
actor TorchmanJutsuR : TorchmanJutsu{translation "198:198=43:43", "192:192=41:41"}
actor TorchmanJutsuO : TorchmanJutsu{translation "198:198=131:131", "192:192=128:128"}
actor TorchmanJutsuP : TorchmanJutsu{translation "198:198=223:223", "192:192=232:232"}

actor TorchMain_CI : TeamColor_CI
{
Obituary "$OB_TORCH"
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("TorchmanJutsu",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("TorchmanJutsuB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("TorchmanJutsuR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("TorchmanJutsuO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("TorchmanJutsuP",0,0,8,0)
goto Done
}
}

actor TorchMainX_CI : TeamColor_CI
{
Obituary "$OB_TORCH"
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("TorchmanJutsu",0,0,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("TorchmanJutsuB",0,0,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("TorchmanJutsuR",0,0,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("TorchmanJutsuO",0,0,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("TorchmanJutsuP",0,0,-8,0)
goto Done
}
}

actor PGTorchmanJutsuB : PGTorchmanJutsu{translation "198:198=199:199", "192:192=74:74"}
actor PGTorchmanJutsuR : PGTorchmanJutsu{translation "198:198=43:43", "192:192=41:41"}
actor PGTorchmanJutsuO : PGTorchmanJutsu{translation "198:198=131:131", "192:192=128:128"}
actor PGTorchmanJutsuP : PGTorchmanJutsu{translation "198:198=223:223", "192:192=232:232"}

actor TorchMain2_CI : TeamColor_CI
{
Obituary "$OB_TORCH"
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("PGTorchmanJutsu",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("PGTorchmanJutsuB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("PGTorchmanJutsuR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("PGTorchmanJutsuO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("PGTorchmanJutsuP",0,0,8,0)
goto Done
}
}

actor TorchMain2X_CI : TeamColor_CI
{
Obituary "$OB_TORCH"
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("PGTorchmanJutsu",0,0,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("PGTorchmanJutsuB",0,0,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("PGTorchmanJutsuR",0,0,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("PGTorchmanJutsuO",0,0,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("PGTorchmanJutsuP",0,0,-8,0)
goto Done
}
}

actor TorchMainMelee_CI : TeamColor_CI
{
Obituary "$OB_TORCH"
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("TorchPunch",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("TorchPunchB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("TorchPunchR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("TorchPunchO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("TorchPunchP",0,0,8,0)
goto Done
}
}

actor TorchMainMeleeX_CI : TeamColor_CI
{
Obituary "$OB_TORCH"
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("TorchPunch",0,0,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("TorchPunchB",0,0,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("TorchPunchR",0,0,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("TorchPunchO",0,0,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("TorchPunchP",0,0,-8,0)
goto Done
}
}

actor TorchKickB : TorchKick{translation "198:198=74:74", "192:192=205:205"}
actor TorchKickR : TorchKick{translation "198:198=41:41", "192:192=171:171"}
actor TorchKickO : TorchKick{translation "198:198=128:128", "192:192=104:104"}
actor TorchKickP : TorchKick{translation "198:198=232:232", "192:192=229:229"}

actor TorchKick_CI : TeamColor_CI
{
Obituary "$OB_TORCH2"
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("TorchKick",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("TorchKickB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("TorchKickR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("TorchKickO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("TorchKickP",0,0,8,0)
goto Done
}
}

actor TorchKickDiveB : TorchKickDive{translation "198:198=74:74", "192:192=205:205"}
actor TorchKickDiveR : TorchKickDive{translation "198:198=41:41", "192:192=171:171"}
actor TorchKickDiveO : TorchKickDive{translation "198:198=128:128", "192:192=104:104"}
actor TorchKickDiveP : TorchKickDive{translation "198:198=232:232", "192:192=229:229"}

actor TorchKickDive_CI : TeamColor_CI
{
Obituary "$OB_TORCH2"
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("TorchKickDive",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("TorchKickDiveB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("TorchKickDiveR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("TorchKickDiveO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("TorchKickDiveP",0,0,8,0)
goto Done
}
}

actor TorchKick2B : TorchKick2{translation "198:198=205:205", "192:192=196:196"}
actor TorchKick2R : TorchKick2{translation "198:198=171:171", "192:192=48:48"}
actor TorchKick2O : TorchKick2{translation "198:198=104:104", "192:192=138:138"}
actor TorchKick2P : TorchKick2{translation "198:198=229:229", "192:192=214:214"}

actor TorchKickEX_CI : TeamColor_CI
{
Obituary "$OB_TORCHEX"
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("TorchKick2",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("TorchKick2B",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("TorchKick2R",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("TorchKick2O",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("TorchKick2P",0,0,0,0)
goto Done
}
}

actor TorchKickVert2B : TorchKickVert2{translation "198:198=205:205", "192:192=196:196"}
actor TorchKickVert2R : TorchKickVert2{translation "198:198=171:171", "192:192=170:170"}
actor TorchKickVert2O : TorchKickVert2{translation "198:198=104:104", "192:192=138:138"}
actor TorchKickVert2P : TorchKickVert2{translation "198:198=229:229", "192:192=214:214"}

actor TorchKickVertEX_CI : TeamColor_CI
{
Obituary "$OB_TORCHEX"
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("TorchKickVert2",frandom(-1,1),0,-16,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("TorchKickVert2B",frandom(-1,1),0,-16,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("TorchKickVert2R",frandom(-1,1),0,-16,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("TorchKickVert2O",frandom(-1,1),0,-16,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("TorchKickVert2P",frandom(-1,1),0,-16,0)
goto Done
}
}

actor TorchRagingDemon_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("TorchM_RagingDemon",0,0,0,-30,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("TorchM_RagingDemonB",0,0,0,-30,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("TorchM_RagingDemonR",0,0,0,-30,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("TorchM_RagingDemonO",0,0,0,-30,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("TorchM_RagingDemonP",0,0,0,-30,0,0)
goto Done
}
}

actor TorchBossWaveSpawner_CI : TeamColor_CI
{
	states
	{
	FireX:
	TNT1 A 0 A_SpawnItemEx("TorchBossWaveSpawner",0,0,0,0,0,0,0,1)
	goto Done
	FireB:
	TNT1 A 0 A_SpawnItemEx("TorchBossWaveSpawnerB",0,0,0,0,0,0,0,1)
	goto Done
	FireR:
	TNT1 A 0 A_SpawnItemEx("TorchBossWaveSpawnerR",0,0,0,0,0,0,0,1)
	goto Done
	FireO:
	TNT1 A 0 A_SpawnItemEx("TorchBossWaveSpawnerO",0,0,0,0,0,0,0,1)
	goto Done
	FireP:
	TNT1 A 0 A_SpawnItemEx("TorchBossWaveSpawnerP",0,0,0,0,0,0,0,1)
	goto Done
	}
}

actor TorchBossWaveSpawnerWeak_CI : TeamColor_CI
{
	states
	{
	FireX:
	TNT1 A 0 A_SpawnItemEx("TorchBossWaveSpawnerWeak",0,0,0,0,0,0,0,1)
	goto Done
	FireB:
	TNT1 A 0 A_SpawnItemEx("TorchBossWaveSpawnerWeakB",0,0,0,0,0,0,0,1)
	goto Done
	FireR:
	TNT1 A 0 A_SpawnItemEx("TorchBossWaveSpawnerWeakR",0,0,0,0,0,0,0,1)
	goto Done
	FireO:
	TNT1 A 0 A_SpawnItemEx("TorchBossWaveSpawnerWeakO",0,0,0,0,0,0,0,1)
	goto Done
	FireP:
	TNT1 A 0 A_SpawnItemEx("TorchBossWaveSpawnerWeakP",0,0,0,0,0,0,0,1)
	goto Done
	}
}

//FOR PAINSTATES
actor PainTorchHit1 : BasicHitBase
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("PainTorchHit1_P",1)
stop
}
}
actor PainTorchHit1_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveToTarget("TorchjutsuAmmo",100)
TNT1 A 0 A_GiveToTarget("PGStall_P")
stop
}
}

actor PainSmallTorchHit1 : BasicHitBase
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("PainSmallTorchHit1_P",1)
stop
}
}
actor PainSmallTorchHit1_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveToTarget("TorchjutsuAmmo",35)
TNT1 A 0 A_GiveToTarget("PGStall_P")
stop
}
}

actor PainTorchHit2 : BasicHitBase
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("PainTorchHit2_P",1)
stop
}
}
actor PainTorchHit2_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveToTarget("TorchjutsuAmmo",15)
TNT1 A 0 A_GiveToTarget("TorchBashFlag",1)
TNT1 A 0 A_GiveToTarget("PGStall_P")
stop
}
}

actor PainTorchHit25 : BasicHitBase
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("PainTorchHit25_P",1)
stop
}
}
actor PainTorchHit25_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveToTarget("TorchjutsuAmmo",60)
TNT1 A 0 A_GiveToTarget("PGStall_P")
stop
}
}

actor PainTorchHit3 : BasicHitBase
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("PainTorchHit3_P",1)
stop
}
}
actor PainTorchHit3_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveToTarget("TorchjutsuAmmo",35)
TNT1 A 0 A_GiveToTarget("PGStall_P")
stop
}
}

actor PainTorchHit35 : BasicHitBase
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("PainTorchHit35_P",1)
stop
}
}
actor PainTorchHit35_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveToTarget("TorchjutsuAmmo",15)
TNT1 A 0 A_GiveToTarget("PGStall_P")
stop
}
}

actor PainTorchWaveHit : BasicHitBase
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("TorchWaveHitProtect")
TNT1 A 0 A_GiveToTarget("PainTorchWaveHit_P")
stop
}
}

actor PainTorchWaveHit_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveToTarget("TorchjutsuAmmo",10)
TNT1 A 0 A_GiveToTarget("PGStall_P")
stop
}
}

actor TorchWaveHitProtect : PowerProtection
{
Powerup.Duration 5
DamageFactor "TorchWave", 0.0
}

actor TorchFistFX : BasicClientSide
{
Translation "195:195=175:175", "204:204=216:216"
Scale 2.5
States
{
Spawn:
X_4D PQRSTYVWXY 1
stop
}
}

actor TorchFistFX2 : BasicClientSide
{
Translation "195:195=175:175", "204:204=216:216"
Scale 3.5
States
{
Spawn:
X_4D PQRSTYVWXY 1
stop
}
}

actor TorchFistFX3 : BasicClientSide
{
Translation "195:195=175:175", "204:204=216:216"
Scale 1.25
States
{
Spawn:
X_4D PQRSTYVWXY 1
stop
}
}

actor TorchAltLightPitch_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 //A_LogInt(pitch)
TNT1 A 0 A_JumpIf(pitch<=90 && pitch>=20,"Yes")
TNT1 A 0 A_ChangeVelocity(cos(20)*25,0,-sin(20)*25,3)
stop
Yes:
TNT1 A 0 A_ChangeVelocity(cos(pitch)*25,0,-sin(pitch)*25,3)
stop
}
}

actor TorchAltPitch_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 //A_LogInt(pitch)
TNT1 A 0 A_JumpIf(pitch<=90 && pitch>=20,"Yes")
TNT1 A 0 A_ChangeVelocity(cos(20)*50,0,-sin(20)*50,3)
stop
Yes:
TNT1 A 0 A_ChangeVelocity(cos(pitch)*50,0,-sin(pitch)*50,3)
stop
}
}