actor OriginalDuoBoss : BaseMM8BDMWep_CBM
{
Tag "$TAGC_8J"
dropitem "DuoFistUpgrade2GiverDropped"//"DuoFistUpgrade2Dropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 56
Obituary "$OB_ODUOTACKLE"
Inventory.Pickupmessage "You are now Optimus Prime!"
weapon.ammotype "DuoJusticeAmmo"
//inventory.icon "ODuoIcon"
States
{
Spawn:
C_08 J 1
loop
Ready:
ODUH A 0 ACS_ExecuteAlways(998,0,DYE_ORIGINDUO)
ODUH R 2
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 5 A_WeaponReady(WRF_ALLOWRELOAD)
ODUH A 0 A_JumpIfInventory("DuoJusticeAmmo",56,"Ready2")
goto Ready1

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

Fire:
ODUH B 0 A_JumpIfInventory("ODuoMeteorGo",1,"MeteorEndFire")
ODUH B 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEndFire")
ODUH B 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEndFire")
Fire1:
ODUH B 0 ACS_ExecuteAlways(991,0,DYE_ORIGINDUO)
ODUH B 0 A_PlaySoundEx("weapon/DuoShot2","Weapon")
ODUH B 0 A_GiveInventory("ODuoMain1_CI",1)
ODUH B 1 offset(6,29)
ODUH C 1 offset(12,26)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH C 1 offset(25,20)
ODUH B 1 offset(11,25)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH B 1 offset(8,27)
ODUH B 1 offset(6,29)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH B 1 offset(4,30)
ODUH B 1 offset(2,31)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH B 10 A_WeaponReady(14)
goto Ready1

AltFire:
ODUH L 0 A_JumpIfInventory("ODuoMeteorGo",1,"MeteorEndAltFire")
ODUH L 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEndAltFire")
ODUH L 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEndAltFire")
ODUH A 0 A_JumpIfInventory("DuoJusticeAmmo",14,"HoldX")
A_Fire2:
ODUH B 0 ACS_NamedExecute("BULL_SetState",0,1)
ODUH B 0 ACS_ExecuteAlways(991,0,DYE_ORIGINDUO)
ODUH B 0 A_PlaySoundEx("weapon/DuoShot2","Weapon")
ODUH B 0 A_GiveInventory("ODuoAlt1_CI",1)
ODUH B 1 offset(6,29)A_TakeInventory("WeaponCharge",999)
ODUH C 1 offset(12,26)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH C 1 offset(25,20)
ODUH B 1 offset(11,25)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH A 0 A_GiveInventory("DuoJusticeAmmo",1)
ODUH B 1 offset(8,27)
ODUH B 1 offset(6,29)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH A 1 offset(4,30)
ODUH A 2 offset(2,31)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH A 0 A_GiveInventory("DuoJusticeAmmo",1)
ODUH A 5 A_WeaponReady(14)
ODUH A 0 A_GiveInventory("DuoJusticeAmmo",1)
ODUH A 5 A_WeaponReady(14)
ODUH A 0 A_GiveInventory("DuoJusticeAmmo",1)
goto Ready1

A_Fire2222:
ODUH B 0 ACS_NamedExecute("BULL_SetState",0,1)
ODUH B 0 ACS_ExecuteAlways(991,0,DYE_ORIGINDUO)
ODUH B 0 A_PlaySoundEx("weapon/DuoShot2","Weapon")
ODUH B 0 A_GiveInventory("ODuoMain1_CI",1)
ODUH B 1 offset(6,29)
ODUH C 1 offset(12,26)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH C 1 offset(25,20)A_TakeInventory("WeaponCharge",999)
ODUH B 1 offset(11,25)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH B 1 offset(8,27)A_TakeInventory("WeaponCharge",999)
ODUH B 1 offset(6,29)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH A 1 offset(4,30)ACS_ExecuteAlways(991,0,DYE_ORIGINDUO)
ODUH A 1 offset(2,31)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH A 2 A_WeaponReady(14)
ODUH A 2 A_GiveInventory("DuoJusticeAmmo",1)
goto Ready1

A_Fire3:
ODUH C 0 ACS_NamedExecute("BULL_SetState",0,5)
ODUH C 0 A_TakeInventory("WeaponCharge",999)
ODUH C 0 ACS_ExecuteAlways(991,0,DYE_ORIGINDUO)
ODUH C 0 A_GiveInventory("ODuoChargeArmor",1)
ODUH C 0 A_GiveInventory("ODuoRamFlag",10)
ODUH C 0 A_GiveInventory("SelfTotallyFrozen",1)
ODUH C 0 A_TakeInventory("UnSolid",1)
ODUH C 0 A_ChangeFlag("SOLID",0)
ODUH C 0 A_ChangeFlag("NOGRAVITY",1)
ODUH C 0 A_ChangeVelocity(25,0,1,3)
ODUH K 1 Offset(1,34)A_GunFlash("Flash.A_Fire3")
ODUH K 1 Offset(10,28)
ODUH VVNNKKVVNNKKVVNNKKVV 1 Offset(14,24)
ODUH I 1 Offset(11,25)A_SpawnItemEx("ODuoRamDamage",0,0,28,momx,momy,momz,0,9)
ODUH I 1 Offset(8,26)A_SpawnItemEx("ODuoRamDamage2",0,0,28,momx,momy,momz,0,9)
ODUH I 0 A_ChangeFlag("NOGRAVITY",0)
ODUH I 1 Offset(6,27)A_GiveInventory("SelfTotallyUnfrozen",1)
ODUH I 1 Offset(4,28)A_TakeInventory("BasicArmor",9999)
ODUH I 1 Offset(3,29)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH I 1 Offset(2,30)ACS_ExecuteAlways(991,0,DYE_ORIGINDUO)
ODUH I 1 Offset(1,31)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH A 0 A_TakeInventory("DuoJusticeAmmo",14)
ODUH A 0 A_SpawnItemEx("ResolidifyPlayer_H")
ODUH A 2 A_WeaponReady(14)
ODUH A 1 A_TakeInventory("WeaponCharge",999)
goto Ready1

Flash.A_Fire3:
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("ODuoRamDamage",0,0,28,momx,momy,momz,0,9)
TNT1 A 0 A_JumpIfInventory("ODuoRamFlag",1,"Flash.A_Fire3")
stop


HoldX:
ODUH B 0 A_JumpIfInventory("WeaponCharge",10,"Charge")
ODUH B 1 A_GiveInventory("WeaponCharge",1)
ODUH B 0 A_Refire("HoldX")
Goto A_Fire2
Charge:
ODUH B 0 A_PlaySoundEx("weapon/DuoShotCharge","Weapon")
ODUH B 0 A_GunFlash("Flash.FireChargeS")
Goto Charge0
Charge0:
ODUH B 0 A_JumpIfInventory("WeaponCharge",54,"Charge1")
ODUH B 1 ACS_ExecuteAlways(998,0,DYE_ODUO_CHARGE1,5)
ODUH B 0 A_GiveInventory("WeaponCharge_RC",1)
ODUH B 0 A_Refire(1)
Goto A_Fire2222
ODUH C 0 A_JumpIfInventory("WeaponCharge",54,"Charge1")
ODUH C 1 ACS_ExecuteAlways(998,0,DYE_ORIGINDUO,1)
ODUH C 0 A_GiveInventory("WeaponCharge_RC",1)
ODUH C 0 A_Refire("Charge0")
Goto A_Fire2222
Charge1:
ODUH G 0 A_GunFlash("Flash.Charging")
ODUH G 1 Offset(-2,34)ACS_ExecuteAlways(998,0,DYE_ODUO_CHARGE2,6)
ODUH G 0 A_Refire(1)
Goto A_Fire3
ODUH H 1 Offset(-4,36)ACS_ExecuteAlways(998,0,DYE_ODUO_CHARGE3,7)
ODUH H 0 A_Refire(1)
Goto A_Fire3
ODUH D 1 Offset(-6,38)ACS_ExecuteAlways(998,0,DYE_ORIGINDUO,1)
ODUH D 0 A_Refire(1)
Goto A_Fire3
ODUH G 1 Offset(-7,39)ACS_ExecuteAlways(998,0,DYE_ODUO_CHARGE2,6)
ODUH G 0 A_Refire(1)
Goto A_Fire3
ODUH H 1 Offset(-8,40)ACS_ExecuteAlways(998,0,DYE_ODUO_CHARGE3,7)
ODUH H 0 A_Refire(1)
Goto A_Fire3
ODUH D 1 Offset(-9,41)ACS_ExecuteAlways(998,0,DYE_ORIGINDUO,1)
ODUH D 0 A_Refire("Charge2")
Goto A_Fire3
Charge2:
ODUH G 0 ACS_NamedExecute("BULL_SetState",0,2)
ODUH G 1 ACS_ExecuteAlways(998,0,DYE_ODUO_CHARGE2,6)
ODUH G 0 A_Refire(1)
Goto A_Fire3
ODUH H 0 ACS_NamedExecute("BULL_SetState",0,3)
ODUH H 1 ACS_ExecuteAlways(998,0,DYE_ODUO_CHARGE3,7)
ODUH H 0 A_Refire(1)
Goto A_Fire3
ODUH D 0 ACS_NamedExecute("BULL_SetState",0,4)
ODUH D 1 ACS_ExecuteAlways(998,0,DYE_ORIGINDUO,1)
ODUH D 0 A_JumpIfInventory("IsBot",1,"BotCharge2")
ODUH D 0 A_Refire("Charge2")
Goto A_Fire3
BotCharge2:
ODUH D 0 A_Jump(16,"A_Fire3")
ODUH D 0 A_Refire("Charge2")
Goto A_Fire3

Flash.FireChargeS:
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.Charging:
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.Charging")
stop

NoAmmo:
ODUH A 12 A_GiveInventory("DuoJusticeAmmo",1)
goto Ready1

Reload:
ODUI S 1
BeginMeteor:
ODUI S 0 A_GiveInventory("ODuoMeteorFlag",1)
ODUI S 0 A_TakeInventory("ODuoMeteorGo",9)
ODUI S 0 A_TakeInventory("ODuoMeteorStop",9)
ODUI S 0 A_Stop
ODUI S 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,0,1)//No Speed
ODUI S 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,0,1)//No Jump
ODUI S 0 A_ChangeFlag("NOGRAVITY",1)
ODUI S 0 A_PlaySoundEx("weapon/DuoMeteorCharge","Weapon")
ODUI S 0 ACS_NamedExecute("BULL_SetState",0,6)
ODUI S 1 offset(-3,38)ThrustThingZ(0,4,0,0)
ODUI S 1 offset(-6,44)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI S 1 offset(-9,50)
ODUI T 1 offset(-12,56)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI T 1 offset(-15,62)
ODUI T 1 offset(-18,70)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI T 1 offset(-21,78)
ODUI W 1 offset(-24,86)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI W 1 offset(-27,92)
ODUI W 1 offset(-30,98)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI W 1 offset(-33,104)
ODUI W 1 offset(-36,110)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI W 1 offset(-39,116)
ODUI W 1 offset(-42,124)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI W 1 offset(-45,134)

