ACTOR SignetOfNecromancy : CustomInventory //Experimental coding lvl 100000
{ //Scripted (Item won't be given properly on next map start)
//Creator: Fluffy
//Origin: Nexus Infinity
//Sprite: SXTR
//Title: "Signet Of Necromancy"
+INVENTORY.INVBAR
+INVENTORY.HUBPOWER
+INVENTORY.BIGPOWERUP
+NOTIMEFREEZE
+FLOATBOB
+COUNTITEM
+ISMONSTER
+DONTGIB
Mass 0x7FFFFFFF
Inventory.Amount 1
Inventory.MaxAmount 1
//Inventory.InterHubAmount 1 //ENTER SCRIPT
Inventory.Icon "SXTRG0"
Inventory.UseSound " "
Inventory.PickupMessage "You got the Signet Of Necromancy"
Tag "Signet Of Necromancy - Wear to hold attractive dark energy that can mostly revive low-midtier legendaries when killed"
Scale 0.8
States
{
  Spawn:
    TNT1 A 1 A_TakeInventory("SignetFloorToken",1)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("NexusNoFloat") == 0,2)
	TNT1 A 0 A_ChangeFlag(FLOATBOB,0)
    TNT1 A 0 A_SpawnItemEx("SignetFloorEffect",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
  SpawnLoop:
	TNT1 A 0 A_CustomMissile("PurplePowerLineSpawner2",0,0,Random(0,-360),2,Random(0,360))
	SXTR A 6 Bright A_CustomMissile("SignetVoidSparkleSpawner2",0,0,Random(0,-360),2,Random(0,360))
	TNT1 A 0 A_CustomMissile("PurplePowerLineSpawner2",0,0,Random(0,-360),2,Random(0,360))
	SXTR B 6 Bright A_CustomMissile("SignetVoidSparkleSpawner2",0,0,Random(0,-360),2,Random(0,360))
	TNT1 A 0 A_CustomMissile("PurplePowerLineSpawner2",0,0,Random(0,-360),2,Random(0,360))
	SXTR C 6 Bright A_CustomMissile("SignetVoidSparkleSpawner2",0,0,Random(0,-360),2,Random(0,360))
	TNT1 A 0 A_CustomMissile("PurplePowerLineSpawner2",0,0,Random(0,-360),2,Random(0,360))
	SXTR D 6 Bright A_CustomMissile("SignetVoidSparkleSpawner2",0,0,Random(0,-360),2,Random(0,360))
	TNT1 A 0 A_CustomMissile("PurplePowerLineSpawner2",0,0,Random(0,-360),2,Random(0,360))
	SXTR E 6 Bright A_CustomMissile("SignetVoidSparkleSpawner2",0,0,Random(0,-360),2,Random(0,360))
	TNT1 A 0 A_CustomMissile("PurplePowerLineSpawner2",0,0,Random(0,-360),2,Random(0,360))
	SXTR E 6 Bright A_CustomMissile("SignetVoidSparkleSpawner2",0,0,Random(0,-360),2,Random(0,360))
	TNT1 A 0 A_CustomMissile("PurplePowerLineSpawner2",0,0,Random(0,-360),2,Random(0,360))
	SXTR D 6 Bright A_CustomMissile("SignetVoidSparkleSpawner2",0,0,Random(0,-360),2,Random(0,360))
	TNT1 A 0 A_CustomMissile("PurplePowerLineSpawner2",0,0,Random(0,-360),2,Random(0,360))
	SXTR C 6 Bright A_CustomMissile("SignetVoidSparkleSpawner2",0,0,Random(0,-360),2,Random(0,360))
	TNT1 A 0 A_CustomMissile("PurplePowerLineSpawner2",0,0,Random(0,-360),2,Random(0,360))
	SXTR B 6 Bright A_CustomMissile("SignetVoidSparkleSpawner2",0,0,Random(0,-360),2,Random(0,360))
	TNT1 A 0 A_CustomMissile("PurplePowerLineSpawner2",0,0,Random(0,-360),2,Random(0,360))
	SXTR A 6 Bright A_CustomMissile("SignetVoidSparkleSpawner2",0,0,Random(0,-360),2,Random(0,360))
	Loop
  Pickup:
	TNT1 A 0
	TNT1 A 1 A_GiveInventory("SignetFloorToken",1,AAPTR_DEFAULT)
	Stop
  Use:
	TNT1 A 0 A_TakeInventory("SignetFloorToken",1)
	TNT1 A 0 A_SetBlend("Purple",0.6,20)
	TNT1 A 0 A_PlaySound("terrorsignet/activate",CHAN_ITEM)
	TNT1 A 0 A_GiveInventory("SignetActiveToken",1)
	TNT1 A 1 A_GiveInventory("SignetOfNecromancyActive",1)
	Stop
	}
}

