ACTOR "Hologram of Duke" : CustomInventory Replaces MegaSphere 31043
{
	//$Category DN3D Items
	Inventory.PickupMessage "\cvHologram of Duke"
    Inventory.PickupSound "Misc/Atomic"
	Inventory.Icon "HOLODUKE"
    Inventory.Amount 100
    Inventory.MaxAmount 100
	Inventory.InterHubAmount 100
	+INVENTORY.PERSISTENTPOWER
    +INVENTORY.INVBAR
	+COUNTITEM
	Scale 0.6
    States
    {
    Spawn:
        HOLO ABCD 4 Bright
	    Loop
	Pickup:
	    TNT1 A 1 A_JumpIfInventory("Hologram of Duke",100,"Nope")
		TNT1 A 1 A_GiveInventory("HologramofDukeAmmo",100)
		TNT1 A 1 ACS_Execute(544,0,0,0,0)
		Stop
	Nope:
	    TNT1 A 1
	    Fail
	Use:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfInventory("HologramofDukeActive",1,"Use2")
		TNT1 A 1 A_Jump(256,"HoloBase","Holo1","Holo2","Holo3","Holo4","Holo5","Holo6")
		Fail
	HoloBase:    
		TNT1 A 1 A_FireCustomMissile("HoloDukeBase",0,0,0,0)
   	    TNT1 A 0 ACS_NamedExecuteAlways("ActivateHologramofDuke")
	    Fail
	Holo1:
	    TNT1 A 1 A_FireCustomMissile("Holoduke1",0,0,0,0)
   	    TNT1 A 0 ACS_NamedExecuteAlways("ActivateHologramofDuke")
	    Fail
	Holo2:
	    TNT1 A 1 A_FireCustomMissile("Holoduke2",0,0,0,0)
   	    TNT1 A 0 ACS_NamedExecuteAlways("ActivateHologramofDuke")
	    Fail
	Holo3:
	    TNT1 A 1 A_FireCustomMissile("Holoduke3",0,0,0,0)
   	    TNT1 A 0 ACS_NamedExecuteAlways("ActivateHologramofDuke")
	    Fail
	Holo4:
	    TNT1 A 1 A_FireCustomMissile("Holoduke4",0,0,0,0)
   	    TNT1 A 0 ACS_NamedExecuteAlways("ActivateHologramofDuke")
	    Fail
	Holo5:
	    TNT1 A 1 A_FireCustomMissile("Holoduke5",0,0,0,0)
   	    TNT1 A 0 ACS_NamedExecuteAlways("ActivateHologramofDuke")
	    Fail
	Holo6:
	    TNT1 A 1 A_FireCustomMissile("Holoduke6",0,0,0,0)
   	    TNT1 A 0 ACS_NamedExecuteAlways("ActivateHologramofDuke")
	    Fail
	Use2:
		TNT1 A 0 ACS_NamedExecuteAlways("ActivateHologramofDuke")
	    Fail
    }
}

ACTOR HologramofDukeAmmo : Ammo
{
	+IGNORESKILL
	Inventory.Amount 1
	Inventory.MaxAmount 100
}

ACTOR HologramofDukeActive : PuzzleItem
{	
    Inventory.MaxAmount 1		
    -INVENTORY.INVBAR	
}

ACTOR HologramofDukeTimeTic : PuzzleItem
{	
    Inventory.MaxAmount 1		
    -INVENTORY.INVBAR	
}

ACTOR PowerQuarterDamageST : PowerProtection
{
    Damagefactor "Normal", 1.00
}

ACTOR HologramofDukeEffect : PowerupGiver
{
	Inventory.MaxAmount 0 
    Powerup.Type "QuarterDamageST"
    Powerup.Duration 20
	PowerUp.Color "00 00 00", 0.0005
	+COUNTITEM
    +INVENTORY.AUTOACTIVATE 
    +INVENTORY.ALWAYSPICKUP 
}

ACTOR DukeTeleportFog : TeleportFog Replaces TeleportFog
{
    RenderStyle Add
	Alpha 0.75
    Scale 0.85
    +NOBLOCKMAP
    +NOTELEPORT
    +NOGRAVITY
    States
    {
    Spawn:
	    ZELP ABCCCCDEF 2 Bright
        Stop
        }
}

ACTOR DukeRespawnFog : ItemFog Replaces ItemFog 
{
    RenderStyle Add
    Scale 0.7
    +NOBLOCKMAP
    +NOTELEPORT
    +NOGRAVITY
    States
    {
    Spawn: 
        DTEL ABCDEF 2 Bright
        Stop
        }
}

