
////
// If you use ALL the following crap in your classes mod you are bad and you should feel bad
////

////
////////
//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 TrioTornado
{
Translation "250:250=34:34", "194:194=39:39"
PROJECTILE
Obituary "$OB_GIGA_TORNADOHOLD"
damagetype "TornadoHold"
+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 "TornadoHold"
+RIPPER
+DONTSPLASH
+DONTBLAST
+THRUGHOST
Damage (5)
Radius 65
Height 1350
Speed 0
States
{
Spawn:
TNT1 A 2
stop
}
}

////
////////
//AstroCrush
////////
////
actor TrioAstroCrush
{
PROJECTILE
+NOINTERACTION
height 1
radius 1
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 "AstroCrush"
+THRUGHOST
+NOEXPLODEFLOOR
+HEXENBOUNCE
renderstyle translucent
alpha 0.1
Damage (4)
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("FlashmanSparkleSparkle",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("FlashmanSparkleSparkle",random(-32,32),random(-32,32),random(8,56),0,0,0,0,1)
EVFL Q 1
EVFL QQQ 0 A_SpawnItemEx("FlashmanSparkleSparkle",random(-32,32),random(-32,32),random(8,56),0,0,0,0,1)
EVFL Q 1
EVFL QQQ 0 A_SpawnItemEx("FlashmanSparkleSparkle",random(-32,32),random(-32,32),random(8,56),0,0,0,0,1)
EVFL Q 1
EVFL QQQ 0 A_SpawnItemEx("FlashmanSparkleSparkle",random(-32,32),random(-32,32),random(8,56),0,0,0,0,1)
EVFL Q 1
EVFL QQQ 0 A_SpawnItemEx("FlashmanSparkleSparkle",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("weapon/astrocrush","Weapon")
TNT1 A 0 A_Explode(20,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
{
scale 2.0
States
{
Spawn:
X_8B A 0
X_8B ABCDEF 2
stop
}
}

actor TrioMeteorFX : BasicClientSide
{
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 "FlameSword"
+NOCLIP
+NOINTERACTION
+THRUGHOST
Damage (0)//3
Height 2//32
Radius 2//40
reactiontime 3//6
Scale 3.5
states
{
Spawn:
FWVE M 0 A_CountDown
FWVE M 0 A_Explode(4,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(4,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(4,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(4,80,0,0,80)
loop
}
}

actor TrioFlameTip : TrioFlame
{
renderstyle none
}

actor TrioFlameFX : BasicClientSide
{
Scale 4.0
States
{
Spawn:
SWTR M 0
SWTR M 1
Death://SWTR
SWTR MNO 4
stop
}
}

////
////////
//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
{
PROJECTILE
damagetype "ThunderClawT"
Obituary "$OB_GIGA_THUNDERCLAW"
Damage (5)
Radius 40
Height 55
Speed 80
Scale 3.5//4.0
States
{
Spawn:
WISS KLMNOJKLMNOJKLMNO 1
stop
}
}

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

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

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

ReactionTime 1
damage (6)
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("FlashmanSparkleSparkle",0,0,0,0,0,0,0,1)
EVFL RRRRSSSSTTTT 1 A_SpawnItemEx("FlashmanSparkleSparkle",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("FlashmanSparkleSparkle",0,0,0,0,0,0,0,1)
TNT1 A 0 A_PlaySoundEx("misc/BombCount","Weapon")
EVFL SSTTTT 1 A_SpawnItemEx("FlashmanSparkleSparkle",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("FlashmanSparkleSparkle",random(-16,16),random(-16,16),random(-16,16),0,0,0,0,1)
stop
}
}

actor TrioMissiles
{
damagetype "HomingSniper"
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 BCDE 2
stop
}
}

actor TrioMissile
{
PROJECTILE
damagetype "HomingSniper"
Obituary "$OB_GIGA_HOMINGSNIPER"
+THRUGHOST
Damage (8)
Radius 40
Height 40
Speed 264
scale 3.5
States
{
Spawn:
HSNM TU 2
loop
Death:
TMFX BCDE 2
stop
}
}

////
////////
//IceWave
////////
////
actor TrioIceWave
{
PROJECTILE
-NOGRAVITY
+DONTREFLECT
+SKYEXPLODE
+HEXENBOUNCE
+DONTSPLASH
+THRUGHOST
+THRUACTORS
Gravity 0.75
BounceFactor 0.95
WallBounceFactor 0.99
BounceCount 34
Damagetype "IceWave"
Obituary "$OB_GIGA_ICEWAVE"
Radius 64
Height 64
damage (0)
speed 16
scale 2.5
Reactiontime 20
States
{
Spawn:
TNT1 A 8
goto Spawn2
Spawn2:
TNT1 A 0 A_CountDown
TNT1 A 0 A_PlaySoundEx("weapon/icewavespawn","Weapon")
TNT1 A 8 A_SpawnItemEx("TrioIceWavePart",0,0,0,0,0,0,0,1)
//+SEEKERMISSILE
//A_Tracer2
loop
Death:
TNT1 A 1
stop
}
}
//TrioIceWave2
//reactiontime 40

actor TrioIceWavePart
{
PROJECTILE
Damagetype "IceWave"
Obituary "$OB_GIGA_ICEWAVE"
+SHOOTABLE
+THRUGHOST
+GHOST
-NOBLOCKMAP
//+SOLID
mass 9999999
health 1
Renderstyle Translucent
alpha 0.5
ReactionTime 1
Damage (15)
Radius 64
Height 64
Speed 0
scale 1.25//2.5
States
{
Spawn:
EVFL KL 5
EVFL MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 20 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death2")
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
{//When A_Warp exists, try it out
var int user_TID;
-SOLID
+NOGRAVITY
scale 2.5
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("user_TID",ACS_ExecuteWithResult(257,0))
//X_1D RRQQPPOONNMMLLKKJJIIHHGGFFEEDDCCBB 1
TNT1 A 0 Thing_Move(0,user_TID,1)
TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingR",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)
TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingR",0,0,28,0,0,0,0,1)

TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingQ",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingQ",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingP",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingP",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingO",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingO",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingN",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingN",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingM",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingM",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingL",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingL",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingK",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingK",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingJ",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingJ",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingI",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingI",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingH",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingH",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingG",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingG",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingF",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingF",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingE",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingE",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingD",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingD",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingC",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingC",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingB",0,0,28,0,0,0,0,1)
TNT1 A 0 Thing_Move(0,user_TID,1)TNT1 A 1 A_SpawnItemEx("TrioIceWaveChargingB",0,0,28,0,0,0,0,1)
stop
}
}

actor TrioIceWaveChargingR : BasicClientSide
{
States
{
Spawn:
X_1D R 0
X_1D R 1
stop
}
}

actor TrioIceWaveChargingQ : BasicClientSide{States{Spawn:X_1D Q 0
X_1D Q 1
stop}}
actor TrioIceWaveChargingP : BasicClientSide{States{Spawn:X_1D P 0
X_1D P 1
stop}}
actor TrioIceWaveChargingO : BasicClientSide{States{Spawn:X_1D O 0
X_1D O 1
stop}}
actor TrioIceWaveChargingN : BasicClientSide{States{Spawn:X_1D N 0
X_1D N 1
stop}}
actor TrioIceWaveChargingM : BasicClientSide{States{Spawn:X_1D M 0
X_1D M 1
stop}}
actor TrioIceWaveChargingL : BasicClientSide{States{Spawn:X_1D L 0
X_1D L 1
stop}}
actor TrioIceWaveChargingK : BasicClientSide{States{Spawn:X_1D K 0
X_1D K 1
stop}}
actor TrioIceWaveChargingJ : BasicClientSide{States{Spawn:X_1D J 0
X_1D J 1
stop}}
actor TrioIceWaveChargingI : BasicClientSide{States{Spawn:X_1D I 0
X_1D I 1
stop}}
actor TrioIceWaveChargingH : BasicClientSide{States{Spawn:X_1D H 0
X_1D H 1
stop}}
actor TrioIceWaveChargingG : BasicClientSide{States{Spawn:X_1D G 0
X_1D G 1
stop}}
actor TrioIceWaveChargingF : BasicClientSide{States{Spawn:X_1D F 0
X_1D F 1
stop}}
actor TrioIceWaveChargingE : BasicClientSide{States{Spawn:X_1D E 0
X_1D E 1
stop}}
actor TrioIceWaveChargingD : BasicClientSide{States{Spawn:X_1D D 0
X_1D D 1
stop}}
actor TrioIceWaveChargingC : BasicClientSide{States{Spawn:X_1D C 0
X_1D C 1
stop}}
actor TrioIceWaveChargingB : BasicClientSide{States{Spawn:X_1D B 0
X_1D B 1
stop}}

actor TrioIceWaveShards
{
-SOLID
+NOGRAVITY
+MISSILE
+THRUACTORS
+THRUGHOST
+CLIENTSIDEONLY
Renderstyle Translucent
Alpha 0.85
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 "FlashBombT"
+THRUGHOST
+FORCEXYBILLBOARD
reactiontime 10
damage (10)
radius 12
height 10
Speed 40
scale 2.5
States
{
Spawn:
GRGR WXYZ 3 A_CountDown
loop
Death:
GRGR A 0 A_Stop
GRGR A 0 A_PlaySoundEx("weapon/flashbomb","Weapon")
GRGR A 1 A_SpawnItemEx("TrioFlashBombExplosion",0,0,0,0,0,0,0,1)
stop
}
}

actor TrioFlashBombExplosion : TrioFlashBomb
{
var int user_Flash;
damagetype "FlashBombT"
+NOCLIP
+DONTBLAST
+DONTSPLASH
Reactiontime 12//5
Scale 3.5
States
{
Spawn:
GRGR A 0
GRGR A 0 A_SetUserVar("user_Flash",20)
GRGR AB 1 bright 
GRGR CD 1 bright
GRGR A 0 A_Explode(22,80,0)
GRGR EE 0 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(-40, 40), Random(-32, 32),0,0,0,0,1)
GRGR EF 1 bright A_SpawnItemEx("FlashBombFX1_B",0,0,0,random(-7, 7),random(-7, 7),random(-7, 7),random(0,360),1)
GRGR EE 0 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(-40, 40), Random(-32, 32),0,0,0,0,1)
GRGR GF 1 bright A_SpawnItemEx("FlashBombFX1_B",0,0,0,random(-7, 7),random(-7, 7),random(-7, 7),random(0,360),1)
GRGR A 0 A_Explode(22,80,0)
Goto Pattern1
Pattern1:
GRGR EF 1 bright A_SpawnItemEx("FlashBombFX1_B",0,0,0,random(-7, 7),random(-7, 7),random(-7, 7),random(0,360),1)
GRGR E 0 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(-16, -40), Random(-32, 32),0,0,0,0,1)
GRGR GF 1 bright A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(16, 40), Random(-32, 32),0,0,0,0,1)
GRGR 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:
GRGR EF 1 bright A_SpawnItemEx("FlashBombFX1_B",0,0,0,random(-7, 7),random(-7, 7),random(-7, 7),random(0,360),1)
GRGR E 0 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(32, 64), Random(-32, 40),0,0,0,0,1)
GRGR E 0 A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(-32, -64), Random(-32, 40),0,0,0,0,1)
GRGR EF 1 bright A_SpawnItemEx("FlashBombFX2_B",Random(-16, 16),Random(-40, 40), Random(-32, 32),0,0,0,0,1)
GRGR 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:
GRGR A 0 A_Explode(user_Flash,80,0,0,8)
Goto Continue
Continue:
GRGR A 0 A_CountDown
GRGR A 0 A_SetUserVar("user_Flash",user_Flash-1)
GRGR A 0 A_Jump(256,"Pattern1","Pattern2")
Goto Death
Death:
GRGR A 0 A_Changeflag("NOGRAVITY",1)
GRGR G 1 bright
TNT1 A 1
GRGR D 1 bright
TNT1 A 1
GRGR D 1 bright
TNT1 A 1
GRGR N 1 bright
stop
}
}

actor FlashBombTProtect : PowerProtection
{
Powerup.Duration 15
DamageFactor "FlashBombT", 0.125
}
////
////////
//WaterBalloon
////////
////
actor TrioBalloon
{
PROJECTILE
Obituary "$OB_GIGA_WATERBALLOON"
damagetype "WaterBalloon"
+THRUGHOST
Bouncetype Hexen
-ALLOWBOUNCEONACTORS
+CANBOUNCEWATER
WALLBOUNCEFACTOR 1.0
BOUNCEFACTOR 1.0
BounceCount 10
renderstyle Translucent
Alpha 0.2
reactiontime 6
Damage (20)//25
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
{
Alpha 0.8
reactiontime 1
Damage (12)//15
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,6))
Goto Spawn2
Spawn2:
EVFL U 4 A_JumpIfInventory("CutterFlag",10,"SpawnEnd")
EVFL VW 4
EVFL U 0 A_GiveInventory("CutterFlag",1)
loop
SpawnEnd:
EVFL U 1 A_Countdown
loop
Death:
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
{
reactiontime 1
Damage (6)//8
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,6))
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
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
}

