//	Movement recoded
actor Pharaohman : VCBaseClass
{
Player.ScoreIcon "PHARMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Pharaohman"
player.soundclass "pharaohmanc"
player.startitem "NormalArmor"
player.startitem "PharaohShotBoss"
player.startitem "PharaohShotBoss2"
player.startitem "IsPharaohMan"
player.startitem "Base28Ammo",28
player.forwardmove 0.85, 0.85
player.sidemove 0.83, 0.83
player.jumpz 12
player.viewheight 47
player.startitem "BaseAltfireAmmo",112
player.startitem "UltimateAttackItem3"
player.startitem "UltSoundWatcherSpawn3"
player.startitem "CanThirdFire"
player.startitem "IsFromMM4"
States
{
Spawn:
PHAR A 0
PHAR B 1 A_JumpIf(z-floorz>0, "Jumping")
PHAR A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2

See:
PHAR BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+1

Jumping:
PHAR I 1 A_JumpIf(z-floorz<=0, "Spawn")
wait

Missile:
PHAR S 0 A_JumpIfInventory("BaseCustomFlag2",1,"Shielding")
PHAR S 0 A_JumpIfInventory("BaseCustomFlag1",1,"Missile4")
PHAR S 1 A_JumpIf(z-floorz>0, "JumpingMissile")
PHAR S 0 A_JumpIfInventory("BaseCustomFlag1",1,"Missile4")
PHAR SSS 1 A_JumpIf(z-floorz>0, "JumpingMissile")

Missile2:
PHAR T 1 A_JumpIf(z-floorz>0, "JumpingMissile2")

Missile3:
PHAR UUUUU 1 A_JumpIf(z-floorz>0, "JumpingMissile3")
goto Spawn+1

JumpingMissile:
PHAR K 0 A_JumpIfInventory("BaseCustomFlag1",1,"Missile4")
PHAR K 1 A_JumpIf(z-floorz<=0, "Missile")
PHAR K 0 A_JumpIfInventory("BaseCustomFlag1",1,"Missile4")
PHAR KKK 1 A_JumpIf(z-floorz<=0, "Missile")

JumpingMissile2:
PHAR L 1 A_JumpIf(z-floorz<=0, "Missile2")

JumpingMissile3:
PHAR MMMMM 1 A_JumpIf(z-floorz<=0, "Missile3")
goto Jumping

Missile4:
PHAR NNOONNOONNOONNOONNOO 1 A_JumpIfInventory("PharaohWaveAnim",1,"Missile5")
goto Spawn+1

Missile5:
PHAR NPQR 1
PHAR G 10
goto Spawn+1

Animation1:
PH4P A 0 A_JumpIfInventory("IsUsingAltSkin1",1,"A1.Alt")
PH4P ABCDEF 2 A_JumpIfInventory("IsUsingAltSkin1",1,"A1.Alt")

Shielding:
PH4P F 0 A_JumpIfInventory("IsUsingAltSkin1",1,"Shielding.Alt")
PH4P F 8 A_JumpIfInventory("IsUsingAltSkin1",1,"Shielding.Alt")
PH4P F 0 A_JumpIfInventory("BaseCustomFlag2",1,"Shielding")
goto Spawn+1

A1.Alt:
P_2F ABCDEF 2

Shielding.Alt:
P_2F F 8
P_2F F 0 A_JumpIfInventory("BaseCustomFlag2",1,"Shielding.Alt")
goto Spawn+1

Animation2:
PH4P G 0 A_JumpIfInventory("IsUsingAltSkin1",1,"A2.Alt")
PH4P GHI 2 A_JumpIfInventory("IsUsingAltSkin1",1,"A2.Alt")
PH4P G 0 A_JumpIfInventory("DrillFlag",1,"Animation2")
goto Spawn+1

A2.Alt:
P_2F GHI 2
P_2F G 0 A_JumpIfInventory("DrillFlag",1,"A2.Alt")
goto Spawn+1

Animation3:
PH4P J 0 A_JumpIfInventory("IsUsingAltSkin1",1,"A3.Alt")
PH4P JKK 2 A_JumpIfInventory("IsUsingAltSkin1",1,"A3.Alt")
goto Spawn+1

A3.Alt:
P_2F JKK 2
goto Spawn+1

Animation4:
PH4P K 0 A_JumpIfInventory("IsUsingAltSkin1",1,"A4.Alt")
PH4P KJGHI 2 A_JumpIfInventory("IsUsingAltSkin1",1,"A4.Alt")
goto Spawn+1

A4.Alt:
P_2F KJGHI 2
goto Spawn+1

Animation5:
PH4P G 0 A_JumpIfInventory("IsUsingAltSkin1",1,"A5.Alt")
PH4P GHIGHIGHIGHIGHIGHIGHIGHIG 2 A_JumpIfInventory("IsUsingAltSkin1",1,"A5.Alt")
goto Spawn+1

A5.Alt:
P_2F GHIGHIGHIGHIGHIGHIGHIGHIG 2
goto Spawn+1

Animation6:
PHAR VVVVVVV 1 A_JumpIf(z-floorz<=0, "Spawn") 
goto Spawn+1

Animation7:
PHAR GWWWW 5
goto Spawn+1

Animation8:
PHAR F 39
PHAR QRQRQR 2
goto Missile2

ClassTimeStop:
PLAY A 0 SetPlayerProperty(0,1,4)
PLAY A 0 ACS_Execute(528,0)
PHAR AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
PLAY A 0 SetPlayerProperty(0,0,4)
Goto pain+1
ClassPain:
PHAR H 0 A_JumpIfInventory("BaseCustomFlag2",1,"ClassPainShield")
PHAR HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
PHAR H 0 A_JumpIfInventory("DrillFlag",1,"Animation2")
Goto Spawn+1
ClassPainShield:
PH4P FFFFFFFFFF 2 A_SpawnItem("PainFX",0,3)
PH4P F 0 A_JumpIfInventory("BaseCustomFlag2",1,"Shielding")
Goto Spawn+1
ClassDeath:
PHAR H 0 A_StopSound(CHAN_WEAPON)
PHAR H 20 ACS_ExecuteAlways(999,0,0)
PHAR H 0 A_PlayerScream
NOFX A 0 A_SpawnItemEx("FakeDeathFX",0,0,32)
NOFX A 1 A_CheckPlayerDone
wait
ClassIceDeath:
PHAR A 35
NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("PharaohShotWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("PharaohShotWepM")
goto ClassDeath
}
}

actor PharaohShotBoss : VCBaseWeapon
{
Weapon.AmmoUse 0
Weapon.SlotNumber 1
Tag "Pharaoh Man - Offense Mode"
Weapon.Ammotype "Base28Ammo"
Weapon.Ammotype2 "BaseAltfireAmmo"
Obituary "$OB_PHARAOHMAN1"
inventory.icon "P4IAI0"
States
{
Ready:
TNT1 A 0
PHAA A 0 A_JumpIfInventory("BaseAltfireAmmo",36,"Ready.CanThird")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PHAA A 0 A_GiveInventory("Base28Ammo",1)
PHAA A 0 A_GiveInventory("BaseAltfireAmmo",2)
Goto Ready

Ready.CanThird:
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") PHAA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") PHAA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") PHAA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") PHAA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
PHAA A 0 A_GiveInventory("Base28Ammo",1)
PHAA A 0 A_GiveInventory("BaseAltfireAmmo",2)
Goto Ready

Select:
PHAA A 0 A_GiveInventory("PharaohSkinHandler",1)
PHAA A 0 ACS_ExecuteAlways(998,0,783)
PHAA A 10 A_WeaponReady(14)
goto Ready

Deselect:
TNT1 A 0 A_GunFlash("NoFlash")
DeselectX:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
PHAA A 1 A_Lower
Loop

User1:
PHAH A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
PHAH ABCDEFGHIJ 1 A_Stop
PHAH A 0 A_PlaySoundEx("weapon/pharaohaura","Weapon")
PHAH A 0 A_TakeInventory("BaseAltfireAmmo",36)
PHAH KLMKLMKLMKLMKLMKLMKLMKLMKLMKLM 1 A_GiveInventory("PharaohTFMovement")//A_ChangeVelocity(28,0,0,CVF_RELATIVE|CVF_REPLACE)
PHAH JIHGFEDCBA 1 A_Stop
PHAA A 4
goto Ready

Fire:
PHAA A 0 A_GiveInventory("BaseCustomFlag1")
PHAA A 0 A_GunFlash("Flash.M1Recharge")
PHAA A 0 offset(0,90)
PHAW A 1 offset(4,22)
PHAW A 1 offset(13,-28)
PHAW A 1 offset(26,-42)
PHAW F 1 offset(39,-56)
PHAW F 1 offset(52,-68)
PHAW F 1 offset(65,-74)
PHAW F 0 A_PlaySoundEx("weapon/pharaohcharge","Weapon")

Fire.Charge:
TOAD A 0 A_GiveInventory("ToadChargeDamageGive")
PHAW FF 1 A_GiveInventory("PharaohManCharge",1)
PHAW GG 1 A_GiveInventory("PharaohManCharge",1)
PHAA A 0 A_JumpIfInventory("PharaohManCharge",32,"Fire.FullHold")
PHAA A 0 A_Refire("Fire.Charge")
PHAA A 0 A_TakeInventory("PharaohManCharge",999)
Goto Lower

Lower:
PHAW F 0 A_TakeInventory("PharaohManCharge",999)
TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
PHAW F 1 offset(65,-74) A_StopSound(CHAN_WEAPON) //Just
PHAW F 1 offset(52,-68) A_StopSound(CHAN_WEAPON) //in
PHAW F 1 offset(39,-56) A_StopSound(CHAN_WEAPON) //case:tm:
PHAW A 1 offset(26,-42) A_TakeInventory("BaseCustomFlag1")
PHAW A 1 offset(13,-28) A_TakeInventory("PharaohManCharge",999)
PHAW A 1 offset(4,22) A_ClearRefire
PHAA A 0 offset(0,90)
PHAA A 2 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
PHAA A 0 A_GunFlash("NoFlash")
goto Ready

Fire.FullHold:
PHAW F 0 A_PlaySoundEx("weapon/pharaohchargeloop","Weapon",1)

Fire.FullHoldNext:
PHAW F 1 offset(65,-70) A_SpawnItemEx("PharaohChargeFX",random(0,32),0,0,momx,momy,random(3,15),random(0,359),SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION,64)
PHAW G 1 offset(65,-74) A_SpawnItemEx("PharaohChargeFX",random(0,32),0,0,momx,momy,random(3,15),random(0,359),SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION,64)
PHAW F 0 A_Refire("Fire.FullHold")
PHAW A 0 A_TakeInventory("PharaohManCharge",999)
goto Fire.FullShot

Fire.FullShot:
TNT1 A 0 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
TNT1 A 0 A_StopSound(CHAN_WEAPON)
TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
TNT1 A 0 A_GiveInventory("PharaohWaveAnim")
PHAB ABCD 1 A_TakeInventory("PharaohManCharge",999)
PHAA A 0 A_TakeInventory("BaseCustomFlag1")
TNT1 A 0 A_StopSound(CHAN_WEAPON)
PHAA A 0 A_PlaySoundEx("weapon/pharaohwavefire","Weapon")
PHAA A 0 A_FireCustomMissile("PharaohManWave",0,1,0,8)
PHAB FED 3 A_ClearRefire
PHAB CBA 2 A_ClearRefire
PHAA A 7
PHAA A 0 A_GunFlash("NoFlash")
goto Ready

Altfire:
RATU A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
PHA4 F 1
PHA4 F 1 OffSet(-70,72)
PHA4 F 1 OffSet(-121,112)
PHAA A 0 A_PlaySoundEx("weapon/pharaohthrow2","Weapon")
PHAA A 0 A_FireCustomMissile("PharaohManShot1",0,0,0,8)
PHA4 J 1 OffSet(1,33)
PHA4 J 1 OffSet(-21,56)
PHA4 J 1 OffSet(-35,84)
PHAA A 1 OffSet(0,69)
PHAA A 1 OffSet(0,48)
PHAA A 1 A_WeaponReady(WRF_NOFIRE)
Goto Ready

UltimateAttack:
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,122)
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 A_PlaySoundEx("weapon/pharaoh1","Weapon")
TNT1 A 0 A_PlaySoundEx("weapon/pharaohroyal","Body")
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",999)
CUTA A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
CUTA A 0 A_GiveInventory("PharaohUltCooldown")
PHAW A 1 offset(4,22) ACS_NamedExecuteWithResult("VC_SetState",8)
PHAW A 0 A_SpawnItemEx("PharaohRoyalBall",0,0,140)
PHAW A 1 offset(26,-42) A_FireCustomMissile("PharaohChargeFXSpawn",random(0,359),0,0,0,0,random(-45,45))
PHAW F 1 offset(39,-56) A_FireCustomMissile("PharaohChargeFXSpawn",random(0,359),0,0,0,0,random(-45,45))
PHAW F 1 offset(52,-68) A_FireCustomMissile("PharaohChargeFXSpawn",random(0,359),0,0,0,0,random(-45,45))
PHAW FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1 offset(65,-74) A_FireCustomMissile("PharaohChargeFXSpawn",random(0,359),0,0,0,0,random(-45,45))
PHAW GFGFGFG 2 offset(65,-74)
PHAA A 0 A_PlaySoundEx("weapon/pharaohthrow3","Weapon")
PHAA A 0 A_FireCustomMissile("PharaohRoyalShot",0,0,0,8)
PHA4 F 2 A_WeaponReady(WRF_NOFIRE)
PHA4 F 2 OffSet(-70,72)
PHA4 F 2 OffSet(-121,112)
PHA4 J 2 OffSet(1,33)
PHA4 J 2 OffSet(-21,56)
PHA4 J 2 OffSet(-35,84)
TNT1 A 4
PHAA A 2 OffSet(0,69)
PHAA A 2 OffSet(0,48)
PHAA A 2 A_WeaponReady(WRF_NOFIRE)
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
goto Ready