TNT1 AAAAA 3
TNT1 A 0 A_TakeInventory("UnSolid",1)
TNT1 A 0 A_ChangeFlag("SOLID",0)
TNT1 A 3 A_GiveInventory("InvulnerableOn_Pickup",1)

TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
TNT1 A 0 A_GiveInventory("ODuoMeteorGo",1)
TNT1 A 0 A_TakeInventory("ODuoMeteorFlag",9)
TNT1 A 0 A_GunFlash("Flash.Meteor")
TNT1 A 0 A_PlaySoundEx("weapon/DuoMeteorLaunch","Weapon")
TNT1 A 0 A_SpawnItemEx("ODuoTheMeteor",0,0,0,cos(-pitch)*1,0,sin(-pitch)*1,0,1)
Goto MeteorLoopStart

Flash.Meteor:
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",2)
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",2)
TNT1 A 0 A_JumpIfInventory("DuoJusticeAmmo",1,"Flash.Meteor")
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_SpawnItemEX("ODuoTheMeteorBox",0,0,-4,momx,momy,momz,0,8,0)
TNT1 A 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEnd")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEnd")
TNT1 A 1 A_SpawnItemEX("ODuoTheMeteorBox",0,0,-4,momx,momy,momz,0,8,0)
TNT1 A 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEnd")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEnd")
TNT1 A 1 A_SpawnItemEX("ODuoTheMeteorBox",0,0,-4,momx,momy,momz,0,8,0)
goto MeteorLoop
MeteorLoop:
TNT1 A 1 A_WeaponReady(3)
TNT1 A 0 A_SpawnItemEX("ODuoTheMeteorBox",0,0,-4,momx,momy,momz,0,8,0)
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEnd")
TNT1 A 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEnd")
loop

