actor EvilFistBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_8K"
dropitem "DuoFistUpgrade2GiverDropped"
Weapon.AmmoUse 1
Weapon.AmmoGive 3
Weapon.SlotNumber 1
Obituary "$OB_EVILBEAM"//$OB_EVILFIST//Due to NONETID it uses the Weapon Obit
Inventory.Pickupmessage "You got the Evil Fist!"
weapon.ammotype "A1EvilAmmo"
States
{
Spawn:
C_08 K 1
loop
Ready:
ERO8 A 0 ACS_ExecuteAlways(998,0,DYE_EVILROBOT)
Goto Ready2

Ready2:
ERO8 A 0 ACS_ExecuteAlways(998,0,DYE_EVILROBOT,1)
ERO8 A 0 A_TakeInventory("WeaponCharge",999)
ERO8 A 1 A_WeaponReady
wait
Deselect:
ERO8 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
ERO8 A 1 A_Lower
Loop
Select:
ERO8 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
ERO8 A 1 A_Raise
Loop

Fire:
ERO8 B 0 A_Refire("FireH")
goto Fire2
Fire2:
ERO8 B 0 A_TakeInventory("WeaponCharge",999)
ERO8 B 0 ACS_ExecuteAlways(991,0,DYE_EVILROBOT)
ERO8 B 0 A_PlaySoundEx("weapon/DuoShot2","Weapon")
ERO8 B 0 A_GiveInventory("EvilMain2_CI",1)

//ERO8 GH 1
//ERO8 IJ 8

ERO8 I 2 offset(-6,29)
ERO8 J 2 offset(-12,26)
ERO8 I 2 offset(-14,24)
ERO8 J 2 offset(-11,25)
ERO8 J 2 offset(-8,27)
ERO8 J 2 offset(-6,29)
ERO8 A 2 offset(-4,30)
ERO8 A 2 offset(-2,31)

ERO8 A 2 A_WeaponReady(14)
ERO8 A 6
ERO8 A 0 A_Refire("FireH")
goto Ready2+1
Fire3:
ERO8 B 0 A_TakeInventory("WeaponCharge",999)
ERO8 B 0 ACS_ExecuteAlways(991,0,DYE_EVILROBOT)
ERO8 B 0 A_PlaySoundEx("weapon/DuoShot3","Weapon")
ERO8 B 0 A_GiveInventory("EvilMain3_CI",1)

//ERO8 GH 2
//ERO8 IJ 8
ERO8 H 0 A_JumpIfInventory("PowerRage_ST",1,"Fire3_R")
ERO8 H 1 Offset(-1,34)
ERO8 H 1 Offset(-10,28)
ERO8 JIJIJ 2 Offset(-14,24)
ERO8 J 1 Offset(-14,24)
ERO8 J 1 Offset(-11,25)
ERO8 J 1 Offset(-8,26)
ERO8 J 1 Offset(-6,27)
ERO8 J 1 Offset(-4,28)
ERO8 J 1 Offset(-3,29)
ERO8 J 1 Offset(-2,30)
ERO8 J 1 Offset(-1,31)

ERO8 A 2 A_WeaponReady(14)
ERO8 A 6
ERO8 A 0 A_Refire("FireH")
goto Ready2+1
Fire3_R:
ERO8 H 1 Offset(-5,34)
ERO8 JIJIJ 2 Offset(-14,24)
ERO8 J 1 Offset(-11,25)
ERO8 J 1 Offset(-8,26)
ERO8 J 1 Offset(-4,28)
ERO8 J 1 Offset(-2,30)

ERO8 A 2 A_WeaponReady(14)
ERO8 A 6
ERO8 A 0 A_Refire("FireH")
goto Ready2+1


FireH:
ERO8 B 0 A_JumpIfInventory("WeaponCharge",10,"FireH0")
ERO8 B 1 A_GiveInventory("WeaponCharge_RC",1)
ERO8 B 0 A_Refire("FireH")
Goto Fire2
FireH0:
ERO8 C 0 A_GunFlash
goto FireH1
FireH1:
ERO8 C 0 A_JumpIfInventory("WeaponCharge",28,"Charge0")
ERO8 C 1 A_GiveInventory("WeaponCharge_RC",1)
ERO8 C 0 A_Refire("FireH1")
Goto Fire2
Charge0:
ERO8 D 0 A_PlaySoundEx("weapon/TrioCharge1","Weapon")
Goto Charge1
Charge1:
ERO8 D 0 A_JumpIfInventory("WeaponCharge",45,"Charge2Flash")
ERO8 D 1 ACS_ExecuteAlways(998,0,DYE_TRIO_CHARGE1,5)
ERO8 C 0 A_Refire("Charge1.a")
Goto Fire2
Charge1.a:
ERO8 C 1 ACS_ExecuteAlways(998,0,DYE_EVILROBOT,1)
ERO8 C 0 A_GiveInventory("WeaponCharge_RC",1)
ERO8 D 0 A_Refire("Charge1")
Goto Fire2
Charge2Flash:
ERO8 D 0 A_GunFlash("Flash2")
ERO8 D 1 Offset(2,34)ACS_ExecuteAlways(998,0,DYE_TRIO_CHARGE2,6)
ERO8 E 0 A_Refire(1)
Goto Fire3
ERO8 E 1 Offset(4,36)ACS_ExecuteAlways(998,0,DYE_TRIO_CHARGE3,7)
ERO8 F 0 A_Refire(1)
Goto Fire3
ERO8 F 1 Offset(6,38)ACS_ExecuteAlways(998,0,DYE_EVILROBOT,1)
ERO8 D 0 A_Refire(1)
Goto Fire3
ERO8 D 1 Offset(7,39)ACS_ExecuteAlways(998,0,DYE_TRIO_CHARGE2,6)
ERO8 E 0 A_Refire(1)
Goto Fire3
ERO8 E 1 Offset(8,40)ACS_ExecuteAlways(998,0,DYE_TRIO_CHARGE3,7)
ERO8 F 0 A_Refire(1)
Goto Fire3
ERO8 F 1 Offset(9,41)ACS_ExecuteAlways(998,0,DYE_EVILROBOT,1)
ERO8 D 0 A_Refire("Charge2")
Goto Fire3
Charge2:
ERO8 D 1 ACS_ExecuteAlways(998,0,DYE_TRIO_CHARGE2,6)
ERO8 E 0 A_Refire("Charge2.a")
Goto Fire3
Charge2.a:
ERO8 E 1 ACS_ExecuteAlways(998,0,DYE_TRIO_CHARGE3,7)
ERO8 F 0 A_Refire("Charge2.b")
Goto Fire3
Charge2.b:
ERO8 F 1 ACS_ExecuteAlways(998,0,DYE_EVILROBOT,1)
ERO8 D 0 A_JumpIfInventory("IsBot",1,"BotFire")
ERO8 D 0 A_Refire("Charge2")
Goto Fire3
BotFire:
ERO8 D 0 A_Jump(16,"Fire3")
ERO8 D 0 A_Refire("Charge2")
Goto Fire3

Flash:
ERO8 K 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
ERO8 K 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
ERO8 L 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
ERO8 L 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
ERO8 M 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
ERO8 M 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,"Flash")
stop

Flash2:
TNT1 A 0 A_PlaySoundEx("weapon/TrioCharge2","Weapon")
ERO8 N 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
ERO8 O 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
ERO8 P 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
ERO8 N 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,1)
stop
ERO8 O 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,"Flash2")
stop