ACTOR HoloDukeBase 
{
    Speed 0
    Health 0x7FFFFFFF
    Radius 16
    Height 56
    Mass 0x7FFFFFFF
    Scale 0.7
    Renderstyle Add
	DamageFactor "Damage_Foot", 0.0
	DamageFactor "Damage_Pistol", 0.0
    DamageFactor "Damage_DualPistol", 0.0
	DamageFactor "Damage_BlackTail", 0.0
    DamageFactor "Damage_DualBlackTail", 0.0
	DamageFactor "Damage_DesertEagle", 0.0
    DamageFactor "Damage_Shotgun", 0.0
	DamageFactor "Damage_SuperShotgun", 0.0
	DamageFactor "Damage_ExplosiveShotgun", 0.0
    DamageFactor "Damage_ChaingunCannon", 0.0
	DamageFactor "Damage_Minigun", 0.0
	DamageFactor "Damage_LMGBullet", 0.0
    DamageFactor "Damage_Explosion", 0.0
	DamageFactor "Damage_Shock", 0.0
	DamageFactor "Damage_BigShock", 0.0
	DamageFactor "Damage_Thunder", 0.0
	DamageFactor "Damage_BigThunder", 0.0
	DamageFactor "LaserExplosion", 0.0
    DamageFactor "Damage_Shrinker", 0.0
	DamageFactor "Damage_Expander", 0.0
	DamageFactor "Damage_Laser", 0.0
	DamageFactor "Damage_Railgun", 0.0
	DamageFactor "Damage_RailgunAvenger", 0.0
	DamageFactor "PigCopBullet", 0.0
	DamageFactor "LizardBullet", 0.0
	DamageFactor "AlienPoison", 0.0
	DamageFactor "Damage_Step", 0.0
    DamageFactor "Ice", 0.0
    DamageFactor "Fire", 0.0
	DamageFactor "Damage_Pulse", 0.0
	DamageFactor "Trip_Punch", 0.0
	DamageFactor "LaserShot", 0.0
	DamageFactor "Radial", 0.0
	DamageFactor "Normal", 0.0
	DamageFactor "Lava", 0.0
	DamageFactor "HellSmile", 0.0
	DamageFactor "Nukage", 0.0
	DamageFactor "Slime", 0.0
	Damagefactor "Annihilate", 0.0
	Monster
	+GHOST
    +NOCLIP
    +DROPOFF 
    +NOBLOOD
    +DONTMORPH
    +FLOORCLIP
    +TELESTOMP
	+NOPAIN
	+NOTELEPORT
    +INCOMBAT
	+LOOKALLAROUND
	+NORADIUSDMG
    +FRIENDLY
    States
    {
    Spawn:	
	    DUKE K 0 
		DUKE K 0 A_SetInvulnerable
	    DUKE K 0 A_SpawnItemEX("DukeTeleportFog")
	    DUKE K 0 A_JumpIfInTargetInventory("Holotime",1,"Death")
		DUKE K 1 A_JumpIf(MomZ==0,"See")
		DUKE K 0 A_JumpIfInTargetInventory("Holotime",1,"Death")
        Goto Spawn+4
    See:
	    DUKE A 0 A_JumpIfInventory("HoloTic",15,"Death2")
	    DUKE A 0 A_JumpIfInTargetInventory("Holotime",1,"Death")
		DUKE A 1 A_CustomMissile("HoloDistract",25)
		DUKE A 0 A_GiveInventory("HoloTic",1)
	    DUKE AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_JumpIfInTargetInventory("Holotime",1,"Death")
		DUKE AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_JumpIfInTargetInventory("Holotime",1,"Death")
		DUKE AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_JumpIfInTargetInventory("Holotime",1,"Death")
		DUKE AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_JumpIfInTargetInventory("Holotime",1,"Death")
        Loop
    Death:
	    TNT1 A 0
	    TNT1 A 0 A_UnSetInvulnerable
        TNT1 A 1 A_SpawnItemEx("DukeTeleportFog")
		Stop
	Death2:
	    TNT1 A 0
	    TNT1 A 0 A_UnSetInvulnerable
	    TNT1 A 1 A_GiveToTarget("HologramofDukeTimeTic",1)
        TNT1 A 1 A_SpawnItemEx("DukeTeleportFog")
		Stop
        }
}   

ACTOR HoloDuke1 : HoloDukeBase
{ 
    Translation "112:127=80:111"   
}   

ACTOR HoloDuke2 : HoloDukeBase
{ 
    Translation "112:127=168:191"   
}   

ACTOR HoloDuke3 : HoloDukeBase
{ 
    Translation "112:127=16:47"   
}   

ACTOR HoloDuke4 : HoloDukeBase
{ 
    Translation "112:127=48:79"   
}   

ACTOR HoloDuke5 : HoloDukeBase
{ 
    Translation "112:127=160:167"   
}   

ACTOR HoloDuke6 : HoloDukeBase
{ 
    Translation "112:127=192:207"   
}   

ACTOR HoloDistract
{   
    Speed 35
    Height 5
    Radius 5
    Damage 0
    Scale 0.5
    Projectile 
    DamageType "Radial"
    RenderStyle Add
	+FORCERADIUSDMG
    +BLOODLESSIMPACT
    States
    {
    Spawn:
        LASB A 1 
	    Loop
    Death:
        TNT1 A 0 
        TNT1 A 1 A_Explode((2),80000,0)
        Stop
        }
}

ACTOR Holotime : PuzzleItem
{	
    Inventory.MaxAmount 1		
    -INVENTORY.INVBAR	
}

ACTOR HoloTic : Inventory
{	
    Inventory.Amount 0		
    Inventory.MaxAmount 15		
}