MeteorEnd:
ODUI W 0 A_GiveInventory("ODuoMeteorEndThrust14_P",1)
ODUI W 1 offset(-45,134)A_GiveInventory("ODuoMeteorEndPickup",1)
ODUI W 1 offset(-42,124)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI W 1 offset(-39,116)
ODUI W 1 offset(-36,110)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI W 1 offset(-33,104)
ODUI W 1 offset(-30,98)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI W 1 offset(-27,92)
ODUI W 1 offset(-24,86)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI T 1 offset(-21,78)
ODUI T 1 offset(-18,70)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI T 1 offset(-15,62)
ODUI T 1 offset(-12,56)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI T 1 offset(-9,50)
ODUI T 1 offset(-6,44)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI S 1 offset(-3,38)
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_GiveInventory("ODuoMeteorEndThrust28_P",1)

ODUH D 1 offset(-42,124)
ODUH D 0 A_JumpIfInventory("PowerRage_ST",1,"MeteorEndFire2_R")
ODUH G 1 offset(-39,116)
ODUH H 1 offset(-36,110)ThrustThingZ(0,8,0,1)
ODUH D 1 offset(-33,104)
ODUH G 1 offset(-30,98)
ODUH H 1 offset(-27,92)
ODUH D 1 offset(-24,86)
ODUI W 1 offset(-21,78)
ODUI T 1 offset(-18,70)
ODUI W 1 offset(-15,62)
ODUI T 1 offset(-12,56)
ODUI W 1 offset(-9,50)
ODUI T 1 offset(-6,44)
ODUI S 1 offset(-3,38)
goto MeteorEnd2
MeteorEndFire2_R:
ODUH G 1 offset(-39,116)
ODUH H 1 offset(-33,104)ThrustThingZ(0,8,0,1)
ODUH F 1 offset(-27,92)
ODUI T 1 offset(-21,78)
ODUI W 1 offset(-15,62)
ODUI T 1 offset(-9,50)
ODUI S 1 offset(-3,38)
goto MeteorEnd2