User1Fire:
ERO8 B 0 A_TakeInventory("WeaponCharge",999)
ERO8 B 0 ACS_ExecuteAlways(991,0,DYE_EVILROBOT)
ERO8 B 0 A_PlaySoundEx("weapon/DuoShot2","Weapon")
ERO8 B 0 A_GiveInventory("EvilMain2_CI",1)

ERO8 I 2 offset(-6,29)
ERO8 J 2 offset(-12,26)
ERO8 I 2 offset(-14,24)
ERO8 J 2 offset(-11,25)
ERO8 J 2 offset(-8,27)
ERO8 J 2 offset(-6,29)
ERO8 A 2 offset(-4,30)
ERO8 A 2 offset(-2,31)

ERO8 A 2 A_WeaponReady(14)
ERO8 A 6
goto Ready2+1

Altfire:
ERO8 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_user1_check")==1, "User1Fire")
ERO8 A 0 A_JumpIfInventory("TrioRageWeakness",1,"EvilAlt0")
ERO8 A 0 A_JumpIfInventory("EvilRageAmmo",1120,"RageActivate")
Goto Ready2+2
RageActivate:
ERO8 A 0 A_PlaySoundEx("weapon/TrioRage","SoundSlot7")
ERO8 A 0 A_GiveInventory("TrioRageOnPickup",1)
ERO8 A 2 Offset(2,34)
ERO8 B 2 Offset(5,37)
ERO8 C 2 Offset(8,40)
ERO8 D 0 A_JumpIfInventory("PowerRage_ST",1,"RageActivate_R")
ERO8 DEFDEFDEF 1 Offset(11,43)
ERO8 C 2 Offset(8,40)
ERO8 B 2 Offset(5,37)
ERO8 A 2 Offset(2,34)
Goto Ready2+2
RageActivate_R:
ERO8 DEFDEF 1 Offset(11,43)
ERO8 C 2 Offset(8,40)
ERO8 B 2 Offset(5,37)
ERO8 A 2 Offset(2,34)
Goto Ready2+2

EvilAlt0:
ERO8 B 0 ACS_ExecuteAlways(C_JAX_SPECTRUM_SET1,0,2,3)
ERO8 B 0 ACS_ExecuteAlways(C_JAX_SPECTRUM_SET2,0,angle,pitch)
ERO8 B 0 A_PlaySoundEx("weapon/TrioCharge3","Weapon")
ERO8 B 0 A_GiveInventory("TrioGigaFlag",1)
ERO8 A 0 A_JumpIfInventory("TrioExodiaFlag",1,2)
ERO8 B 0 A_TakeInventory("PowerSpread_ST",1)
ERO8 B 2 Offset(11,41)
ERO8 H 2 Offset(25,53)
goto EvilAlt0_0
EvilAlt0_0:
ERO8 B 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_1")
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
ERO8 B 0 A_Refire("EvilAlt0_1")
goto EvilAlt0_1E
EvilAlt0_1:
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
ERO8 B 0 A_Refire("EvilAlt0_2")
goto EvilAlt0_2E
EvilAlt0_2:
ERO8 B 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_3")
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
ERO8 B 0 A_Refire("EvilAlt0_3")
goto EvilAlt0_3E
EvilAlt0_3:
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
ERO8 B 0 A_Refire("EvilAlt0_4")
goto EvilAlt0_4E
EvilAlt0_4:
ERO8 H 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_5")
ERO8 H 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum1",1)
ERO8 H 0 A_Refire("EvilAlt0_5")
goto EvilAlt0_5E
EvilAlt0_5:
ERO8 H 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum1",1)
ERO8 H 0 A_JumpIfInventory("EvilRageAmmo",1,1)
goto EvilAlt0End
ERO8 H 0 A_Refire("EvilAlt0_0")
goto EvilAlt0End
EvilAlt0_0E:
ERO8 B 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_1E")
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
EvilAlt0_1E:
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
EvilAlt0_2E:
ERO8 B 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_3E")
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
EvilAlt0_3E:
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
EvilAlt0_4E:
ERO8 H 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_5E")
ERO8 H 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0_5E:
ERO8 H 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0End:
ERO8 B 0 A_TakeInventory("TrioGigaFlag",1)
ERO8 B 2 Offset(17,48)
ERO8 H 2 Offset(11,44)
ERO8 B 2 Offset(6,40)
ERO8 B 2 Offset(3,37)A_GiveInventory("TrioSpreadRuneRevert",1)
ERO8 A 2 Offset(1,34)
ERO8 B 0 A_ClearRefire
goto Ready2+1
}
}

const int TRIO_LASERRANGE = 166;

actor A1EvilAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 3
+INVENTORY.IGNORESKILL
}

actor EvilRageAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 1120
+INVENTORY.IGNORESKILL
}

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

actor TrioFireFlag : OnceC {}
actor TrioGigaFlag : OnceC {}
actor TrioRuneFlag : OnceC {}

actor TrioSpawnStart_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("Once")
TNT1 A 0 ACS_ExecuteAlways(981,0,0)
TNT1 A 0 ACS_NamedExecuteAlways("cbm_CopyWepAmmoSet",0,2,3)
TNT1 A 0 A_SpawnItemEX("TrioRageManager")
stop
}
}

actor TrioRageOnPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("SpreadRune_ST",1)
TNT1 A 0 A_GiveInventory("TrioRuneFlag",1)
TNT1 A 0 A_GiveInventory("TrioRageWeakness",1)
TNT1 A 0 A_GiveInventory("GuardDownFlag",1)
TNT1 A 0 A_SpawnItemEx("TrioRageFXBeginHelper",0,0,28,0,0,0,0,1)
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("cbm_CopyWepAmmoRatioGive",0,100)//DocRobot Ammo
stop
//TNT1 A 0 ACS_ExecuteAlways(992,0,0,1)//MTank Ammo
}
}


actor TrioRageOffPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("weapon/TrioCharge0","Weapon")
TNT1 A 0 A_TakeInventory("TrioRuneFlag",1)
TNT1 A 0 A_TakeInventory("TrioRageWeakness",1)
TNT1 A 0 A_TakeInventory("GuardDownFlag",1)
TNT1 A 0 A_JumpIfInventory("TrioExodiaFlag",1,"Pickup2")
goto Pickup1
Pickup1:
TNT1 A 0 A_TakeInventory("PowerSpread_ST",1)
stop
Pickup2:
TNT1 A 0
stop

}
}

actor TrioSpreadRuneRevert : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("TrioRuneFlag",1,"Pickup2")
stop
Pickup2:
TNT1 A 0 A_GiveInventory("SpreadRune_ST",1)
stop
}
}

actor TrioRageWeakness : BasePowerWeak
{
damagefactor "Normal", 1.5
}

actor TrioRageManager : BasicHelper
{
+NOTIMEFREEZE
States
{
Spawn:
TNT1 A 0
Spawn2:
TNT1 A 1
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("EvilFistBoss",1,1)
goto Death
TNT1 A 0 A_GiveToTarget("TrioRageItem",1)
goto Spawn2
Death:
TNT1 A 0
stop
}
}

