actor OriginalDuo_W : BaseMM8BDMWep_CBM
{
tag "$TAGC_8J"
dropitem "DuoFistUpgrade"
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

Deselect:
ODUH A 0
goto DeselectSwap
Select:
ODUH A 0
goto SelectSwap

Ready:
ODUH A 0 ACS_NamedExecuteWithResult("core_weaponcolor",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

Fire:
ODUH I 0 ACS_NamedExecuteWithResult("core_chargecolor",DYE_ORIGINDUO,TCLR_NONE)
ODUH I 0 A_PlaySoundEx("weapon/DuoShot2","Weapon")
ODUH I 0 A_FireCustomMissile("ODuoMidFist",0,0,-8,0)
ODUH I 1 offset(6,29)
ODUH I 1 offset(12,26)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH L 1 offset(14,24)
ODUH L 1 offset(11,25)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH I 1 offset(8,27)
ODUH I 1 offset(6,29)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH A 1 offset(4,30)
ODUH A 1 offset(2,31)A_JumpIfInventory("PlayerPropertyRage",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_NamedExecuteWithResult("core_chargecolor",DYE_ORIGINDUO,TCLR_NONE)
ODUH I 0 A_PlaySoundEx("weapon/DuoShot2","Weapon")
ODUH I 0 A_FireCustomMissile("ODuoMidFist",0,0,-8,0)
ODUH I 1 offset(6,29)
ODUH I 1 offset(12,26)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH L 1 offset(14,24)A_TakeInventory("WeaponCharge",999)
ODUH L 1 offset(11,25)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH I 1 offset(8,27)A_TakeInventory("WeaponCharge",999)
ODUH I 1 offset(6,29)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH A 1 offset(4,30)
ODUH A 1 offset(2,31)A_JumpIfInventory("PlayerPropertyRage",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_NamedExecuteWithResult("core_chargecolor",DYE_ORIGINDUO,TCLR_NONE)
ODUH B 0 A_PlaySoundEx("Weapon/GutMelee","Weapon")
ODUH B 0 A_FireCustomMissile("ODuoPunch",0,0,-8,0)
ODUH B 1 offset(6,29)
ODUH B 1 offset(12,26)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH B 1 offset(14,24)A_TakeInventory("WeaponCharge",999)
ODUH B 1 offset(11,25)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH B 1 offset(8,27)A_TakeInventory("WeaponCharge",999)
ODUH B 1 offset(6,29)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH A 1 offset(4,30)
ODUH A 1 offset(2,31)A_JumpIfInventory("PlayerPropertyRage",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_NamedExecuteWithResult("core_chargecolor",DYE_ORIGINDUO,TCLR_NONE)
ODUH C 0 A_GiveInventory("ODuo_BasicArmor_P",1)
ODUH C 0 A_GiveInventory("SetDynamicArmorDosage",1)
ODUH C 0 A_GiveInventory("ODuoRamFlag",10)
ODUH C 0 ACS_NamedExecuteWithResult("core_stopplayer",0,1)
ODUH C 0 ACS_NamedExecuteWithResult("core_unsolidplayer",0,USP_TOGGLEON)
ODUH C 0 ACS_NamedExecuteWithResult("core_nogravityplayer",0,2)

ODUH C 0 A_SetArg(4,angle*100000)
ODUH C 0 A_ChangeVelocity(25,0,1,3)
ODUH C 1 Offset(1,34)A_GunFlash("Flash.A_Fire3",1)
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,8)
ODUH I 1 Offset(8,26)A_SpawnItemEx("ODuoRamDamage2",0,0,28,momx,momy,momz,0,8)
ODUH I 0 ACS_NamedExecuteWithResult("core_nogravityplayer",0,0)
ODUH I 1 Offset(6,27)ACS_NamedExecuteWithResult("core_stopplayer",0,0)
ODUH I 0 A_TakeInventory("DynamicArmorDosage")
ODUH I 1 Offset(4,28)A_TakeInventory("BasicArmor")
ODUH I 1 Offset(3,29)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH I 1 Offset(2,30)
ODUH I 1 Offset(1,31)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH A 0 //A_TakeInventory("DuoJusticeAmmo",7)
ODUH A 0 ACS_NamedExecuteWithResult("core_unsolidplayer",0,USP_TOGGLEOFF_DAMAGE,CallACS("core_getmaxhealth")/10)
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_PlaySoundEx("weapon/DuoShot3","Weapon")
//TNT1 A 0 A_ChangeVelocity(3.25,0,0.25,1)//CVF_RELATIVE
TNT1 A 0 A_ChangeVelocity(3.25*cos(Args[4]/100000.0),3.25*sin(Args[4]/100000.0),0.25,0)//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,8)
TNT1 A 1 A_SpawnItemEx("ODuoRamDamage",0,0,28,momx,momy,momz,0,8)
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",1+CallACS("core_checkrune",RUNE_RAGE))
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",1)
Goto Charge0
Charge0:
ODUH B 0 A_JumpIfInventory("WeaponCharge",54,"Charge1")
ODUH B 1 ACS_NamedExecuteWithResult("core_chargecolor",DYE_ODUO_CHARGE1,TINT_TCLR1)
ODUH B 0 A_GiveInventory("WeaponCharge",1+CallACS("core_checkrune",RUNE_RAGE))
ODUH B 0 A_Refire(1)
Goto A_Fire2
ODUH C 0 A_JumpIfInventory("WeaponCharge",54,"Charge1")
ODUH C 1 ACS_NamedExecuteWithResult("core_chargecolor",DYE_ORIGINDUO,TCLR_NONE)
ODUH C 0 A_GiveInventory("WeaponCharge",1+CallACS("core_checkrune",RUNE_RAGE))
ODUH C 0 A_Refire("Charge0")
Goto A_Fire2
Charge1:
ODUH G 0 A_GunFlash("Flash.Charging",1)
ODUH G 1 Offset(-2,34)ACS_NamedExecuteWithResult("core_chargecolor",DYE_ODUO_CHARGE2,TINT_TCLR2)
ODUH G 0 A_Refire(1)
Goto A_Fire3
ODUH H 1 Offset(-4,36)ACS_NamedExecuteWithResult("core_chargecolor",DYE_ODUO_CHARGE3,TINT_TCLR3)
ODUH H 0 A_Refire(1)
Goto A_Fire3
ODUH D 1 Offset(-6,38)ACS_NamedExecuteWithResult("core_chargecolor",DYE_ORIGINDUO,TCLR_NONE)
ODUH D 0 A_Refire(1)
Goto A_Fire3
ODUH G 1 Offset(-7,39)ACS_NamedExecuteWithResult("core_chargecolor",DYE_ODUO_CHARGE2,TINT_TCLR2)
ODUH G 0 A_Refire(1)
Goto A_Fire3
ODUH H 1 Offset(-8,40)ACS_NamedExecuteWithResult("core_chargecolor",DYE_ODUO_CHARGE3,TINT_TCLR3)
ODUH H 0 A_Refire(1)
Goto A_Fire3
ODUH D 1 Offset(-9,41)ACS_NamedExecuteWithResult("core_chargecolor",DYE_ORIGINDUO,TCLR_NONE)
ODUH D 0 A_Refire("Charge2")
Goto A_Fire3
Charge2:
ODUH G 1 ACS_NamedExecuteWithResult("core_chargecolor",DYE_ODUO_CHARGE2,TINT_TCLR2)
ODUH G 0 A_Refire(1)
Goto A_Fire3
ODUH H 1 ACS_NamedExecuteWithResult("core_chargecolor",DYE_ODUO_CHARGE3,TINT_TCLR3)
ODUH H 0 A_Refire(1)
Goto A_Fire3
ODUH D 1 ACS_NamedExecuteWithResult("core_chargecolor",DYE_ORIGINDUO,TCLR_NONE)
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("WeaponCharge",1,1)
stop
TNT1 A 15 A_GiveInventory("DuoJusticeAmmo",1)
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
TNT1 A 15 A_GiveInventory("DuoJusticeAmmo",1)
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
TNT1 A 15 A_GiveInventory("DuoJusticeAmmo",1)
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("WeaponCharge",1,1)
stop
TNT1 A 5 A_PlaySoundEx("weapon/MM4Charge","Weapon")
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("WeaponCharge",1,"Flash.Charging")
stop

}
}

actor OriginalDuo_W2 : 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

Deselect:
ODUH S 0
goto DeselectSwap
Select:
ODUH S 0
goto SelectSwap

Ready:
ODUH S 0 ACS_NamedExecuteWithResult("core_weaponcolor",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

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_FireCustomMissile("ODuoMidFist",0,0,-8,0)
ODUH U 1 offset(6,29)
ODUH U 1 offset(12,26)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH W 1 offset(14,24)
ODUH W 1 offset(11,25)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH U 1 offset(8,27)
ODUH U 1 offset(6,29)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH S 1 offset(4,30)
ODUH S 1 offset(2,31)A_JumpIfInventory("PlayerPropertyRage",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("VivifyFlag1",1)
ODUH S 0 A_TakeInventory("ODuoMeteorGo",9)
ODUH S 0 A_TakeInventory("ODuoMeteorStop",9)
ODUH S 0 A_Stop
ODUH S 0 A_GiveInventory("CBM_DisableSpeedPowerGiver",1)
ODUH S 0 A_GiveInventory("CBM_DisableJumpPowerGiver",1)
ODUH S 0 ACS_NamedExecuteWithResult("core_nogravityplayer",0,2)
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("PlayerPropertyRage",1,1)
ODUH T 1 offset(-9,50)
ODUH T 1 offset(-12,56)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH T 1 offset(-15,62)
ODUH T 1 offset(-18,70)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH T 1 offset(-21,78)
ODUH D 1 offset(-24,86)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH D 1 offset(-27,92)
ODUH D 1 offset(-30,98)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH D 1 offset(-33,104)
ODUH D 1 offset(-36,110)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH D 1 offset(-39,116)
ODUH D 1 offset(-42,124)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH D 1 offset(-45,134)

TNT1 AAAAA 3
TNT1 A 0 ACS_NamedExecuteWithResult("cbm_pickupdisableplayer",0,true)
TNT1 A 0 ACS_NamedExecuteWithResult("core_unsolidplayer",0,USP_TOGGLEON)
TNT1 A 3 ACS_NamedExecuteWithResult("core_invulnerableplayer",0,1)

TNT1 A 0 ACS_NamedExecuteWithResult("core_nogravityplayer",0,0)
TNT1 A 0 A_GiveInventory("ODuoMeteorGo",1)
TNT1 A 0 A_TakeInventory("VivifyFlag1")
TNT1 A 0 A_GunFlash("Flash.Meteor",1)
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("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("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("PlayerPropertyRage",1,1)
ODUH D 1 offset(-39,116)
ODUH D 1 offset(-36,110)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH D 1 offset(-33,104)
ODUH D 1 offset(-30,98)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH D 1 offset(-27,92)
ODUH D 1 offset(-24,86)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH T 1 offset(-21,78)
ODUH T 1 offset(-18,70)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH T 1 offset(-15,62)
ODUH T 1 offset(-12,56)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH T 1 offset(-9,50)
ODUH T 1 offset(-6,44)A_JumpIfInventory("PlayerPropertyRage",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_TakeInventory("DuoJusticeAmmo",7)
TNT1 A 0 A_TakeInventory("DuoJusticeAmmo",21,1)
TNT1 A 0 A_FireCustomMissile("ODuoMeteorExplosionFire",0,0,0,0)
TNT1 A 0 A_GiveInventory("ODuoMeteorEndThrust28_P",1)

ODUH D 1 offset(-42,124)
ODUH D 0 A_JumpIfInventory("PlayerPropertyRage",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,8)
TNT1 A 0 A_GiveInventory("Quaking",1+CallACS("core_checkrune",RUNE_RAGE))
TNT1 A 1
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,8)
TNT1 A 0 A_GiveInventory("Quaking",1+CallACS("core_checkrune",RUNE_RAGE))
TNT1 A 1 A_GiveInventory("ODuoSoundGive",1)
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",1)
TNT1 A 0 A_GunFlash("Flash.MeteorAlt",1)
TNT1 A 0 A_PlaySoundEx("weapon/BurnerDive","Weapon")
TNT1 A 0 A_GiveInventory("ODuoMeteorEndThrust32_P",1)

ODUH U 1 offset(-42,124)A_JumpIfInventory("PlayerPropertyRage",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("PlayerPropertyRage",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("PlayerPropertyRage",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("PlayerPropertyRage",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("PlayerPropertyRage",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("PlayerPropertyRage",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("PlayerPropertyRage",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("PlayerPropertyRage",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("PlayerPropertyRage",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")
ODUH C 0 A_TakeInventory("BasicArmor")
ODUH C 0 A_PlaySoundEx("weapon/BurnerBoom","Weapon")
ODUH C 0 A_TakeInventory("DuoJusticeAmmo",7)
ODUH C 0 A_TakeInventory("DuoJusticeAmmo",21,1)
ODUH C 0 A_FireCustomMissile("ODuoShockWaveSpawner",0,0,0,0)

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("PlayerPropertyRage",1,1)
ODUH T 1 offset(-21,78)
ODUH T 1 offset(-18,70)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH T 1 offset(-15,62)
ODUH T 1 offset(-12,56)A_JumpIfInventory("PlayerPropertyRage",1,1)
ODUH T 1 offset(-9,50)
ODUH S 1 offset(-6,44)A_JumpIfInventory("PlayerPropertyRage",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")
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 ACS_NamedExecuteWithResult("core_unsolidplayer",0,USP_TOGGLEOFF_DAMAGE,CallACS("core_getmaxhealth")/10)
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 ODuoMeteorGo : Inventory {}
actor ODuoMeteorStop : Inventory {}

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 ACS_NamedExecuteWithResult("cbm_pickupdisableplayer",0,false)
TNT1 A 0 ACS_NamedExecuteWithResult("core_invulnerableplayer",0,0)
TNT1 A 0 A_TakeInventory("CBM_DisableSpeedPower")
TNT1 A 0 A_TakeInventory("CBM_DisableJumpPower")
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 : ProjSpawnFuncActor
{
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 BCBCBCBCBC 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 : BasicGraphicEffect
{
Scale 3.0
States
{
SpawnFrame:
GIGO I 0
GIGO IJKLMNO 1
stop
}
}

actor ODuoPunch : ProjSpawnFuncActor
{
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 ODuo_MeteorProtect : PowerProtection
{
Powerup.Duration 4
DamageFactor "ODuo_Meteor", 0.0
}

actor PainODuo_MeteorHit : BasicWatcher
{
States
{
Spawn:
TNT1 A 0 nodelay A_GiveToTarget("ODuoTheMeteorPickup",1,AAPTR_TARGET)
stop
}
}

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 PainODuo_MeteorPushHit : Basic_PainFling_H{Args 38,28,0}
actor DeathODuo_MeteorPushHit : Basic_DeathFling_H{Args 42,84,0}

actor ODuoTheMeteorBoom : BasicImplosion
{
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 : ProjSpawnFuncActor
{
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_NamedExecuteWithResult("cbm_MakeTargetFollowMe",200)
TNT1 A 0 A_ScaleVelocity(33)
goto Spawn2
Spawn2:
TNT1 AAAAA 1 A_JumpIfInTargetInventory("ODuoMeteorStop",1,"Death")
TNT1 A 0 A_JumpIf(!CallACS("cbm_PointerExists",AAPTR_TARGET),"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 ODuoTheMeteorFX : BasicGraphicEffect
{
States
{
SpawnFrame:
TNT1 A 1
GIGO F 4
GIGO G 5
GIGO G 1 A_FadeOut(0.2)
wait
}
}

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 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,1+4+32)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",20,0,20,4,0,2,user_A+10,1+4+32)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",30,0,10,6,0,1,user_A+5,1+4+32)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",40,0,0,8,0,0,user_A,1+4+32)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",30,0,-10,6,0,-1,user_A+5,1+4+32)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",20,0,-20,4,0,-2,user_A+10,1+4+32)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",10,0,-30,2,0,-3,user_A+15,1+4+32)
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,1+4+32)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,0,-40,0,0,-4,0,1+4+32)
stop
}
}

actor ODuoMeteorExplosionFire : BasicImplosion
{
Speed 33
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/BurnerBoom","Body")
TNT1 A 1 A_SpawnItemEx("ODuoMeteorExplosion")
TNT1 AAA 3 A_SpawnItemEx("ODuoMeteorExplosion")
stop
}
}

actor ODuoMeteorExplosion : BasicExplosion
{
damagetype "ODuo_MeteorBoom"
Obituary "$OB_ODUOMETEOR2"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(110,196,0,0,64)
TNT1 A 0 A_SpawnItemEx("ODuoMeteorExplosionFX1",0,0,0,0,0,0,0,1)
TNT1 AAAA 2 A_SpawnItemEx("ODuoMeteorExplosionFX2",random(-56,56),random(-56,56),random(-56,56),0,0,0,0,1)
TNT1 A 6
stop
}
}

actor ODuoMeteorExplosionFX1 : BasicGraphicEffect
{
+FORCEXYBILLBOARD
+BRIGHT
Scale 3.5
States
{
SpawnFrame:
TNT1 A 0
X_8B JKL 2 A_SpawnItemEx("ODuoMidFistFX",random(-56,56),random(-56,56),random(-56,56),0,0,0,0,1)
X_8B MNO 2
stop
}
}
actor ODuoMeteorExplosionFX2 : ODuoMeteorExplosionFX1
{
Scale 2.5
States
{
SpawnFrame:
TNT1 A 0
TNT1 A 0 A_SetScale(ScaleX+frandom(-0.5,0.25))
X_8B JKLMNO 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,1+8)
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,1+8)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",-32,0,random(0,64),-momx*0.1,-momy*0.1,-momz*0.1,0,1+8)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,32,random(0,64),-momx*0.1,-momy*0.1,-momz*0.1,0,1+8)
TNT1 A 0 A_SpawnItemEx("ODuoRamDamageFX2",0,-32,random(0,64),-momx*0.1,-momy*0.1,-momz*0.1,0,1+8)

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

TNT1 A 1 A_Explode(40+CallACS("core_checkrune",RUNE_SPREAD,2)*80,66,0,0,28)
stop
}
}


actor ODuoShockWaveSpawner : BasicExplosion
{
//DeathSound ""
damagetype "ODuo_Crush"
Obituary "$OB_ODUOMETEOR3"
Args 23
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(150,156,0,0,48)
TNT1 A 0 //Radius_Quake(1,45,0,8,0)
goto SpawnL
SpawnL:
TNT1 A 0 A_SpawnItemEx("ODuoShockWave",0,0,0,30,0,0,Args[0]*15)
TNT1 A 0 A_CountDownArg(0)
loop
Death:
TNT1 A 0
TNT1 A 45
stop
}
}

actor ODuoShockWave : ProjSpawnFuncActor
{
var int user_TranslateWhiteColors;
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:
GIGO H 0
GIGO H 1 A_SetUserVar("user_P",CallACS("cbm_countinv_acs",33,2))
GIGO H 0 A_JumpIf(user_P>100,"SpawnSpeed")
goto SpawnEnd
SpawnSpeed:
GIGO H 0 A_SetUserVar("user_P",100)
goto SpawnEnd
SpawnEnd:
GIGO H 0 //A_LogInt(user_P)
GIGO H 0 A_ChangeFlag("THRUACTORS",0)
GIGO H 12 A_Recoil(user_P*-0.1)
GIGO H 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 PainODuo_TackleHit : Basic_PainFling_H{Args 64,0,2}
actor DeathODuo_TackleHit : Basic_DeathFling_H{Args 68,64,0}

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+CallACS("core_checkrune",RUNE_SPREAD,2)*420,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+CallACS("core_checkrune",RUNE_SPREAD,2)*420,80,0,0,80)
stop
}
}

actor ODuoRamDamageFX1 : BasicGraphicEffect
{
States
{
SpawnFrame:
TNT1 A 0
TNT1 A 0 A_Jump(256,1)
Spawn1:
GIGO P 5
GIGO Q 10
GIGO Q 1 A_Fadeout(0.15)
wait
}
}

actor ODuoRamDamageFX2 : BasicGraphicEffect
{
States
{
SpawnFrame:
TNT1 A 0
TNT1 A 0 A_Jump(256,1,4)
Spawn1:
GIGO R 6
GIGO S 2 A_ScaleVelocity(1.05)
GIGO S 1 A_Fadeout
goto Spawn1+1
Spawn2:
GIGO R 6
GIGO T 2 A_ScaleVelocity(1.05)
GIGO T 1 A_Fadeout
goto Spawn2+1
}
}

actor ODuoRamDamageFX3 : BasicGraphicEffect
{
States
{
SpawnFrame:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2")
Spawn1:
GIGO UV 3
GIGO W 3 A_Fadeout(0.2)
goto Spawn1+1
Spawn2:
GIGO XY 3
GIGO Z 3 A_Fadeout(0.2)
goto Spawn2+1
}
}

actor OriginalDuo_W_NormalBar : NormalBar {Args 4,192}
actor OriginalDuo_W2_NormalBar : NormalBar {Args 4,192}