actor OriginalDuoBoss : BaseMM8BDMWep_CBM
{
dropitem "DuoFistUpgrade2Dropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 56
Weapon.SlotNumber 1
Obituary "$OB_ODUOMETEOR3"
Inventory.Pickupmessage "You are now Optimus Prime!"
weapon.ammotype "DuoJusticeAmmo"
States
{
Spawn:
C_08 J 1
loop
Ready:
ODUH A 0 ACS_ExecuteAlways(998,0,868)
goto Ready1
Ready0:
ODUH A 20 A_WeaponReady
goto Ready0a
Ready0a:
ODUH A 0 A_TakeInventory("ODuoMeteorNo",9)
ODUH A 0 A_TakeInventory("ODuoMeteorFlag",9)
goto Ready1
Ready1:
ODUH A 0 A_JumpIfInventory("DuoJusticeAmmo",56,"Ready2")
ODUH A 5 A_WeaponReady
ODUH A 0 A_GiveInventory("DuoJusticeAmmo",1)
loop
Ready2:
ODUH A 1 A_WeaponReady
ODUH A 0 A_JumpIfInventory("ODuoMeteorFlag",1,"BeginMeteor")
ODUH A 0 A_GiveInventory("DuoJusticeAmmo",1)
loop

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

Fire:
ODUH A 0 A_JumpIfInventory("ODuoMeteorGo",1,"MeteorEndFire")
ODUH A 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEndFire")
ODUH A 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEndFire")
goto Fire1
Fire1:
ODUH A 0 A_GiveInventory("ODuoMeteorNo",1)
ODUH A 0 A_Refire("HoldX")
goto Fire2
Fire2:
ODUH H 0 A_TakeInventory("WeaponCharge",999)
ODUH H 0 ACS_ExecuteAlways(991,0,868)
ODUH H 0 A_PlaySoundEx("weapon/DuoShot2","Weapon")
ODUH H 0 A_GiveInventory("ODuoMain1_CI",1)
ODUH H 1 offset(6,29)
ODUH H 1 offset(12,26)
ODUH H 1 offset(14,24)
ODUH H 1 offset(11,25)
ODUH H 1 offset(8,27)
ODUH H 1 offset(6,29)
ODUH A 1 offset(4,30)
ODUH A 1 offset(2,31)
ODUH A 2 A_WeaponReady(14)
ODUH A 2 A_GiveInventory("DuoJusticeAmmo",1)
ODUH A 0 A_Refire("HoldX")
goto Ready0a
Fire3:
ODUH F 0 A_TakeInventory("WeaponCharge",999)
ODUH F 0
ODUH F 0 ACS_ExecuteAlways(991,0,868)
ODUH F 0 A_PlaySoundEx("weapon/DuoShot3","Weapon")
ODUH F 0 A_GiveInventory("ODuoMain2_CI",1)
ODUH F 1 Offset(1,34)
ODUH F 1 Offset(10,28)
ODUH HHHHH 2 Offset(14,24)
ODUH H 1 Offset(14,24)A_GiveInventory("DuoJusticeAmmo",1)
ODUH H 1 Offset(11,25)
ODUH H 1 Offset(8,26)
ODUH H 1 Offset(6,27)
ODUH H 1 Offset(4,28)
ODUH H 1 Offset(3,29)
ODUH H 1 Offset(2,30)
ODUH H 1 Offset(1,31)
ODUH A 3 A_WeaponReady(14)
ODUH A 0 A_GiveInventory("DuoJusticeAmmo",1)
ODUH A 0 A_Refire("HoldX")
goto Ready0a

HoldX:
ODUH B 0 A_JumpIfInventory("WeaponCharge",10,"Charge")
ODUH B 1 A_GiveInventory("WeaponCharge",1)
ODUH B 0 A_Refire("HoldX")
Goto Fire2
Charge:
ODUH B 0 A_PlaySoundEx("weapon/DuoShotCharge","Weapon")
ODUH B 0 A_GunFlash("FlashFire")
Goto Charge0
Charge0:
ODUH B 0 A_JumpIfInventory("WeaponCharge",48,"Charge1")
ODUH B 1 ACS_ExecuteAlways(998,0,870,5)
ODUH B 0 A_GiveInventory("WeaponCharge",1)
ODUH B 0 A_Refire(1)
Goto Fire2
ODUH F 0 A_JumpIfInventory("WeaponCharge",48,"Charge1")
ODUH F 1 ACS_ExecuteAlways(998,0,868,1)
ODUH F 0 A_GiveInventory("WeaponCharge",1)
ODUH F 0 A_Refire("Charge0")
Goto Fire2
Charge1:
ODUH D 0 A_GunFlash
ODUH D 1 Offset(-2,34)ACS_ExecuteAlways(998,0,871,6)
ODUH D 0 A_Refire(1)
Goto Fire3
ODUH E 1 Offset(-4,36)ACS_ExecuteAlways(998,0,872,7)
ODUH E 0 A_Refire(1)
Goto Fire3
ODUH C 1 Offset(-6,38)ACS_ExecuteAlways(998,0,868,1)
ODUH C 0 A_Refire(1)
Goto Fire3
ODUH D 1 Offset(-7,39)ACS_ExecuteAlways(998,0,871,6)
ODUH D 0 A_Refire(1)
Goto Fire3
ODUH E 1 Offset(-8,40)ACS_ExecuteAlways(998,0,872,7)
ODUH E 0 A_Refire(1)
Goto Fire3
ODUH C 1 Offset(-9,41)ACS_ExecuteAlways(998,0,868,1)
ODUH C 0 A_Refire("Charge2")
Goto Fire3
Charge2:
ODUH D 1 ACS_ExecuteAlways(998,0,871,6)
ODUH D 0 A_Refire(1)
Goto Fire3
ODUH E 1 ACS_ExecuteAlways(998,0,872,7)
ODUH E 0 A_Refire(1)
Goto Fire3
ODUH C 1 ACS_ExecuteAlways(998,0,868,1)
ODUH C 0 A_JumpIfInventory("IsBot",1,"BotCharge2")
ODUH C 0 A_Refire("Charge2")
Goto Fire3
BotCharge2:
ODUH C 0 A_Jump(16,"Fire3")
ODUH C 0 A_Refire("Charge2")
Goto Fire3

FlashFire:
TNT1 A 10
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
TNT1 A 10 A_GiveInventory("DuoJusticeAmmo",1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
TNT1 A 10 A_GiveInventory("DuoJusticeAmmo",1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
TNT1 A 10 A_GiveInventory("DuoJusticeAmmo",1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
TNT1 A 1 A_GiveInventory("DuoJusticeAmmo",1)
stop

Flash:
TNT1 A 5 A_PlaySoundEx("weapon/MM4Charge","Weapon")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
TNT1 A 0 A_GiveInventory("DuoJusticeAmmo",1)
TNT1 A 5 A_PlaySoundEx("weapon/MM4Charge","Weapon")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,"Flash")
stop

AltFire:
ODUH A 0 A_JumpIfInventory("ODuoMeteorGo",1,"MeteorEndAltFire")
ODUH A 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEndAltFire")
ODUH A 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEndAltFire")
goto AFire1
AFire1:
ODUH A 0 ACS_ExecuteAlways(191,0,16)//80% speed
ODUH A 0 A_GiveInventory("ODuoMeteorNo",1)
ODUH A 0 A_Refire("AltHoldX")
goto AFire2
AFire2:
ODUH B 0 A_TakeInventory("WeaponCharge",999)
ODUH B 0 ACS_ExecuteAlways(991,0,868)
ODUH B 0 A_PlaySoundEx("Weapon/GutMelee","Weapon")
ODUH B 0 A_GiveInventory("ODuoAlt1_CI",1)
ODUH B 1 offset(6,29)
ODUH B 1 offset(12,26)
ODUH B 1 offset(14,24)
ODUH B 1 offset(11,25)
ODUH B 1 offset(8,27)
ODUH B 1 offset(6,29)
ODUH A 1 offset(4,30)
ODUH A 1 offset(2,31)
ODUH A 2 A_WeaponReady(14)
ODUH A 1 A_GiveInventory("DuoJusticeAmmo",1)
ODUH A 0 A_Refire("AltHoldX")
ODUH A 0 ACS_ExecuteAlways(191,0,0)//Normal speed
goto Ready0a
AFire3:
ODUH F 0 A_TakeInventory("WeaponCharge",999)
ODUH F 0 ACS_ExecuteAlways(991,0,868)
ODUH F 0 A_GiveInventory("ODuoChargeArmor",1)
ODUH F 0 A_GiveInventory("ODuoRamFlag",10)
ODUH F 0 A_GiveInventory("SelfTotallyFrozen",1)
ODUH F 0 A_TakeInventory("UnSolid",1)
ODUH F 0 A_ChangeFlag("SOLID",0)
ODUH F 0 A_ChangeFlag("NOGRAVITY",1)
ODUH F 0 A_ChangeVelocity(25,0,1,3)
ODUH F 1 Offset(1,34)A_GunFlash("FlashAlt")
ODUH F 1 Offset(10,28)
ODUH HHGGHHGGHHGGHHGGHHGG 1 Offset(14,24)
ODUH H 1 Offset(11,25) A_SpawnItemEx("ODuoRamDamage",0,0,28,momx,momy,momz,0,9)
ODUH H 1 Offset(8,26) A_SpawnItemEx("ODuoRamDamage2",0,0,28,momx,momy,momz,0,9)
ODUH H 0 A_ChangeFlag("NOGRAVITY",0)
ODUH H 1 Offset(6,27)A_GiveInventory("SelfTotallyUnfrozen",1)
ODUH H 1 Offset(4,28)A_TakeInventory("BasicArmor",9999)
ODUH H 1 Offset(3,29)
ODUH H 1 Offset(2,30)
ODUH H 1 Offset(1,31)
ODUH A 0 A_SpawnItemEx("ReSolidifier")
ODUH A 3 A_WeaponReady(14)
ODUH A 0 A_Refire("AltHoldX")
ODUH A 0 ACS_ExecuteAlways(191,0,0)//Normal speed
goto Ready0a

FlashAlt:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_PlaySoundEx("weapon/DuoShot3","Weapon")
TNT1 A 0 A_ChangeVelocity(4.25,0,0.25,1)//CVF_RELATIVE
TNT1 A 0 A_TakeInventory("ODuoRamFlag",1)
TNT1 A 1 A_SpawnItemEx("ODuoRamDamage",0,0,28,momx,momy,momz,0,9)
TNT1 A 1 A_SpawnItemEx("ODuoRamDamage2",0,0,28,momx,momy,momz,0,9)
TNT1 A 0 A_JumpIfInventory("ODuoRamFlag",1,"FlashAlt")
stop

AltHoldX:
ODUH B 0 A_JumpIfInventory("WeaponCharge",16,"ACharge")
ODUH B 1 A_GiveInventory("WeaponCharge",1)
ODUH B 0 A_Refire("AltHoldX")
Goto AFire2
ACharge:
ODUH B 0 A_PlaySoundEx("weapon/DuoShotCharge","Weapon")
ODUH B 0 A_GunFlash("FlashFire")
Goto ACharge0
ACharge0:
ODUH B 0 A_JumpIfInventory("WeaponCharge",54,"ACharge1")
ODUH B 1 ACS_ExecuteAlways(998,0,870,5)
ODUH B 0 A_GiveInventory("WeaponCharge",1)
ODUH B 0 A_Refire(1)
Goto AFire2
ODUH F 0 A_JumpIfInventory("WeaponCharge",54,"ACharge1")
ODUH F 1 ACS_ExecuteAlways(998,0,868,1)
ODUH F 0 A_GiveInventory("WeaponCharge",1)
ODUH F 0 A_Refire("ACharge0")
Goto AFire2
ACharge1:
ODUH I 0 A_GunFlash
ODUH I 1 Offset(-2,34)ACS_ExecuteAlways(998,0,871,6)
ODUH I 0 A_Refire(1)
Goto AFire3
ODUH J 1 Offset(-4,36)ACS_ExecuteAlways(998,0,872,7)
ODUH J 0 A_Refire(1)
Goto AFire3
ODUH B 1 Offset(-6,38)ACS_ExecuteAlways(998,0,868,1)
ODUH B 0 A_Refire(1)
Goto AFire3
ODUH I 1 Offset(-7,39)ACS_ExecuteAlways(998,0,871,6)
ODUH I 0 A_Refire(1)
Goto AFire3
ODUH J 1 Offset(-8,40)ACS_ExecuteAlways(998,0,872,7)
ODUH J 0 A_Refire(1)
Goto AFire3
ODUH B 1 Offset(-9,41)ACS_ExecuteAlways(998,0,868,1)
ODUH B 0 A_Refire("ACharge2")
Goto AFire3
ACharge2:
ODUH I 1 ACS_ExecuteAlways(998,0,871,6)
ODUH I 0 A_Refire(1)
Goto AFire3
ODUH J 1 ACS_ExecuteAlways(998,0,872,7)
ODUH J 0 A_Refire(1)
Goto AFire3
ODUH B 1 ACS_ExecuteAlways(998,0,868,1)
ODUH B 0 A_JumpIfInventory("IsBot",1,"ABotCharge2")
ODUH B 0 A_Refire("ACharge2")
Goto AFire3
ABotCharge2:
ODUH B 0 A_Jump(16,"AFire3")
ODUH B 0 A_Refire("ACharge2")
Goto AFire3

BeginMeteor:
ODUH A 0 A_GiveInventory("ODuoMeteorFlag",1)
ODUH A 0 A_TakeInventory("ODuoMeteorGo",9)
ODUH A 0 A_TakeInventory("ODuoMeteorStop",9)
//ODUH A 0 A_TakeInventory("DuoJusticeAmmo",1)
ODUH A 0 A_GiveInventory("IsInvunFlag",1)
ODUH A 0 A_ChangeFlag("INVULNERABLE",1)
ODUH A 0 A_Stop
ODUH A 0 SetPlayerProperty(0,1,0)
ODUH A 0 A_ChangeFlag("NOGRAVITY",1)
ODUH A 0 ACS_ExecuteAlways(648,0,1)
ODUH A 0 A_PlaySoundEx("weapon/pcharge","Weapon")

ODUH A 1 offset(-2,36)ThrustThingZ(0,4,0,0)
ODUH A 1 offset(-4,40)
ODUH B 1 offset(-6,44)
ODUH B 1 offset(-9,50)A_TakeInventory("DuoJusticeAmmo",1)
ODUH B 1 offset(-12,56)
ODUH B 1 offset(-15,62)
ODUH B 1 offset(-18,70)A_TakeInventory("DuoJusticeAmmo",1)
ODUH B 1 offset(-21,78)
ODUH C 1 offset(-24,86)
ODUH C 1 offset(-27,92)A_TakeInventory("DuoJusticeAmmo",1)
ODUH C 1 offset(-30,98)
ODUH C 1 offset(-33,104)
ODUH C 1 offset(-36,110)A_TakeInventory("DuoJusticeAmmo",1)
ODUH C 1 offset(-39,116)
ODUH C 1 offset(-42,124)
TNT1 AAAAA 3 A_TakeInventory("DuoJusticeAmmo",1)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
TNT1 A 0 A_TakeInventory("ODuoMeteorFlag",9)
TNT1 A 0 A_GiveInventory("ODuoMeteorGo",1)
TNT1 A 0 A_GunFlash("FlashMeteor")
TNT1 A 0 A_PlaySoundEx("weapon/GrenadeShot","Weapon")
TNT1 A 0 A_SpawnItemEx("ODuoTheMeteor",0,0,0,cos(-pitch)*1,0,sin(-pitch)*1,0,1)
Goto MeteorLoopStart

FlashMeteor:
TNT1 A 0 A_SpawnItemEx("ODuoTheMeteorFXPlayer",0,0,29,0,0,0,0,1)
TNT1 AAA 1 A_SpawnItemEx("ODuoTheMeteorFXPlayer2",0,0,29,0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,"NoFlash")
TNT1 A 0 A_TakeInventory("DuoJusticeAmmo",1)
TNT1 A 0 A_JumpIfInventory("DuoJusticeAmmo",1,2)
TNT1 A 0 A_GiveInventory("ODuoMeteorStop",1)
stop
TNT1 AAA 1 A_SpawnItemEx("ODuoTheMeteorFXPlayer2",0,0,29,0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,"NoFlash")
TNT1 A 0 A_TakeInventory("DuoJusticeAmmo",1)
TNT1 A 0 A_JumpIfInventory("DuoJusticeAmmo",1,"FlashMeteor")
TNT1 A 0 A_GiveInventory("ODuoMeteorStop",1)
stop

MeteorLoopStart:
TNT1 A 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEnd")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEnd")
TNT1 A 1 A_ClearReFire
TNT1 A 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEnd")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEnd")
TNT1 A 1 A_ClearReFire
TNT1 A 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEnd")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEnd")
TNT1 A 1 A_ClearReFire
goto MeteorLoop
MeteorLoop:
TNT1 A 1 A_WeaponReady(3)
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEnd")
TNT1 A 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEnd")
loop

MeteorEnd:
ODUH C 0 A_GiveInventory("ODuoMeteorEndPickup",1)
ODUH C 1 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEnd1")
wait
MeteorEnd1:
ODUH C 1 offset(-42,124)
ODUH C 1 offset(-39,116)
ODUH C 1 offset(-36,110)
ODUH C 1 offset(-33,104)A_TakeInventory("DuoJusticeAmmo",1)
ODUH C 1 offset(-30,98)
ODUH C 1 offset(-27,92)
ODUH C 1 offset(-24,86)A_TakeInventory("DuoJusticeAmmo",1)
ODUH B 1 offset(-21,78)
ODUH B 1 offset(-18,70)
ODUH B 1 offset(-15,62)A_TakeInventory("DuoJusticeAmmo",1)
ODUH B 1 offset(-12,56)
ODUH B 1 offset(-9,50)
ODUH B 1 offset(-6,44)
ODUH A 1 offset(-4,40)
goto MeteorEnd2

MeteorEndFire:
TNT1 A 0 A_GiveInventory("ODuoMeteorEndPickup",1)
TNT1 A 0 A_PlaySoundEx("misc/mm3explosion","Body")
TNT1 A 0 A_GiveInventory("ODuoMainX_CI",1)
TNT1 A 0 A_ChangeVelocity(28*cos(pitch),0,28*-sin(pitch),3)
TNT1 A 1 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEndFire2")
wait
MeteorEndFire2:
ODUH C 1 offset(-42,124)
ODUH D 1 offset(-39,116)
ODUH E 1 offset(-36,110)ThrustThingZ(0,8,0,1)
ODUH C 1 offset(-33,104)
ODUH D 1 offset(-30,98)
ODUH E 1 offset(-27,92)
ODUH C 1 offset(-24,86)
ODUH F 1 offset(-21,78)
ODUH B 1 offset(-18,70)
ODUH F 1 offset(-15,62)
ODUH B 1 offset(-12,56)
ODUH F 1 offset(-9,50)
ODUH B 1 offset(-6,44)
ODUH A 1 offset(-4,40)
goto MeteorEnd2

FlashMeteorAlt:
TNT1 A 0 A_Recoil(-0.25)
TNT1 A 0 ThrustThingZ(0,2,1,1)
TNT1 A 0 A_SpawnItemEx("ODuoMeteorCrush",0,0,0,momx,momy,momz,0,9)
TNT1 A 0 A_GiveInventory("Quaking",1)
TNT1 A 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,2)
TNT1 A 0 A_GiveInventory("ODuoMeteorStop",1)
stop
TNT1 A 0 A_Recoil(-0.25)
TNT1 A 0 ThrustThingZ(0,2,1,1)
TNT1 A 0 A_SpawnItemEx("ODuoMeteorCrush",0,0,0,momx,momy,momz,0,9)
TNT1 A 0 A_GiveInventory("Quaking",1)
TNT1 A 1 A_GiveInventory("ODuoSoundGive",1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,"FlashMeteorAlt")
TNT1 A 0 A_GiveInventory("ODuoMeteorStop",1)
stop

