actor CrystalEyeBoss : BaseMM8BDMWep_CBM
{
Tag "$TAGC_5H"
dropitem "CrystalEyeWepCDropped"
Weapon.AmmoUse2 4
Weapon.AmmoGive2 0
Obituary "$OB_CRYSTALEYEBIG"
weapon.ammotype1 "CrystalEyeClassAmmo"
States
{
Spawn:
C_05 H 1
loop
Ready:
CRYA A 0 ACS_ExecuteAlways(998,0,DYE_CRYSTALMAN)
CRYA A 0 A_GiveInventory("SpawningMisfire",1)
goto Ready0
Ready0:
CRYA A 2 A_WeaponReady
CRYA A 0 A_TakeInventory("SpawningMisfire",1)
Goto Ready1
SpawnProtect:
CRYA A 1
Goto Ready0

ReadyCheck:

CRYA A 0 A_JumpIfInventory("CrystalEyeDelay",1,"Ready1a")
CRYA A 0 A_JumpIfInventory("CrystalEyeIsOut",1,"ReadyCheck2")
goto Ready1
ReadyCheck2:
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",56,"Ready2.d")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",42,"Ready2.c")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",28,"Ready2.b")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",14,"Ready2.a")
goto Ready2

Ready1:
CRYA A 0 A_JumpIfInventory("CrystalEyeDelay",1,"Ready1a")
CRYA A 2 A_WeaponReady
wait
Ready1a:
CRYA A 2 A_WeaponReady(4)
CRYA A 0 A_TakeInventory("CrystalEyeDelay",1)
goto Ready1

Ready2:
CRYA A 2 A_WeaponReady
CRYA A 0 A_JumpIfInventory("CrystalEyeIsOut",1,"Ready2")
goto Ready2End
Ready2.a:
CRYA A 2 A_WeaponReady
CRYA A 0 A_JumpIfInventory("CrystalEyeIsOut",1,1)
goto Ready2End
CRYA S 2 A_WeaponReady
CRYA A 0 A_JumpIfInventory("CrystalEyeIsOut",1,"Ready2.a")
goto Ready2End
Ready2.b:
CRYA A 2 A_WeaponReady
CRYA A 0 A_JumpIfInventory("CrystalEyeIsOut",1,1)
goto Ready2End
CRYA T 2 A_WeaponReady
CRYA A 0 A_JumpIfInventory("CrystalEyeIsOut",1,"Ready2.b")
goto Ready2End
Ready2.c:
CRYA A 2 A_WeaponReady
CRYA A 0 A_JumpIfInventory("CrystalEyeIsOut",1,1)
goto Ready2End
CRYA U 2 A_WeaponReady
CRYA A 0 A_JumpIfInventory("CrystalEyeIsOut",1,"Ready2.c")
goto Ready2End
Ready2.d:
CRYA A 2 A_WeaponReady
CRYA A 0 A_JumpIfInventory("CrystalEyeIsOut",1,1)
goto Ready2End
CRYA R 2 A_WeaponReady
CRYA A 0 A_JumpIfInventory("CrystalEyeIsOut",1,"Ready2.d")
goto Ready2End

Ready2End:
CRYA A 0 A_GiveInventory("CrystalEyeDelay",14)
CRYA A 0 A_TakeInventory("CrystalEyeCharge",999)
goto Ready1a

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
CRYA A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
CRYA A 1 A_Raise
Loop


Fire:
CRYA D 0 A_JumpIfInventory("IsBot",1,"BotFire2")
CRYA D 0 A_JumpIfInventory("SpawningMisfire",1,"SpawnProtect")
CRYA D 0 A_JumpIfInventory("CrystalEyeIsOut",1,"FireDet")
CRYA D 0 A_JumpIfInventory("CrystalEyeDelay",1,"FireDet")
CRYA D 1 A_GiveInventory("CrystalEyeCharge",1)
CRYA D 0 A_Refire("FireH")
goto FireEnd