NoAmmo: //You should never get here using this weapon, but you never know with this god-awful engine. -Fr3ak
PHAA A 0 A_GiveInventory("Base28Ammo",1)
PHAA A 3 A_GiveInventory("BaseAltfireAmmo",2)
Goto Ready

Flash.M1Recharge:
TNT1 A 0 A_GiveInventory("Base28Ammo",1)
TNT1 A 3 A_GiveInventory("BaseAltfireAmmo",2)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
loop
}
}

actor PharaohShotBoss2 : PharaohShotBoss
{
Weapon.SlotNumber 2
Tag "Pharaoh Man - Defense Mode"
Obituary "$OB_PHARAOHMAN8"
inventory.icon "P4IBI0"
States
{
Ready:
TNT1 A 0
PHAA A 0 A_JumpIfInventory("BaseAltfireAmmo",36,"Ready.CanThird")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PHAA A 0 A_GiveInventory("Base28Ammo",1)
PHAA A 0 A_GiveInventory("BaseAltfireAmmo",2)
Goto Ready

Ready.CanThird:
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") PHAA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") PHAA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") PHAA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
PHAA A 1 A_WeaponReady PHAA A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") PHAA A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
PHAA A 0 A_GiveInventory("Base28Ammo",1)
PHAA A 0 A_GiveInventory("BaseAltfireAmmo",2)
Goto Ready

Deselect:
TNT1 A 0 A_GunFlash("NoFlash")
DeselectX:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
PHAA A 1 A_Lower
Loop

Fire:
PHAA A 0 A_JumpIfInventory("Base28Ammo",21,"Fire.Real")
goto NoAmmo

Fire.Real:
PHAA A 0 A_PlaySoundEx("weapon/pharaohshield","Weapon")
PHAA A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
PHAH NOPQRS 2
PHAA A 0 A_GiveInventory("PharaohShieldSpeed")
PHAA A 0 A_GunFlash("Flash.M1AmmoDrain")
PHAA A 0 A_GiveInventory("BaseCustomFlag2")

Fire.Shielding:
PHAA A 0 A_JumpIfInventory("Base28Ammo",1,1)
goto Fire.Cooldown
PHAH S 1 A_SpawnItemEx("PharaohManShield",33,0,0,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION)
PHAA A 0 A_Refire("Fire.Shielding")
goto Fire.Cooldown

Fire.Cooldown:
PHAA A 0 A_TakeInventory("BaseCustomFlag2")
PHAA A 0 A_TakeInventory("PharaohShieldSpeed")
PHAA A 1 Offset(0,42) A_GunFlash("NoFlash")
PHAA A 1 Offset(0,41) A_ClearRefire
PHAA A 1 Offset(0,40)
PHAA A 1 Offset(0,39)
PHAA A 1 Offset(0,38)
PHAA A 1 Offset(0,37)
PHAA A 1 Offset(0,36)
PHAA A 1 Offset(0,35)
PHAA A 1 Offset(0,34)
PHAA A 1 Offset(0,33)
PHAA A 6 A_WeaponReady(WRF_NOFIRE)
goto Ready

Altfire:
RATU A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
PHAA A 1
PHAA A 0 A_JumpIf(z-floorz>0, "Altfire.Air")
PHAA A 0 A_JumpIfInventory("Base28Ammo",21,"Altfire.Real")
goto NoAmmo

Altfire.Real:
PHAA A 0 A_CheckFloor("Altfire.Real2")
goto Altfire.Air

Altfire.Real2:
PHAA A 1
TNT1 A 0 A_GiveInventory("NoPushFlag",1)
PHAA A 0 A_ChangeFlag("FLOORHUGGER",1)
PHAA A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
PHAA A 0 A_SpawnItemEx("PharaohFloorEye",0,0,0,0,0,0,0,1)
PHAA A 0 ACS_Execute(191,0,APROP_JumpZ,0,1)
PHAA A 0 A_PlaySoundEx("weapon/pharaoheye","Weapon")
PHAH J 0 A_GiveInventory("PharaohEyeSpeed")
HAZH D 0 A_TakeInventory("UnSolid",1)
HAZH D 0 A_ChangeFlag("SOLID",0)
HAZH D 0 A_ChangeFlag("PICKUP",0)
PHAH J 0 A_ChangeFlag("INVULNERABLE",1)
PHAH J 0 A_GiveInventory("InvProtection",1)
PHAH ADGJ 1 A_Stop
PHAH AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PharaohEyeFX",random(0,32),0,0,random(0,6),0,random(1,3),random(0,359),1)
PHAH J 0 A_GunFlash("Flash.M1AmmoDrain")
PHAH JJJ 1 A_SetTranslucent(0.0)

Altfire.Hidden:
PHAA A 0 A_JumpIfInventory("Base28Ammo",1,1)
goto Altfire.End
PHAH J 1
PHAA A 0 A_Refire("Altfire.Hidden")
goto Altfire.End

Altfire.End:
PHAH AAAAAAAA 0 A_SpawnItemEx("PharaohEyeFX",random(0,32),0,0,random(0,6),0,random(1,3),random(0,359),1)
PHAA A 0 ACS_NamedExecuteWithResult("VC_SetState",4)
PHAH J 0 A_TakeInventory("Base28Ammo",7)
PHAH J 0 A_TakeInventory("PharaohEyeSpeed")
PHAH J 0 A_ChangeFlag("INVULNERABLE",0)
PHAH J 0 A_TakeInventory("InvProtection",1)
PHAH J 0 A_ChangeFlag("FLOORHUGGER",0)
PHAH J 0 A_SpawnItemEx("PharaohEyeHitbox")
PHAH J 0 A_Stop
PHAA A 0 A_PlaySoundEx("weapon/pharaoheye","Weapon")
PHAH J 0 A_GunFlash("NoFlash")
PHAH J 1 A_Stop PHAH AA 0 A_SpawnItemEx("PharaohEyeFX",random(0,16),0,0,random(0,6),0,random(1,3),random(0,359),1)
PHAH J 0 A_SetTranslucent(1.0)
PHAH J 0 A_SpawnItemEx("PharaohEyeHitbox")
PHAH J 0 A_Stop
PHAH J 1 A_SetTranslucent(1.0) PHAH AA 0 A_SpawnItemEx("PharaohEyeFX",random(0,16),0,0,random(0,6),0,random(1,3),random(0,359),1)
PHAH J 0 A_SpawnItemEx("PharaohEyeHitbox")
PHAH J 0 A_Stop
PHAH J 1 A_SetTranslucent(1.0) PHAH AA 0 A_SpawnItemEx("PharaohEyeFX",random(0,16),0,0,random(0,6),0,random(1,3),random(0,359),1)
PHAH J 0 A_Stop
PHAH G 1 A_SpawnItemEx("PharaohEyeHitbox") PHAH AA 0 A_SpawnItemEx("PharaohEyeFX",random(0,16),0,0,random(0,6),0,random(1,3),random(0,359),1)
PHAH J 0 A_Stop
PHAH G 1 A_SpawnItemEx("PharaohEyeHitbox") PHAH AA 0 A_SpawnItemEx("PharaohEyeFX",random(0,16),0,0,random(0,6),0,random(1,3),random(0,359),1)
PHAH J 0 A_GiveInventory("PharaohEyeEnd")
PHAA A 0 ACS_Execute(191,0,APROP_JumpZ,12,1)
DRIA A 0 A_SpawnItemEx("ReSolidifier")
TNT1 A 0 A_ChangeFlag("PICKUP",1)
PHAH DA 2 A_TakeInventory("NoPushFlag",1)
PHAA A 6
goto Ready

Altfire.Air:
PHAA A 0 ACS_NamedExecuteWithResult("VC_SetState",6)
PHAB A 0 A_SetGravity(0.5)
PHAB A 0 A_PlaySoundEx("weapon/pharaohthrow1","Weapon")
PHAB A 0 A_FireCustomMissile("PharaohManShot2",0,0,1,8)
PHAB DEFEDDD 2
PHAB A 0 A_GiveInventory("GravityRestore")
goto Ready

UltimateAttack:
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,29)
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 A_PlaySoundEx("weapon/mirrorabsorb","Weapon")
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",999)
CUTA A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
CUTA A 0 A_SpawnItemEx("PharaohSasoWatcher")
CUTA A 0 A_GiveInventory("PharaohUltCooldown")
PHAW A 1 offset(4,22) ACS_NamedExecuteWithResult("VC_SetState",7)
PHAW A 0 A_FireCustomMissile("PharaohSasoreenuCoffin",-40,0,0,0)
PHAW A 0 A_FireCustomMissile("PharaohSasoreenuCoffin",0,0,0,0)
PHAW A 0 A_FireCustomMissile("PharaohSasoreenuCoffin",40,0,0,0)
PHAW A 0 A_FireCustomMissile("PharaohMummiraCoffin",140,0,0,0)
PHAW A 0 A_FireCustomMissile("PharaohMummiraCoffin",180,0,0,0)
PHAW A 0 A_FireCustomMissile("PharaohMummiraCoffin",220,0,0,0)
PHAW A 1 offset(13,-28)
PHAW A 1 offset(26,-42)
PHAW F 1 offset(39,-56)
PHAW F 1 offset(52,-68)
PHAW F 20 offset(65,-74)
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
goto Ready