MeteorEndAltFire:
TNT1 A 0 A_GiveInventory("ODuoMeteorEndPickup",1)
TNT1 A 0 A_GiveInventory("ODuoRamFlag",1)
TNT1 A 0 A_GiveInventory("ODuoChargeArmor",1)
TNT1 A 0 A_TakeInventory("Quaking",999)
TNT1 A 0 A_GunFlash("FlashMeteorAlt")
TNT1 A 0 A_PlaySoundEx("weapon/BurnerDive","Weapon")
TNT1 A 1 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEndAltFire2")
wait
MeteorEndAltFire2:
ODUH H 1 offset(-42,124)ThrustThingZ(0,8,0,1)
ODUH H 1 offset(-39,116)
ODUH G 1 offset(-36,110)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH G 1 offset(-33,104)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH H 1 offset(-30,98)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH H 1 offset(-27,92)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH G 1 offset(-24,86)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH G 1 offset(-21,78)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH H 1 offset(-18,70)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH H 1 offset(-15,62)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH G 1 offset(-12,56)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH G 1 offset(-9,50)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH H 1 offset(-6,44)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH H 1 offset(-4,40)A_JumpIf(z-floorz==0,"MeteorCrash")
goto MeteorEndAltLoop
MeteorEndAltLoop:
ODUH G 0 A_JumpIfInventory("ODuoMeteorCollide",1,"MeteorEnd2")
ODUH HHGG 1 offset(-2,36)A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH G 0 A_JumpIfInventory("Quaking",862,"MeteorCrash")
loop
MeteorCrash:
ODUH F 0 A_TakeInventory("ODuoMeteorStop",9)
ODUH F 0 A_TakeInventory("ODuoRamFlag",9)
ODUH F 0 A_TakeInventory("BasicArmor",9999)
ODUH F 0 A_PlaySoundEx("weapon/BurnerBoom","Weapon")
ODUH F 0 A_GiveInventory("ODuoAlt3_CI",1)

