actor EvilFistC : BaseMM8BDMWep_CBM
{
dropitem "DuoFistUpgrade2Dropped"
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 A_JumpIfInventory("Once",1,"Ready2")
ERO8 A 0 ACS_ExecuteAlways(981,0,0)
ERO8 A 0 ACS_ExecuteAlways(423,0,2,3)
ERO8 A 0 A_SpawnItemEX("TrioRageManager")
ERO8 A 0 A_GiveInventory("Once",1)
Goto Ready2
Ready2:
ERO8 A 0 ACS_ExecuteAlways(998,0,869)
ERO8 A 0 ACS_ExecuteAlways(998,0,869,1)
ERO8 A 0 A_TakeInventory("WeaponCharge",999)
ERO8 A 1 A_WeaponReady
Goto Ready2+3
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
ERO8 A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
ERO8 A 1 A_Raise
Loop

Fire:
ERO8 B 0 A_Refire
goto Fire2
Fire2:
ERO8 B 0 A_TakeInventory("WeaponCharge",999)
ERO8 B 0 ACS_ExecuteAlways(991,0,869)
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
goto Ready2+2
Fire3:
ERO8 B 0 A_TakeInventory("WeaponCharge",999)
ERO8 B 0 ACS_ExecuteAlways(991,0,869)
ERO8 B 0 A_PlaySoundEx("weapon/DuoShot3","Weapon")
ERO8 B 0 A_GiveInventory("EvilMain3_CI",1)

//ERO8 GH 2
//ERO8 IJ 8

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
goto Ready2+2


Hold:
ERO8 B 0 A_JumpIfInventory("WeaponCharge",10,"Hold0")
ERO8 B 1 A_GiveInventory("WeaponCharge",1)
ERO8 B 0 A_Refire
Goto Fire2
Hold0:
ERO8 C 0 A_GunFlash
goto Hold1
Hold1:
ERO8 C 0 A_JumpIfInventory("WeaponCharge",28,"Charge0")
ERO8 C 1 A_GiveInventory("WeaponCharge",1)
ERO8 C 0 A_Refire("Hold1")
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,873,5)
ERO8 C 0 A_Refire(1)
Goto Fire2
ERO8 C 1 ACS_ExecuteAlways(998,0,869,1)
ERO8 C 0 A_GiveInventory("WeaponCharge",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,874,6)
ERO8 E 0 A_Refire(1)
Goto Fire3
ERO8 E 1 Offset(4,36)ACS_ExecuteAlways(998,0,875,7)
ERO8 F 0 A_Refire(1)
Goto Fire3
ERO8 F 1 Offset(6,38)ACS_ExecuteAlways(998,0,869,1)
ERO8 D 0 A_Refire(1)
Goto Fire3
ERO8 D 1 Offset(7,39)ACS_ExecuteAlways(998,0,874,6)
ERO8 E 0 A_Refire(1)
Goto Fire3
ERO8 E 1 Offset(8,40)ACS_ExecuteAlways(998,0,875,7)
ERO8 F 0 A_Refire(1)
Goto Fire3
ERO8 F 1 Offset(9,41)ACS_ExecuteAlways(998,0,869,1)
ERO8 D 0 A_Refire("Charge2")
Goto Fire3
Charge2:
ERO8 D 1 ACS_ExecuteAlways(998,0,874,6)
ERO8 E 0 A_Refire(1)
Goto Fire3
ERO8 E 1 ACS_ExecuteAlways(998,0,875,7)
ERO8 F 0 A_Refire(1)
Goto Fire3
ERO8 F 1 ACS_ExecuteAlways(998,0,869,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


Altfire:
ERO8 A 0 A_JumpIfInventory("TrioRageWeakness",1,"EvilAlt0")
ERO8 A 0 A_JumpIfInventory("EvilRageAmmo",1120,"RageActivate")
Goto Ready2+3
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 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+3

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","SoundSlot6")
ERO8 B 0 A_GiveInventory("TrioGigaFlag",1)
ERO8 B 0 A_TakeInventory("RuneSpread",1)
ERO8 BH 2
goto EvilAlt0_0
EvilAlt0_0:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
ERO8 B 0 A_Refire("EvilAlt0_1")
goto EvilAlt0_1E
EvilAlt0_1:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
ERO8 B 0 A_Refire("EvilAlt0_2")
goto EvilAlt0_2E
EvilAlt0_2:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
ERO8 B 0 A_Refire("EvilAlt0_3")
goto EvilAlt0_3E
EvilAlt0_3:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
ERO8 B 0 A_Refire("EvilAlt0_4")
goto EvilAlt0_4E
EvilAlt0_4:
ERO8 H 1 A_GiveInventory("FireTrioSpectrum2",1)
ERO8 H 0 A_Refire("EvilAlt0_5")
goto EvilAlt0_5E
EvilAlt0_5:
ERO8 H 1 A_GiveInventory("FireTrioSpectrum3",1)
ERO8 H 0 A_JumpIfInventory("EvilRageAmmo",1,1)
goto EvilAlt0End
ERO8 H 0 A_Refire("EvilAlt0_0")
goto EvilAlt0End
EvilAlt0_0E:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0_1E:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0_2E:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0_3E:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0_4E:
ERO8 H 1 A_GiveInventory("FireTrioSpectrum2",1)
EvilAlt0_5E:
ERO8 H 1 A_GiveInventory("FireTrioSpectrum3",1)
EvilAlt0End:
ERO8 B 0 A_TakeInventory("TrioGigaFlag",1)
ERO8 BBH 2
ERO8 B 4 A_GiveInventory("TrioSpreadRuneRevert",1)
ERO8 B 0 A_ClearRefire
goto Ready2+2


}
}

