actor GoukiBossWeapon : MegaBuster //Uncriple him time.
{
tag "Akuma's Fists"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Weapon.SlotNumber 1
Obituary "$OB_GOUKIPUNCH"
+INVENTORY.UNDROPPABLE
weapon.ammotype "BossRageCharge"
weapon.ammotype2 "BossRageCharge"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
TNT1 A 0
stop
Ready:
AKUN S 0 ACS_NamedExecuteAlways("GiveExecution",0)
AKUN S 0 ACS_ExecuteAlways(991,0,532)
CleanReady:
AKUN S 0 A_TakeInventory("GoukiDoingGoHadoken", 999)
AKUN S 0 A_TakeInventory("CutterFlag", 999)
AKUN S 0 A_TakeInventory("GoukiNextCombo", 999)
AKUN S 0 A_TakeInventory("GoukiNoPunch2Times", 999)
AKUN S 0 A_TakeInventory("GoukiNoKick2Times", 999)
AKUN S 0 A_TakeInventory("GoukiGo2ndKick", 999)
AKUN S 0 A_TakeInventory("GoukiGo2ndPunch", 999)
AKUN S 0 A_TakeInventory("GoukiElementOfCombo", 999)
AKUN S 0 A_TakeInventory("GoukiComboDelayer", 999)
AKUN S 0 A_TakeInventory("ShunGokuSatsuProcess", 999)
AKUN S 1 A_WeaponReady(WRF_NOSWITCH)
AKUN S 0 
AKUN S 1
Goto Ready+1
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
AKUN S 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
AKUN S 1 A_Raise
Loop
Fire:
Hold:
GoHadokenPrelude:
AKUN Q 0 A_JumpIf(z-floorz>=12, "ZankuHadokenCourage")
AKUN Q 0 //A_SetGravity(1000.0)
AKUN Q 0 A_PlaySoundEx("BusterRodG/PressureJumpX", "Item")
GoHadokenPreludeCharge:
AKUN Q 0 SetPlayerProperty(0, 1, 0)
AKUN S 0 A_GiveInventory("GoukiGoHadokenCounter", 1)
AKUN Q 0 A_Stop
AKUN S 0 A_JumpIfInventory("GoukiGoHadokenCounter", 28, "ShakunetsuHadoken")
AKUN S 1 A_GiveInventory("GoukiDoingGoHadoken", 2)
AKUN S 0 A_Refire("GoHadokenPreludeCharge")
AKUN S 0 A_JumpIfInventory("GoukiGoHadokenCounter", 21, "GoHadokenLV4")
AKUN S 0 A_JumpIfInventory("GoukiGoHadokenCounter", 14, "GoHadokenLV3")
AKUN S 0 A_JumpIfInventory("GoukiGoHadokenCounter", 7, "GoHadokenLV2")
GoHadokenLV1:
AKUO B 1 Offset(0,-10) A_Stop
AKUO CD 1 Offset(0,0) A_Stop
AKUN T 0 A_TakeInventory("GoukiGoHadokenCounter", 999)
AKUO E 0 A_PlaySoundEx("Gouki/GoHadoken", "Weapon")
AKUO EEEE 1 Offset(0,0) A_Stop
AKUO E 0 A_FireCustomMissile("GoHadokenAkuma1", 0, 0, 0, 5)
AKUO E 0 A_PlaySoundEx("Gouki/GoHadokenShot", "Item")
goto HadokensFinish
GoHadokenLV2:
AKUO B 1 Offset(0,-10) A_Stop
AKUO CD 1 Offset(0,0) A_Stop
AKUN T 0 A_TakeInventory("GoukiGoHadokenCounter", 999)
AKUO E 0 A_PlaySoundEx("Gouki/GoHadoken", "Weapon")
AKUO EEEE 1 Offset(0,0) A_Stop
AKUO E 0 A_FireCustomMissile("GoHadokenAkuma2", 0, 0, 0, 5)
AKUO E 0 A_PlaySoundEx("Gouki/GoHadokenShot", "Item")
goto HadokensFinish
GoHadokenLV3:
AKUO B 1 Offset(0,-10) A_Stop
AKUO CD 1 Offset(0,0) A_Stop
AKUN T 0 A_TakeInventory("GoukiGoHadokenCounter", 999)
AKUO E 0 A_PlaySoundEx("Gouki/GoHadoken", "Weapon")
AKUO EEEE 1 Offset(0,0) A_Stop
AKUO E 0 A_FireCustomMissile("GoHadokenAkuma3", 0, 0, 0, 5)
AKUO E 0 A_PlaySoundEx("Gouki/GoHadokenShot", "Item")
goto HadokensFinish
GoHadokenLV4:
AKUO B 1 Offset(0,-10) A_Stop
AKUO CD 1 Offset(0,0) A_Stop
AKUN T 0 A_TakeInventory("GoukiGoHadokenCounter", 999)
AKUO E 0 A_PlaySoundEx("Gouki/GoHadoken", "Weapon")
AKUO EEEE 1 Offset(0,0) A_Stop
AKUO E 0 A_FireCustomMissile("GoHadokenAkuma4", 0, 0, 0, 5)
AKUO E 0 A_PlaySoundEx("Gouki/GoHadokenShot", "Item")
goto HadokensFinish
ShakunetsuHadoken:
AKUO B 1 Offset(0,-10) A_Stop
AKUO CD 1 Offset(0,0) A_Stop
AKUN T 0 A_TakeInventory("GoukiGoHadokenCounter", 999)
AKUO E 0 A_PlaySoundEx("Gouki/ShakunetsuHadoken", "Weapon")
AKUO EEEE 1 Offset(0,0) A_Stop
AKUO E 0 A_FireCustomMissile("ShakunetsuHadokenAkuma", 0, 0, 0, 5)
AKUO E 0 A_PlaySoundEx("Gouki/ShakunetsuHadokenShot", "Item")
goto HadokensFinish
HadokensFinish:
AKUO EEEEEEE 1 Offset(0,0) A_Stop
AKUN Q 0 Offset(0,0) SetPlayerProperty(0, 0, 0)
AKUN Q 0 A_SetGravity(1.40)
AKUO DCB 2 Offset(0,0)
AKUN R 2 Offset(0,0)
AKUN S 4 Offset(0,32)
goto Ready+1



ZankuHadokenCourage:
AKUN S 1 A_PlaySoundEx("BusterRodG/PressureJumpX", "Item")
AKUO HI 1 A_Stop
AKUO J 0 A_GiveInventory("GoukiZankuSprite", 1)
AKUO J 2 A_PlaySoundEx("Gouki/PunchPower", "Weapon")
AKUO K 0 A_PlaySoundEx("Gouki/ZankuHadoken", "Item")
AKUO K 0 A_FireCustomMissile("ZankuHadokenAkuma", 2, 0, 46, 10)
AKUO KKKKKKKKK 1 A_Stop
AKUO J 0 A_TakeInventory("GoukiZankuSprite", 999)
AKUO J 0 A_GiveInventory("GoukiZankuSprite2", 1)
AKUO J 2 A_PlaySoundEx("Gouki/PunchPower", "Weapon")
AKUO K 0 A_PlaySoundEx("Gouki/ZankuHadoken", "Auto")
AKUO K 0 A_FireCustomMissile("ZankuHadokenAkuma", -2, 0, -46, 10)
AKUO LLLLLLLLL 1 A_Stop
AKUO J 2
AKUO IH 2 A_TakeInventory("GoukiZankuSprite2", 999)
//AKUN S 1
goto Ready+1

GoShoryukenUppercut:
//AKUN S 0 A_CheckFloor(1)
//goto Fire+3
AKUN SS 2 A_JumpIfInventory("GoukiAshuraSenkuRelic", 1, "AshuraSenkuSneaky")
AKUN S 2 Offset(25, 40) A_JumpIfInventory("GoukiAshuraSenkuRelic", 1, "AshuraSenkuSneaky")
AKUN S 2 Offset(50, 80) A_JumpIfInventory("GoukiAshuraSenkuRelic", 1, "AshuraSenkuSneaky")
AKUN S 0 A_GiveInventory("GoukiUsingGoShoryuken", 1)
AKUN S 0 SetPlayerProperty(0, 1, 4)
AKUN S 0 A_Recoil(-40)
AKUN S 0 A_ChangeFlag("NOGRAVITY", 1)
TNT1 A 2
AKUN N 0 A_PlaySoundEx("Gouki/PunchPower", "Weapon")
AKUN S 0 A_PlaySoundEx("Gouki/GoShoryuken", "Item")
AKUN S 0 ThrustThingZ(0, 135, 0, 0)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 Offset(55, 100)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 Offset(40, 75)
AKUN S 0 A_TakeInventory("GoukiUsingGoShoryuken", 999)
AKUN S 0 A_GiveInventory("GoukiUsingGoShoryuken2", 1)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 Offset(25, 50)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 Offset(10, 25)
AKUN S 0 A_TakeInventory("GoukiUsingGoShoryuken", 999)
AKUN VVVVV 1 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -10, momx, momy, momz)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 //A_SetAngle(angle+10)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 //A_SetAngle(angle+10)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 //A_SetAngle(angle+10)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 //A_SetAngle(angle+10)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 //A_SetAngle(angle+10)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 //A_SetAngle(angle+10)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 //A_SetAngle(angle+10)
AKUN V 0 A_SpawnItemEx("GoShoryukenAkuma", 45, 0, -15, momx, momy, momz)
AKUN V 1 //A_SetAngle(angle+10)
AKUN S 0 SetPlayerProperty(0, 0, 4)
TNT1 A 0 A_ChangeFlag("NOGRAVITY", 0)
AKUN V 1 Offset(-15, 40) //A_SetAngle(angle+20)
AKUN S 0 A_TakeInventory("GoukiUsingGoShoryuken2", 999)
AKUN V 1 Offset(-30, 80)// A_SetAngle(angle+20)
AKUN V 1 Offset(-45, 120) //A_SetAngle(angle+20)
TNT1 AAAAAAA 1 //A_SetAngle(angle+20)
AKUN S 4 Offset(-30,80)
AKUN S 4 Offset(-20,50)
AKUN S 2 Offset(-10,20)
AKUN S 9
goto Ready+1