Flash.MeteorAlt:
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("QuakingRageCheck",1)
TNT1 A 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,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("QuakingRageCheck",1)
TNT1 A 1 A_GiveInventory("ODuoSoundGive",1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("ODuoMeteorStop",1,"Flash.MeteorAlt")
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_GunFlash("Flash.MeteorAlt")
TNT1 A 0 A_PlaySoundEx("weapon/BurnerDive","Weapon")
TNT1 A 0 A_GiveInventory("ODuoMeteorEndThrust32_P",1)

ODUH U 1 offset(-42,124)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH U 1 A_TakeInventory("Quaking",999)
ODUH U 1 offset(-39,116)ThrustThingZ(0,8,0,1)
ODUH V 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH V 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH V 1 offset(-36,110)
ODUH V 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH V 1 offset(-33,104)
ODUH U 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH U 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH U 1 offset(-30,98)
ODUH U 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH U 1 offset(-27,92)
ODUH V 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH V 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH V 1 offset(-24,86)
ODUH V 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH V 1 offset(-21,78)
ODUH V 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH V 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH V 1 offset(-18,70)
ODUH V 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH V 1 offset(-15,62)
ODUH U 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH U 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH U 1 offset(-12,56)
ODUH U 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH U 1 offset(-9,50)
ODUH V 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH V 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH V 1 offset(-6,44)
ODUH V 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH V 1 offset(-3,38)
goto MeteorEndAltLoop

MeteorEndAltLoop:
ODUH V 0 A_JumpIfInventory("Quaking",862,"MeteorCrash")
ODUH V 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH V 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH V 1 offset(-2,36)
ODUH V 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH V 1 offset(-2,36)
ODUH U 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH U 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH U 1 offset(-2,36)
ODUH U 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH U 1 offset(-2,36)
ODUH V 0 A_JumpIfInventory("Quaking",1,"MeteorEndAltLoop")
goto MeteorCrash

MeteorCrash:
ODUH C 0 A_TakeInventory("ODuoMeteorStop",9)
ODUH C 0 A_TakeInventory("ODuoRamFlag",9)
ODUH C 0 A_TakeInventory("BasicArmor",9999)
ODUH C 0 A_PlaySoundEx("weapon/BurnerBoom","Weapon")
ODUH C 0 A_GiveInventory("ODuoAlt3_CI",1)

ODUH "^" 2 offset(4,16)
ODUH "^" 2 offset(1,20)
TNT1 A 4
ODUH C 1 offset(-28,92)
ODUH C 1 offset(-24,86)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI T 1 offset(-21,78)
ODUI T 1 offset(-18,70)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI T 1 offset(-15,62)
ODUI T 1 offset(-12,56)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI T 1 offset(-9,50)
ODUI S 1 offset(-6,44)A_JumpIfInventory("PowerRage_ST",1,1)
ODUI S 1 offset(-3,38)
goto MeteorEnd2

MeteorEnd2:
ODUI S 0 A_SpawnItemEx("ODuoChargeArmorHelper")
ODUI S 0 A_TakeInventory("ODuoRamFlag",9)
ODUI S 0 A_TakeInventory("ODuoMeteorGo",9)
ODUI S 0 A_TakeInventory("ODuoMeteorStop",9)
ODUI S 0 A_TakeInventory("ProjectilePortDead",9)
ODUI S 0 A_SpawnItemEx("ResolidifyPlayer_H")
ODUI S 2 A_WeaponReady(14)
ODUI S 0 A_JumpIf(1,1)
ODUI S 0 A_GiveInventory("ODuoMeteorAmmoSync_P",1)
ODUI S 0 A_TakeInventory("ODuoRamFlag",9)
ODUI S 0 A_TakeInventory("ODuoMeteorGo",9)
ODUI S 0 A_TakeInventory("ODuoMeteorStop",9)
ODUI S 0 A_TakeInventory("ProjectilePortDead",9)
ODUI S 0 A_TakeInventory("Quaking",9999)
ODUI S 2 A_WeaponReady(14)
Goto Ready1

}
}

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 ODuoMeteorFrame : Inventory
{
inventory.amount 1
inventory.maxamount 8
}

