actor OriginalDuoBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_8J"
dropitem "DuoFistUpgrade2GiverDropped"
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
Ready0:
ODUH A 10 A_WeaponReady
goto Ready1
Ready1:
ODUH A 5 A_WeaponReady
ODUH A 0 A_GiveInventory("DuoJusticeAmmo",1)
loop

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

Fire:
ODUH I 0 ACS_ExecuteAlways(991,0,DYE_ORIGINDUO)
ODUH I 0 A_PlaySoundEx("weapon/DuoShot2","Weapon")
ODUH I 0 A_GiveInventory("ODuoMain1_CI",1)
ODUH I 1 offset(6,29)
ODUH I 1 offset(12,26)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH L 1 offset(14,24)
ODUH L 1 offset(11,25)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH I 1 offset(8,27)
ODUH I 1 offset(6,29)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH A 1 offset(4,30)
ODUH A 1 offset(2,31)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH A 2 A_WeaponReady(14)
ODUH A 5 A_GiveInventory("DuoJusticeAmmo",1)
goto Ready1

AltFire:
ODUH A 0
goto HoldX
A_Fire2222:
ODUH I 0 ACS_ExecuteAlways(991,0,DYE_ORIGINDUO)
ODUH I 0 A_PlaySoundEx("weapon/DuoShot2","Weapon")
ODUH I 0 A_GiveInventory("ODuoMain1_CI",1)
ODUH I 1 offset(6,29)
ODUH I 1 offset(12,26)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH L 1 offset(14,24)A_TakeInventory("WeaponCharge",999)
ODUH L 1 offset(11,25)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH I 1 offset(8,27)A_TakeInventory("WeaponCharge",999)
ODUH I 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)
ODUH A 0 A_Refire("HoldX")
goto Ready1

A_Fire2:
ODUH B 0 ACS_ExecuteAlways(991,0,DYE_ORIGINDUO)
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)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH B 1 offset(14,24)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)
ODUH A 0 A_Refire("HoldX")
goto Ready1