actor TrioRageItem : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("TrioRageWeakness",1,"Pickup_Rage")
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 //A_JumpIfInventory("EnergyBalancerActive",1,2)
TNT1 A 0 A_GiveInventory("EvilRageAmmo",2)
goto End
TNT1 A 0 A_GiveInventory("EvilRageAmmo",3)
goto End
PickupR:
TNT1 A 0 //A_JumpIfInventory("EnergyBalancerActive",1,2)
TNT1 A 0 A_GiveInventory("EvilRageAmmo",4)
goto End
TNT1 A 0 A_GiveInventory("EvilRageAmmo",6)
goto End
Pickup_Rage:
TNT1 A 0 A_GiveInventory("TrioRageFX_Pickup",1)
TNT1 A 0 A_JumpIfInventory("TrioGigaFlag",1,"End")
TNT1 A 0 //A_JumpIfInventory("EnergyBalancerActive",1,3)
TNT1 A 0 A_TakeInventory("EvilRageAmmo",4)
TNT1 A 0 A_JumpIfInventory("EvilRageAmmo",1,"End")
goto Pickup_RageEnd
TNT1 A 0 A_TakeInventory("EvilRageAmmo",3)
TNT1 A 0 A_JumpIfInventory("EvilRageAmmo",1,"End")
goto Pickup_RageEnd
Pickup_RageEnd:
TNT1 A 0 A_GiveInventory("TrioRageOffPickup",1)
goto End

End:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_GigaWeaponCheck",0)
stop
}
}

actor TrioRageFX_Pickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("TrioRageFX",random(24,56),0,random(8,48),0,0,2,random(0,359),1)
stop
}
}

actor TrioRageFX : BasicClientSide
{
renderstyle translucent
alpha 0.8
Scale 1.5
States
{
Spawn:
EVFL XXXXYYYYYZZZZZ 1 A_FadeOut(0.06)
stop
}
}

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

actor TrioRageFXBegin : 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("TrioRageFX",10,0,30,5,0,9,user_A+15,37)
TNT1 A 0 A_SpawnItemEx("TrioRageFX",20,0,20,10,0,6,user_A+10,37)
TNT1 A 0 A_SpawnItemEx("TrioRageFX",30,0,10,15,0,3,user_A+5,37)
TNT1 A 0 A_SpawnItemEx("TrioRageFX",40,0,0,20,0,0,user_A,37)
TNT1 A 0 A_SpawnItemEx("TrioRageFX",30,0,-10,15,0,-3,user_A+5,37)
TNT1 A 0 A_SpawnItemEx("TrioRageFX",20,0,-20,10,0,-6,user_A+10,37)
TNT1 A 0 A_SpawnItemEx("TrioRageFX",10,0,-30,5,0,-9,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("TrioRageFX",0,0,40,0,0,12,0,37)
TNT1 A 0 A_SpawnItemEx("TrioRageFX",0,0,-40,0,0,-12,0,37)
stop
}
}
//weapon/TrioCharge0
actor Trio_BeamProtect : PowerProtection
{
Powerup.Duration 6
damagefactor "Trio_Beam", 0.0
}

actor TrioSpectrumWeaken : BasePowerDamage
{
Powerup.Duration 200
damagefactor "Normal", 0.75
}

actor Trio_Beam_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 
TNT1 A 0 A_JumpIfInventory("TrioSpectrumWeaken",1,2)
TNT1 A 0 A_SpawnItemEx("TrioSpectrumWeaken_H")
TNT1 A 0 A_GiveInventory("TrioSpectrumWeaken",1)
TNT1 A 0 A_GiveInventory("Trio_BeamProtect",1)
stop
}
}

actor TrioSpectrumWeaken_H : BasicHelper
{
States
{
Spawn:
TNT1 A 0 
TNT1 A 3 A_GiveToTarget("TrioSpectrumWeakenFX_P",1)
TNT1 A 0 A_JumpIfInTargetInventory("TrioSpectrumWeaken",1,"Spawn")
stop
}
}

actor TrioSpectrumWeakenFX_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("TrioSpectrumWeakenFX",random(24,64),0,Random(48,64),0,0,-1.5,random(0,359))//,1)
stop
}
}

actor TrioSpectrumWeakenFX
{
Translation "192:192=41:41", "198:198=249:249"
//+FLOATBOB
+NOGRAVITY
+THRUACTORS
+CLIENTSIDEONLY
+FORCEXYBILLBOARD
+MISSILE
RenderStyle "Translucent"
Alpha 0.6
ReactionTime 1//20
Damage(0)
Height 0
Radius 0
Scale 1.25
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Spawn2","Spawn3")
goto Spawn2
Spawn2:
ERO9 K 40
ERO9 K 2 A_CountDown
wait
Spawn3:
ERO9 L 40
ERO9 L 2 A_CountDown
wait
Death:
"----" "#" 1 A_JumpIfInventory("CutterFlag",1,"Death2")
stop
Death2:
"----" "#" 0 ThrustThingZ(0,4,1,1)
"----" "###" 2 A_FadeOut(0.15)
stop
}
}

actor FireTrioSpectrum1 : TeamColor_CI
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("EvilRageAmmo",4)
TNT1 A 0 A_PlaySoundEx("weapon/TrioCharge4","Weapon")
TNT1 A 0 ACS_ExecuteAlways(C_JAX_SPECTRUM_TURN,0,angle,pitch)
TNT1 A 0 A_JumpIf((ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle)*(ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle)<1 && (pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))*(pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))<1, "Pickup2")
TNT1 A 0 A_FireCustomMissile("TrioSpectrumDamager",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
Goto Super::Pickup
FireX:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumS",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumSB",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumSR",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumSO",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumSP",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
goto Done

Pickup2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumDamager",0,0,0,0)
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"FireB2")
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"FireR2")
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"FireO2")
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"FireP2")
TNT1 A 0 A_JumpIfInventory("IsInGame",1,"FireX2")
goto Done
FireX2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumS",0,0,0,0,0,0)
goto Done
FireB2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumSB",0,0,0,0,0,0)
goto Done
FireR2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumSR",0,0,0,0,0,0)
goto Done
FireO2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumSO",0,0,0,0,0,0)
goto Done
FireP2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumSP",0,0,0,0,0,0)
goto Done
}
}

actor FireTrioSpectrum2 : TeamColor_CI
{
states
{
Pickup:
TNT1 A 0 A_TakeInventory("EvilRageAmmo",4)
TNT1 A 0 A_PlaySoundEx("weapon/TrioCharge4","Weapon")
TNT1 A 0 ACS_ExecuteAlways(C_JAX_SPECTRUM_TURN,0,angle,pitch)
TNT1 A 0 A_JumpIf((ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle)*(ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle)<1 && (pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))*(pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))<1, "Pickup2")
TNT1 A 0 A_FireCustomMissile("TrioSpectrumDamager",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
Goto Super::Pickup
FireX:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2S",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SB",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SR",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SO",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SP",ACS_ExecuteWithResult(C_GET_USER_VAR,WEPANGLE_NUM,1)-angle,0,0,0,0,pitch-ACS_ExecuteWithResult(C_GET_USER_VAR,WEPPITCH_NUM,1))
goto Done

Pickup2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrumDamager",0,0,0,0)
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"FireB2")
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"FireR2")
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"FireO2")
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"FireP2")
TNT1 A 0 A_JumpIfInventory("IsInGame",1,"FireX2")
goto Done
FireX2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2S",0,0,0,0,0,0)
goto Done
FireB2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SB",0,0,0,0,0,0)
goto Done
FireR2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SR",0,0,0,0,0,0)
goto Done
FireO2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SO",0,0,0,0,0,0)
goto Done
FireP2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SP",0,0,0,0,0,0)
goto Done
}
}