Flash.M1AmmoDrain:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 4 A_TakeInventory("Base28Ammo",1)
loop
}
}

actor PharaohManCharge : Ammo
{
	inventory.amount 1
	inventory.maxamount 32
	+INVENTORY.IGNORESKILL
}

actor PharaohWaveAnim : Powerup
{
Powerup.Duration 2
}

actor PharaohEyeEnd : Powerup
{
Powerup.Duration 6
}

actor PharaohSasoCancel : Powerup
{
Powerup.Duration -5
}

actor PharaohChargeFX : BasicClientSide
{
Translation "192:192=4:4", "198:198=216:216"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
TNT1 A 0 A_Jump(256,"S_1","S_2","S_3","S_4")
S_1:
PHWC CCCCC 1
goto End
S_2:
PHWC DDDDD 1
goto End
S_3:
PHWC EEEEE 1
goto End
S_4:
PHWC FFFFF 1
goto End
End:
PHWC "####################" 1 A_FadeOut(0.2)
stop
}
}

actor PharaohHitFX : PharaohChargeFX
{
renderstyle add
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
TNT1 A 0 A_Jump(256,"S_1","S_2","S_3","S_4")
S_1:
PHWC CCCCCCCC 1
goto End
S_2:
PHWC DDDDDDDD 1
goto End
S_3:
PHWC EEEEEEEE 1
goto End
S_4:
PHWC FFFFFFFF 1
goto End
End:
PHWC "####################" 1 A_FadeOut(0.05)
stop
}
}