FireH:
CRY_ A 1
CRY_ A 0 A_Refire("FireH.a")
goto FireEnd
FireH.a:
CRY_ A 1 A_GiveInventory("CrystalEyeCharge_RC",1)
CRY_ A 0 A_Refire("FireH.b")
goto FireEnd
FireH.b:
CRY_ B 1 
CRY_ B 0 A_Refire("FireH.c")
goto FireEnd
FireH.c:
CRY_ B 1 A_GiveInventory("CrystalEyeCharge_RC",1)
CRY_ B 0 A_Refire("FireH.d")
goto FireEnd
FireH.d:
CRY_ C 1 
CRY_ C 0 A_Refire("FireH.e")
goto FireEnd
FireH.e:
CRY_ C 1 A_GiveInventory("CrystalEyeCharge_RC",1)
CRY_ C 0 A_Refire("FireH.f")
goto FireEnd
FireH.f:
CRY_ D 1 
CRY_ D 0 A_Refire("FireH.g")
goto FireEnd
FireH.g:
CRY_ D 1 A_GiveInventory("CrystalEyeCharge_RC",1)
CRY_ D 0 A_Refire("FireH1")
goto FireEnd

FireH1:
CRY_ D 0 A_JumpIfInventory("CrystalEyeCharge",14,"FireH2")
CRY_ D 1
CRY_ D 0 A_Refire("FireH1.a")
goto FireEnd
FireH1.a:
CRY_ D 1 A_GiveInventory("CrystalEyeCharge_RC",1)
CRY_ D 0 A_Refire("FireH1")
goto FireEnd

FireH2:
CRY_ D 0 A_PlaySoundEx("wep/CrysCharge1","Body")
FireH2.a:
CRY_ E 0 A_JumpIfInventory("CrystalEyeCharge",28,"FireH3")
CRY_ E 1 A_WeaponReady(WRF_NOPRIMARY)
CRY_ E 0 A_Refire("FireH2.b")
goto FireEnd
FireH2.b:
CRY_ D 0 A_GiveInventory("CrystalEyeCharge_RC",1)
CRY_ D 1 A_WeaponReady(WRF_NOPRIMARY)
CRY_ D 0 A_Refire("FireH2.a")
goto FireEnd

FireH3:
CRY_ D 0 A_PlaySoundEx("wep/CrysCharge2","Body")
FireH3.a:
CRY_ F 0 A_JumpIfInventory("CrystalEyeCharge",42,"FireH4")
CRY_ F 1 A_WeaponReady(WRF_NOPRIMARY)
CRY_ F 0 A_Refire("FireH3.b")
goto FireEnd
FireH3.b:
CRY_ D 0 A_GiveInventory("CrystalEyeCharge_RC",1)
CRY_ D 1 A_WeaponReady(WRF_NOPRIMARY)
CRY_ D 0 A_Refire("FireH3.a")
goto FireEnd

FireH4:
CRY_ D 0 A_PlaySoundEx("wep/CrysCharge3","Body")
FireH4.a:
CRY_ G 0 A_JumpIfInventory("CrystalEyeCharge",56,"FireH5")
CRY_ G 1 A_WeaponReady(WRF_NOPRIMARY)
CRY_ G 0 A_Refire("FireH4.b")
goto FireEnd
FireH4.b:
CRY_ D 0 A_GiveInventory("CrystalEyeCharge_RC",1)
CRY_ D 1 A_WeaponReady(WRF_NOPRIMARY)
CRY_ D 0 A_Refire("FireH4.a")
goto FireEnd

FireH5:
CRY_ D 0 A_PlaySoundEx("wep/CrysCharge4","Body")
FireH5.a:
CRY_ H 1 A_WeaponReady(WRF_NOPRIMARY)
CRY_ H 0 A_Refire("FireH5.b")
goto FireEnd
FireH5.b:
CRY_ D 0 A_GiveInventory("CrystalEyeCharge_RC",1)
CRY_ D 1 A_WeaponReady(WRF_NOPRIMARY)
CRY_ D 0 A_Refire("FireH5.a")
goto FireEnd