actor TrioSpectrum
{
Translation "192:192=41:41","198:198=249:249"
PROJECTILE
Obituary "$OB_EVILBEAM"
DamageType "Trio_Beam"
+THRUACTORS
+DONTBLAST
+DONTREFLECT
+CLIENTSIDEONLY
//+FORCEYBILLBOARD
+PAINLESS
damage (0)
Radius 11
Height 11
speed 30
scale 2.5
states
{
Spawn:
TNT1 A 0
ERO9 A 0 A_SetPitch(pitch+1)
ERO9 A 0 A_JumpIf(pitch>TRIO_LASERRANGE,"Death")
ERO9 A 0 A_SpawnItemEx("TrioSpectrum",0,0,0,momx,momy,momz,0,553)
ERO9 A 1 A_JumpIf(CallACS("cbm_IsPointerClient",2)==1,"Spawn2")//A_Stop
stop
Spawn2:
TNT1 A 0 //A_SetScale(1.5)
ERO9 A 1 A_SetTranslucent(0.20+pitch*0.01)
stop
Death:
TNT1 A 0 A_SpawnItemEx("TrioSpectrumDeathFX",0,0,0,0,0,0,0,33)
stop
}
}


actor TrioSpectrumDeathFX : BasicClientSide
{
States
{
Spawn:
ERO9 C 0
ERO9 C 1
stop
}
}
actor TrioSpectrumDeathFX2 : BasicClientSide
{
States
{
Spawn:
ERO9 D 0
ERO9 D 1
stop
}
}

actor TrioSpectrumS : TrioSpectrum
{
+INVISIBLE
-CLIENTSIDEONLY
+NONETID
}
actor TrioSpectrumSB : TrioSpectrumS{translation "192:192=205:205","198:198=74:74"}
actor TrioSpectrumSR : TrioSpectrumS{translation "192:192=171:171","198:198=41:41"}
actor TrioSpectrumSO : TrioSpectrumS{translation "192:192=104:104","198:198=128:128"}
actor TrioSpectrumSP : TrioSpectrumS{translation "192:192=229:229","198:198=232:232"}

actor TrioSpectrum2 : TrioSpectrum
{
states
{
Spawn:
TNT1 A 0 
ERO9 B 0 A_SetPitch(pitch+1)
ERO9 B 0 A_JumpIf(pitch>TRIO_LASERRANGE,"Death")
ERO9 B 0 A_SpawnItemEx("TrioSpectrum2",0,0,0,momx,momy,momz,0,553)
ERO9 B 1 A_JumpIf(CallACS("cbm_IsPointerClient",2)==1,"Spawn2")//A_Stop
stop
Spawn2:
TNT1 A 0 //A_SetScale(1.5)
ERO9 B 1 A_SetTranslucent(0.20+pitch*0.01)
stop
Death:
TNT1 A 0 A_SpawnItemEx("TrioSpectrumDeathFX2",0,0,0,0,0,0,0,33)
stop
}
}

actor TrioSpectrum2S : TrioSpectrum2
{
+INVISIBLE
-CLIENTSIDEONLY
+NONETID
}
actor TrioSpectrum2SB : TrioSpectrum2S{translation "192:192=205:205","198:198=74:74"}
actor TrioSpectrum2SR : TrioSpectrum2S{translation "192:192=171:171","198:198=41:41"}
actor TrioSpectrum2SO : TrioSpectrum2S{translation "192:192=104:104","198:198=128:128"}
actor TrioSpectrum2SP : TrioSpectrum2S{translation "192:192=229:229","198:198=232:232"}

actor TrioSpectrumDamager
{
PROJECTILE
Obituary "$OB_EVILBEAM"
DamageType "Trio_Beam"
+THRUACTORS
+THRUGHOST
+DONTBLAST
+DONTREFLECT
+SERVERSIDEONLY//+NONETID
renderstyle none
damage (0)
Radius 11
Height 11
speed 30
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetPitch(pitch+1)
TNT1 A 0 A_JumpIf(pitch>TRIO_LASERRANGE,"Death")
TNT1 A 0 A_SpawnItemEx("TrioSpectrumDamager",0,0,0,momx,momy,momz,0,552)
TNT1 A 0 //A_Stop
TNT1 A 1 A_Explode(66,28,0,0,28)//90
stop
Death:
TNT1 A 1
stop
}
}


actor MidFistEvil
{
//Translation "192:192=176:176", "198:198=79:79"
Translation "192:192=41:41", "198:198=249:249"
PROJECTILE
damagetype "Trio_Shot2"
Obituary "$OB_EVILFIST"
+SKYEXPLODE
+EXPLODEONWATER
Damage (300)//350
Radius 16
Height 16//10
Speed 26
Scale 2.5

States
{
Spawn:
EVFL CD 1
Loop
Death:
EVFL F 0 
EVFL F 0 A_Recoil(5)
EVFL CD 1 A_FadeOut
Goto Death+2
}
}

actor MidFistEvilB : MidFistEvil{translation "192:192=205:205","198:198=74:74"}
actor MidFistEvilR : MidFistEvil{translation "192:192=171:171","198:198=41:41"}
actor MidFistEvilO : MidFistEvil{translation "192:192=104:104","198:198=128:128"}
actor MidFistEvilP : MidFistEvil{translation "192:192=229:229","198:198=232:232"}

actor GigaFistEvil
{
//Translation "192:192=176:176", "198:198=79:79"
Translation "192:192=41:41", "198:198=249:249"
PROJECTILE
damagetype "Trio_Shot3"
Obituary "$OB_EVILFIST"
+SKYEXPLODE
+EXPLODEONWATER
RenderStyle "Translucent"
Alpha 0.98
Damage (550)
Radius 24
Height 20
Speed 26
scale 2.5
States
{
Spawn:
EVFL F 2
EVFL F 1 A_SpawnItemEx("GigaFistEvilFX",64,0,0,momx/7,momy/7,momz/7,0,9)
EVFL G 2
loop
Death:
EVFL F 0 
EVFL F 0 A_Recoil(5)
EVFL F 1 A_FadeOut
Goto Death+2
}
}

actor GigaFistEvilB : GigaFistEvil{translation "192:192=205:205","198:198=74:74"}
actor GigaFistEvilR : GigaFistEvil{translation "192:192=171:171","198:198=41:41"}
actor GigaFistEvilO : GigaFistEvil{translation "192:192=104:104","198:198=128:128"}
actor GigaFistEvilP : GigaFistEvil{translation "192:192=229:229","198:198=232:232"}

Actor GigaFistEvilFX : BasicClientSide
{
States
{
Spawn:
TNT1 A 1
EVFL H 3
EVFL I 5
EVFL I 1 A_FadeOut(0.5)
wait
}
}

