
//***Che This is the EDAY version of this file, it overwrites FBD's when composing the PK3 from source layers

ACTOR DemonRunePickupBase : Health // a clone of BasicWeaponPickup
{
	scale 0.8
	radius 24
	height 24
	+FORCEXYBILLBOARD
	-COUNTITEM
	+INVENTORY.ALWAYSPICKUP
	Inventory.Amount 0
	Inventory.MaxAmount 99999
	Inventory.PickupMessage ""
	Inventory.PickupSound "none"
}

ACTOR DemonRuneMix: DemonRunePickupBase //BasicWeaponPickup//CustomInventory
{
//   Inventory.PickupMessage "You got the Demon Sphere!"
    States
    {
		Spawn:
			DMRU Q 0 // with a question mark
			//TNT1 A 0 ACS_NamedExecuteAlways("DemonRuneCheck")
			//TNT1 A 4
			TNT1 A 4
			TNT1 A 1 A_Jump(256, "SpawnBaron", "SpawnRevenant", "SpawnQuad")//, "SpawnGiga")
		SpawnBaron:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx ("DemonRuneBaronNoCount",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
			TNT1 A 1
			Stop
		SpawnRevenant:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx ("DemonRuneRevenantNoCount",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
			TNT1 A 1
			Stop
		SpawnQuad:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx ("QQuadDamageNoCount",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
			TNT1 A 1
			Stop	
		SpawnGiga:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx ("GigasphereNoCount",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
			TNT1 A 1
			Stop
    }
}


ACTOR DemonRuneMixPlaceable: DemonRunePickupBase 17722
{
    States
    {
		Spawn:
			DMRU Q 0 // with a question mark
			//TNT1 A 0 ACS_NamedExecuteAlways("DemonRuneCheck")
			//TNT1 A 4
			TNT1 A 4
			TNT1 A 1 A_Jump(256, "SpawnBaron", "SpawnRevenant", "SpawnQuad")//, "SpawnGiga")
		SpawnBaron:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx ("DemonRuneBaronPickable",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
			TNT1 A 1
			TNT1 A -1
			Stop
		SpawnRevenant:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx ("DemonRuneRevenantPickable",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
			TNT1 A 1
			TNT1 A -1
			Stop
		SpawnQuad:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx ("QQuadDamage",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
			TNT1 A 1
			TNT1 A -1
			Stop	
		SpawnGiga:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx ("Gigasphere",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
			TNT1 A 1
			TNT1 A -1
			Stop
    }
}

/*



// The demon rune *WAS* malfunctioning when in conjunction with EDAY 001:
//   80% of the time you fail to transform into a demon, just lose your armor and health if above 100
// My programming skill *WAS* sufficient but I lacked familiarity with underlying morphing scripts, fixing this bug properly would have required very long and boring investigation.
//   So, I replace it with a souped-up powerup: add 133 health and armor, for the maximum of 300, give berserk
// Moot point now as I went to town on FBD's morphing mechanics


ACTOR HaxxSphereHealth : Health	
{
	Inventory.Amount 133
	Inventory.MaxAmount 300
	+INVENTORY.ALWAYSPICKUP
}

Actor HaxxSphereArmor : BasicArmorBonus
{
	Game Doom
	Armor.Savepercent 50.1
	Armor.Saveamount 133
	Armor.Maxsaveamount 300
	+INVENTORY.ALWAYSPICKUP
	States	{
		Spawn:
			TNT1 A 50
			Stop
	}
}

ACTOR DemonRuneMix: CustomInventory //PurpleDemonRuneHack: CustomInventory //replaces DemonRuneMix
{
	scale 1.0
	radius 16
	height 16
	+INVENTORY.BIGPOWERUP
	+THRUGHOST
	damage 0
	Mass 1
	//Inventory.PickupMessage "You got the Purple Haxx Sphere!"
	Inventory.PickupMessage "$PURPLEHAXX"
    //Inventory.PickupSound "misc/bryed3d_magic_wand_hit"
	Inventory.PickupSound "misc/bryed3d_blood_flows_in_my_viens"		
	Translation "168:191=[227,117,251]:[51,0,64]", "236:239=[1,1,231]:[33,35,107]", "16:47=[120,97,201]:[45,20,71]", "208:223=[181,140,255]:[141,0,176]", "48:79=[216,62,249]:[65,0,81]", "128:151=[99,99,254]:[33,35,107]", "64:79=[104,36,119]:[33,35,107]", "128:143=[99,99,254]:[33,35,107]", "13:15=[33,35,107]:[33,35,107]", "255:255=[33,35,107]:[33,35,107]"
    States
    {
		Spawn:
			DMRU A 1
		Live:	
			DMRU AABBCCDD 2 Bright A_SpawnItem("RedFlareMedium",0,20)
			Loop
		Pickup:
			TNT1 A 1
			TNT1 AAAAAAAAAAAAA 0 A_CustomMissile ("ShinnySmoke", 0, 0, random (0, 360), 2, random (0, 360))
			TNT1 A 0 A_GiveInventory("PowerStrength", 1)
			TNT1 A 0 A_GiveInventory("HaxxSphereArmor", 1)
			TNT1 A 0 A_GiveInventory("HaxxSphereHealth", 1)
			Stop
		Cancels:
			TNT1 A 0
			Stop
    }
}

ACTOR PurpleHaxxSphere: DemonRuneMix 17493 //PurpleDemonRuneHack 17493 
{
	+COUNTITEM
}
*/


ACTOR DemonStrengthRune : BerserkPack
{
	Game Doom
    Scale 1.0
	SpawnID 134
	
	//***Che
	// ------ The demon strength rune counting towards item count bug ----------------------------------------------
	//+COUNTITEM
	//   could ruin peoples perfect runs if dropped, say, by a monster in a cage
	//   ideally, the droppable variant should be made a separate class -- buuut I am overworked already
	-COUNTITEM
	
	+INVENTORY.ALWAYSPICKUP
	Inventory.PickupMessage "You got the Demon Strength Rune. RIP AND TEAR!"
	Inventory.PickupSound "misc/p_pkup"
	States
	{
		Spawn:
			DPRF AABBCCBB 2 A_SpawnItem("RedFlareSmall",0,20)
			Loop
		Pickup:
			TNT1 A 0 A_GiveInventory("PowerStrength", 1)
			TNT1 A 0 HealThing(10, 0)
			TNT1 A 20
			TNT1 A 0 A_Print ("You got the Demon Strength Rune. RIP AND TEAR!")
			Stop
	}
}