ODUH K 2 offset(4,16)
ODUH K 2 offset(1,20)
TNT1 A 4
ODUH F 1 offset(-28,92)
ODUH F 1 offset(-24,86)
ODUH B 1 offset(-21,78)
ODUH B 1 offset(-18,70)
ODUH B 1 offset(-15,62)
ODUH B 1 offset(-12,56)
ODUH B 1 offset(-9,50)
ODUH A 1 offset(-6,44)
ODUH A 1 offset(-4,40)
goto MeteorEnd2
MeteorEnd2:
ODUH F 0 A_SpawnItemEx("ODuoChargeArmorHelper")
ODUH A 0 A_TakeInventory("ODuoRamFlag",9)
ODUH A 0 A_TakeInventory("ODuoMeteorFlag",9)
ODUH A 0 A_TakeInventory("ODuoMeteorGo",9)
ODUH A 0 A_TakeInventory("ODuoMeteorStop",9)
ODUH A 0 A_TakeInventory("ProjectilePortDead",9)

ODUH A 1 offset(-2,36)//A_TakeInventory("DuoJusticeAmmo",1)
Goto Ready0


}
}

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


actor ODuoRamFlag : Inventory
{
inventory.amount 1
inventory.maxamount 10
}

actor ODuoMeteorFlag : OnceC {}
actor ODuoMeteorGo : OnceC {}
actor ODuoMeteorStop : OnceC {}
actor ODuoMeteorNo : OnceC {}
actor ODuoMeteorCollide : OnceC {}

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