actor PharaohEyeFX : PharaohChargeFX
{
renderstyle "subtract"
}

actor PharaohManWave
{
Translation "192:192=4:4", "198:198=216:216"
Obituary "$OB_PHARAOHMAN2"
PROJECTILE
radius 24
height 32
damage(30)
speed 60
+RIPPER
scale 2.5
damagetype "PharaohmanWave"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
PWVE AA 0 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)
PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)
loop
Death:
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PharaohChargeFX",random(0,32),0,random(-32,32),random(0,12),0,random(-12,12),random(0,359),1)
stop
}
}

actor PharaohmanWaveProtect : PowerProtection
{
Powerup.Duration 14
DamageFactor "PharaohmanWave", 0.0
}

actor PharaohManShot1 : PharaohShot1
{
Translation "0:225=4:4", "225:225=216:216"
Obituary "$OB_PHARAOHMAN1"
damage (12)
speed 40
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
goto Super::Spawn
Death:
TNT1 AAAAA 0 A_SpawnItemEx("PharaohShotFX",0,0,0,random(-10,10),random(-10,10),random(-10,10))
TNT1 A 0 A_PlaySoundEx("weapon/solarshoot","Body")
TNT1 A 1 A_SpawnItemEx("OilPitIgnite",0,0,8)
stop
}
}

actor PharaohManShot2 : PharaohShot2
{
Translation "0:225=4:4", "225:225=216:216"
Obituary "$OB_PHARAOHMAN1"
damage (20)
speed 30
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
goto Super::Spawn
Death:
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("PharaohShotFX",0,0,0,random(-10,10),random(-10,10),random(-10,10))
TNT1 A 0 A_PlaySoundEx("weapon/solarshoot","Body")
TNT1 A 1 A_SpawnItemEx("OilPitIgnite",0,0,8)
stop
}
}

actor PharaohManShield
{
var int user_USER;
Height 64
Radius 32
Speed 0
health 1
-SOLID
+NOGRAVITY
+DONTDRAIN
+THRUSPECIES
+GHOST
painchance 256
bloodtype ""
renderstyle "none"
species "PharaohShieldType"
damagefactor "TerraChaser", 0.0
damagefactor "TerraChaser2", 0.0
damagefactor "EddieBomber", 0.0
States
{
Spawn:
PLAY A 0
PLAY A 0 A_RearrangePointers(0,0,2)
PLAY A 0 A_ChangeFlag("SHOOTABLE",1)
PLAY A 0 A_ChangeFlag("DONTRIP",1)
PLAY A 1
PLAY A 1
stop
Death.FiremanAltPillar:
Death.OilmanFlame:
Death.OilmanSlick:
Death.CrashmanLand:
Death.HeatmanPillar2:
Death.ShadowmanCaltrop:
Death.FlamemanPillar:
Death.PlantSentry:
Death.BurstmanFloor:
Death.TurbomanWheel:
Death.TurbomanBurn:
Death.Shururun:
Death.Chillman:
Death.ChillmanSpikeUlt:
Death.BalladeFloor:
Death.BalladeUltFloor:
Death.MetongerZSentry:
Death.Reggae:
TNT1 A 0 A_PlaySound("item/protoreflect")
PLAY A 0 ACS_NamedExecuteWithResult("cbm_GiveIfPlayerHitMe",282)
PLAY A 1
stop
Death:
TNT1 A 0 A_PlaySound("item/protoreflect")
PLAY A 0 ACS_NamedExecuteWithResult("cbm_GiveIfPlayerHitMe",28)
PLAY A 1
stop
Death.TimemanSlow:
Death.Crashman:
Death.CrashmanBomb:
Death.CrashBomb:
Death.BrightManUltLarge:
Death.BrightManUltSmall:
Death.ToadFlush2:
Death.ToadmanRainFlush:
Death.GravityUlt:
Death.GravityHold:
Death.GravityManHoldDown:
Death.GravityUlt:
Death.CentaurManFlash:
Death.CentaurManFlash2:
Death.CentaurManFlash2:
Death.GrenademanM1:
Death.FlashBomb:
Death.PirateManMine1:
Death.PirateManMine2:
Death.PirateManMine3:
Death.PirateManMine4:
Death.PirateManMine5:
Death.PirateManMine6:
Death.PirateManMine7:
Death.PirateManMine8:
Death.PirateManMineDirect1:
Death.PirateManMineDirect2:
Death.PirateManMineDirect3:
Death.PirateManMineDirect4:
Death.PirateManMineDirect5:
Death.PirateManMineDirect6:
Death.PirateManMineDirect7:
Death.PirateManMineDirect8:
Death.TornadoManUlt:
Death.TornadoManUlt2:
Death.Fire:
Nope:
TNT1 A 0
stop
}
}

actor PharaohCounterCooldown : Powerup
{
Powerup.Duration 20
}

actor PharaohShieldCounter : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PharaohCounterCooldown",1,"Nope")
TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PharaohChargeFX",random(0,32),0,random(0,48),random(0,12),0,random(-12,12),random(-55,55),1)
TNT1 A 0 A_FireCustomMissile("PharaohManCounterWave",0,0,8,0)
TNT1 A 0 A_GiveInventory("PharaohCounterCooldown")
TNT1 A 0 A_PlaySoundEx("weapon/pharaohcounter","Weapon")
stop
Nope:
TNT1 A 0
stop
}
}

actor PharaohShieldCounter2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PharaohCounterCooldown",1,"Nope")
TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PharaohChargeFX",random(0,32),0,random(0,48),random(0,12),0,random(-12,12),random(-55,55),1)
TNT1 A 0 A_FireCustomMissile("PharaohManCounterWave2",0,0,8,0)
TNT1 A 0 A_GiveInventory("PharaohCounterCooldown")
TNT1 A 0 A_PlaySoundEx("weapon/pharaohcounter","Weapon")
stop
Nope:
TNT1 A 0
stop
}
}