A_Fire3:
ODUH C 0 A_TakeInventory("WeaponCharge",999)
ODUH C 0 ACS_ExecuteAlways(991,0,DYE_ORIGINDUO)
ODUH C 0 A_GiveInventory("ODuo_BasicArmor_P",1)
ODUH C 0 A_GiveInventory("SetDynamicArmorDosage_P",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 C 1 Offset(1,34)A_GunFlash("Flash.A_Fire3")
ODUH C 1 Offset(10,28)
ODUH IIKKIIKKIIKKIIKKIIKK 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 0 A_TakeInventory("DynamicArmorDosage_F")
ODUH I 1 Offset(4,28)A_TakeInventory("BasicArmor")
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",7)
ODUH A 0 A_SpawnItemEx("ResolidifyPlayer_H")
ODUH A 2 A_WeaponReady(14)
ODUH A 1 A_TakeInventory("WeaponCharge",999)
ODUH A 0 A_Refire("HoldX")
goto Ready0

Flash.A_Fire3:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_PlaySoundEx("weapon/DuoShot3","Weapon")
TNT1 A 0 A_ChangeVelocity(3.25,0,0.25,1)//CVF_RELATIVE
TNT1 A 0 A_TakeInventory("ODuoRamFlag",1)
TNT1 A 0 A_TakeInventory("DuoJusticeAmmo",1,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",18,"Charge")
ODUH B 1 A_GiveInventory("WeaponCharge_RC",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_Fire2
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_Fire2
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 1 ACS_ExecuteAlways(998,0,DYE_ODUO_CHARGE2,6)
ODUH G 0 A_Refire(1)
Goto A_Fire3
ODUH H 1 ACS_ExecuteAlways(998,0,DYE_ODUO_CHARGE3,7)
ODUH H 0 A_Refire(1)
Goto A_Fire3
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 15
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
TNT1 A 15 A_GiveInventory("DuoJusticeAmmo",1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
TNT1 A 15 A_GiveInventory("DuoJusticeAmmo",1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
TNT1 A 15 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 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

}
}

actor OriginalDuoMeteorBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_8J2"
dropitem "DuoFistUpgrade2GiverDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 56
Obituary "$OB_ODUOMETEOR3"
Inventory.Pickupmessage "You are now Optimus Prime!"
weapon.ammotype "DuoJusticeAmmo"
inventory.icon "ODuoIco2"
States
{
Spawn:
C_08 J 1
loop
Ready:
ODUH S 0 ACS_ExecuteAlways(998,0,DYE_ORIGINDUO)
ODUH R 2
goto Ready1
Ready0:
ODUH S 10 A_WeaponReady
goto Ready1
Ready1:
ODUH S 0 A_JumpIfInventory("DuoJusticeAmmo",56,"Ready2")
ODUH S 5 A_WeaponReady(8)
ODUH S 0 A_GiveInventory("DuoJusticeAmmo",1)
loop
Ready2:
ODUH S 5 A_WeaponReady
ODUH S 0 A_GiveInventory("DuoJusticeAmmo",1)
loop

Deselect:
ODUH SSSSSSSSSSSSSSSSSSSSSS 0 A_Lower
ODUH S 1 A_Lower
Loop
Select:
ODUH SSSSSSSSSSSSSSSSSSSSSS 0 A_Raise
ODUH S 1 A_Raise
Loop

Fire:
ODUH S 0 A_JumpIfInventory("ODuoMeteorGo",1,"MeteorEndFire")
ODUH S 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEndFire")
ODUH S 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEndFire")
goto Fire1
Fire1:
ODUH U 0 A_PlaySoundEx("weapon/DuoShot2","Weapon")
ODUH U 0 A_GiveInventory("ODuoMain1_CI",1)
ODUH U 1 offset(6,29)
ODUH U 1 offset(12,26)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH W 1 offset(14,24)
ODUH W 1 offset(11,25)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH U 1 offset(8,27)
ODUH U 1 offset(6,29)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH S 1 offset(4,30)
ODUH S 1 offset(2,31)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH S 2 A_WeaponReady(14)
ODUH S 5 A_GiveInventory("DuoJusticeAmmo",1)
ODUH S 0 A_Refire("Fire1")
goto Ready1


AltFire:
ODUH S 0 A_JumpIfInventory("ODuoMeteorGo",1,"MeteorEndAltFire")
ODUH S 0 A_JumpIfInventory("ODuoMeteorStop",1,"MeteorEndAltFire")
ODUH S 0 A_JumpIfInventory("ProjectilePortDead",1,"MeteorEndAltFire")
ODUH S 0 A_JumpIfInventory("DuoJusticeAmmo",56,"BeginMeteor")
goto Ready1

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

TNT1 AAAAA 3
TNT1 A 0 A_TakeInventory("UnSolid",1)
TNT1 A 0 A_ChangeFlag("SOLID",0)
TNT1 A 0 A_ChangeFlag("THRUSPECIES",1)
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/GrenadeShot","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,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",2,1)
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:
ODUH D 0 A_GiveInventory("ODuoMeteorEndThrust14_P",1)
ODUH D 1 offset(-45,134)A_GiveInventory("ODuoMeteorEndPickup",1)
ODUH D 1 offset(-42,124)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH D 1 offset(-39,116)
ODUH D 1 offset(-36,110)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH D 1 offset(-33,104)
ODUH D 1 offset(-30,98)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH D 1 offset(-27,92)
ODUH D 1 offset(-24,86)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH T 1 offset(-21,78)
ODUH T 1 offset(-18,70)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH T 1 offset(-15,62)
ODUH T 1 offset(-12,56)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH T 1 offset(-9,50)
ODUH T 1 offset(-6,44)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH 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)
ODUH C 1 offset(-21,78)
ODUH T 1 offset(-18,70)
ODUH C 1 offset(-15,62)
ODUH T 1 offset(-12,56)
ODUH C 1 offset(-9,50)
ODUH T 1 offset(-6,44)
ODUH 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)
ODUH T 1 offset(-21,78)
ODUH C 1 offset(-15,62)
ODUH T 1 offset(-9,50)
ODUH 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("Quaking_RC",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("Quaking_RC",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("ODuo_BasicArmor_P",1)
TNT1 A 0 A_GiveInventory("SetDynamicArmorDosage_P",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 K 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH K 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH K 1 offset(-36,110)
ODUH K 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH K 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 K 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH K 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH K 1 offset(-24,86)
ODUH K 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH K 1 offset(-21,78)
ODUH U 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH U 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH U 1 offset(-18,70)
ODUH U 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH U 1 offset(-15,62)
ODUH K 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH K 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH K 1 offset(-12,56)
ODUH K 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH K 1 offset(-9,50)
ODUH U 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH U 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH U 1 offset(-6,44)
ODUH U 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH U 1 offset(-3,38)
goto MeteorEndAltLoop

MeteorEndAltLoop:
ODUH K 0 A_JumpIfInventory("Quaking",862,"MeteorCrash")
ODUH K 0 A_JumpIfInventory("PowerRage_ST",1,3)
ODUH K 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH K 1 offset(-2,36)
ODUH K 0 A_JumpIf(z-floorz==0,"MeteorCrash")
ODUH K 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 K 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("DynamicArmorDosage_F")
ODUH C 0 A_TakeInventory("BasicArmor")
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)
ODUH T 1 offset(-21,78)
ODUH T 1 offset(-18,70)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH T 1 offset(-15,62)
ODUH T 1 offset(-12,56)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH T 1 offset(-9,50)
ODUH S 1 offset(-6,44)A_JumpIfInventory("PowerRage_ST",1,1)
ODUH S 1 offset(-3,38)
goto MeteorEnd2

MeteorEnd2:
ODUH S 0 A_SpawnItemEx("ODuo_RemoveBasicArmorSync_H")
ODUH S 0 A_TakeInventory("DynamicArmorDosage_F")
ODUH S 0 A_TakeInventory("BasicArmor")
ODUH S 0 A_TakeInventory("ODuoRamFlag",9)
ODUH S 0 A_TakeInventory("ODuoMeteorGo",9)
ODUH S 0 A_TakeInventory("ODuoMeteorStop",9)
ODUH S 0 A_TakeInventory("ProjectilePortDead",9)
ODUH S 0 A_ChangeFlag("THRUSPECIES",0)
ODUH S 0 A_SpawnItemEx("ResolidifyPlayer_H")
ODUH S 2 A_WeaponReady(14)
ODUH S 0 A_JumpIf(1,1)
ODUH S 0 A_GiveInventory("ODuoMeteorAmmoSync_P",1)
ODUH S 0 A_TakeInventory("ODuoRamFlag",9)
ODUH S 0 A_TakeInventory("ODuoMeteorGo",9)
ODUH S 0 A_TakeInventory("ODuoMeteorStop",9)
ODUH S 0 A_TakeInventory("ProjectilePortDead",9)
ODUH S 0 A_TakeInventory("Quaking",9999)
ODUH 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 ODuo_RemoveBasicArmorSync_H : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_TakeFromTarget("BasicArmor")
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)
TNT1 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
+EXPLODEONWATER
reactiontime 1
Damage (20)
Radius 16
Height 16
Speed 40//56
Scale 2.5
States
{
Spawn:
GIGO CDCDCDCDCD 1//7->10
GIGO A 1 A_CountDown
wait
Death:
TNT1 A 0 A_Explode(140,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:
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 (220)
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(220,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 4
DamageFactor "ODuo_Meteor", 0.0
}

actor ODuoTheMeteorBox
{
PROJECTILE
Damagetype "ODuo_Meteor"
Obituary "$OB_ODUOMETEOR"
+RIPPER
+DONTSPLASH
+DONTBLAST
+NOEXPLODEFLOOR
+THRUGHOST
+DONTREFLECT
damage (20)
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_MeteorPush"
Obituary "$OB_ODUOMETEOR"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/blizzstrike","Weapon")
TNT1 A 0 A_Explode(330,80,0,0,80)
TNT1 A 15 //A_SpawnItemEx
stop
}
}

actor ODuoTheMeteor
{
BounceSound "misc/quake"
PROJECTILE
damagetype "ODuo_Meteor"
Obituary "$OB_ODUOMETEOR"
+DONTBLAST
+DONTREFLECT
+THRUGHOST
+DONTSPLASH
+THRUACTORS
+SKYEXPLODE
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+CANBOUNCEWATER
Bouncefactor 1.0
Wallbouncefactor 1.0
BounceCount 256
damage (0)
Radius 15
Height 54
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(350,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,1)
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 "192:192=4:4","198:198=192:192"
damagetype "ODuo_MeteorBoom"
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"192:192=205:205","198:198=74:74"}
actor ODuoMeteorExplosionFireR : ODuoMeteorExplosionFire{Translation"192:192=171:171","198:198=41:41"}
actor ODuoMeteorExplosionFireO : ODuoMeteorExplosionFire{Translation"192:192=104:104","198:198=128:128"}
actor ODuoMeteorExplosionFireP : ODuoMeteorExplosionFire{Translation"192:192=229:229","198:198=232:232"}

actor ODuoMeteorExplosion : BasicExplosion
{
damagetype "ODuo_MeteorBoom"
Obituary "$OB_ODUOMETEOR2"
+FORCEXYBILLBOARD
+BRIGHT
Scale 3.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(110,196,0,0,64)
X_8B ABCD 2 A_SpawnItemEx("ODuoMeteorExplosionFX",random(-56,56),random(-56,56),random(-56,56),0,0,0,0,1)
X_8B EF 2
stop
}
}

actor ODuoMeteorExplosionFX : BasicClientSide
{
+FORCEXYBILLBOARD
+BRIGHT
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetScale(ScaleX+frandom(-0.5,0.25))
X_8B 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(40,66,0,0,28)
stop
}
}

actor ODuoShockWaveSpawner : BasicExplosion
{
damagetype "ODuo_Crush"
Obituary "$OB_ODUOMETEOR3"
Translation "192:192=4:4"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(150,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"
+FLOORHUGGER
+THRUACTORS
Damage (110+user_P)
Radius 32
Height 32
Speed 30
Scale 2.0
States
{
Spawn:
DUOR T 0
DUOR T 1 A_SetUserVar("user_P",CallACS("cbm_countinv_acs",33,2))
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(210,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(210,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,1)
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,1)
stop
}
}