actor ODuoChargeArmor : BasicArmorPickup
{
armor.saveamount 100
armor.savepercent 70
}

actor ODuoChargeArmorHelper : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_TakeFromTarget("ODuoMeteorCollide",1)
TNT1 A 1 A_TakeFromTarget("BasicArmor",9999)
stop
}
}

actor ODuoMeteorItem : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "ODuoIcon"
inventory.pickupmessage "My Justice is in a league of its own."
scale 2.0
+INVBAR
States
{
Spawn:
ODUH X 1
loop
Use:
TNT1 A 0 A_JumpIfInventory("ODuoMeteorGo",1,"Use3")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorNo",1,"No")
TNT1 A 0 A_JumpIfInventory("DuoJusticeAmmo",56,"Use2")
fail
Use2:
TNT1 A 0 A_JumpIfInventory("FlightDisableFlag",1,"No")
TNT1 A 0 A_GiveInventory("ODuoMeteorFlag",1)
fail
Use3:
TNT1 A 0 A_GiveInventory("ODuoMeteorStop",1)
fail
No:
TNT1 A 0
fail
}
}

actor ODuoMeteorEndPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("ODuoMeteorStop",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",0)
TNT1 A 0 SetPlayerProperty(0,0,0)
TNT1 A 0 ACS_ExecuteAlways(648,0,0)
TNT1 A 0 A_SpawnItemEx("ODuoTheMeteorEndFXHelper",0,0,28,0,0,0,0,1)
stop
}
}

