actor PharaohMummiraAssistStart
{
translation "192:192=4:4", "198:198=216:216"
PROJECTILE
-NOGRAVITY
radius 8
height 8
scale 2.5
Obituary "$OB_MUMMIRA"
+THRUACTORS
+FLOORHUGGER
+DONTREFLECT
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_TARGET)
TNT1 A 0 A_SpawnItemEx("PharaohManMummiraAssist",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 MummiraSummon : GenericAssistCapsule
{

States
{
Spawn:
TNT1 A 8 A_CountDown
Goto Spawn
Assist:
TNT1 A 0 A_SpawnItemEx("PharaohMummiraAssistStart", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
goto Death+2
}
}

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

actor MummiraBodyAssist
{

+MISSILE
+NOEXPLODEFLOOR

Obituary "$OB_MUMMIRA"

radius 40
height 60
scale 2.5
damage (1)
damagetype "Mhead"
species "PharaohShieldType"
speed 0

ReactionTime 20

States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
PHMU G 0 A_RearrangePointers(AAPTR_MASTER)
PHMU J 35 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
goto Spawn+3

Death:
ASEX A 0 A_PlaySoundEx("misc/mm3explosion","Body")
PHMU G 0 A_SpawnItemEx("GenericAssistDeath", 0, 0, height / 2)
stop
}
}

actor MummiraHeadAssist
{
PROJECTILE
Radius 12
Height 12
scale 2.5
damage (1)
damagetype "Mhead"
speed 7
species "PharaohShieldType"
+NOEXPLODEFLOOR
+SEEKERMISSILE
+THRUACTORS
Obituary "$OB_MUMMIRA"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TNT1 A 0 A_TransferPointer(AAPTR_TARGET,AAPTR_DEFAULT,AAPTR_FRIENDPLAYER,AAPTR_TARGET)
TNT1 A 1
TNT1 A 0 A_ChangeFlag("THRUACTORS",0)
loopit:
PHMU H 1 A_SeekerMissile(75, 90, SMF_LOOK, 256, 10)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
loop
Death:
TNT1 A 0 A_SpawnItemEx("GenericAssistDeath", 0, 0, height/2)
stop
}
}

actor MumiraAfterBurnPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("NoNewAfterBurn",1)
TNT1 A 0 A_GiveInventory("NewAfterBurn",1)
TNT1 A 0 A_GiveInventory("MumiraAfterBurnDuration",1)
TNT1 A 0 A_SpawnItemEx("MumiraCurseWarper")
stop
}
}

actor MumiraAfterBurn
{
Height 0
Radius 0
+NOINTERACTION
+NOCLIP
damagetype "PharaohMan"
Obituary "$OB_MUMMIRA"
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("MumiraAfterburnFunc",1)
loop
Death:
TNT1 A 0
stop
}
}

actor MumiraAfterburnFunc : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("MumiraAfterBurnDuration",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("PharaohAfterBurnDamageTimer",1,"PickupWait")
TNT1 A 0 A_GiveInventory("PharaohAfterBurnDamageTimer",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 MumiraAfterBurnDuration : PowerUp
{
Powerup.Duration 150
}


actor MumiraCurseWarper
{
+NOINTERACTION
Height 1
Radius 1
damage (0)
Speed 0
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 ACS_NamedExecuteWithResult("core_alphaprojectile", CallACS("core_getptrtid", AAPTR_TARGET), APROJ_TEAM, 0, 128)
//TNT1 A 0 A_PlaySoundEx("misc/teleport2","SoundSlot5")
loopit:
PHMU KKKK 1 A_Warp(AAPTR_TARGET,0,0,30,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
PHMU LLLL 1 A_Warp(AAPTR_TARGET,0,0,30,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
PHMU L 0 A_JumpIfInTargetInventory("MumiraAfterBurnDuration",1,"loopit")
stop
}
}