actor ODuoChargeArmor : BasicArmorPickup
{
armor.saveamount 10
armor.savepercent 33
}

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

actor ODuoMeteorEndThrust14_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeVelocity(14*cos(pitch),0,14*-sin(pitch),3)
stop
}
}
actor ODuoMeteorEndThrust28_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeVelocity(28*cos(pitch),0,28*-sin(pitch),3)
stop
}
}
actor ODuoMeteorEndThrust32_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeVelocity(32*cos(pitch),0,32*-sin(pitch),3)
stop
}
}

actor ODuoMeteorEndPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("ODuoMeteorStop",1)
TNT1 A 0 A_GiveInventory("InvulnerableOff_Pickup",1)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)
ODUH A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
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 ODuoMeteorAmmoSync_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("DuoJusticeAmmo",1)
TNT1 A 0 A_TakeInventory("DuoJusticeAmmo",1)
stop
}
}



actor ODuoMidFist
{
Translation "198:198=192:192", "192:192=4:4"
PROJECTILE
damagetype "ODuo_Shot"
Obituary "$OB_ODUOFIST2"
+SKYEXPLODE
reactiontime 1
Damage (5)
Radius 16
Height 16
Speed 56
Scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
GIGO CDCDCDC 1
GIGO A 1 A_CountDown
goto SpawnLOOP+6
Death:
TNT1 A 0 A_Explode(10,64,0,0,32)
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:
X_4D PQRSTYVWXY 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 ODuoPunch
{
Translation "198:198=192:192", "192:192=4:4"
PROJECTILE
damagetype "ODuo_Punch"
Obituary "$OB_ODUOFIST3"
+DONTBLAST
reactiontime 1
damage (25)
Radius 20
Height 20
speed 60
scale 3.5
States
{
Spawn:
GIGO A 0
GIGO A 1 A_CountDown
wait
Death:
GIGO A 0 A_Explode(25,48,0,0,16)
Crash:
XDeath:
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 ODuo_MeteorProtect : PowerProtection
{
Powerup.Duration 10
DamageFactor "ODuo_Meteor", 0.0
}

actor ODuoTheMeteorBox
{
PROJECTILE
Damagetype "ODuo_Meteor"
Obituary "$OB_ODUOMETEOR"
+RIPPER
+DONTSPLASH
+DONTBLAST
+NOEXPLODEFLOOR
+THRUGHOST
+DONTREFLECT
damage (35)
Radius 64
Height 64
scale 2.5
States
{
Spawn:
TNT1 A 1
stop
Crash:
XDeath:
TNT1 A 1
stop
Death:
TNT1 A 1
Stop
}
}

actor ODuoTheMeteorBoom : BasicExplosion
{
Damagetype "ODuo_Meteor"
Obituary "$OB_ODUOMETEOR"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/DuoMeteorImpact","Weapon")
TNT1 A 0 A_PlaySound("weapon/BlizzStrike","Voice",0.5)
TNT1 B 0 A_Quake(5,9,0,48)
TNT1 A 0 A_Explode(0,80,0,0,80)//A_Explode(33,80,0,0,80)
TNT1 A 15 //A_SpawnItemEx
stop
}
}

actor ODuoTheMeteor
{
BounceSound "weapon/DuoMeteorBounce"
PROJECTILE
damagetype "ODuo_Meteor"
Obituary "$OB_ODUOMETEOR"
+DONTBLAST
+DONTREFLECT
+THRUGHOST
+DONTSPLASH
+THRUACTORS
+SKYEXPLODE
Bouncetype Classic
+BOUNCEONWALLS
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_Explode(35,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_JumpIfInventory("ODuoMeteorStop",1,"No")
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_FireCustomMissile("ODuoTheMeteorBoom",0,0,0,0)
TNT1 A 0 A_TakeInventory("DuoJusticeAmmo",14)
TNT1 A 0 A_GiveInventory("ODuoMeteorStop",1)
stop
No:
TNT1 A 0
stop
}
}

actor ODuoTheMeteorEndFXHelper : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("ODuoMeteorStop",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 "ClassPainLess2"
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 "ODuo_MeteorBoom"
Obituary "$OB_ODUOMETEOR2"
Scale 3.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(10,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 "ODuo_Crush"
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
{
damagetype "ODuo_Crush"
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 "ODuo_Wave"
Obituary "$OB_ODUOWAVE"
-NOGRAVITY
//+FLOORHUGGER
+STEPMISSILE
+NOEXPLODEFLOOR
+THRUACTORS
Damage (11+user_P)
Radius 32
Height 32
Speed 30
Scale 2.0
maxstepheight 32
gravity 500
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 ODuo_WaveProtect : PowerProtection
{
Powerup.Duration 6
DamageFactor "ODuo_Wave", 0.155
}

actor ODuo_TackleProtect : PowerProtection
{
Powerup.Duration 30
damagefactor "ODuo_Tackle", 0.0//0.09
}

actor ODuoRamDamage : BasicExplosion
{
Damagetype "ODuo_Tackle"
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 2 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 2 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 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
}
}