actor ODuoSoundGive : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("Quaking",14,"Sound")
stop
Sound:
TNT1 A 0 A_PlaySoundEx("weapon/DuoShot2","weapon")
stop
}
}

actor ODuoMidFist
{
Translation "198:198=192:192", "192:192=4:4"
PROJECTILE
damagetype "DuoFist2"
Obituary "$OB_ODUOFIST"
+SKYEXPLODE
reactiontime 1
Damage (2)
Radius 16
Height 16
Speed 56
Scale 2.5
States
{
Spawn:
GIGO CDCDCDC 1
GIGO A 1 A_CountDown
goto Spawn+6
Death:
TNT1 A 0 A_Explode(15,64,0,0,24)
TNT1 A 0 A_Stop
TNT1 A 2 A_SpawnItemEx("ODuoMidFistFX",0,0,0,0,0,0,0,1)
stop
}
}

actor ODuoMidFistFX : BasicClientSide
{
Scale 3.0
States
{
Spawn:
PHA6 LMNOPQRSTU 1
stop
}
}

actor ODuoMidFistB : ODuoMidFist{translation "192:192=205:205","198:198=74:74"}
actor ODuoMidFistR : ODuoMidFist{translation "192:192=171:171","198:198=41:41"}
actor ODuoMidFistO : ODuoMidFist{translation "192:192=104:104","198:198=128:128"}
actor ODuoMidFistP : ODuoMidFist{translation "192:192=229:229","198:198=232:232"}