actor EvilMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("MidFistEvil",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("MidFistEvilB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("MidFistEvilR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("MidFistEvilO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("MidFistEvilP",0,0,8,0)
goto Done
}
}

actor EvilMain3_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("GigaFistEvil",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("GigaFistEvilB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("GigaFistEvilR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("GigaFistEvilO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("GigaFistEvilP",0,0,8,0)
goto Done
}
}






actor EvilTrioSparkle : BasicClientSide
{
Translation "198:198=4:4","192:192=4:4"
Renderstyle "Translucent"
Alpha 0.95
ReactionTime 10
States
{
Spawn:
X_2F A 0
X_2F A 0 A_Jump(256,1,2,3,4,5,6)
X_2F ABC 2 bright A_CountDown
goto Spawn+2
X_2F DEF 2 bright A_CountDown
goto Spawn+5
}
}

//Quote from EvilRobot actor in older core file.
////
// If you use ALL the following crap in your classes mod you are bad and you should feel bad
////
//This above was meant as humor for dudes who used it day 1 the core boss existed.

////
////////
//TornadoHold
////////
////
actor TrioTornadoHelper : BasicHelper
{
ReactionTime 28
States
{
Spawn:
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
TNT1 A 1 A_GiveToTarget("TrioTornadoThrust",1)
loop
}
}

actor TrioTornadoThrust : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("FlightDisableFlag",1,2)
TNT1 A 0 ThrustThingZ(0,40,0,0)
TNT1 A 0
stop
}
}

actor PowerTrioTornadoSpeed : PowerSpeed
{
Speed 1.75
Powerup.Duration 100
}


actor TrioTornado
{
Translation "250:250=34:34", "194:194=39:39"
PROJECTILE
Obituary "$OB_GIGA_TORNADOHOLD"
damagetype "TrioTornadoHold"
+FLOORHUGGER
+RIPPER
+THRUGHOST
+NOCLIP
+DONTSPLASH
renderstyle Translucent
damage (0)
Radius 10
Height 10
Speed 20
Alpha 0.7
reactiontime 16
scale 2.5
States
{
Spawn:
EVFL N 0 A_CountDown
EVFL NOP 2 A_SpawnItemEx("TrioTornadoDamager",0,0,0,0,0,0,0)
EVFL N 0 A_PlaySoundEx("weapon/superboost","Weapon")
loop
}
}

actor TrioTornadoDamager
{
PROJECTILE
Obituary "$OB_GIGA_TORNADOHOLD"
damagetype "TrioTornadoHold"
+RIPPER
+DONTSPLASH
+DONTBLAST
+THRUGHOST
Damage (50)
Radius 65
Height 1350
Speed 0
States
{
Spawn:
TNT1 A 2
stop
}
}

////
////////
//AstroCrush
////////
////
actor TrioAstroCrush : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("TrioMeteor",2,0,0,17,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("TrioMeteor",2,0,0,17,random(-2,20),random(-4,12),0,1)
TNT1 A 0 A_SpawnItemEx("TrioMeteor",2,0,0,17,random(-20,2),random(-4,12),0,1)
TNT1 A 0 A_SpawnItemEx("TrioMeteor",2,0,0,17,random(10,40),random(-10,24),0,1)
TNT1 A 0 A_SpawnItemEx("TrioMeteor",2,0,0,17,random(-40,-10),random(-10,24),0,1)
TNT1 A 0 A_SpawnItemEx("TrioMeteor",2,0,0,17,random(-64,-20),random(-16,32),0,1)
TNT1 A 0 A_SpawnItemEx("TrioMeteor",2,0,0,17,random(-32,32),random(-16,32),0,1)
TNT1 A 0 A_SpawnItemEx("TrioMeteor",2,0,0,17,random(20,64),random(-16,32),0,1)
stop
}
}

actor TrioMeteor
{
var int user_A;
PROJECTILE
Obituary "$OB_GIGA_ASTROCRUSH"
Damagetype "TrioAstroCrush"
+THRUGHOST
+NOEXPLODEFLOOR
+HEXENBOUNCE
+BRIGHT
renderstyle translucent
alpha 0.1
Damage (40)
Radius 52//260
Height 60//300
Speed 35
Scale 2.0//4.0
States
{
Spawn:
EVFL Q 0
EVFL Q 0 ACS_ExecuteAlways(259,0,0)//Change pitch to player pitch
EVFL Q 0 A_SetUserVar("user_A",ACS_ExecuteWithResult(259,4)*360/256)//Record player angle
goto Spawn2
Spawn2:
EVFL Q 0 A_JumpIfInventory("CutterFlag",8,"Spawn3")
EVFL QQ 0 A_SpawnItemEx("EvilTrioSparkle",random(-16,16),random(-16,16),random(-16,16),0,0,0,0,1)
EVFL Q 1 A_Recoil(2.5)
EVFL Q 0 A_GiveInventory("CutterFlag",1)
loop
Spawn3:
EVFL Q 0 A_Stop
EVFL Q 0 A_GiveInventory("ResyncPickup",1)
goto Spawn4
Spawn4:
EVFL Q 0 A_JumpIfInventory("CutterFlag",18,"SpawnEnd")
EVFL QQQ 0 A_SpawnItemEx("EvilTrioSparkle",random(-32,32),random(-32,32),random(8,56),0,0,0,0,1)
EVFL Q 1
EVFL QQQ 0 A_SpawnItemEx("EvilTrioSparkle",random(-32,32),random(-32,32),random(8,56),0,0,0,0,1)
EVFL Q 1
EVFL QQQ 0 A_SpawnItemEx("EvilTrioSparkle",random(-32,32),random(-32,32),random(8,56),0,0,0,0,1)
EVFL Q 1
EVFL QQQ 0 A_SpawnItemEx("EvilTrioSparkle",random(-32,32),random(-32,32),random(8,56),0,0,0,0,1)
EVFL Q 1
EVFL QQQ 0 A_SpawnItemEx("EvilTrioSparkle",random(-32,32),random(-32,32),random(8,56),0,0,0,0,1)
EVFL Q 0 A_FadeIn(0.1)
EVFL Q 1 A_GiveInventory("CutterFlag",1)
loop
SpawnEnd:
EVFL Q 0 A_SpawnItemEx("TrioMeteor2",0,0,0,cos(-pitch)*35,0,sin(-pitch)*35,user_A,5)
stop
Death:
TNT1 A 0
TNT1 A 1 A_JumpIfInventory("CutterFlag",8,"Death2")
stop
Death2:
TNT1 A 0 A_playSoundEx("wep_L/AstroACrush","Weapon")//weapon/astrocrush
TNT1 A 0 A_Explode(240,196,0,0,53)
TNT1 AAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("TrioMeteorExplodeFX",random(-72,72),random(-72,72),random(-72,72),0,0,0,0,1)
stop
}
}

actor TrioMeteor2 : TrioMeteor
{
-HEXENBOUNCE
-NOEXPLODEFLOOR
alpha 1.0
Damage (5)
Speed 35
Scale 2.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 //A_PlaySoundEx("weapon/pharaoh2","Item")
SpawnLoop:
EVFL Q 4 A_SpawnItemEx("TrioMeteorFX",0,0,0,0,0,0,0,1)
loop
Death:
TNT1 A 0
goto Death2
}
}

actor TrioMeteorExplodeFX : BasicClientSide
{
+FORCEXYBILLBOARD
+BRIGHT
scale 2.0
States
{
Spawn:
X_8B A 0
X_8B ABCDEF 2
stop
}
}

actor TrioMeteorFX : BasicClientSide
{
+BRIGHT
alpha 0.3
renderstyle translucent
Scale 2.0//4.0
States
{
Spawn:
EVFL Q 0
EVFL Q 2 A_FadeOut(0.02)
wait
}
}