#include "wep/Megaman8/EvilFistRage.txt"

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

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

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

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


actor TrioRageOnPickup : CustomInventory
{
States
{
Pickup:
//TNT1 A 0 ACS_ExecuteAlways(992,0,0,1)//MTank Ammo
TNT1 A 0 ACS_ExecuteAlways(424,0,50)//DocRobot Ammo
TNT1 A 0 A_GiveInventory("RuneSpread",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)
stop
}
}


actor TrioRageOffPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("RuneSpread",1)
TNT1 A 0 A_TakeInventory("TrioRuneFlag",1)
TNT1 A 0 A_TakeInventory("TrioRageWeakness",1)
TNT1 A 0 A_TakeInventory("GuardDownFlag",1)
stop
}
}

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

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

actor TrioRageManager : BasicHelper
{
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("EvilFistC",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("EnergyBalancerActive",1,2)
TNT1 A 0 A_GiveInventory("EvilRageAmmo",2)
goto End
TNT1 A 0 A_GiveInventory("EvilRageAmmo",3)
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_ExecuteAlways(C_WEAPON_CATEGORY_CHECK,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)
wait
}
}

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 TrioSpectrumProtect : PowerProtection
{
Powerup.Duration 3
damagefactor "TrioSpectrum", 0.0
}

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

actor TrioSpectrumPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 
TNT1 A 0 A_JumpIfInventory("TrioSpectrumWeaken",1,2)
TNT1 A 0 A_SpawnItemEx("TrioSpectrumWatcher")
TNT1 A 0 A_GiveInventory("TrioSpectrumWeaken",1)
TNT1 A 0 A_GiveInventory("TrioSpectrumProtect",1)
stop
}
}

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

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

actor TrioSpectrumFX
{
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
Spawn1:
TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8,9,10)
ERO9 ABCDEFGHIJ 3 A_CountDown
goto Spawn2+1
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")
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_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")
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))
TNT1 A 0 A_FireCustomMissile("TrioSpectrum3",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))
TNT1 A 0 A_FireCustomMissile("TrioSpectrum3B",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))
TNT1 A 0 A_FireCustomMissile("TrioSpectrum3R",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))
TNT1 A 0 A_FireCustomMissile("TrioSpectrum3O",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))
TNT1 A 0 A_FireCustomMissile("TrioSpectrum3P",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_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)
TNT1 A 0 A_FireCustomMissile("TrioSpectrum3",0,0,0,0,0,0)
goto Done
FireB2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SB",0,0,0,0,0,0)
TNT1 A 0 A_FireCustomMissile("TrioSpectrum3B",0,0,0,0,0,0)
goto Done
FireR2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SR",0,0,0,0,0,0)
TNT1 A 0 A_FireCustomMissile("TrioSpectrum3R",0,0,0,0,0,0)
goto Done
FireO2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SO",0,0,0,0,0,0)
TNT1 A 0 A_FireCustomMissile("TrioSpectrum3O",0,0,0,0,0,0)
goto Done
FireP2:
TNT1 A 0 A_FireCustomMissile("TrioSpectrum2SP",0,0,0,0,0,0)
TNT1 A 0 A_FireCustomMissile("TrioSpectrum3P",0,0,0,0,0,0)
goto Done
}
}

actor FireTrioSpectrum3 : 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")
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_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 "TrioSpectrum"
+RIPPER
+DONTBLAST
+DONTREFLECT
+CLIENTSIDEONLY
//+NONETID
+PAINLESS
damage (0)
Radius 11
Height 11
speed 30
scale 3.5
states
{
Spawn:
EVFL A 0
EVFL A 0 A_SpawnItemEx("TrioSpectrum",0,0,0,momx,momy,momz,0,41)//SXF_TRANSFERTRANSLATION|SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION
EVFL A 0 A_Stop
Death:
EVFL A 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:
EVFL B 0
EVFL B 0 A_SpawnItemEx("TrioSpectrum2",0,0,0,momx,momy,momz,0,41)
EVFL B 0 A_Stop
Death:
EVFL B 1
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 TrioSpectrum3 : TrioSpectrum
{
damage (9)
+THRUGHOST
-PAINLESS
-CLIENTSIDEONLY
+NONETID
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("TrioSpectrum3",0,0,0,momx,momy,momz,0,41)
TNT1 A 0 A_Stop
Death:
TNT1 A 0
stop
}
}

actor TrioSpectrum3B : TrioSpectrum3{translation "192:192=205:205","198:198=74:74"}
actor TrioSpectrum3R : TrioSpectrum3{translation "192:192=171:171","198:198=41:41"}
actor TrioSpectrum3O : TrioSpectrum3{translation "192:192=104:104","198:198=128:128"}
actor TrioSpectrum3P : TrioSpectrum3{translation "192:192=229:229","198:198=232:232"}


actor MidFistEvil : MidFistLefty
{
Translation "192:192=41:41", "198:198=249:249"
//Translation "192:192=176:176", "198:198=79:79"
Obituary "$OB_EVILFIST"
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 : GigaFistLefty
{
Translation "192:192=41:41", "198:198=249:249"
//Translation "192:192=176:176", "198:198=79:79"
Obituary "$OB_EVILFIST"
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
Goto Death
Death:
EVFL I 1 A_FadeOut(0.5)
Loop
}
}

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
}
}