actor ODuoGigaFist
{
Translation "198:198=192:192", "192:192=4:4"
PROJECTILE
damagetype "DuoFist3"
Obituary "$OB_ODUOFIST2"
+SKYEXPLODE
reactiontime 4
RenderStyle "Translucent"
Alpha 0.95
Damage (2)
Radius 24
Height 20
Speed 50
scale 2.5
States
{
Spawn:
GIGO F 2
GIGO G 2
GIGO F 2
GIGO F 1 A_SpawnItemEx("ODuoTheMeteorFX",0,0,0,momx*0.15,momy*0.15,momz*0.15,0,9)
GIGO G 2 A_CountDown
goto Spawn+2
Death:
TNT1 A 0 A_Explode(25,96,0,0,32)
TNT1 A 0 A_Stop
TNT1 A 2 A_SpawnItemEx("ODuoGigaFistFX",0,0,0,0,0,0,0,1)
stop
}
}

actor ODuoGigaFistFX : BasicClientSide
{
Scale 4.5
States
{
Spawn:
PHA6 LMNOPQRSTU 1
stop
}
}

actor ODuoGigaFistB : ODuoGigaFist{translation "192:192=205:205","198:198=74:74"}
actor ODuoGigaFistR : ODuoGigaFist{translation "192:192=171:171","198:198=41:41"}
actor ODuoGigaFistO : ODuoGigaFist{translation "192:192=104:104","198:198=128:128"}
actor ODuoGigaFistP : ODuoGigaFist{translation "192:192=229:229","198:198=232:232"}

actor ODuoTheMeteor
{
BounceSound "misc/quake"
PROJECTILE
damagetype "DuoRam"
Obituary "$OB_ODUOMETEOR"
+DONTBLAST
+DONTREFLECT
+THRUGHOST
Bouncetype Classic
+BOUNCEONWALLS
+DONTSPLASH
Bouncefactor 1.0
Wallbouncefactor 1.0
Radius 15
Height 54
damage (0)
speed 33
States
{
Spawn:
TNT1 A 0
TNT1 A 1 ACS_ExecuteAlways(815,0,200)//200
TNT1 A 0 A_ScaleVelocity(33)
goto Spawn2
Spawn2:
TNT1 AAAAA 1 A_JumpIfInTargetInventory("ODuoMeteorStop",1,"Death")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
loop

Crash:
XDeath:
TNT1 A 0 A_GiveInventory("ProjectilePortDead",1)
TNT1 A 0 A_JumpIfInTargetInventory("ODuoMeteorStop",1,"DeathXL")
TNT1 A 0 A_GiveToTarget("ODuoMeteorCollide",1)
TNT1 A 0 A_Explode(28,64,0,0,64)
TNT1 A 0 A_GiveToTarget("ODuoTheMeteorPickup",1)
goto DeathXL
Death:
TNT1 A 0
TNT1 A 0 A_GiveInventory("ProjectilePortDead",1)
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_JumpIfInTargetInventory("ODuoMeteorStop",1,"DeathXL")
TNT1 A 0 A_Stop
goto DeathXL
DeathXL:
TNT1 A 1 A_GiveToTarget("ODuoMeteorStop",1)
stop
}
}

actor ODuoTheMeteorFXPlayer : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_SpawnItemEx("ODuoTheMeteorFX",0,0,0,0,0,0,0,1)
stop
}
}

actor ODuoTheMeteorFXPlayer2 : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
TNT1 AA 0 A_SpawnItemEx("ODuoRamDamageFX1",random(-32,32),random(-32,32),random(-32,32),random(-2,2),random(-2,2),random(-2,2),0,1,128)
TNT1 AA 0 A_SpawnItemEx("ODuoRamDamageFX3",random(-32,32),random(-32,32),random(-32,32),random(-2,2),random(-2,2),random(-2,2),0,1,128)
TNT1 A 1
stop
}
}

actor ODuoTheMeteorFX : BasicClientSide
{
States
{
Spawn:
TNT1 A 1
EVFL I 4
EVFL H 5
Goto Death
Death:
EVFL H 1 A_FadeOut(0.2)
Loop
}
}

actor ODuoTheMeteorPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0
TNT1 A 0 A_Stop
TNT1 A 0 ThrustThingZ(0,40,0,0)
TNT1 A 0 ThrustThing(angle*256/360+128,10,1,0)
TNT1 A 0 A_PlaySoundEx("weapon/blizzstrike","Weapon")
TNT1 A 0 A_GiveInventory("ODuoMeteorStop",1)
stop
}
}

actor ODuoTheMeteorEndFXHelper : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("ODuoMeteorStop",1)
TNT1 A 0 //A_TakeFromTarget("DuoJusticeAmmo",28)
TNT1 A 0 A_TakeFromTarget("IsInvunFlag",1)
TNT1 A 1 A_SpawnItemEx("ODuoTheMeteorEndFX",0,0,0,0,0,0,0,1)
stop
}
}

actor ODuoTheMeteorEndFX : BasicClientSide
{
var int user_A;
reactiontime 18
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("user_A",random(0,20))
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",10,0,30,2,0,3,user_A+15,37)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",20,0,20,4,0,2,user_A+10,37)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",30,0,10,6,0,1,user_A+5,37)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",40,0,0,8,0,0,user_A,37)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",30,0,-10,6,0,-1,user_A+5,37)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",20,0,-20,4,0,-2,user_A+10,37)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",10,0,-30,2,0,-3,user_A+15,37)
TNT1 A 0 A_SetUserVar("user_A",user_A+20)
TNT1 A 0 A_Countdown
goto Spawn+2
Death:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,0,40,0,0,4,0,37)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,0,-40,0,0,-4,0,37)
stop
}
}