actor PharaohShieldCounter3 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PharaohCounterCooldown",1,"Nope")
TNT1 A 0 A_FireCustomMissile("PharaohManCounterWave3",0,0,8,0)
TNT1 A 0 A_GiveInventory("PharaohCounterCooldown")
TNT1 A 0 A_PlaySoundEx("weapon/pharaohwavehit","Weapon")
stop
Nope:
TNT1 A 0
stop
}
}

actor PharaohManCounterWave : FastProjectile
{
var int user_PierceRipper;
Translation "192:192=4:4", "198:198=216:216"
Obituary "$OB_PHARAOHMAN3"
PROJECTILE
radius 20
height 32
damage(26)
speed 100//80
species "PharaohShieldType"
+THRUSPECIES
+RIPPER
+SEEKERMISSILE
+NOTARGETSWITCH
scale 2.5
damagetype "PharaohmanWaveCounter"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
PWVE A 0 A_SpawnItemEx("PharaohWaveEcho",0,0,0,0,0,0,0,1)
PWVE AA 0 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)

PWVE A 0 A_SpawnItemEx("PharaohWaveEcho",0,0,0,0,0,0,0,1)
PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)

PWVE A 0 A_SpawnItemEx("PharaohWaveEcho",0,0,0,0,0,0,0,1)
PWVE B 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)

PWVE A 0 A_SpawnItemEx("PharaohWaveEcho",0,0,0,0,0,0,0,1)
PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)
loopit:
PWVE B 0 A_SpawnItemEx("PharaohWaveEcho",0,0,0,0,0,0,0,1)
PWVE B 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)
PWVE A 0 A_SpawnItemEx("PharaohWaveEcho",0,0,0,0,0,0,0,1)
PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)
loop
Death:
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PharaohChargeFX",random(0,32),0,random(-32,32),random(0,12),0,random(-12,12),random(0,359),1)
stop
}
}

actor PharaohManCounterWave2 : PharaohManCounterWave
{
var int user_PierceRipper;
damage(13)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
PWVE A 0 A_SpawnItemEx("PharaohWaveEcho2",0,0,0,0,0,0,0,1)
PWVE AA 0 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)

PWVE A 0 A_SpawnItemEx("PharaohWaveEcho2",0,0,0,0,0,0,0,1)
PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)

PWVE A 0 A_SpawnItemEx("PharaohWaveEcho2",0,0,0,0,0,0,0,1)
PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)

PWVE A 0 A_SpawnItemEx("PharaohWaveEcho2",0,0,0,0,0,0,0,1)
PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)
loopit:

PWVE A 0 A_SpawnItemEx("PharaohWaveEcho2",0,0,0,0,0,0,0,1)
PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)

PWVE A 0 A_SpawnItemEx("PharaohWaveEcho2",0,0,0,0,0,0,0,1)
PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)PWVE A 1 A_SpawnItemEx("PharaohChargeFX",random(-80,-40),random(-16,16),random(-32,32),random(0,-3),0,0,0,1)
loop
Death:
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PharaohChargeFX",random(0,32),0,random(-32,32),random(0,12),0,random(-12,12),random(0,359),1)
stop
}
}

actor PharaohManCounterWave3 : FastProjectile
{
var int user_PierceRipper;
Translation "0:225=4:4", "225:225=216:216"
Obituary "$OB_PHARAOHMAN3"
PROJECTILE
radius 16
height 16
damage(10)
speed 70//50
species "PharaohShieldType"
+THRUSPECIES
+SEEKERMISSILE
+NOTARGETSWITCH
+RIPPER
scale 2.5
damagetype "PharaohmanWaveCounter"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
PHAS J 0 A_SpawnItemEx("PharaohBallEcho",0,0,0,0,0,0,0,1)
PHAS J 1 //A_SeekerMissile(90, 90, SMF_LOOK, 256, 10)
PHAS J 0 A_SpawnItemEx("PharaohBallEcho",0,0,0,0,0,0,0,1)
PHAS J 1 //A_SeekerMissile(90, 90, SMF_LOOK, 256, 10)
PHAS J 0 A_SpawnItemEx("PharaohBallEcho",0,0,0,0,0,0,0,1)
PHAS J 1// A_SeekerMissile(90, 90, SMF_LOOK, 256, 10)
loopit:
PHAS J 0 A_SpawnItemEx("PharaohBallEcho",0,0,0,0,0,0,0,1)
PHAS J 1// A_SeekerMissile(10, 10, SMF_LOOK, 256, 10)
loop
Death:
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
stop
}
}

actor PharaohWaveEcho : BasicClientSide
{
renderstyle add
States
{
Spawn:
PWVE ABABABABAB 1 A_SetScale(scalex-0.25,scaley-0.25)
stop
}
}

actor PharaohWaveEcho2 : PharaohWaveEcho
{
States
{
Spawn:
PWVE AAAAAAAAAA 1 A_SetScale(scalex-0.25,scaley-0.25)
stop
}
}

actor PharaohBallEcho : PharaohWaveEcho
{
alpha 0.5
Translation "0:225=4:4", "225:225=216:216"
States
{
Spawn:
PHAS JJJJJJJJJJ 1 A_SetScale(scalex-0.25,scaley-0.25)
stop
}
}

actor PharaohEyeSpeed : PowerSpeed
{
+POWERSPEED.NOTRAIL
powerup.duration 999
Speed 0.9//0.8
}

actor PharaohShieldSpeed : PowerSpeed
{
+POWERSPEED.NOTRAIL
powerup.duration 999
Speed 0.5
}

actor PharaohEyeHitbox
{
Obituary "$OB_PHARAOHMAN4"
PROJECTILE
+NOEXPLODEFLOOR
Radius 32
Height 32
scale 2.5
speed 0
damage (45)
Damagetype "PharaohmanEye"
States
{
Spawn:
TNT1 A 2
stop
}
}

actor PharaohmanEyeProtect : PowerProtection
{
Powerup.Duration 17
DamageFactor "PharaohmanEye", 0.0
}

actor PharaohFloorEye : BasicClientSide
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
PHEY A 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
PHEY A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
PHEY A 0 A_JumpIfInTargetInventory("PharaohEyeEnd",1,"Death")
loop
Death:
TNT1 A 0
stop
}
}

actor PharaohUltCooldown : UltBuildCooldownGiver
{
Powerup.Duration 70
}

actor PharaohBuryFX : BasicClientSide
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
SASO MNOPQ 3
stop
}
}

actor PharaohCoffinBoom : BasicClientSide
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
ASEX ABCDEF 2
stop
}
}

actor PharaohMummiraCoffin
{
PROJECTILE
+THRUACTORS
-DONTBLAST
+FLOORHUGGER
radius 1
height 1
speed 100
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
goto Death
Death:
TNT1 A 0 A_SpawnItemEx("PharaohMummiraStart",0,0,0,0,0,0,180)
stop
}
}

actor PharaohSasoreenuCoffin : PharaohMummiraCoffin
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
goto Death
Death:
TNT1 A 0 A_SpawnItemEx("PharaohSasoreenuStart")
stop
}
}