ACTOR SignetOfNecromancyActive : SignetOfNecromancy
{
Inventory.Icon "SXTRF0"
-ISMONSTER
+INVENTORY.UNDROPPABLE
Tag "Signet Of Necromancy - Deactivate to disable it's effect"
States
{
  Use:
	TNT1 A 0 A_TakeInventory("SignetFloorToken",1)
	TNT1 A 0 A_SetBlend("Black",0.6,20)
	TNT1 A 0 A_TakeInventory("SignetActiveToken",1)
	TNT1 A 0 A_TakeInventory("ResurrectedMonsters",30)
	TNT1 A 0 A_PlaySound("terrorsignet/deactivate",CHAN_ITEM)
	TNT1 A 0 ACS_NamedExecuteAlways("RemoveSignetResurrect",0,766+tid)
	TNT1 A 1 A_GiveInventory("SignetOfNecromancy",1)
	Stop
  }
}

Actor SignetSoulstone : LegendaryRune
{
+DONTGIB
+MOVEWITHSECTOR
Inventory.MaxAmount 1
Inventory.MaxAmount 30
Inventory.InterhubAmount 30
Inventory.PickupSound "guard/get"
Inventory.PickupMessage "\c[Q0]Signet Of Necromancy Soulstone!\c-"
States
{
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_NamedExecuteWithResult("NexusNoFloat") == 0,2)
	TNT1 A 0 A_ChangeFlag(FLOATBOB,0)
    ST3N AAAAAAAAAAAAA 3 Bright A_SpawnItemEx("ArmorParticlePurple",random(-12,12),random(-12,12),random(20,30),random(-2,2),random(-2,2),random(0,2),random(-20,20),0,128)
	ST3N BCDEF 3 bright A_SpawnItemEx("ArmorParticlePurple",random(-12,12),random(-12,12),random(20,30),random(-2,2),random(-2,2),random(0,2),random(-20,20),0,128)
	Goto Spawn+2
  Pickup:
    TNT1 A 0 A_JumpIfInventory("ResurrectToken",30,"Nope")
	TNT1 A 1 ACS_NamedExecuteAlways("SignetSoulstoneMessage")
	Stop
  Nope:
	ST3N A 1 Bright
	Fail
	}
}

Actor ResurrectToken : Inventory { Inventory.Amount 1 Inventory.MaxAmount 30 Inventory.InterhubAmount 30 }
Actor ResurrectedMonsters : Inventory { Inventory.Amount 1 Inventory.MaxAmount 30 Inventory.InterhubAmount 30 }
Actor SignetMessageToken : Inventory { Inventory.Amount 1 Inventory.MaxAmount 1 Inventory.InterhubAmount 1 }

ACTOR SignetFloorToken : Inventory { Inventory.Amount 1 Inventory.MaxAmount 1 }
ACTOR SignetActiveToken : Inventory { Inventory.MaxAmount 1 }

ACTOR RessurectBySignet : Inventory { Inventory.MaxAmount 1 }

Actor SignetRessurectionEffect : NemesisFragmentPortal
{
Scale 0.08
States
{
  Spawn:
   T9SE ABCDEABCDEABCDEABCDEABCDEABCDE 5
   T9SE ABCDE 50
   Loop
   }
}

ACTOR SignetRessurectionFire : MainyuSparkle
{
  Scale 1.2
  Reactiontime 5
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("terrorsignet/voices",6)
	MAIF ABCDEFGHIJ 2
	TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",FRandom(20,-20),FRandom(20,-20),Random(0,15)) // Z Random(0,40)
	MAIF KLMNOPQ 2
	TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",FRandom(20,-20),FRandom(20,-20),Random(0,15))
	MAIF RSTUVW 2
	TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",FRandom(20,-20),FRandom(20,-20),Random(0,15))
	MAIF ABCDEFGHIJ 2
	TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",FRandom(20,-20),FRandom(20,-20),Random(0,15))
	MAIF KLMNOPQ 2
	TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",FRandom(20,-20),FRandom(20,-20),Random(0,15))
	MAIF RSTUVW 2
	TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",FRandom(20,-20),FRandom(20,-20),Random(0,15))
  EffectLoop:
	MAIF ABCDEFGHIJ 2 A_SpawnItemEx("SignetSkullEffect",Random(10,20),Random(10,20),0,Random(1,2),Random(1,2),Random(2,4),Random(0,360),0,200)
	TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",FRandom(20,-20),FRandom(20,-20),Random(0,15))
	MAIF KLMNOPQ 2 A_SpawnItemEx("SignetSkullEffect",Random(10,20),Random(10,20),0,Random(1,2),Random(1,2),Random(2,4),Random(0,360),0,200)
	TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",FRandom(20,-20),FRandom(20,-20),Random(0,15))
	MAIF RSTUVW 2 A_SpawnItemEx("SignetSkullEffect",Random(10,20),Random(10,20),0,Random(1,2),Random(1,2),Random(2,4),Random(0,360),0,200)
	TNT1 A 0 A_Countdown
	Loop
  Death:
	MAIF ABCDEFGHIJKLMNOPQRSTUVW 2
	MAIF ABCDEFGHIJKLMNOPQRSTUVW 2 A_FadeOut(0.5,0)
    TNT1 A 0
	Stop
	}
}