FireEnd:
CRYA B 0 A_PlaySoundEx("weapon/crystalshot","Weapon")
CRYA B 0 A_GiveInventory("CrystalEyeIsOut",1)
CRYA B 0 A_GunFlash
CRYA B 0 A_JumpIfInventory("CrystalEyeCharge",56,"FireEnd5")
CRYA B 0 A_JumpIfInventory("CrystalEyeCharge",42,"FireEnd4")
CRYA B 0 A_JumpIfInventory("CrystalEyeCharge",28,"FireEnd3")
CRYA B 0 A_JumpIfInventory("CrystalEyeCharge",14,"FireEnd2")
CRYA B 0 A_GiveInventory("CrystalmanMain_0_CI",1)
CRYA VD 1
CRYA FHIHGE 2
goto ReadyCheck
FireEnd2:
CRYA B 0 A_GiveInventory("CrystalmanMain_1_CI",1)
CRYA VD 1
CRYA FHIHGE 2
goto ReadyCheck
FireEnd3:
CRYA B 0 A_GiveInventory("CrystalmanMain_2_CI",1)
CRYA VD 1
CRYA FHIHGE 2
goto ReadyCheck
FireEnd4:
CRYA B 0 A_GiveInventory("CrystalmanMain_3_CI",1)
CRYA VD 1
CRYA FHIHGE 2
goto ReadyCheck
FireEnd5:
CRYA B 0 A_GiveInventory("CrystalmanMain_4_CI",1)
CRYA VD 1
CRYA FHIHGE 2
goto ReadyCheck

FireDet:
CRYA K 0 A_PlaySoundEx("weapon/crystalshot","Weapon")
CRYA K 0 A_GiveInventory("CrystalEyeDetonate",1)
CRYA PCQCQBA 2
goto FireDet2

FireDet2:
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",56,"FireAmmo")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",42,"FireAmmo2")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",28,"FireAmmo3")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",14,"FireAmmo4")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",13,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",12,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",11,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",10,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",9,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",8,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",7,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",6,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",5,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",4,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",3,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",2,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",1,"FireAmmo5")
CRYA A 0 A_JumpIfInventory("CrystalEyeCharge",0,"FireAmmo5")

FireAmmo:
CRYA A 2 A_GiveInventory("CrystalEyeDelay",28)
CRYA A 0 A_TakeInventory("CrystalEyeCharge",999)
CRYA A 0 A_TakeInventory("CrystalEyeDetonate",999)
CRYA A 0 A_TakeInventory("CrystalEyeIsOut",999)
Goto Ready1

FireAmmo2:
CRYA A 2 A_GiveInventory("CrystalEyeDelay",21)
CRYA A 0 A_TakeInventory("CrystalEyeCharge",999)
CRYA A 0 A_TakeInventory("CrystalEyeDetonate",999)
CRYA A 0 A_TakeInventory("CrystalEyeIsOut",999)
Goto Ready1

FireAmmo3:
CRYA A 2 A_GiveInventory("CrystalEyeDelay",14)
CRYA A 0 A_TakeInventory("CrystalEyeCharge",999)
CRYA A 0 A_TakeInventory("CrystalEyeDetonate",999)
CRYA A 0 A_TakeInventory("CrystalEyeIsOut",999)
Goto Ready1

FireAmmo4:
CRYA A 2 A_GiveInventory("CrystalEyeDelay",7)
CRYA A 0 A_TakeInventory("CrystalEyeCharge",999)
CRYA A 0 A_TakeInventory("CrystalEyeDetonate",999)
CRYA A 0 A_TakeInventory("CrystalEyeIsOut",999)
Goto Ready1

FireAmmo5:
CRYA A 2 A_GiveInventory("CrystalEyeDelay",7)
CRYA A 0 A_TakeInventory("CrystalEyeCharge",999)
CRYA A 0 A_TakeInventory("CrystalEyeDetonate",999)
CRYA A 0 A_TakeInventory("CrystalEyeIsOut",999)
Goto Ready1

AltFire:
CRYA B 0 A_JumpIfInventory("CrystalEyeIsOut",1,"AltAttack")
CRYA B 0 A_JumpIfInventory("CrystalEyeCharge",1,"AltCharge")
goto AltAttack

AltAttack:
CRYA E 2
AltAttackHold:
CRYA B 0 A_PlaySoundEx("weapon/crystalshot","Weapon")
CRYA B 0 A_GiveInventory("CrystalmanAlt_CI",1)
CRYA B 0 A_JumpIfInventory("CrystalEyeIsOut",1,2)
CRYA B 0 A_TakeInventory("CrystalEyeDelay",4)
CRYA B 0 A_GunFlash
CRYA JKJKJKJK 2
CRYA B 0 A_ReFire("AltAttackHold")
CRYA E 2
Goto ReadyCheck