actor ODuoMeteorExplosionFire : BasicExplosion
{
translation "198:198=192:192"
damagetype "ClassPainLess"
Obituary "$OB_ODUOMETEOR2"
Speed 33
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/BurnerBoom","Body")
TNT1 A 1 A_SpawnItemEx("ODuoMeteorExplosion",0,0,0,0,0,0,0,1)
TNT1 AAA 3 A_SpawnItemEx("ODuoMeteorExplosion",0,0,0,0,0,0,0,1)
stop
}
}

actor ODuoMeteorExplosionFireB : ODuoMeteorExplosionFire{translation "198:198=74:74"}
actor ODuoMeteorExplosionFireR : ODuoMeteorExplosionFire{translation "198:198=41:41"}
actor ODuoMeteorExplosionFireO : ODuoMeteorExplosionFire{translation "198:198=128:128"}
actor ODuoMeteorExplosionFireP : ODuoMeteorExplosionFire{translation "198:198=232:232"}


actor ODuoMeteorExplosion : BasicExplosion
{
damagetype "ClassPainLess"
Obituary "$OB_ODUOMETEOR2"
Scale 3.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(11,196,0,0,64)
TA_C ABCD 2 A_SpawnItemEx("ODuoMeteorExplosionFX",random(-56,56),random(-56,56),random(-56,56),0,0,0,0,1)
TA_C EF 2
stop
}
}

actor ODuoMeteorExplosionFX : BasicClientSide
{
States
{
Spawn:
TA_C ABCDEF 2
stop
}
}

actor ODuoMeteorCrush : BasicExplosion
{
damagetype "ClassPainLess"
Obituary "$OB_ODUOMETEOR3"
States
{
Spawn:
TNT1 A 0

TNT1 AA 0 A_SpawnItemEx("ODuoRamDamageFX1",random(-80,80),random(-80,80),random(-80,80),momx*0.5,momy*0.5,momz*0.5,0,9)
TNT1 AA 0 A_SpawnItemEx("ODuoRamDamageFX3",random(-80,80),random(-80,80),random(-80,80),random(-2,2),random(-2,2),random(-2,2),0,1)

TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",32,0,random(0,64),-momx*0.1,-momy*0.1,-momz*0.1,0,9)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",-32,0,random(0,64),-momx*0.1,-momy*0.1,-momz*0.1,0,9)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,32,random(0,64),-momx*0.1,-momy*0.1,-momz*0.1,0,9)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,-32,random(0,64),-momx*0.1,-momy*0.1,-momz*0.1,0,9)

TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",16,16,random(0,64),-momx*0.1,-momy*0.1,-momz*0.1,0,9)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",-16,16,random(0,64),-momx*0.1,-momy*0.1,-momz*0.1,0,9)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",16,-16,random(0,64),-momx*0.1,-momy*0.1,-momz*0.1,0,9)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",-16,-16,random(0,64),-momx*0.1,-momy*0.1,-momz*0.1,0,9)

TNT1 A 1 A_Explode(4,66,0,0,28)
stop
}
}

actor ODuoShockWaveSpawner : BasicHelper
{
//Obituary "$OB_DUOMETEOR" Cleansed
damagetype "ClassPainLess"
Obituary "$OB_ODUOMETEOR3"
Translation "192:192=4:4"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(15,156,0,0,48)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,15,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,30,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,45,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,60,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,75,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,90,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,105,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,135,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,150,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,165,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,180,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,195,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,210,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,225,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,240,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,255,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,270,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,285,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,300,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,315,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,330,1)
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,345,1)
TNT1 A 1
stop
}
}

actor ODuoShockWaveSpawnerB : ODuoShockWaveSpawner{translation "192:192=205:205"}
actor ODuoShockWaveSpawnerR : ODuoShockWaveSpawner{translation "192:192=171:171"}
actor ODuoShockWaveSpawnerO : ODuoShockWaveSpawner{translation "192:192=104:104"}
actor ODuoShockWaveSpawnerP : ODuoShockWaveSpawner{translation "192:192=229:229"}


actor ODuoShockWave
{
var int user_P;
PROJECTILE
damagetype "ODuoWave"
Obituary "$OB_ODUOWAVE"
+FLOORHUGGER
+THRUACTORS
Damage (11+(user_P*0.1))
Radius 32
Height 32
Speed 30
Scale 2.0
States
{
Spawn:
DUOR T 0
DUOR T 1 A_SetUserVar("user_P",ACS_ExecuteWithResult(C_CHECK_TARGET_ITEM,1,0))
DUOR T 0 A_JumpIf(user_P>100,"SpawnSpeed")
goto SpawnEnd
SpawnSpeed:
DUOR T 0 A_SetUserVar("user_P",100)
goto SpawnEnd
SpawnEnd:
DUOR T 0 //A_LogInt(user_P)
DUOR T 0 A_ChangeFlag("THRUACTORS",0)
DUOR T 12 A_Recoil(user_P*-0.1)
DUOR T 1 A_FadeOut(0.25)
wait
XDeath:
TNT1 A 1 //A_Log("I HIT A PLAYER")
stop
Death:
TNT1 A 1
stop
}
}



actor ODuoWaveProtect : PowerProtection
{
Powerup.Duration 6
DamageFactor "ODuoWave", 0.155
}