////
////////
//FlameSword
////////
////
actor TrioFlameSwing1
{
+MISSILE
speed 1
+NOGRAVITY
+NOINTERACTION
states
{
Spawn:
TNT1 A 0

TNT1 A 1 A_SpawnItemEx("TrioFlameTip",3,315,240,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlameTip",3,280,220,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,245,200,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,210,180,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,175,160,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,140,140,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,105,120,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,70,100,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,35,80,momx*38,momy*38,momz*38,0,9)

TNT1 A 0 A_SpawnItemEx("TrioFlame",3,0,60,momx*38,momy*38,momz*38,0,9)//Middle

TNT1 A 1 A_SpawnItemEx("TrioFlame",3,-35,40,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,-70,20,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,-105,0,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,-140,-20,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,-175,-40,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,-210,-60,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,-245,-80,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlameTip",3,-280,-100,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlameTip",3,-315,-120,momx*38,momy*38,momz*38,0,9)

stop
}
}

actor TrioFlameSwing2
{
+MISSILE
speed 1
+NOGRAVITY
+NOINTERACTION
states
{
Spawn:
TNT1 A 0

TNT1 A 1 A_SpawnItemEx("TrioFlameTip",3,-315,120,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlameTip",3,-280,240,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,-245,200,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,-210,180,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,-175,160,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,-140,140,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,-105,120,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,-70,100,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,-35,80,momx*38,momy*38,momz*38,0,9)

TNT1 A 0 A_SpawnItemEx("TrioFlame",3,0,60,momx*38,momy*38,momz*38,0,9)//Middle

TNT1 A 1 A_SpawnItemEx("TrioFlame",3,35,40,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,70,20,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,105,0,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,140,-20,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,175,-40,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlame",3,210,-60,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlame",3,245,-80,momx*38,momy*38,momz*38,0,9)
TNT1 A 0 A_SpawnItemEx("TrioFlameTip",3,280,-100,momx*38,momy*38,momz*38,0,9)
TNT1 A 1 A_SpawnItemEx("TrioFlameTip",3,315,-120,momx*38,momy*38,momz*38,0,9)

stop
}
}


actor TrioFlame
{
PROJECTILE
Obituary "$OB_GIGA_FLAMESWORD"
Damagetype "TrioFlameSword"
+NOCLIP
+NOINTERACTION
+THRUGHOST
+BRIGHT
Damage (0)//30
Height 2//32
Radius 2//40
reactiontime 2//6
Scale 3.5
states
{
Spawn:
FWVE M 0 A_CountDown
FWVE M 0 A_Explode(50,80,0,0,80)
FWVE M 0 A_SpawnItemEx("TrioFlameFX",0,0,40,-6,0,5,0,1)
FWVE M 0 A_SpawnItemEx("TrioFlameFX",0,0,-40,-6,0,-5,0,1)
FWVE MMM 1 A_Explode(50,80,0,0,80)
FWVE N 0 A_SpawnItemEx("TrioFlameFX",0,0,40,-6,0,5,0,1)
FWVE N 0 A_SpawnItemEx("TrioFlameFX",0,0,-40,-6,0,-5,0,1)
FWVE NNN 1 A_Explode(50,80,0,0,80)
FWVE O 0 A_SpawnItemEx("TrioFlameFX",0,0,40,-6,0,5,0,1)
FWVE O 0 A_SpawnItemEx("TrioFlameFX",0,0,-40,-6,0,-5,0,1)
FWVE OOO 1 A_Explode(50,80,0,0,80)
loop
}
}

actor TrioFlameTip : TrioFlame
{
renderstyle none
}

actor TrioFlameFX : BasicClientSide
{
+BRIGHT
Scale 4.0
States
{
Spawn:
X_8C E 0
X_8C E 1
Death:
X_8C EFG 4
stop
}
}

actor TrioFlameSwordProtect : PowerProtection
{
Powerup.Duration 3
DamageFactor "TrioFlameSword", 0.0//0.375
}

////
////////
//ThunderClaw
////////
////
actor TrioThunderClawHelper : BasicHelper
{
translation "204:204=204:204", "195:195=195:195"
var int user_TID;
var int user_A1;
ReactionTime 45
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("user_TID",ACS_ExecuteWithResult(257,0))
TNT1 A 0 A_SetUserVar("user_A1",90)
goto SpawnFire
SpawnFire:
TNT1 A 0 Thing_Move(0,user_TID,1)
TNT1 A 0 A_SpawnItemEx("TrioThunderClawBit",8,0,10,80,0,0,user_A1,33,0)
TNT1 A 0 A_SpawnItemEx("TrioThunderClawBit",-8,0,10,-80,0,0,user_A1,33,0)
TNT1 A 0 A_CountDown
TNT1 A 0 A_SetUserVar("user_A1",user_A1+8)
TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
loop
}
}

actor TrioThunderClawBit
{
var int user_D;
PROJECTILE
+THRUGHOST
+FORCEXYBILLBOARD
+BRIGHT
damagetype "TrioThunderClaw"
Obituary "$OB_GIGA_THUNDERCLAW"
Damage (40+user_D*10)
Radius 32//40
Height 46//55

Speed 80
Scale 3.0//4.0
States
{
Spawn:
TNT1 A 1
WISS KLMNOJKLMNOJKLMNO 1 A_SetUserVar("user_D",user_D+1)
WISS JKLMNO 1
stop
XDeath:
TNT1 A 1
stop
Death:
TNT1 A 1 A_Explode(user_D*10+10,64+user_D*2,0,0,32+user_D*1.25)
stop
}
}

////
////////
//HomingSniper
////////
////

actor TrioSniper : FastProjectile
{
PROJECTILE
damagetype "TrioHomingSniperShock"
Obituary "$OB_GIGA_HOMINGSNIPER"

//+SEEKERMISSILE
+SKYEXPLODE
+EXPLODEONWATER
+THRUGHOST
+DONTREFLECT
+DONTBLAST

ReactionTime 1
damage (60)
height 12
Radius 12
Speed 500
MissileHeight 8
//MissileType "TrioSniperFX"
scale 4.0
States
{
Spawn:
Homing:
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_PlaySoundEx("misc/BombCount","Weapon")
EVFL RRRRSSSSTTTT 1 A_SpawnItemEx("EvilTrioSparkle",0,0,0,0,0,0,0,1)
EVFL RRRRSSSSTTTT 1 A_SpawnItemEx("EvilTrioSparkle",0,0,0,0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",2,"Homing2")
loop
Homing2:
TNT1 A 0 A_JumpIfInventory("CutterFlag",8,"Homing3")
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_PlaySoundEx("misc/BombCount","Weapon")
EVFL RRRRSS 1 A_SpawnItemEx("EvilTrioSparkle",0,0,0,0,0,0,0,1)
TNT1 A 0 A_PlaySoundEx("misc/BombCount","Weapon")
EVFL SSTTTT 1 A_SpawnItemEx("EvilTrioSparkle",0,0,0,0,0,0,0,1)
loop
Homing3:
EVFL SSTTT 1 A_CountDown
loop
Death:
TNT1 A 0 A_JumpIfInventory("CutterFlag",18,"Locked")
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_PlaySoundEx("misc/BombCount","Weapon")
EVFL RST 1 //A_MStaffTrack
loop
Locked:
EVFL T 0 A_Stop
EVFL T 0 A_GiveToTarget("CutterFlag",1)

EVFL T 0 Thing_Remove(ACS_ExecuteWithResult(257,0)+7000)
EVFL T 0 Thing_ChangeTID(0,ACS_ExecuteWithResult(257,0)+7000)

EVFL T 100
stop
}
}

actor TrioSniperFX : BasicClientSide
{
States
{
Spawn:
TNT1 A 0
TNT1 AAAA 0 A_SpawnItemEx("EvilTrioSparkle",random(-16,16),random(-16,16),random(-16,16),0,0,0,0,1)
stop
}
}

actor TrioMissiles
{
damagetype "TrioHomingSniper"
Obituary "$OB_GIGA_HOMINGSNIPER"
+MISSILE
+NOINTERACTION
+NOEXPLODEFLOOR
+NOGRAVITY
-SOLID
scale 2.0
States
{
Spawn:
TNT1 A 0
TNT1 A 1 ACS_ExecuteAlways(989,0,ACS_ExecuteWithResult(257)+7000,8)
TNT1 A 1 A_PlaySoundEx("weapon/TrioMagnet","Weapon")
TNT1 A 0 A_SpawnItemEx("TrioMissile",cos(-pitch)*8,0,8+(sin(-pitch)*8),cos(-pitch)*132,0,sin(-pitch)*132,0,1,0)//random(-4,4)
TMFX ABCD 2 bright
stop
}
}

actor TrioMissile
{
PROJECTILE
damagetype "TrioHomingSniper"
Obituary "$OB_GIGA_HOMINGSNIPER"
+THRUGHOST
Damage (80)
Radius 40
Height 40
Speed 264
scale 3.5
States
{
Spawn:
X_8E BC 2
loop
Death:
TMFX ABCD 2 bright
stop
}
}

////
////////
//IceWave
////////
////
actor TrioIceWave
{
PROJECTILE
Damagetype "TrioIceWave"
Obituary "$OB_GIGA_ICEWAVE"
-NOGRAVITY
+DONTREFLECT
+SKYEXPLODE
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
+DONTSPLASH
+THRUGHOST
+THRUACTORS
Gravity 0.75
BounceFactor 0.95
WallBounceFactor 0.99
BounceCount 40
Renderstyle Translucent
alpha 0.5
Reactiontime 20
Radius 16
Height 16
damage (0)
speed 16
scale 1.0
States
{
Spawn:
EVFL K 1 A_GiveInventory("WeaponCharge",1)
EVFL KKKKK 0 A_SpawnItemEx("TrioIceWaveFX",random(-48,48),random(-48,48),random(2,48),0,0,0,0,1)
EVFL K 0 A_JumpIfInventory("WeaponCharge",8,1)
loop
EVFL K 0 A_PlaySoundEx("weapon/icewavespawn","Weapon")
EVFL K 0 A_SpawnItemEx("TrioIceWavePart",0,0,0,0,0,0,0,1)
EVFL K 0 A_CountDown
EVFL K 0 A_TakeInventory("WeaponCharge",99)
//+SEEKERMISSILE
//A_Tracer2
loop
Death:
TNT1 A 1
stop
}
}
//TrioIceWave2
//reactiontime 40

actor TrioIceWaveFX
{
+CLIENTSIDEONLY
+MISSILE
+DONTSPLASH
+NOINTERACTION
Gravity 0.2
Damage (0)
height 0
radius 0
scale 3.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2")
Spawn1:
MRFP M 4
MRFP N 15
MRFP N 1 A_Fadeout
wait
Spawn2:
MRFP K 4
MRFP L 15
MRFP L 1 A_Fadeout
wait
}
}

actor TrioIceWavePart
{
PROJECTILE
Damagetype "TrioIceWave"
Obituary "$OB_GIGA_ICEWAVE"
+SHOOTABLE
+THRUGHOST
+GHOST
-NOBLOCKMAP
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
BounceFactor 0.95
WallBounceFactor 0.95
BounceCount 20
//+SOLID
mass 9999999
health 1
Renderstyle Translucent
alpha 0.5
ReactionTime 1
Damage (150)
Radius 64
Height 64
Speed 0
scale 1.25//2.5
States
{
Spawn:
EVFL K 0
EVFL KKKKKKKKKK 0 A_SpawnItemEx("TrioIceWaveFX",random(-48,48),random(-48,48),random(2,48),3,0,random(1,3),random(0,359),1)
EVFL KL 5
EVFL M 0 A_SetArg(3,40)
Spawn2:
EVFL M 0 A_Stop
EVFL MM 10 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death2")
EVFL M 0 A_CountdownArg(3)
loop
//goto Death2
Death2:
EVFL M 1 A_CountDown
wait
Death:
TNT1 A 0
TNT1 A 0 A_PlaySound("weapon/centaurflash")
TNT1 AAAAAA 0 A_SpawnItemEx("TrioIceWaveShards",random(-64,64),random(-64,64),random(5,60),random(-3,3),random(-3,3),random(-3,3),random(0,360),1)
TNT1 A 2
stop
}
}

actor TrioIceWaveCharging : BasicExplosion
{
scale 2.5
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D NN 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D MM 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D LL 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D KK 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D JJ 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D II 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D HH 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D GG 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D FF 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D EE 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D DD 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D CC 1 A_Warp(2,0,0,28,0,24)
TNT1 A 0 A_JumpIfInTargetInventory("PowerRage_ST",1,2)
X_1D BB 1 A_Warp(2,0,0,28,0,24)
stop
}
}