AltCharge:
CRYA B 0 A_PlaySoundEx("weapon/crystalshot","Weapon")
CRYA B 0 A_GiveInventory("CrystalmanAlt2_CI",1)
CRYA B 0 A_GunFlash
CRYA B 0 A_JumpIfInventory("CrystalEyeCharge",56,"AltEnd4")
CRYA B 0 A_JumpIfInventory("CrystalEyeCharge",42,"AltEnd3")
CRYA B 0 A_JumpIfInventory("CrystalEyeCharge",28,"AltEnd2")
CRYA VD 1
CRYA FHIHG 2
CRYA P 0 A_GiveInventory("CrystalEyeDelay",14)
CRYA E 2
goto AltEndX
AltEnd2:
CRYA VD 1
CRYA FHIHG 2
CRYA P 0 A_GiveInventory("CrystalEyeDelay",14)
CRYA E 2
goto AltEndX
AltEnd3:
CRYA VD 1
CRYA FHIHG 2
CRYA P 0 A_GiveInventory("CrystalEyeDelay",14)
CRYA E 2
goto AltEndX
AltEnd4:
CRYA VD 1
CRYA FHIHG 2
CRYA P 0 A_GiveInventory("CrystalEyeDelay",14)
CRYA E 2
goto AltEndX
AltEndX:
CRYA A 0 A_TakeInventory("CrystalEyeCharge",999)
goto ReadyCheck

Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
CRYA WXYZ 2
stop

BotFire:
CRYA B 0 A_Jump(16,"HoldEND")
CRYA B 0 A_TakeInventory("CrystalEyeEndLag",3)
CRYA B 3 A_GiveInventory("CrystalEyeCharge",1)
CRYA B 0 A_Refire
Goto HoldEND
BotFire2:
CRYA B 0 A_Jump(128, "AltFire")
Goto Fire+1
}
}

actor CrystalEyeClassAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor CrystalEyeDelay : Inventory
{
inventory.amount 1
inventory.maxamount 28
}

actor CrystalEyeIsOut : Powerup
{
Powerup.Duration -22
}

actor CrystalEyeDetonate : OnceC{}

actor CrystalEyeCharge : Inventory
{
inventory.amount 1
inventory.maxamount 56
}

actor CrystalFrameFlag : Inventory
{
inventory.amount 1
inventory.maxamount 3
}
actor CrystalFrameFlag2 :OnceC{}

actor CrystalEyeEndLag : Inventory
{
inventory.amount 1
inventory.maxamount 99
}

actor CrystalEyeCharge_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("CrystalEyeCharge",1)
stop
PickupR:
TNT1 A 0 A_GiveInventory("CrystalEyeCharge",2)
stop
}
}

actor CrystalmanEyeEnd_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("CrystalEyeDelay",28)
TNT1 A 0 A_TakeInventory("CrystalEyeIsOut",9)
TNT1 A 0 A_TakeInventory("CrystalEyeCharge",999)
stop
}
}