Actor SignetRessurectionFlame : SignetRessurectionFire
{
States
{
 Spawn:
   TNT1 A 0
   TNT1 A 0 A_SpawnItemEx("SignetResFloorEffect",0,0,0,0)
   TNT1 A 0 A_PlaySound("brain/spit",7)
   TNT1 A 0 A_SpawnItemEx("SignetResFlameSpawner",0,0,-40)
   TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",FRandom(20,-20),FRandom(20,-20),Random(0,40))
   MAIF ABCDEFGHIJ 2 A_SpawnItemEx("SignetSkullEffect",Random(10,20),Random(10,20),0,Random(1,2),Random(1,2),Random(2,4),Random(0,360),0,200)
   TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",FRandom(20,-20),FRandom(20,-20),Random(0,40))
   MAIF KLMNOPQ 2 A_SpawnItemEx("SignetSkullEffect",Random(10,20),Random(10,20),0,Random(1,2),Random(1,2),Random(2,4),Random(0,360),0,200)
   TNT1 A 0 A_SpawnItemEx("SignetRessurectionFire2",FRandom(20,-20),FRandom(20,-20),Random(0,40))
   MAIF RSTUVW 2 A_SpawnItemEx("SignetSkullEffect",Random(10,20),Random(10,20),0,Random(1,2),Random(1,2),Random(2,4),Random(0,360),0,200)
   Stop
   }
}

ACTOR SignetResFloorEffect
{
RenderStyle Add
Alpha 0
Height 1
Radius 1
+NOBLOCKMAP
+NOINTERACTION
+FLOORHUGGER
+CLIENTSIDEONLY
+BRIGHT
States
{
  Spawn:
    NADA AAAAAAAAAAAAAAAAAAA 1 A_FadeIn(0.05)
	NADA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1
  Death:
	NADA AAAAAAAAAAAAAAAAAAA 1 A_Fadeout(0.05,0)
	Stop
	}
}

ACTOR SignetRessurectionFire2 : SignetRessurectionFire
{
  States
  {
  Spawn:
	MAIF ABCDEFGHIJKLMNOPQRSTUVW 2
	Stop
	}
}

Actor SignetSkullEffect : NemesisPatriarchSkullEffect
{
  Scale 0.1
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Null")
	NESK AABBCCDDEEFFGGHHIIJJKKLL 3 A_Weave(2, 2, 2.0, 1.0)
	Stop
	}
}

ACTOR SignetResFlameSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
	TNT1 A 0
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("SignetResFlame",random(12,-12),random(12,-12),Random(0,40),0,0,random(2,4),0,128,0)
    Stop
  }
}

ACTOR SignetResFlame : DukeHealFlame
{
Scale 0.3
States
{
Spawn:
FRR2 ABCDEFGHIJKL 2 Bright A_FadeOut
Stop
}
}

Actor NemCardiThunderSpark
{
Speed 3
Height 2
Radius 1
Mass 0
+Missile 
+CLIENTSIDEONLY
+NOCLIP
+LOWGRAVITY
+NOTIMEFREEZE
RenderStyle Add
Scale 0.5
States
{
   Spawn:
	TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 0 A_Jump(80,4)
    SS22 ABC 2 Bright
	Loop
	SS22 DEF 4 Bright A_FadeOut(0.25)
	Stop
   Death:
	SS22 DEF 4 Bright A_FadeOut(0.25)
	Stop
  Toaster:
    TNT1 A 0
	Stop		
	}
}

//TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("NemCardiThunderSpark",0,0,0,random(1,10),0,random(1,10),random(0,359),129)

ACTOR SignetFloorEffect
{
RenderStyle Add
Height 1
Radius 1
+ISMONSTER
+NOBLOCKMAP
+NOINTERACTION
+FLOORHUGGER
DamageFactor "Massacre", 0.0
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("terrorsignet/ambient",7,1.0,TRUE)
  Warp:
    NADA AAAAA 1 Bright A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_ABSOLUTEANGLE|WARPF_INTERPOLATE)
	TNT1 A 0 A_JumpIfInventory("SignetFloorToken",1,"Fade",AAPTR_MASTER)
	Loop
  Fade:
    NADA A 1 Bright A_StopSound(7)
	NADA AAAAAAAAAAAAAAAAAAA 1 Bright A_Fadeout(0.05,0)
	Stop
	}
}

ACTOR SignetVoidSparkleSpawner2 : VoidSparkleSpawner
{
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 1 A_SpawnItemEx("VoidStarScaled",Random(-15, 15),Random(-15, 15),Random(10, 30),0,0,0,0,0,168) 
    Stop
    }
}

ACTOR VoidStarScaled : VoidStar { Scale 0.2 }

ACTOR PurplePowerLineSpawner2 : BluePowerLineSpawner
{
States
{
Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 1 A_SpawnItemEx("PurplePowerLine",random(24,-24),random(24,-24),0,0,0,2) 
    Stop  
    }
}