actor TrioIceWaveShards
{
-SOLID
+NOGRAVITY
+MISSILE
+THRUACTORS
+THRUGHOST
+CLIENTSIDEONLY
Renderstyle Translucent
alpha 0.5
Damage (0)
Radius 10
Height 10
Speed 2
Scale 3.0//4.5
States
{
Spawn:
X_8F FGH 20//30
stop
}
}

////
////////
//FlashBomb
////////
////

actor TrioFlashBomb
{
PROJECTILE
Obituary "$OB_GIGA_FLASHBOMB"
Damagetype "TrioFlashBomb2"
+THRUGHOST
+FORCEXYBILLBOARD
reactiontime 10
damage (40)
radius 12
height 10
Speed 40
scale 2.5
States
{
Spawn:
X_8G WXYZ 3 A_CountDown
loop
Death:
Y_8G A 0 A_Stop
Y_8G A 0 A_PlaySoundEx("weapon/flashbomb","Weapon")
Y_8G A 1 bright A_SpawnItemEx("TrioFlashBombExplosion",0,0,0,0,0,0,0,1)
stop
}
}

actor TrioFlashBombExplosion : TrioFlashBomb
{
var int user_Flash;
damagetype "TrioFlashBomb"
+NOCLIP
+DONTBLAST
+DONTSPLASH
+BRIGHT
Reactiontime 12//5
Scale 3.5
States
{
Spawn:
Y_8G A 0
Y_8G A 0 A_SetUserVar("user_Flash",200)
Y_8G AB 1 
Y_8G CD 1
Y_8G A 0 A_Explode(230,80,0,0,16)
Y_8G EE 0 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(-40, 40), Random(-32, 32),0,0,0,0,1)
Y_8G EF 1 A_SpawnItemEx("FlashBombFX1_B",0,0,0,random(-7, 7),random(-7, 7),random(-7, 7),random(0,360),1)
Y_8G EE 0 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(-40, 40), Random(-32, 32),0,0,0,0,1)
Y_8G GF 1 A_SpawnItemEx("FlashBombFX1_B",0,0,0,random(-7, 7),random(-7, 7),random(-7, 7),random(0,360),1)
Y_8G A 0 A_Explode(220,80,0,0,16)
Goto Pattern1
Pattern1:
Y_8G EF 1 A_SpawnItemEx("FlashBombFX1_B",0,0,0,random(-7, 7),random(-7, 7),random(-7, 7),random(0,360),1)
Y_8G E 0 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(-16, -40), Random(-32, 32),0,0,0,0,1)
Y_8G GF 1 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(16, 40), Random(-32, 32),0,0,0,0,1)
Y_8G G 0 A_SpawnItemEx("FlashBombFX1_B",0,0,0,random(-7, 7),random(-7, 7),random(-7, 7),random(0,360),1)
Goto DamageNow
Pattern2:
Y_8G EF 1 A_SpawnItemEx("FlashBombFX1_B",0,0,0,random(-7, 7),random(-7, 7),random(-7, 7),random(0,360),1)
Y_8G E 0 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(32, 64), Random(-32, 40),0,0,0,0,1)
Y_8G E 0 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(-32, -64), Random(-32, 40),0,0,0,0,1)
Y_8G EF 1 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(-40, 40), Random(-32, 32),0,0,0,0,1)
Y_8G G 0 A_SpawnItemEx("FlashBombFX1_B",0,0,0,random(-7, 7),random(-7, 7),random(-7, 7),random(0,360),1)
Goto DamageNow
DamageNow:
Y_8G A 0 A_Explode(user_Flash,80,0,0,8)
Goto Continue
Continue:
Y_8G A 0 A_CountDown
Y_8G A 0 A_SetUserVar("user_Flash",user_Flash-10)
Y_8G A 0 A_Jump(256,"Pattern1","Pattern2")
Goto Death
Death:
Y_8G A 0 A_Changeflag("NOGRAVITY",1)
Y_8G G 1
TNT1 A 1
Y_8G D 1
TNT1 A 1
Y_8G D 1
TNT1 A 1
Y_8G N 1
stop
}
}