actor CrystalEyeC
{
var int user_D;
Translation "199:199=193:193", "202:202=0:0", "204:204=210:210"
PROJECTILE
damagetype "CrystalM_Eye"
Obituary "$OB_CRYSTALEYEBIG"
//+EXPLODEONWATER
+SKYEXPLODE
SeeSound "weapon/crystalbigbounce"
+DOOMBOUNCE
+CANBOUNCEWATER
bouncefactor 1.0
wallbouncefactor 1.0
BounceCount 100
Damage (24)
ReactionTime 25
Height 16
Radius 16
speed 22//28
Scale 2.5
States
{
Spawn:
//ABCDE Big
//FGHIJ Small
//KLMNO Big white
//PQRST Small white
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
Y_5H A 0
Y_5H A 0 A_SetUserVar("user_D",ACS_NamedExecuteWithResult("cbm_countinv_acs",58,0))
Y_5H A 0 A_GiveInventory("CrystalEyeCharge",4)
Y_5H AAAA 1 A_JumpIfInTargetInventory("CrystalEyeDetonate",1,"BoomAim")
Y_5H A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death2")
Y_5H LLLL 1 A_JumpIfInTargetInventory("CrystalEyeDetonate",1,"BoomAim")
Y_5H A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death2")
Y_5H CCCC 1 A_JumpIfInTargetInventory("CrystalEyeDetonate",1,"BoomAim")
Y_5H A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death2")
Y_5H NNNN 1 A_JumpIfInTargetInventory("CrystalEyeDetonate",1,"BoomAim")
Y_5H A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death2")
Y_5H DDDD 1 A_JumpIfInTargetInventory("CrystalEyeDetonate",1,"BoomAim")
Y_5H A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death2")
Y_5H KKKK 1 A_JumpIfInTargetInventory("CrystalEyeDetonate",1,"BoomAim")
Y_5H A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death2")
Y_5H AAAA 1 A_JumpIfInTargetInventory("CrystalEyeDetonate",1,"BoomAim")
Y_5H A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death2")
Y_5H A 0 A_CountDown
goto SpawnLOOP+3
BoomAim://Aimed
"####" "#" 0 A_Stop
"####" "#" 0 ACS_ExecuteWithResult(259,1)//Set angle based on player pitch/angle
//TNT1 A 0 A_LogInt(Pitch)

TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch)*31.5,0,-sin(pitch)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch+10)*31.5,0,-sin(pitch+10)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch-10)*31.5,0,-sin(pitch-10)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch)*31.5,7,-sin(pitch)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch)*31.5,-7,-sin(pitch)*31.5,0,1)

TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",28,"BoomAim28")
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",14,"BoomAim14")
goto BoomE

BoomAim14:
TNT1 A 0 A_Jump(128,"BoomAim14.a")
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch+10)*31.5,7,-sin(pitch+10)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch-10)*31.5,-7,-sin(pitch-10)*31.5,0,1)
goto BoomE
BoomAim14.a:
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch+10)*31.5,-7,-sin(pitch+10)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch-10)*31.5,7,-sin(pitch-10)*31.5,0,1)
goto BoomE

BoomAim28:
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch+10)*31.5,7,-sin(pitch+10)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch-10)*31.5,7,-sin(pitch-10)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch+10)*31.5,-7,-sin(pitch+10)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch-10)*31.5,-7,-sin(pitch-10)*31.5,0,1)
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",56,"BoomAim56")
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",42,"BoomAim42")
goto BoomE

BoomAim42:
TNT1 A 0 A_Jump(128,"BoomAim42.a")
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch+5)*31.5,3.5f,-sin(pitch+5)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch-5)*31.5,-3.5f,-sin(pitch-5)*31.5,0,1)
goto BoomE
BoomAim42.a:
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch+5)*31.5,-3.5f,-sin(pitch+5)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch-5)*31.5,3.5f,-sin(pitch-5)*31.5,0,1)
goto BoomE

BoomAim56:
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch+5)*31.5,3.5f,-sin(pitch+5)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch+5)*31.5,-3.5f,-sin(pitch+5)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch-5)*31.5,3.5f,-sin(pitch-5)*31.5,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,Cos(pitch-5)*31.5,-3.5f,-sin(pitch-5)*31.5,0,1)
goto BoomE

Boom0://Classic
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,12,random(40,50),1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,12,random(-40,-50),1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,-12,random(40,50),1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,-12,random(-40,-50),1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,12,random(220,230),1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,12,random(-220,-230),1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,-12,random(220,230),1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,-12,random(-220,-230),1)
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",1,1)
goto DeathBoom
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,0,random(-5,5),1)
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",5,1)
goto DeathBoom
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,0,random(175,185),1)
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",10,1)
goto DeathBoom
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,0,random(85,95),1)
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",15,1)
goto DeathBoom
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,0,random(-85,-95),1)
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",20,1)
goto DeathBoom
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,0,random(40,50),1)
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",25,1)
goto DeathBoom
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,0,random(-130,-140),1)
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",30,1)
goto DeathBoom
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,0,random(130,140),1)
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",35,1)
goto DeathBoom
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,31.5,0,0,random(-40,-50),1)
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",40,1)
goto DeathBoom
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,random(-5,5),0,31.5,random(-5,5),1)
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",45,1)
goto DeathBoom
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,0,random(-5,5),0,31.5,random(-5,5),1)
TNT1 A 0 //A_JumpIfInTargetInventory("CrystalEyeCharge",50,1)
goto DeathBoom