AltFire:
AltHold:
AKUN N 0 A_CheckFloor(1)
goto GoShoryukenUppercut
PrepaKickin:
AKUN N 0 A_JumpIfInventory("BossRageCharge3", 1500, "RagingDemon")
AKUN N 0 
goto TatsumakiZankukyakuPrelude//FirstKicking

TatsumakiZankukyakuPrelude:
AKUN S 1 Offset(0,45)
AKUN S 1 Offset(0,90) SetPlayerProperty(0,1,4)
AKUN R 0 A_ChangeFlag("NOGRAVITY", 1)
AKUN R 0 A_Recoil(-8)
AKUN M 0 ThrustThingZ(0, 90, 0, 0)
AKUN M 0 A_GiveInventory("TatsumakiZankukyakuSprite", 1)
AKUN M 0 A_PlaySoundEx("Gouki/RaisingKick", "Auto")
AKUO M 1 Offset(38,75)
AKUN R 0 A_PlaySoundEx("Gouki/TatsumakiZankukyaku", "Item")
//AKUO M 1 Offset(22,45)
AKUO M 1 Offset(15,30)
//AKUO M 1 Offset(10,20)
AKUO M 1 Offset(5,10)
AKUN R 0 A_Stop
AKUN M 0 A_TakeInventory("TatsumakiZankukyakuSprite", 1)
AKUN M 0 A_GiveInventory("TatsumakiZankukyakuSprite2", 1)
Tatsumaki:
AKUO M 0 A_PlaySoundEx("weapon/topspin","Weapon")
AKUO M 0 A_ChangeVelocity(27, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO M 0 A_SpawnItemEx("TatsumakiZankukyakuKikZone", 46, 0, -55, 0, 0, 0)
AKUO M 0 //A_SetAngle(angle+45)
AKUO M 1 A_GiveInventory("CutterFlag", 1)
AKUO M 0 A_SpawnItemEx("TatsumakiZankukyakuKikZone", 46, 0, -55, 0, 0, 0)
AKUO M 0 //A_SetAngle(angle+45)
AKUO M 1 A_GiveInventory("CutterFlag", 1)
AKUO M 0 A_SpawnItemEx("TatsumakiZankukyakuKikZone", 46, 0, -55, 0, 0, 0)
AKUO M 0 //A_SetAngle(angle+45)
AKUO M 1 A_GiveInventory("CutterFlag", 1)
AKUO M 0 A_SpawnItemEx("TatsumakiZankukyakuKikZone", 46, 0, -55, 0, 0, 0)
AKUO M 0 //A_SetAngle(angle+45)
AKUO M 0 A_PlaySoundEx("weapon/topspin","Weapon")
AKUO M 1 A_GiveInventory("CutterFlag", 1)
AKUO M 0 A_SpawnItemEx("TatsumakiZankukyakuKikZone", 46, 0, -55, 0, 0, 0)
AKUO M 0 //A_SetAngle(angle+45)
AKUO M 1 A_GiveInventory("CutterFlag", 1)
AKUO M 0 A_SpawnItemEx("TatsumakiZankukyakuKikZone", 46, 0, -55, 0, 0, 0)
AKUO M 0 //A_SetAngle(angle+45)
AKUO M 1 A_GiveInventory("CutterFlag", 1)
AKUO M 0 A_SpawnItemEx("TatsumakiZankukyakuKikZone", 46, 0, -55, 0, 0, 0)
AKUO M 0 //A_SetAngle(angle+45)
AKUO M 1 A_GiveInventory("CutterFlag", 1)
AKUO M 0 A_SpawnItemEx("TatsumakiZankukyakuKikZone", 46, 0, -55, 0, 0, 0)
AKUO M 0 //A_SetAngle(angle+45)
AKUO M 1 A_GiveInventory("CutterFlag", 1)
AKUO M 0 A_JumpIfInventory("CutterFlag", 27, "FinishTatsumaki")
goto Tatsumaki
FinishTatsumaki:
AKUN M 0 A_TakeInventory("TatsumakiZankukyakuSprite2", 1)
AKUN R 0 A_ChangeFlag("NOGRAVITY", 0)
AKUO M 2 Offset(5,30)
AKUO M 1 Offset(14,80)
TNT1 A 2
AKUN S 1 Offset(-30,80)
AKUN S 2 Offset(-20,50)
AKUN S 2 Offset(-10,20)
AKUN R 0 SetPlayerProperty(0,0,4)
AKUN S 5
goto Ready+1

AshuraSenkuSneaky:
AKUN S 0 A_CheckFloor("AshuraSenkuYeah")
goto AshuraSenkuFail
AshuraSenkuFail:
AKUN S 6
goto Ready+1
AshuraSenkuYeah:
AKUO P 0 A_GiveInventory("AshuraSenkuSprite", 1)
AKUO P 0 A_PlaySoundEx("Gouki/AshuraSenku", "Weapon")
AKUO P 0 SetPlayerProperty(0, 1, 4)
AKUO PNOPNOPNOPNOPNO 1
AKUO P 0 A_TakeInventory("AshuraSenkuSprite", 999)
AKUO P 0 A_GiveInventory("AshuraSenkuSprite2", 1)
AKUO P 0 A_ChangeFlag("INVULNERABLE", 1)
AKUO Q 0 A_ChangeFlag("NOGRAVITY", 1)
AKUO Q 0 A_ChangeFlag("SOLID", 0)
AKUO P 1 ACS_ExecuteAlways(401, 0, 14)
AKUO P 0 A_JumpIfInventory("GoukiAshuraBackward", 1, "AshuraSenkuOneWayStreet")
AKUO Q 3 Offset(30, 140) A_ChangeVelocity(39, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO Q 0 A_PlaySoundEx("Gouki/AshuraSenkuDash", "Item")
AKUO Q 3 Offset(10, 50) A_ChangeVelocity(75, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO Q 15 Offset(0,0) A_ChangeVelocity(104, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO Q 2 Offset(10, 50) A_ChangeVelocity(75, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO Q 1 Offset(30, 140) A_ChangeVelocity(39, 0, 0, CVF_RELATIVE | CVF_REPLACE)
FinishAshuraSenku:
AKUO Q 0 A_SpawnItemEx("ReSolidifier")
AKUO Q 0 A_ChangeFlag("NOGRAVITY", 0)
AKUO Q 0 A_ChangeFlag("INVULNERABLE", 0)
AKUO Q 0 A_ChangeFlag("SOLID", 1)
AKUO Q 0 A_ChangeVelocity(0, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO Q 0 SetPlayerProperty(0, 0, 4)
AKUO P 0 A_TakeInventory("AshuraSenkuSprite2", 999)
AKUN S 1 Offset(-30,80) //A_Stop
AKUN S 1 Offset(-30,80)
AKUN S 1 Offset(-20,50)
AKUO Q 0 A_ChangeVelocity(0, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUN S 1 Offset(-10,20)
AKUN S 2
goto Ready+1
AshuraSenkuOneWayStreet:
AKUO Q 3 Offset(30, 140) A_ChangeVelocity(-39, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO Q 0 A_PlaySoundEx("Gouki/AshuraSenkuDash", "Item")
AKUO Q 3 Offset(10, 50) A_ChangeVelocity(-75, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO Q 15 Offset(0,0) A_ChangeVelocity(-104, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO Q 2 Offset(10, 50) A_ChangeVelocity(-75, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO Q 1 Offset(30, 140) A_ChangeVelocity(-39, 0, 0, CVF_RELATIVE | CVF_REPLACE)
goto FinishAshuraSenku
AshuraSenkuFail:
AKUN S 6
goto Ready+1

RagingDemon:
AKUN N 0 A_TakeInventory("GoukiShunGokuSatsuRelic", 999)
AKUN N 0 A_TakeInventory("HoldOnHeMightBeActing", 999)
AKUN S 0 A_TakeInventory("GoukiDoingGoHadoken", 999)
AKUN S 0 A_TakeInventory("CutterFlag", 999)
AKUN S 0 A_TakeInventory("GoukiNextCombo", 999)
AKUN S 0 A_TakeInventory("GoukiNoPunch2Times", 999)
AKUN S 0 A_TakeInventory("GoukiNoKick2Times", 999)
AKUN S 0 A_TakeInventory("GoukiGo2ndKick", 999)
AKUN S 0 A_TakeInventory("GoukiGo2ndPunch", 999)
AKUN S 0 A_TakeInventory("GoukiElementOfCombo", 999)
AKUN S 0 A_TakeInventory("GoukiComboDelayer", 999)
AKUN N 0 A_CheckFloor("TrueRagingDemon")
goto Ready+1
TrueRagingDemon:
AKUO P 0 A_GiveInventory("AshuraSenkuSprite", 1)
AKUO P 0 ACS_ExecuteAlways(991,0,533)
AKUO P 0 A_ChangeFlag("NOGRAVITY", 1)
AKUO P 0 A_TakeInventory("BossRageCharge3", 300)
AKUO P 1 A_Stop
AKUO N 0 A_TakeInventory("BossRageCharge3", 300)
AKUO N 1 A_Stop
AKUO O 0 A_TakeInventory("BossRageCharge3", 300)
AKUO O 1 A_Stop
AKUO P 0 A_TakeInventory("BossRageCharge3", 300)
AKUO P 1 A_Stop
AKUO N 0 A_TakeInventory("BossRageCharge3", 300)
AKUO N 1 A_Stop
AKUO O 0 A_TakeInventory("BossRageCharge3", 300)
AKUO O 1 A_Stop
AKUO P 0 A_ChangeFlag("INVULNERABLE", 1)
AKUO P 0 SetPlayerProperty(0, 1, 4)
AKUO P 0 A_TakeInventory("AshuraSenkuSprite", 999)
AKUO P 0 A_GiveInventory("RagingDemonSprite", 1)
AKUO R 0 Offset(30, 140) A_ChangeVelocity(78, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO R 0 Offset(30, 140) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 1 Offset(30, 140) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 0 Offset(30, 140) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(30, 140) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(30, 140) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(30, 140) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 A_PlaySoundEx("Gouki/AshuraSenkuDash", "Item")
AKUO R 0 Offset(10, 50) A_ChangeVelocity(150, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO R 0 Offset(10, 50) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(10, 50) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(10, 50) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(10, 50) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(10, 50) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(10, 50) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0,0) A_ChangeVelocity(208, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(0, 0) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(0, 0) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(10, 50) A_ChangeVelocity(150, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO R 0 Offset(10, 50) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(10, 50) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(10, 50) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(10, 50) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO R 0 Offset(30, 140) A_ChangeVelocity(78, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO R 0 Offset(30, 140) A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
AKUO R 1 Offset(30, 140) A_SpawnItemEx("ShunGokuSatsuCatcher", 75, 0, 0, momx, momy, momz)
AKUO P 0 A_TakeInventory("RagingDemonSprite", 999)
AKUO Q 0 A_ChangeFlag("NOGRAVITY", 0)
AKUO Q 0 A_ChangeFlag("INVULNERABLE", 0)
TNT1 A 0 A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
TNT1 A 1 A_Stop
TNT1 A 0 A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
TNT1 A 1 A_Stop
TNT1 A 0 A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
TNT1 A 1 A_Stop
TNT1 A 0 A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
TNT1 A 1 A_Stop
TNT1 A 0 A_JumpIfInventory("ShunGokuSatsuProcess", 1, "MurderingInterlude")
TNT1 A 1 A_Stop
AKUO Q 0 SetPlayerProperty(0, 0, 4)
AKUO P 0 ACS_ExecuteAlways(991,0,532)
AKUN S 1 Offset(-30,80) A_Stop
AKUN S 1 Offset(-20,50) //A_Stop
AKUO Q 0 A_ChangeVelocity(0, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUN S 1 Offset(-10,20)
AKUN S 2 A_SpawnItemEx("RagingDemonLotDeConsolation")
goto Ready+1
MurderingInterlude:
AKUO P 0 A_Stop
AKUO R 1 Offset(30, 140) A_ChangeVelocity(0, 0, 0, CVF_RELATIVE | CVF_REPLACE)
AKUO P 0 A_TakeInventory("RagingDemonSprite", 999)
AKUO Q 0 A_ChangeFlag("NOGRAVITY", 0)
AKUO Q 0 A_ChangeFlag("INVULNERABLE", 0)
AKUO R 0 ACS_ExecuteAlways(401, 0, 16)
AKUO R 30 A_GiveInventory("ShunGokuSatsuSprite", 1)
AKUO R 0 A_TakeInventory("ShunGokuSatsuSprite", 999)
goto Ready+1

NoAmmo:
AKUN S 1 ACS_Execute(979,0)
Goto Ready+1
}
}

actor GoukiBasicPunch : SaxtonFist
{
Obituary "$OB_GOUKIPUNCH"
Translation "13:150=167:167","151:255=159:159"
-NOINTERACTION
+RIPPER
Radius 20
Height 32
+DONTBLAST
scale 4.0
damage (40)
damagetype "GoukiCombo"
speed 41
}

actor GoukiBasicKick : GoukiBasicPunch
{
Radius 24
Height 52
scale 4.25
damage (46) // 
damagetype "GoukiComboKick"
speed 45
Obituary "$OB_GOUKIKICK"
}

actor GoHadokenAkumaTrail
{
PROJECTILE
+DONTBLAST
+NOINTERACTION
renderstyle "translucent"
alpha 0.7
scale 4.0
states
{
Spawn:
AKUN A 0
AKUN AABBCCDDAABB 1 BRIGHT A_FadeOut(0.08)
stop
}
}

actor ShakunetsuHadokenAkumaTrail : GoHadokenAkumaTrail
{
states
{
Spawn:
AKUN A 0
AKUN IJIJIJIJIJIJ 1 BRIGHT A_FadeOut(0.12)
stop
}
}

actor GoHadokenAkuma1
{
PROJECTILE
+DONTBLAST
Obituary "$OB_GOHADOKEN"
damagetype "GoHadoken"
Radius 24
Height 24
scale 3.5
damage (15)
speed 40
states
{
Spawn:
AKUN A 0
AKUN AABBCCDD 1 BRIGHT A_SpawnItemEx("GoHadokenAkumaTrail")
loop
XDeath:
Crash:
AKUN A 0 A_Stop
AKUN AABBCCDDAABBCCDD 1 BRIGHT A_FadeOut(0.06)
Death:
TNT1 A 0
stop
}
}

actor GoHadokenAkuma2 : GoHadokenAkuma1
{
damage (20)
states
{
Spawn:
AKUN A 0
AKUN AABBCCDD 1 BRIGHT A_SpawnItemEx("GoHadokenAkumaTrail")
loop
XDeath:
Crash:
AKUN A 0 A_Stop
AKUN AABBCCDD 1 BRIGHT A_FadeOut(0.06)
AKUN A 0 A_SpawnItemEx("GoHadokenAkuma2-ExtraHit", 0, 0, 0, 0, 0, 0) 
AKUN AABBCCDD 1 BRIGHT A_FadeOut(0.06)
Death:
TNT1 A 0
stop
}
}

actor GoHadokenAkuma3 : GoHadokenAkuma2
{
damage (25)
states
{
Spawn:
AKUN A 0
AKUN AABBCCDD 1 A_SpawnItemEx("GoHadokenAkumaTrail")
loop
XDeath:
Crash:
AKUN A 0 A_Stop
AKUN AAABBB 1 BRIGHT A_FadeOut(0.04)
AKUN A 0 A_SpawnItemEx("GoHadokenAkuma3-ExtraHit", 0, 0, 0, 0, 0, 0) 
AKUN CCCDDD 1 BRIGHT A_FadeOut(0.04)
AKUN A 0 A_SpawnItemEx("GoHadokenAkuma3-ExtraHit", 0, 0, 0, 0, 0, 0) 
AKUN AAABBBCCCDDD 1 BRIGHT A_FadeOut(0.04)
Death:
TNT1 A 0
stop
}
}

actor GoHadokenAkuma4 : GoHadokenAkuma3
{
damage (30)
states
{
Spawn:
AKUN A 0
AKUN ABCD 2 BRIGHT A_SpawnItemEx("GoHadokenAkumaTrail")
loop
XDeath:
Crash:
AKUN A 0 A_Stop
AKUN AAABBB 1 BRIGHT A_FadeOut(0.04)
AKUN A 0 A_SpawnItemEx("GoHadokenAkuma4-ExtraHit", 0, 0, 0, 0, 0, 0) 
AKUN CCCDDD 1 BRIGHT A_FadeOut(0.04)
AKUN A 0 A_SpawnItemEx("GoHadokenAkuma4-ExtraHit", 0, 0, 0, 0, 0, 0) 
AKUN AAABBB 1 BRIGHT A_FadeOut(0.04)
AKUN A 0 A_SpawnItemEx("GoHadokenAkuma4-ExtraHit", 0, 0, 0, 0, 0, 0) 
AKUN CCCDDD 1 BRIGHT A_FadeOut(0.04)
Death:
TNT1 A 0
stop
}
}

actor ShakunetsuHadokenAkuma : GoHadokenAkuma1
{
Obituary "$OB_SHAKUNETSU"
damagetype "ShakunetsuHadoken"
Radius 36
Height 36
scale 3.5
damage (35)
speed 65
states
{
Spawn:
AKUN I 0
AKUN IIJJ 1 BRIGHT A_SpawnItemEx("ShakunetsuHadokenAkumaTrail")
loop
XDeath:
Crash:
AKUN A 0 A_Stop
AKUN I 4 BRIGHT A_FadeOut(0.12)
AKUN J 2 BRIGHT A_FadeOut(0.12)
AKUN A 0 A_SpawnItemEx("ShakunetsuHadokenAkuma-ExtraHit", 0, 0, 0, 0, 0, 0)
AKUN J 2 BRIGHT 
AKUN I 4 BRIGHT A_FadeOut(0.12)
AKUN A 0 A_SpawnItemEx("ShakunetsuHadokenAkuma-ExtraHit", 0, 0, 0, 0, 0, 0)
AKUN J 4 BRIGHT A_FadeOut(0.12)
AKUN I 2 BRIGHT A_FadeOut(0.12)
AKUN A 0 A_SpawnItemEx("ShakunetsuHadokenAkuma-ExtraHit", 0, 0, 0, 0, 0, 0)
AKUN I 2 BRIGHT 
AKUN J 4 BRIGHT A_FadeOut(0.12)
AKUN A 0 A_SpawnItemEx("ShakunetsuHadokenAkuma-ExtraHit", 0, 0, 0, 0, 0, 0)
Death:
TNT1 A 0
stop
}
}

actor GoHadokenAkuma2-ExtraHit : GoHadokenAkuma2
{
Radius 90
Height 90
damage (10)
damagetype "GoHadoken2"
states
{
Spawn:
TNT1 A 2
stop
XDeath:
Crash:
Death:
TNT1 A 0
stop
}
}

actor GoHadokenAkuma3-ExtraHit : GoHadokenAkuma2-ExtraHit
{
damage (15)
}

actor GoHadokenAkuma4-ExtraHit : GoHadokenAkuma3-ExtraHit
{
damage (20)
}

actor ShakunetsuHadokenAkuma-ExtraHit : GoHadokenAkuma4-ExtraHit
{
Obituary "$OB_SHAKUNETSU"
Radius 110
Height 110
damagetype "ShakunetsuHadoken2"
damage (10)
}

actor TatsumakiZankukyakuKikZone
{
PROJECTILE
+DONTBLAST
Obituary "$OB_TATSUMAKI"
damagetype "TatsumakiZankukyaku"
damage (8)
Radius 85
Height 210
states
{
Spawn:
TNT1 A 2
stop
Death:
TNT1 A 0
stop
}
}

actor TatsumakiZankukyakuImmu : PowerProtection
{
damagefactor "TatsumakiZankukyaku", 0.0
powerup.duration 3
}

actor GoHadokenMysticism
{
PROJECTILE
+NOINTERACTION
scale 4.5
damage (0)
radius 4
height 4
states
{
Spawn:
AKUN K 12 BRIGHT 
AkumaMasterRace:
AKUN K 1 BRIGHT A_FadeOut(0.13)
loop
Death:
TNT1 A 0
stop
}
}

actor ZankuHadokenAkumaTrail
{
PROJECTILE
+NOINTERACTION
renderstyle "translucent"
alpha 0.8
scale 1.6
states
{
Spawn:
AKUN A 0
AKUN EEFFGGHHEEFF 1 BRIGHT A_FadeOut(0.08)
stop
}
}

actor ZankuHadokenAkuma
{
PROJECTILE
+DONTBLAST
Obituary "$OB_ZANKUKUNAHADOUKEN"
damagetype "GoHadoken"
Radius 24
Height 24
scale 3.15
damage (15)
speed 64
states
{
Spawn:
AKUN A 0
AKUN A 0 A_PlaySoundEx("Gouki/GoHadokenShot", "Item")
AKUN E 0 //A_ChangeVelocity(0, 0, -10, CVF_RELATIVE)
ContinueGoing:
AKUN EEFFGGHH 1 BRIGHT A_SpawnItemEx("ZankuHadokenAkumaTrail")
loop
XDeath:
Crash:
AKUN A 0 A_Stop
AKUN EFGHEFGH 2 BRIGHT A_FadeOut(0.12)
Death:
TNT1 A 0
stop
}
}

actor GoShoryukenAkuma
{
PROJECTILE
+DONTBLAST
+RIPPER
Obituary "$OB_GOSHORYUKEN"
damagetype "GoShoryuken"
radius 65
Height 280
damage (15)
speed 0
states
{
Spawn:
TNT1 A 2
stop
Death:
TNT1 A 0
stop
}
}

actor ShunGokuSatsuCatcher
{
PROJECTILE
+SKYEXPLODE
+DONTBLAST
Obituary "$OB_GOSHORCATCHER"
damagetype "ShunGokuSatsu"
damage (5)
radius 75
Height 60
//+NOINTERACTION
states
{
Spawn:
TNT1 A 0
TNT1 A 2 //A_Explode(1, 100, 0)
stop
Death:
TNT1 A 0
stop
}
}

actor AkumaGoHadokenBang : DioFlashBang
{
scale 2.1
States
{
Spawn:
AKUN L 0
AKUN LLMMM 1 A_FadeOut(0.08)
stop
}
}

actor AkumaGoShoryukenBang : AkumaGoHadokenBang
{
States
{
Spawn:
DIOF S 0
DIOF SSSTTTT 1 A_FadeOut(0.06)
stop
}
}

actor AkumaShakunetsuHadokenBang : ZaWarudoBang
{
scale 2.1
}

/*actor GoukiHitStunManager
{
PROJECTILE
+NOINTERACTION
states
{
Spawn:
TNT1 A 6
TNT1 A 0 A_GiveToTarget("TotallyFrozenOFFItem", 1)
stop
}
}*/

actor GoukiGoHadokenZone : PowerProtection
{
damagefactor "GoHadoken2", 0.0
damagefactor "ShakunetsuHadoken2", 0.0
damagefactor "ShunGokuSatsuFate", 0.0
Powerup.Duration 0x7FFFFFFF
}

actor GoShoryukenDefense : PowerProtection
{
damagefactor "GoShoryuken", 0.0
powerup.duration 6
}

actor GoukiElementOfCombo : OnceC{}
actor GoukiNextCombo : GoukiElementOfCombo{}
actor GoukiGo2ndPunch : GoukiNextCombo{}
actor WeaponObtained : GoukiNextCombo{}
actor GoukiGo2ndKick : GoukiNextCombo{}
actor GoukiGoHadokenRelic : GoukiNextCombo{}
actor GoukiNoPunch2Times : GoukiNextCombo{}
actor GoukiNoKick2Times : GoukiNextCombo{}
actor GoukiDoingGoHadoken : GoukiNextCombo{}
actor HoldOnHeMightBeActing : GoukiNextCombo{}
actor GoukiAshuraSenkuRelic : GoukiNextCombo{}
actor GoukiGoHadokenCounter : GoukiNextCombo{inventory.amount 1 inventory.maxamount 40 }
actor GoukiZankuSprite : GoukiNextCombo{}
actor GoukiZankuSprite2 : GoukiNextCombo{}
actor GoukiTatsumakiZankukyakuRelic : GoukiNextCombo{}
actor TatsumakiZankukyakuSprite : GoukiNextCombo{}
actor TatsumakiZankukyakuSprite2 : GoukiNextCombo{}
actor AshuraSenkuSprite : GoukiNextCombo{}
actor AshuraSenkuSprite2 : GoukiNextCombo{}
actor RagingDemonSprite : GoukiNextCombo{}
actor GoukiGoShoryukenRelic : GoukiNextCombo{}
actor GoukiComboDelayer : GoukiNextCombo{}
actor GoukiUsingGoShoryuken : GoukiNextCombo{}
actor GoukiUsingGoShoryuken2 : GoukiNextCombo{}
actor GoukiAshuraBackward : GoukiNextCombo{}
actor GoukiShunGokuSatsuRelic : GoukiNextCombo{}
actor ShunGokuSatsuProcess : GoukiNextCombo{}
actor ShunGokuSatsuSprite : GoukiNextCombo{}
actor ShunGokuSatsuPain1 : GoukiNextCombo{}
actor ShunGokuSatsuPain2 : GoukiNextCombo{}
actor ShunGokuSatsuPain3 : GoukiNextCombo{}
actor ShunGokuSatsuPain4 : GoukiNextCombo{}
actor ShunGokuSatsuPain5 : GoukiNextCombo{}
actor ShunGokuSatsuPain6 : GoukiNextCombo{}
actor ShunGokuSatsuPain7 : GoukiNextCombo{}
actor ShunGokuSatsuPain8 : GoukiNextCombo{}
actor ShunGokuSatsuPain9 : GoukiNextCombo{}
actor ShunGokuSatsuPain10 : GoukiNextCombo{}
actor ShunGokuSatsuPain11 : GoukiNextCombo{}
actor ShunGokuSatsuPain12 : GoukiNextCombo{}
actor ShunGokuSatsuPain13 : GoukiNextCombo{}
actor ShunGokuSatsuPain14 : GoukiNextCombo{}
actor ShunGokuSatsuPain15 : GoukiNextCombo{}
actor ShunGokuSatsuPain16 : GoukiNextCombo{}
actor ShunGokuSatsuScreamer : GoukiNextCombo{}

actor GoukiMiniImmuniser : PowerProtection
{
damagefactor "GoukiCombo", 0.0
damagefactor "GoukiComboKick", 0.0
Powerup.Duration 4
}

actor StopAirAssist
{
states
{
Spawn:
AKUN Z 0
TNT1 A 0 A_SpawnItemEx("StopAirAssist2")
stop
}
}

actor AkumaBang : DioFlashBang
{
scale 1.8
States
{
Spawn:
AKUN Z 4
AKUO A 4 A_SetTranslucent(0.8)
stop
}
}


actor GoShoryukenRetablisher
{
PROJECTILE
+NOINTERACTION
states
{
Spawn:
TNT1 A 8
TNT1 A 0 A_GiveToTarget("TotallyFrozenOFFItem", 1)
TNT1 A 0 A_GiveToTarget("NoGravityOFFItem", 1)
stop
}
}

actor AshuraSenkuIllusion
{
+NOINTERACTION
+NOGRAVITY
scale 4.0
reactiontime 3
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_ExecuteAlways(991,0,532)
IllusioningIllusionOfTheIllusionCastle:
AKUM N 2 A_SetTranslucent(0.3)
AKUM N 2 A_SetTranslucent(0.8)
AKUM N 0 A_CountDown
loop
}
}

actor AshuraSenkuIllusionShinGokuSatsu : AshuraSenkuIllusion
{
reactiontime 2
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_ExecuteAlways(991,0,533)
IllusioningIllusionOfTheIllusionCastle:
AKUM N 2 A_SetTranslucent(0.3)
AKUM N 2 A_SetTranslucent(0.8)
AKUM N 0 A_CountDown
loop
}
}

actor RagingDemonLotDeConsolation
{
PROJECTILE
+NOINTERACTION
states
{
Spawn:
TNT1 A 0
Give:
TNT1 A 0 A_GiveToTarget("BossRageCharge", 8)
TNT1 AAAAA 1 A_JumpIfInTargetInventory("BossRageCharge3", 1500, "Bai")
TNT1 A 0 A_GiveToTarget("BossRageCharge", 8)
TNT1 AAAAAAAA 1 A_JumpIfInTargetInventory("BossRageCharge3", 1500, "Bai")
loop
Bai:
TNT1 A 0
stop
}
}

actor ShunGokuSatsuImmobilizer : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("ShunGokuSatsuStop")
stop 
}
}

actor ShunGokuSatsuStop
{
PROJECTILE
+NOINTERACTION
reactiontime 220
states
{
Spawn:
TNT1 A 0
TNT1 A 1 A_GiveToTarget("SaxtonHaleStopItem", 1)
TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 0
stop
}
}

actor ShunGokuSatsuCameraItem : CustomInventory
{
states
{
pickup:
TNT1 A 0 A_SpawnItemEx("ShunGokuSatsuCamera", 40, 155, 90, 0, 0, 0, -180)//, SXF_ABSOLUTEANGLE)
stop
}
}

actor ShunGokuSatsuCamera : BogusSpawnCameraRa
{
+NOCLIP
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_ExecuteAlways(400, 0, 42)
TNT1 AAAA 1 A_FaceTarget
TNT1 A 80 
TNT1 A 136 //A_SpawnItemEx("ShunGokuSatsuKanji", 300, 0, -240, 0, 0, 0)
stop
}
}

actor ShunGokuSatsuDarkTheater : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(401, 0, 17)
stop
}
}

actor ShunGokuSatsuKanji
{
+NOINTERACTION
+NOGRAVITY
scale 2.4
states
{
Spawn:
AKUO X 115 BRIGHT
stop
}
}

actor ShunGokuSatsuGenocide : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("SGSExplosion", 0, 0, 0, 0, 0, 0,0,SXF_NOCHECKPOSITION)
stop
}
}

actor ShunGokuSatsuGenocideBomb
{
PROJECTILE
+NOINTERACTION
Obituary "$OB_SHUNGOKUSATSU"
damagetype "ShunGokuSatsuFate"
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(1500, 1500, 0,0,1500)
stop
}
}

actor ShunGokuSatsuGenocideBombOthers : ShunGokuSatsuGenocideBomb
{
Obituary "%o was trained with %k!"
damagetype "ShunGokuSatsuFateOthers"
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(2000, 400, 0)
stop
}
}

actor ShunGokuSatsuPainVision : CustomInventory
{
states
{
pickup:
TNT1 A 0 A_SpawnItemEx("ShunGokuSatsuVisionCreator")
stop
}
}

actor ShunGokuSatsuVisionCreator
{
PROJECTILE
+NOINTERACTION
states
{
Spawn:
TNT1 A 0
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain1", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain1", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain2", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain2", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain3", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain3", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain4", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain4", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain5", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain5", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain6", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain6", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain7", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain7", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain8", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain8", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain9", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain9", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain10", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain10", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain11", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain11", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain12", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain12", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain13", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain13", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain14", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain14", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain15", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain15", 1)
TNT1 A 4 A_GiveToTarget("ShunGokuSatsuPain16", 1)
TNT1 A 0 A_TakeFromTarget("ShunGokuSatsuPain16", 1)
stop
}
}

actor SGSExplosionSpawner
{
Obituary "$OB_SHUNGOKUSATSU"
states
{
Spawn:
TNT1 A 0
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("SGSExplosion")
TNT1 A 35
stop
}
}

actor SGSExplosion : BasicExplosion
{
Obituary "$OB_SHUNGOKUSATSU"
damagetype "Gib"
Scale 2.5
States
{
Spawn:
TNT1 E 0
TNT1 A 0 A_Explode(300, 500, 0, 0, 300)
TNT1 A 150
stop
}
}