actor ODuoPunch
{
Translation "198:198=192:192", "192:192=4:4"
PROJECTILE
damagetype "DuoFist2"
Obituary "$OB_ODUOFIST3"
+DONTBLAST
reactiontime 2
damage (23)
Radius 16
Height 16
speed 56
scale 3.5
States
{
Spawn:
GIGO A 0
GIGO A 1 A_CountDown
goto Spawn+1
Death:
TMFX B 0 A_Explode(22,56,0,0,24)
goto XDeath
XDeath:
TMFX B 0 A_Stop
GIGO A 1 A_FadeOut(0.22)
wait
}
}

actor ODuoPunchB : ODuoPunch{translation "192:192=205:205","198:198=74:74"}
actor ODuoPunchR : ODuoPunch{translation "192:192=171:171","198:198=41:41"}
actor ODuoPunchO : ODuoPunch{translation "192:192=104:104","198:198=128:128"}
actor ODuoPunchP : ODuoPunch{translation "192:192=229:229","198:198=232:232"}

actor ODuoRamProtect : PowerProtection
{
Powerup.Duration 30
damagefactor "ODuoRam", 0.0
}

actor ODuoRamDamage : BasicExplosion
{
Damagetype "ODuoRam"
Obituary "$OB_ODUOTACKLE"

States
{
Spawn:
TNT1 A 0
TNT1 AAAA 0 A_SpawnItemEx("ODuoRamDamageFX1",random(-80,80),random(-80,80),random(-80,80),momx*0.5,momy*0.5,momz*0.5,0,9)
TNT1 AAA 0 A_SpawnItemEx("ODuoRamDamageFX3",random(-80,80),random(-80,80),random(-80,80),random(-1,1),random(-1,1),random(-1,1),0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,0,16,-1,0,4,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,0,-16,-1,0,-4,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,8,8,-1,2,2,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,8,-8,-1,2,-2,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,-8,8,-1,-2,2,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,-8,-8,-1,-2,-2,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,16,0,-1,4,0,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,-16,0,-1,-4,0,0,1)
TNT1 A 1 A_Explode(21,80,0,0,80)
stop
}
}

actor ODuoRamDamage2 : ODuoRamDamage
{
States
{
Spawn:
TNT1 A 0
TNT1 AAAA 0 A_SpawnItemEx("ODuoRamDamageFX1",random(-80,80),random(-80,80),random(-80,80),momx*0.5,momy*0.5,momz*0.5,0,9)
TNT1 AAA 0 A_SpawnItemEx("ODuoRamDamageFX3",random(-80,80),random(-80,80),random(-80,80),random(-1,1),random(-1,1),random(-1,1),0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,4,12,-1,1,3,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,-4,12,-1,-1,3,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,12,4,-1,3,1,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,12,-4,-1,3,-1,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,4,-12,-1,1,-3,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,-4,-12,-1,-1,-3,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,-12,4,-1,-3,1,0,1)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,-12,-4,-1,-3,-1,0,1)
TNT1 A 1 A_Explode(21,80,0,0,80)
stop
}
}

actor ODuoRamDamageFX1 : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,1)
Spawn1:
GIGO M 5
GIGO N 10
GIGO N 1 A_Fadeout(0.15)
wait
}
}

actor ODuoRamDamageFX2 : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,1,4)
Spawn1:
GIGO O 6
GIGO P 2 A_ScaleVelocity(1.05)
GIGO P 1 A_Fadeout
goto Spawn1+1
Spawn2:
GIGO O 6
GIGO Q 2 A_ScaleVelocity(1.05)
GIGO Q 1 A_Fadeout
goto Spawn2+1
}
}

actor ODuoRamDamageFX3 : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2")
Spawn1:
GIGO RS 3
GIGO T 3 A_Fadeout(0.2)
goto Spawn1+1
Spawn2:
GIGO UV 3
GIGO W 3 A_Fadeout(0.2)
goto Spawn2+1
}
}

actor ODuoMain1_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ODuoMidFist",0,0,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ODuoMidFistB",0,0,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ODuoMidFistR",0,0,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ODuoMidFistO",0,0,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ODuoMidFistP",0,0,-8,0)
goto Done
}
}

actor ODuoMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ODuoGigaFist",0,0,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ODuoGigaFistB",0,0,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ODuoGigaFistR",0,0,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ODuoGigaFistO",0,0,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ODuoGigaFistP",0,0,-8,0)
goto Done
}
}


actor ODuoMainX_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ODuoMeteorExplosionFire",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ODuoMeteorExplosionFireB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ODuoMeteorExplosionFireR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ODuoMeteorExplosionFireO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ODuoMeteorExplosionFireP",0,0,0,0)
goto Done
Done:
TNT1 A 0 A_TakeInventory("DuoJusticeAmmo",28)
stop
}
}


actor ODuoAlt1_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ODuoPunch",0,0,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ODuoPunchB",0,0,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ODuoPunchR",0,0,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ODuoPunchO",0,0,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ODuoPunchP",0,0,-8,0)
goto Done
}
}

actor ODuoAlt3_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ODuoShockWaveSpawner",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ODuoShockWaveSpawnerB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ODuoShockWaveSpawnerR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ODuoShockWaveSpawnerO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ODuoShockWaveSpawnerP",0,0,0,0)
goto Done
Done:
TNT1 A 0 A_TakeInventory("DuoJusticeAmmo",28)
stop
}
}