actor TrioFlashBombProtect : PowerProtection
{
Powerup.Duration 15
DamageFactor "TrioFlashBomb", 0.25//0.125
}
////
////////
//WaterBalloon
////////
////
actor TrioBalloon
{
PROJECTILE
Obituary "$OB_GIGA_WATERBALLOON"
damagetype "TrioWaterBalloon"
+THRUGHOST
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
//+ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
WALLBOUNCEFACTOR 1.0
BOUNCEFACTOR 1.0
BounceCount 10
renderstyle Translucent
Alpha 0.2
reactiontime 6
Damage (250)
Height 56
Radius 56
Speed 30
Scale 2.0//2.5
States
{
Spawn:
EVFL U 0
EVFL U 4 A_FadeIn(0.1)
EVFL VW 4 A_FadeIn(0.1)
EVFL U 4 A_FadeIn(0.1)
EVFL VW 4 A_FadeIn(0.1)
EVFL U 4 A_FadeIn(0.1)
Goto Spawn2
Spawn2:
EVFL U 0 A_ScaleVelocity(0.85)
EVFL U 4 A_Countdown
EVFL VW 4
loop
Death:
TNT1 AA 0 A_SpawnItemEx("TrioBalloon2",0,0,0,random(-8,8),0,random(-7,7),random(0,359),1)
TNT1 A 0 A_SpawnItemEx("TrioBalloon2",0,0,0,random(5,14),0,random(-7,7),random(-10,10),1)
TNT1 A 0 A_SpawnItemEx("TrioBalloon2",0,0,0,random(5,14),0,random(-7,7),random(80,100),1)
TNT1 A 0 A_SpawnItemEx("TrioBalloon2",0,0,0,random(5,14),0,random(-7,7),random(170,190),1)
TNT1 A 0 A_SpawnItemEx("TrioBalloon2",0,0,0,random(5,14),0,random(-7,7),random(260,280),1)
XDeath:
TNT1 A 0 A_PlaySoundEx("misc/splash","Weapon")
TNT1 AAAAAA 1 A_SpawnItemEx("TrioSplash",random(-96,96),random(-96,96),random(-96,96),0,0,0,0,1)
stop
}
}

actor TrioBalloon2 : TrioBalloon
{
-NOGRAVITY
Gravity 0.50
BounceCount 15
Alpha 0.8
reactiontime 1
Damage (120)//150
Radius 32
Height 32
Speed 35
Scale 1.25
States
{
Spawn:
EVFL U 4 A_FadeIn(0.1)
EVFL VW 4 A_FadeIn(0.1)
EVFL U 0 A_GiveInventory("CutterFlag",random(1,7))
Goto Spawn2
Spawn2:
EVFL U 4 A_JumpIfInventory("CutterFlag",12,"SpawnEnd")
EVFL VW 4
EVFL U 0 A_GiveInventory("CutterFlag",1)
loop
SpawnEnd:
EVFL U 1 A_Countdown
loop
Death:
TNT1 AA 0 A_SpawnItemEx("TrioBalloon3",0,0,0,random(-8,8),0,random(-4,7),random(0,359),1)
TNT1 A 0 A_SpawnItemEx("TrioBalloon3",0,0,0,random(4,10),0,random(1,9),0,1)
TNT1 A 0 A_SpawnItemEx("TrioBalloon3",0,0,0,random(4,10),0,random(-5,5),30,1)
TNT1 A 0 A_SpawnItemEx("TrioBalloon3",0,0,0,random(4,10),0,random(-5,5),-30,1)
TNT1 A 0 A_SpawnItemEx("TrioBalloon3",0,0,0,random(4,10),0,random(-1,-9),0,1)
XDeath:
TNT1 A 0 A_PlaySoundEx("weapon/TrioSplash","Weapon")
TNT1 AAAA 1 A_SpawnItemEx("TrioSplash2",random(-64,64),random(-64,64),random(-64,64),0,0,0,0,1)
stop
}
}

actor TrioBalloon3 : TrioBalloon2
{
Gravity 0.35
BounceCount 20
reactiontime 1
Damage (80)
Radius 16
Height 16
Speed 40
Scale 0.75
States
{
Spawn:
EVFL U 4 A_FadeIn(0.1)
EVFL VW 4 A_FadeIn(0.1)
EVFL U 0 A_GiveInventory("CutterFlag",random(1,7))
Goto Spawn2
Spawn2:
EVFL U 4 A_JumpIfInventory("CutterFlag",13,"SpawnEnd")
EVFL VW 4
EVFL U 0 A_GiveInventory("CutterFlag",1)
loop
SpawnEnd:
EVFL U 1 A_Countdown
loop
XDeath:
Death:
TNT1 A 0 A_PlaySoundEx("weapon/TrioSplash","Weapon")
TNT1 A 1 A_SpawnItemEx("TrioSplash3",0,0,0,0,0,0,0,1)
stop
}
}

actor TrioSplash : BasicClientSide
{
Scale 2.5
states
{
Spawn:
WTRB KLMN 2
stop
}
}

actor TrioSplash2 : TrioSplash
{
Scale 2.0
}

actor TrioSplash3 : TrioSplash
{
Scale 1.5
}