actor PharaohMummiraStart
{
translation "192:192=4:4", "198:198=216:216"
PROJECTILE
-NOGRAVITY
radius 8
height 8
scale 2.5
Obituary "$OB_PHARAOHMAN7"
+THRUACTORS
+FLOORHUGGER
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 AA 1 A_ChangeFlag("FLOORHUGGER",1)
TNT1 A 0 A_PlaySoundEx("weapon/pharaohrise","Body")
PHCO ABCDEF 2 A_ChangeFlag("FLOORHUGGER",1)
PHCO G 35 A_ChangeFlag("FLOORHUGGER",1)
goto Death
Death:
TNT1 A 0 A_Explode(20,128,0)
TNT1 A 0 A_PlaySoundEx("misc/mm3explosion","Body")
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_NULL,AAPTR_TARGET)
TNT1 A 0 A_SpawnItemEx("PharaohManMummira",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 2 A_SpawnItemEx("PharaohCoffinBoom",0,0,32,0,0,0,0,1)
stop
}
}

actor PharaohSasoreenuStart : PharaohMummiraStart
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 AA 1 A_ChangeFlag("FLOORHUGGER",1)
TNT1 A 0 A_PlaySoundEx("weapon/pharaohrise","Body")
PHCO ABCDEF 2 A_ChangeFlag("FLOORHUGGER",1)
PHCO G 35 A_ChangeFlag("FLOORHUGGER",1)
goto Death
Death:
TNT1 A 0 A_Explode(20,128,0)
TNT1 A 0 A_PlaySoundEx("misc/mm3explosion","Body")
TNT1 A 0 A_SpawnItemEx("PharaohManSasoreenu",0,0,0,0,0,0,0,1)
TNT1 A 2 A_SpawnItemEx("PharaohCoffinBoom",0,0,32,0,0,0,0,1)
stop
}
}

actor PharaohManMummira
{
species "PharaohShieldType"
+THRUSPECIES
Obituary "$OB_PHARAOHMAN5"
+NOEXPLODEFLOOR
+THRUACTORS
+CANTSEEK
MONSTER
-SOLID
+NOGRAVITY
-DONTBLAST
+SKYEXPLODE
-COUNTKILL
+FRIENDLY
+MISSILEMORE
+MISSILEEVENMORE
Radius 40
Height 60
scale 2.5
damage (0)
damagetype "Pharaohman"
speed 0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCodeTracer",1)
PHMU A 20 A_GiveToTarget("PharaohUltCooldown")
PHMU BCDEDED 2
TNT1 A 0 A_GiveToTarget("PharaohUltCooldown")
PHMU G 0 A_SpawnItemEx("MummiraHead",0,0,50,20,0,0,0,1,0)
PHMU FG 3
Death:
ASEX A 0 A_PlaySoundEx("misc/mm3explosion","Body")
TNT1 A 2 A_SpawnItemEx("PharaohCoffinBoom",0,0,16,0,0,0,0,1)
stop
}
}

actor MummiraHead
{
PROJECTILE
Radius 12
Height 12
scale 2.5
damage (27)
damagetype "Pharaohman"
speed 20
species "PharaohShieldType"
+THRUACTORS
+SEEKERMISSILE
Obituary "$OB_PHARAOHMAN5"
States
{
Spawn:
TNT1 A 0 A_TransferPointer(AAPTR_TARGET,AAPTR_DEFAULT,AAPTR_FRIENDPLAYER,AAPTR_TARGET)
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_TransferPointer(AAPTR_TARGET,AAPTR_DEFAULT,AAPTR_FRIENDPLAYER,AAPTR_TARGET)
loopit:
PHMU H 0 A_GiveToTarget("PharaohUltCooldown")
TNT1 A 0 A_GiveInventory("ProjectileCode",1)
PHMU H 0 A_SeekerMissile(75, 90, SMF_LOOK, 50, 10)
PHMU H 1 A_ChangeFlag("THRUACTORS",0)
PHMU H 0 A_SeekerMissile(75, 90, SMF_LOOK, 50, 10)
PHMU H 1 A_ChangeFlag("THRUACTORS",0)
PHMU I 0 A_SeekerMissile(75, 90, SMF_LOOK, 50, 10)
PHMU I 1 A_ChangeFlag("THRUACTORS",0)
PHMU I 0 A_SeekerMissile(75, 90, SMF_LOOK, 50, 10)
PHMU I 1 A_ChangeFlag("THRUACTORS",0)
PHMU I 0 A_SeekerMissile(75, 90, SMF_LOOK, 50, 10)
PHMU I 1 A_ChangeFlag("THRUACTORS",0)
PHMU H 0 A_SeekerMissile(75, 90, SMF_LOOK, 50, 10)
PHMU H 1 A_ChangeFlag("THRUACTORS",0)
loop
Death:
TNT1 A 0
stop
}
}

actor PharaohManSasoreenu
{
PROJECTILE
Damage (2)
damagetype "Pharaohman"
Obituary "$OB_PHARAOHMAN6"
Height 24
Radius 32
+RIPPER
+SEEKERMISSILE
Scale 2.5
Speed 11
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
SASO A 2 A_GiveInventory("ProjectileCode")
SASO A 0 A_GiveToTarget("PharaohUltCooldown")
SASO A 0 A_JumpIfInTargetInventory("PharaohSasoCancel",1,"Sink")
SASO B 0 A_SeekerMissile(45, 45, SMF_LOOK, 256, 15)
SASO B 1 A_JumpIf(z-floorz>8,"Down")
SASO B 0 A_SeekerMissile(45, 45, SMF_LOOK, 256, 15)
SASO B 1 A_JumpIf(z-floorz>8,"Down")
SASO B 0 A_SeekerMissile(45, 45, SMF_LOOK, 256, 15)
SASO A 1 A_JumpIf(z-floorz>8,"Down")
SASO B 0 A_SeekerMissile(45, 45, SMF_LOOK, 256, 15)
SASO A 1 A_JumpIf(z-floorz>8,"Down")
SASO A 0 A_ChangeVelocity(11,0,0, CVF_REPLACE | CVF_RELATIVE)
goto Spawn+3
Down:
TNT1 A 0 A_SpawnItemEx("DownSaso",0,0,0,0,0,-11,0,1)
stop
XDeath:
Crash:
TNT1 A 0
stop
Sink:
SASO CCCC 0 A_Stop
SASO CDEFGHIJKL 2 A_SpawnItemEx("PharaohBuryFX",random(0,60),0,random(0,60),0,0,0,random(0,359),1)
stop
Death:
TNT1 A 0 A_SpawnItemEx("UpSaso0",-1,0,11,0,0,1,0,1)
stop
}
}

actor UpSaso0 : PharaohManSasoreenu
{
+NOGRAVITY
+STEPMISSILE
maxstepheight 17
States
{
Spawn:
SASO R 0
SASO R 0 A_ChangeVelocity(11,0,0, CVF_REPLACE | CVF_RELATIVE) //A_Recoil(-23)
SASO R 1 A_GiveToTarget("PharaohUltCooldown")
TNT1 A 0 A_JumpIf(z-floorz < 48, "SpawnFloor")
TNT1 A 0 A_SpawnItemEx("PharaohManSasoreenu",0,0,0,11,0,0,0,1)
stop
SpawnFloor:
SASO R 0 A_SpawnItemEx("PharaohManSasoreenu",0,0,-(z-floorz),11,0,0,0,1)
stop
XDeath:
Crash:
TNT1 A 0
stop
Death:
TNT1 A 0 A_JumpIf(ceilingz-z > 48, "Continue")
TNT1 A 0
stop
Continue:
TNT1 A 0 A_SpawnItemEx("UpSaso1",0,0,4,0,0,1,0,1)
stop
}
}