BoomE:
"####" "#" 0 A_GiveInventory("CrystalEyeDetonate",1)
"####" "#" 1 A_CountDownArg(0)
wait

XDeath:
Crash:
TNT1 A 0 A_JumpIfInventory("CrystalEyeCharge",4,"XDeath0")
goto XDeathBoomBonus
XDeathBoomBonus:
TNT1 A 0 A_Explode(ACS_NamedExecuteWithResult("cbm_countinv_acs",58,0)/7,24,0,0,24)
goto XDeath0
XDeath0:
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",56,"XDeath5")
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",42,"XDeath4")
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",28,"XDeath3")
TNT1 A 0 A_JumpIfInTargetInventory("CrystalEyeCharge",14,"XDeath2")
goto XDeath1
XDeath1:
TNT1 AAAAA 0 A_SpawnItemEx("CrystalEyeC_FX",0,0,0,random(-10,10),random(-10,10),random(5,10),random(0,359),1)
goto XDeathEnd
XDeath2:
TNT1 AAAAAAA 0 A_SpawnItemEx("CrystalEyeC_FX",0,0,0,random(-10,10),random(-10,10),random(5,10),random(0,359),1)
goto XDeathEnd
XDeath3:
TNT1 AAAAAAAAA 0 A_SpawnItemEx("CrystalEyeC_FX",0,0,0,random(-10,10),random(-10,10),random(5,10),random(0,359),1)
goto XDeathEnd
XDeath4:
TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("CrystalEyeC_FX",0,0,0,random(-10,10),random(-10,10),random(5,10),random(0,359),1)
goto XDeathEnd
XDeath5:
TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx("CrystalEyeC_FX",0,0,0,random(-10,10),random(-10,10),random(5,10),random(0,359),1)
goto XDeathEnd
XDeathEnd:
TNT1 A 0 A_GiveToTarget("CrystalmanEyeEnd_P",1)
TNT1 A 0 A_PlaySound("wep_L/crystalbit",1)
TNT1 A 0 A_PlaySound("wep_L/crystalbit",3)
TNT1 A 1
stop

Death:
TNT1 A 0 A_JumpIfInventory("CrystalEyeDetonate",1,"DeathBoom")
TNT1 A 1 A_GiveToTarget("CrystalmanEyeEnd_P",1)
stop

DeathBoom:
XMFX QQ 1 bright
VMFX IIIJJJKKKDDD 1 bright
stop

Death2:
TNT1 A 1
stop
}
}

actor CrystalEyeCB : CrystalEyeC{translation"202:202=205:205","199:199=74:74","204:204=205:205"}
actor CrystalEyeCR : CrystalEyeC{translation"202:202=171:171","199:199=41:41","204:204=171:171"}
actor CrystalEyeCO : CrystalEyeC{translation"202:202=104:104","199:199=128:128","204:204=104:104"}
actor CrystalEyeCP : CrystalEyeC{translation"202:202=229:229","199:199=232:232","204:204=229:229"}

actor CrystalEyeC_FX
{
-SOLID
+CLIENTSIDEONLY
+THRUACTORS
-NOGRAVITY
+DONTSPLASH
+DONTBLAST
damage (0)
Radius 2
Height 2
scale 2.5
States
{
Spawn:
Y_5H FZFZFZFZFZFZFZFZFZF 1
stop
}
}

actor CrystalShot
{
Translation "199:199=193:193", "202:202=0:0", "204:204=210:210"

PROJECTILE
damagetype "CrystalM_EyeShot"
Obituary "$OB_CRYSTALEYESHOT"
+SKYEXPLODE
+DOOMBOUNCE
//WallBounceSound "weapon/crystalbit"
//BounceSound "weapon/crystalbit"
SeeSound "weapon/crystalbit"
+CANBOUNCEWATER
bouncefactor 1.0
wallbouncefactor 1.0
BounceCount 6
reactiontime 30
Damage(12)
Height 8
Radius 8
speed 28
Scale 3
States
{
Spawn:
//CRYE NOPQRNN 4
//CRYE FGHIJFF 4
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
Y_5H FQHSJPF 4
Y_5H F 0 A_CountDown
loop
Death:
VMFX IJKD 2 bright
stop
}
}

actor CrystalShotB : CrystalShot{translation"202:202=205:205","199:199=74:74","204:204=205:205"}
actor CrystalShotR : CrystalShot{translation"202:202=171:171","199:199=41:41","204:204=171:171"}
actor CrystalShotO : CrystalShot{translation"202:202=104:104","199:199=128:128","204:204=104:104"}
actor CrystalShotP : CrystalShot{translation"202:202=229:229","199:199=232:232","204:204=229:229"}


actor CrystalShot2 : CrystalShot
{
damagetype "CrystalM_EyeShot"
Obituary "$OB_CRYSTALEYE"
BounceCount 10
reactiontime 6
Damage(8)
scale 2.5
}

actor CrystalEyeBitCProtect : PowerProtection
{
Powerup.Duration 10
DamageFactor "CrystalEyeBitC", 0.9
}

actor CrystalChargeAlt_P : CustomInventory
{
Translation "199:199=193:193", "202:202=0:0", "204:204=210:210"
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch)*28,0,-sin(pitch)*28,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch)*28,7,-sin(pitch)*28,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch)*28,-7,-sin(pitch)*28,0,1)

TNT1 A 0 A_JumpIfInventory("CrystalEyeCharge",28,"BoomAim28")
stop

BoomAim28:
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch+10)*28,0,-sin(pitch+10)*28,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch-10)*28,0,-sin(pitch-10)*28,0,1)
TNT1 A 0 A_JumpIfInventory("CrystalEyeCharge",56,"BoomAim56")
TNT1 A 0 A_JumpIfInventory("CrystalEyeCharge",42,"BoomAim42")
stop

BoomAim42:
TNT1 A 0 A_Jump(128,"BoomAim42.a")
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch+10)*28,7,-sin(pitch+10)*28,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch-10)*28,-7,-sin(pitch-10)*28,0,1)
stop
BoomAim42.a:
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch+10)*28,-7,-sin(pitch+10)*28,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch-10)*28,7,-sin(pitch-10)*28,0,1)
stop

BoomAim56:
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch+10)*28,7,-sin(pitch+10)*28,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch-10)*28,7,-sin(pitch-10)*28,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch+10)*28,-7,-sin(pitch+10)*28,0,1)
TNT1 A 0 A_SpawnItemEx("CrystalShot2",0,0,24,Cos(pitch-10)*28,-7,-sin(pitch-10)*28,0,1)
stop
}
}

actor CrystalChargeAlt_PB : CrystalChargeAlt_P{translation"202:202=205:205","199:199=74:74","204:204=205:205"}
actor CrystalChargeAlt_PR : CrystalChargeAlt_P{translation"202:202=171:171","199:199=41:41","204:204=171:171"}
actor CrystalChargeAlt_PO : CrystalChargeAlt_P{translation"202:202=104:104","199:199=128:128","204:204=104:104"}
actor CrystalChargeAlt_PP : CrystalChargeAlt_P{translation"202:202=229:229","199:199=232:232","204:204=229:229"}

actor CrystalmanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("CrystalEyeC",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("CrystalEyeCB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("CrystalEyeCR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("CrystalEyeCO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("CrystalEyeCP",0,0,0,0)
goto Done
}
}

actor CrystalmanAlt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("CrystalShot",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("CrystalShotB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("CrystalShotR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("CrystalShotO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("CrystalShotP",0,0,0,0)
goto Done
}
}

actor CrystalmanAlt2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_GiveInventory("CrystalChargeAlt_P")
goto Done
FireB:
TNT1 A 0 A_GiveInventory("CrystalChargeAlt_PB")
goto Done
FireR:
TNT1 A 0 A_GiveInventory("CrystalChargeAlt_PR")
goto Done
FireO:
TNT1 A 0 A_GiveInventory("CrystalChargeAlt_PO")
goto Done
FireP:
TNT1 A 0 A_GiveInventory("CrystalChargeAlt_PP")
goto Done
}
}