actor UpSaso1 : UpSaso0
{
States
{
Spawn:
SASO R 2
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeVelocity(23,0,0, CVF_REPLACE | CVF_RELATIVE) //A_Recoil(-23)
SASO R 1 A_GiveToTarget("PharaohUltCooldown")
TNT1 A 0 A_JumpIf(z-floorz < 48, "SpawnFloor")
TNT1 A 0 A_SpawnItemEx("PharaohManSasoreenu",0,0,0,11,0,0,0,1)
stop
SpawnFloor:
TNT1 A 0 A_SpawnItemEx("PharaohManSasoreenu",0,0,-(z-floorz),11,0,0,0,1)
stop
XDeath:
Crash:
TNT1 A 0
stop
Death:
TNT1 A 0 A_JumpIf(ceilingz-z > 48, "Continue")
TNT1 A 0
stop
Continue:
TNT1 A 0 A_SpawnItemEx("UpSaso2",0,0,4,0,0,11,0,1)
stop
}
}

actor UpSaso2 : UpSaso1
{
States
{
Death:
TNT1 A 0 A_JumpIf(ceilingz-z > 48, "Continue")
TNT1 A 0
stop
Continue:
TNT1 A 0 A_SpawnItemEx("UpSaso3",0,0,4,0,0,11,0,1)
stop
}
}

actor UpSaso3 : UpSaso1
{
States
{
Spawn:
SASO R 2
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeVelocity(11,0,0, CVF_REPLACE | CVF_RELATIVE) //A_Recoil(-23)
SASO R 1 A_GiveToTarget("PharaohUltCooldown")
TNT1 A 0 A_JumpIf(z-floorz < 48, "SpawnFloor")
TNT1 A 0 A_SpawnItemEx("PharaohManSasoreenu",0,0,0,11,0,0,0,1)
stop
SpawnFloor:
TNT1 A 0 A_SpawnItemEx("PharaohManSasoreenu",0,0,-(z-floorz),11,0,0,0,1)
stop
Death:
TNT1 A 0 A_JumpIf(ceilingz-z > 48, "Continue")
TNT1 A 0
stop
Continue:
TNT1 A 0 A_SpawnItemEx("UpSaso4",0,0,4,0,0,11,0,1)
stop
}
}

actor UpSaso4 : UpSaso3
{
States
{
Death:
TNT1 A 0 A_JumpIf(ceilingz-z > 48, "Continue")
TNT1 A 0
stop
Continue:
TNT1 A 0 A_SpawnItemEx("UpSaso1",0,0,4,0,0,11,0,1)
stop
}
}

actor DownSaso : PharaohManSasoreenu
{
+NOGRAVITY
-NOEXPLODEFLOOR
States
{
Spawn:
SASO S 0
SASO S 1 A_GiveToTarget("PharaohUltCooldown")
loop
Crash:
XDeath:
TNT1 A 0
stop
Death:
TNT1 A 0 A_SpawnItemEx("PharaohManSasoreenu",0,0,0,11,0,0,0,1)
stop
}
}

actor PharaohSasoWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
reactiontime 200
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIfInTargetInventory("PharaohSasoCancel",1,"Death")
loop
Death:
TNT1 A 1 A_GiveToTarget("PharaohSasoCancel",1)
stop
}
}

actor PharaohRoyalBall : BaseDecorativeActor
{
Obituary "$OB_PHARAOHMAN8"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_Explode(5,64,0)
PHRY A 1 A_Warp(AAPTR_TARGET,0,0,140,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
PHRY A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
PHRY A 0 A_GiveInventory("CutterFlag",1)
PHRY A 0 A_JumpIfInventory("CutterFlag",17,"Spawn2")
TNT1 A 0 A_Explode(5,64,0)
PHRY B 1 A_Warp(AAPTR_TARGET,0,0,140,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
PHRY B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
PHRY A 0 A_GiveInventory("CutterFlag",1)
PHRY B 0 A_JumpIfInventory("CutterFlag",17,"Spawn2")
loop
Spawn2:
TNT1 A 0 A_Explode(5,64,0)
PHRY C 1 A_Warp(AAPTR_TARGET,0,0,140,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
PHRY C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
PHRY C 0 A_GiveInventory("CutterFlag",1)
PHRY C 0 A_JumpIfInventory("CutterFlag",34,"Spawn3")
TNT1 A 0 A_Explode(5,64,0)
PHRY D 1 A_Warp(AAPTR_TARGET,0,0,140,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
PHRY D 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
PHRY D 0 A_GiveInventory("CutterFlag",1)
PHRY D 0 A_JumpIfInventory("CutterFlag",34,"Spawn3")
loop
Spawn3:
TNT1 A 0 A_Explode(5,64,0)
PHRY E 1 A_Warp(AAPTR_TARGET,0,0,140,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
PHRY E 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
PHRY E 0 A_GiveInventory("CutterFlag",1)
PHRY E 0 A_JumpIfInventory("CutterFlag",51,"Death")
TNT1 A 0 A_Explode(5,64,0)
PHRY F 1 A_Warp(AAPTR_TARGET,0,0,140,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
PHRY F 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
PHRY F 0 A_GiveInventory("CutterFlag",1)
PHRY F 0 A_JumpIfInventory("CutterFlag",51,"Death")
loop
Death:
TNT1 A 0
stop
}
}

actor PharaohRoyalShot
{
Translation "211:211=4:4", "225:225=216:216"
Obituary "$OB_PHARAOHMAN8"
PROJECTILE
radius 40
height 40
damage(13)
speed 53
+RIPPER
+NOCLIP
scale 2.5
damagetype "PharaohUlt"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
PHRY F 0 A_PlaySoundEx("weapon/atomicfire","Body")
TNT1 A 0 A_GiveToTarget("PharaohUltCooldown")
PHRY EEE 0 A_SpawnItemEx("PharaohRoyalFX",random(-40,40),random(-40,40),random(-40,40),random(-8,8),random(-8,8),random(-8,8),0,1)
PHRY E 1 A_SpawnItemEx("PharaohRoyalFX",random(-40,40),random(-40,40),random(-40,40),random(-8,8),random(-8,8),random(-8,8),0,1)
PHRY E 0 A_ChangeFlag("NOCLIP",0)
loopit:
TNT1 A 0 A_GiveToTarget("PharaohUltCooldown")
PHRY F 0 A_PlaySoundEx("weapon/atomicfire","Body")
PHRY FFF 0 A_SpawnItemEx("PharaohRoyalFX",random(-40,40),random(-40,40),random(-40,40),random(-8,8),random(-8,8),random(-8,8),0,1)
PHRY F 1 A_SpawnItemEx("PharaohRoyalFX",random(-40,40),random(-40,40),random(-40,40),random(-8,8),random(-8,8),random(-8,8),0,1)
PHRY EEE 0 A_SpawnItemEx("PharaohRoyalFX",random(-40,40),random(-40,40),random(-40,40),random(-8,8),random(-8,8),random(-8,8),0,1)
PHRY E 1 A_SpawnItemEx("PharaohRoyalFX",random(-40,40),random(-40,40),random(-40,40),random(-8,8),random(-8,8),random(-8,8),0,1)
loop
Death:
TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_Explode(30,256,0)
TNT1 A 0 A_PlaySoundEx("weapon/firestorm","Body")
TNT1 A 0 A_PlaySoundEx("weapon/magmabazooka","Auto")
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("PharaohRoyalFX",random(-48,48),random(-48,48),random(-48,48),random(-32,32),random(-32,32),random(-32,32),0,1)
TNT1 A 0 A_SetScale(4.0,4.0)
PHAS LMNO 3
stop
}
}

actor PharaohRoyalFX : BasicClientSide
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
PHRY A 1 A_ScaleVelocity(0.83)
PHRY A 0 A_FadeOut(0.04)
PHRY B 1 A_ScaleVelocity(0.83)
PHRY B 0 A_FadeOut(0.04)
loop
}
}

actor PharaohChargeFXSpawn
{
PROJECTILE
+NOINTERACTION
+CLIENTSIDEONLY
Scale 2.5
speed 80
States
{
Spawn:
TNT1 A 0
TNT1 A 1
Death:
TNT1 A 0 A_CustomMissile("PharaohChargeFX2",random(0,0),random(0,0),random(0,0),CMF_TRACKOWNER)
stop
}
}

actor PharaohChargeFX2
{
Translation "192:192=4:4", "198:198=216:216"
PROJECTILE
+NOINTERACTION
+CLIENTSIDEONLY
renderstyle translucent
alpha 0.6
speed 8
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
PHWC F 1 A_JumpIfCloser(32,"Death")
PHWC F 0 A_FadeIn(0.1)
PHWC E 1 A_JumpIfCloser(32,"Death")
PHWC E 0 A_FadeIn(0.1)
PHWC D 1 A_JumpIfCloser(32,"Death")
PHWC D 0 A_FadeIn(0.1)
PHWC C 1 A_JumpIfCloser(32,"Death")
PHWC C 0 A_FadeIn(0.1)
PHWC F 0 A_CustomMissile("PharaohChargeFX3",random(0,0),random(0,0),random(0,0),CMF_TRACKOWNER)
stop
Death:
SPFX A 0
stop
}
}

actor PharaohChargeFX3 : PharaohChargeFX2
{
alpha 1.0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
PHRY A 1 A_JumpIfCloser(32,"Death")
PHRY A 0 A_CustomMissile("PharaohChargeFX3",random(0,0),random(0,0),random(0,0),CMF_TRACKOWNER)
stop
}
}

actor PharaohAfterBurnPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("NoNewAfterBurn",1)
TNT1 A 0 A_GiveInventory("NewAfterBurn",1)
TNT1 A 0 A_GiveInventory("PharaohAfterBurnDuration",1)
stop
}
}

actor PharaohAfterBurnDuration : PowerUp
{
Powerup.Duration 200
}

actor PharaohAfterBurnDamageTimer : PowerUp
{
Powerup.Duration 5
}

actor PharaohAfterBurn
{
Height 0
Radius 0
+NOINTERACTION
+NOCLIP
damagetype "PharaohBurning"
Obituary "$OB_PHARAOHMAN8"
PROJECTILE
states
{
Spawn:
TNT1 A 0
SpawnStart0:
TNT1 A 0 A_GiveInventory("PharaohAfterBurnDamageTimer",1)
SpawnStart:
TNT1 A 1
TNT1 A 0 A_JumpIfInventory("NewAfterBurn",1,"SpawnStart",AAPTR_TRACER)
Spawn2:
TNT1 A 1
TNT1 A 0 A_GiveInventory("PharaohAfterburnFunc",1)
loop
Death:
TNT1 A 0
stop
}
}

actor PharaohAfterburnFunc : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PharaohAfterBurnDuration",1,"Pickup2",AAPTR_TRACER)
PickupRemove:
TNT1 A 0 Thing_Remove(0)
stop
Pickup2:
TNT1 A 0 A_JumpIfInventory("NewAfterBurn",1,"PickupRemove",AAPTR_TRACER)
TNT1 A 0 A_JumpIfInventory("AfterBurnDamageTimer",1,"PickupWait")
TNT1 A 0 A_GiveInventory("AfterBurnDamageTimer",1)
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,ACS_NamedExecuteWithResult("TracerHeightGet")/2,0,0)
TNT1 A 0 A_RadiusGive("AfterBurnImmune",IMMUNE_RADIUS,RGF_PLAYERS|RGF_MONSTERS|RGF_OBJECTS)
TNT1 A 0 A_TakeInventory("AfterBurnImmune",1,0,AAPTR_TRACER)
TNT1 A 0 A_Explode(1,1,0,0,1)
stop
PickupWait:
TNT1 A 0
stop
}
}

actor PharaohShotFX : BasicClientSide
{
Translation "0:225=4:4", "225:225=216:216"
scale 2.0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
PHAS A 1 A_ScaleVelocity(0.65)
PHAS A 0 A_FadeOut(0.08)
loop
}
}

actor IsPharaohMan : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor AfterBurnImmune : SpecialDamageImmune
{
damagefactor "afterburn", 0.0
}

actor PharaohCurseFX : PharaohEyeFX
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
TNT1 A 0 A_Jump(256,"S_1","S_2","S_3","S_4")
S_1:
PHWC CCCCCCCCCCCCC 1 A_ChangeVelocity(velx*random(0.5,1.0),vely*random(0.5,1.0),velz*random(0.5,1.0),CVF_RELATIVE)
goto End
S_2:
PHWC DDDDDDDDDDDDD 1 A_ChangeVelocity(velx*random(0.5,1.0),vely*random(0.5,1.0),velz*random(0.5,1.0),CVF_RELATIVE)
goto End
S_3:
PHWC EEEEEEEEEEEEE 1 A_ChangeVelocity(velx*random(0.5,1.0),vely*random(0.5,1.0),velz*random(0.5,1.0),CVF_RELATIVE)
goto End
S_4:
PHWC FFFFFFFFFFFFF 1 A_ChangeVelocity(velx*random(0.5,1.0),vely*random(0.5,1.0),velz*random(0.5,1.0),CVF_RELATIVE)
goto End
End:
PHWC "##########" 1 A_SetScale(scalex-0.25,scaley-2.5)
stop
}
}

actor PharaohCurseFX2 : PharaohEyeFX
{
renderstyle "Subtract"
stencilcolor "Yellow"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode")
TNT1 A 0 A_Jump(256,"S_1","S_2","S_3","S_4")
S_1:
PHWC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 1 A_ChangeVelocity(frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-0.1,0.1),CVF_RELATIVE)
goto End
S_2:
PHWC DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 1 A_ChangeVelocity(frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-0.1,0.1),CVF_RELATIVE)
goto End
S_3:
PHWC EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_ChangeVelocity(frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-0.1,0.1),CVF_RELATIVE)
goto End
S_4:
PHWC FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1 A_ChangeVelocity(frandom(-0.1,0.1),frandom(-0.1,0.1),frandom(-0.1,0.1),CVF_RELATIVE)
goto End
End:
PHWC "##########" 1 A_FadeOut(0.1)
stop
}
}

actor PharaohCurseWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
reactiontime 350
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Warp(AAPTR_TARGET, 0.0,0.0,0.0,0.0,WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_SpawnItemEx("PharaohCurseFX", random(8, 64), 0, random(0, 64), random(1,4), 0, random(-2,2), random(0, 359))
TNT1 A 0 A_SpawnItemEx("PharaohCurseFX2", random(24,32), 0, random(0, 64), 0, 0, 0, random(0, 359))
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor PowerPharaohCurse : PowerDamage
{
Powerup.Color "59 29 29", 0.7
Powerup.Duration 350
damagefactor "normal", 0.25
}

Actor PharaohTFMovement : BaseMovement
{
states
{
itTimeGo:
TNT1 A 0 A_ChangeVelocity(CallACS("VC_XYMob", 28.0),0,0,CVF_RELATIVE|CVF_REPLACE)
stop
}
}

actor PharaohSkinWatcher
{
Height 0
Radius 0
+NOINTERACTION
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 AAA 1 A_GiveToTarget("PharaohSkinCheck")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
loop
Death:
TNT1 A 0
stop
}
}

actor PharaohSkinCheck : SkinChecker
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(CallACS("GC_GetSkinNum")==265,"AltSkin1")
goto NormalSkin
}
}

actor PharaohSkinHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("VC_Timer",1,"Nope")
TNT1 A 0 A_GiveInventory("VC_Timer",1)
TNT1 A 0 A_SpawnItemEx("PharaohSkinWatcher")
stop

Nope:
TNT1 A 0
stop
}
}