//Summoning portals for the hero shades
actor WeakPortal 
{
	+NOBLOCKMAP
	+FLOORCLIP
	+NOGRAVITY
	+NOINTERACTION
	+BRIGHT
	Scale 2
	translation "0:255=%[0.00,0.00,0.00]:[0.30,0.30,0.30]"
	states
	{
	Spawn:
		DWRP ABCD 6
		DWRP ABCD 5
		DWRP ABCD 3
		TNT1 A 0 a_playsound ("Darkportal/Burst",CHAN_VOICE)
		DWRP ABCD 2
		DWRP ABCD 2
		DWRP ABCD 1
		DWRP DCBA 1
		DWRP EFG 2
		TNT1 A 0 a_jump (30,"ShadeSummon")
		TNT1 A 0 a_playsound ("skuttle/explode", CHAN_VOICE)
		TNT1 AAAAAAA 0 a_spawndebris ("missiledebris1")
		TNT1 AAAAAAAAAAAA 0 a_spawnitemex ("missiledebris2",random(-16,16),random(-16,16),random(-10,10),random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0,160)
		TNT1 A 0 a_spawnitemex ("ShitSkeletonSpawner",0,0,8,0,0,3,0,SXF_NOCHECKPOSITION)
		MWND E 3 Bright
		MWND F 2 Bright
		MWND G 3 Bright
		MWND H 2 Bright
		MWND I 2 Bright
		stop
	ShadeSummon:
		TNT1 A 0
		TNT1 A 0 a_playsound ("bonelord/explode",CHAN_VOICE,1,0,0.6)
		TNT1 AAAAAAAAA 0 a_spawndebris ("missiledebris1")
		TNT1 AAAAAAAAAAAAAAA 0 a_spawnitemex ("missiledebris2",random(-26,26),random(-20,20),random(-10,10),random(-150,150)/15.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
		TNT1 AAAAAAAAAAAAAAA 0 a_spawnitemex ("missiledebris2",random(-26,26),random(-20,20),random(-10,10),random(-150,150)/15.0,random(-100,100)/20.0,random(-100,100)/20.0,0)
		TNT1 A 0 Radius_Quake (4,12,0,50,0)
		TNT1 A 0 a_spawnitemex ("HeroShadeSpawner",0,0,8,0,0,3,0,SXF_NOCHECKPOSITION)
		FX18 A 3
		FX18 B 2
		FX18 C 2
		FX18 D 2
		FX18 E 1
		FX18 F 1
		FX18 G 1
		stop
	Death:
		TNT1 A 0
		TNT1 A 1
		stop
	}
}

actor MediumPortal : WeakPortal 
{
	states
	{
	Spawn:
		DWRP ABCD 6
		DWRP ABCD 5
		DWRP ABCD 3
		TNT1 A 0 a_playsound ("Darkportal/Burst",CHAN_VOICE)
		DWRP ABCD 2
		DWRP ABCD 2
		DWRP ABCD 1
		DWRP DCBA 1
		DWRP EFG 2
		TNT1 A 0 a_jump (90,"ShadeSummon")
		TNT1 A 0 a_playsound ("skuttle/explode", CHAN_VOICE)
		TNT1 AAAAAAA 0 a_spawndebris ("missiledebris1")
		TNT1 AAAAAAAAAAAA 0 a_spawnitemex ("missiledebris2",random(-16,16),random(-16,16),random(-10,10),random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0,160)
		TNT1 A 0 a_spawnitemex ("ShitSkeletonSpawner",0,0,8,0,0,3,0,SXF_NOCHECKPOSITION)
		MWND E 3 Bright
		MWND F 2 Bright
		MWND G 3 Bright
		MWND H 2 Bright
		MWND I 2 Bright
		stop
	}
}

actor StrongPortal : WeakPortal 
{
	states
	{
	Spawn:
		DWRP ABCD 6
		DWRP ABCD 5
		DWRP ABCD 3
		TNT1 A 0 a_playsound ("Darkportal/Burst",CHAN_VOICE)
		DWRP ABCD 2
		DWRP ABCD 2
		DWRP ABCD 1
		DWRP DCBA 1
		DWRP EFG 2
		TNT1 A 0 a_jump (180,"ShadeSummon")
		TNT1 A 0 a_playsound ("skuttle/explode", CHAN_VOICE)
		TNT1 AAAAAAA 0 a_spawndebris ("missiledebris1")
		TNT1 AAAAAAAAAAAA 0 a_spawnitemex ("missiledebris2",random(-16,16),random(-16,16),random(-10,10),random(-100,100)/20.0,random(-100,100)/20.0,random(-100,100)/20.0,0,160)
		TNT1 A 0 a_spawnitemex ("ShitSkeletonSpawner",0,0,8,0,0,3,0,SXF_NOCHECKPOSITION)
		MWND E 3 Bright
		MWND F 2 Bright
		MWND G 3 Bright
		MWND H 2 Bright
		MWND I 2 Bright
		stop
	}
}


actor ShitSkeletonSpawner : randomspawner
{
	dropitem "BlazMimic", 255, 3
	dropitem "SlayerMimic", 255, 3
	dropitem "KustamMimic", 255, 3
}

actor HeroShadeSpawner : randomspawner
{
	dropitem "DarkBlaz", 255, 3
	dropitem "DarkSlayer", 255, 3
	dropitem "DarkKustam", 255, 3
}


//========================================================================
//========================================================================
//========================================================================

actor DarkBlaz
{
    Health 600
    Radius 20
    Height 56
    PainChance 90
 	Painchance "BarrelGrab", 0
	Mass 800
    MeleeRange 60
	MeleeThreshold 246
    Speed 20
    Scale 0.86
    bloodtype slimebloodsplatter
    Monster
	+FLOORCLIP
	+bright
	+NOTARGET
	+LOOKALLAROUND
	+DONTCORPSE
	SeeSound "DarkBlaz/sight"
    ActiveSound "DarkBlaz/Idle"
    PainSound "DarkBlaz/pain"
    DeathSound "DarkBlaz/Die"
    Obituary "%o has been struck down by the shadow of Blaz."
	HitObituary "%o has been struck down by the shadow of Blaz."
	translation "0:255=%[0.00,0.00,0.00]:[0.30,0.30,0.30]"
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("DarkAwake",1,"DarkMock")
		LBLZ A 1 a_look
		Loop
	DarkMock:
		TNT1 A 0
		LBLZ A 1 a_takeinventory ("Darkawake",99)
		LBLZ A 1 a_playsound ("DarkBlaz/Victory",CHAN_VOICE)
		LBLZ A 60
		goto spawn
	See:
		TNT1 A 0
		TNT1 A 0
		//TNT1 A 0 a_spawnitemex ("Evilaura")
		TNT1 A 0 a_giveinventory ("DarkAwake",1)
		LBLZ ADDCBB 2 a_chase
		LBLZ ADDCBB 2 a_chase
		LBLZ ADDCBB 2 a_chase
		loop
	missile:
		TNT1 A 0
		TNT1 A 0 a_jumpifcloser (350, "DaggerThrow")
		TNT1 A 0 a_jumpifcloser (450, "axethrow")
		TNT1 A 0 a_facetarget
		LBLZ A 1 a_facetarget
		LBLZ K 2 a_facetarget
		LBLZ K 2 
		LBLZ L 2 a_playsound ("subweapons/lancethrow")
		LBLZ M 11 a_custommissile ("DarkLance")
		TNT1 A 0 a_jump (180, "missile")
		Goto see
	axethrow:
		TNT1 A 0
		TNT1 A 0 a_facetarget
		LBLZ A 1 a_facetarget
		LBLZ K 2 a_facetarget
		LBLZ K 2 
		LBLZ L 2 a_playsound("subweapons/hatchetthrow")
		LBLZ M 11  a_custommissile ("DarkAxe")
		TNT1 A 0 a_jump (180, "missile")
		Goto see
	Daggerthrow:
		TNT1 A 0
		TNT1 A 0 a_facetarget
		LBLZ A 1 a_facetarget
		LBLZ K 2 a_facetarget
		LBLZ K 1 
		LBLZ L 1 a_playsound ("subweapons/daggerthrow")
		LBLZ M 6  a_custommissile ("DarkDagger")
		TNT1 A 0 a_facetarget
		LBLZ A 1 a_facetarget
		LBLZ K 2 a_facetarget
		LBLZ K 1 
		LBLZ L 1 a_playsound ("subweapons/daggerthrow")
		LBLZ M 6  a_custommissile ("DarkDagger")
		TNT1 A 0 a_facetarget
		LBLZ A 1 a_facetarget
		LBLZ K 2 a_facetarget
		LBLZ K 2 
		LBLZ L 1 a_playsound ("subweapons/daggerthrow")
		LBLZ M 11  a_custommissile ("DarkDagger")
		TNT1 A 0 a_jump (180, "missile")
		Goto see
	Melee:
		TNT1 A 0
		TNT1 A 0 a_facetarget
		LBLZ A 1 
		LBLZ E 4 a_facetarget
		TNT1 A 0 A_PlaySound("sword/attack1")
		LBLZ F 1 
		LBLZ G 2 A_CustomMeleeAttack(Random(2,3)*8, "Zarach/Hit1")
		LBLZ H 6
		Goto see
	Pain:
		TNT1 A 0
   		TNT1 A 0 a_takeinventory ("PowerKickedStatus",999)
		TNT1 A 0 a_facetarget
		LBLZ Q 4 a_pain
		Goto see
	Pain.Dazer:
    Pain.Superkick:
    	LBLZ Q 3
		TNT1 A 0 a_giveinventory ("KickDazer",1)
		LBLZ Q 3 A_Pain
    	Goto Dazed
    Dazed:
		LBLZ Q 2
		LBLZ Q 1 A_SetAngle (angle+15)
		LBLZ Q 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		Goto See
	Death:
		TNT1 A 0
		TNT1 A 0 a_facetarget
		LBLZ R 1 a_noblocking
		LBLZ R 120 A_scream
		LBLZ S 4 
		LBLZ T 4
		LBLZ U 4
		LBLZ V 1 a_playsound ("gibs/bodyhitfloor",0)
		LBLZ V random(10,30)
	Burnup:
		LBLZ V 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		LBLZ V 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		LBLZ V 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		LBLZ V 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		LBLZ V 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		LBLZ V 1 bright 
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)

		LBLZ V 1 bright a_jump (90,"reallydie")
		TNT1 A 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 1 bright A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		loop
	ReallyDie:
		TNT1 A 0
		TNT1 AAAAAA 0 A_SpawnItemEx ("ShadowFire", frandom(-20,20),frandom(-20,20),frandom(3,10), 0,0,random(1,2), 0, SXF_NOCHECKPOSITION, 80)
		TNT1 A 0 a_dropitem ("roastmeat",35)
		TNT1 AAAA 0 a_spawnitemex ("sunderlootorb", 0, 0, 0, random (-4, 7), random (-6, 3), random (3, 6))
		EVAU AABBCCDD 2 bright
		EVAU AABBCCDD 2 bright
		stop
	}
}


ACTOR ShadowFire
{
	+clientsideonly
	+nointeraction
	+NOCLIP
	+NOBLOCKMAP
	+FLOORCLIP
	+NOGRAVITY
	Projectile
	scale 0.50
	Renderstyle Add
	Alpha 0.70
	States
	{
	Spawn:
		TNT1 A 0
		EVAU A 1 a_playsound ("gauntlet/fullcharge",0,1,0,0.7)
		EVAU AABBCCDD 1 bright
	Burning:
		EVAU AABBCCDD 2 bright 
		TNT1 A 0 A_Fadeout (0.80)
		loop
	}
}

actor DarkAxe : MimicAxe
{
	seesound "cannon/lilclang"
	Gravity 0.80
	BounceCount 2
	BounceFactor 1.50  
	scale 0.80
	Damage (15)
	Speed 19
	+bright
	translation "0:255=%[0.00,0.00,0.00]:[0.30,0.30,0.30]"
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("silence", CHAN_VOICE)
		HATC A 1 thrustthingz (0,10,0,0)
	flying:
		HATC ABCDEF 1 Thing_SetTranslation(0, 0)
		HATC ABCDEF 1 Thing_SetTranslation(0, 4242)
		loop
	}
}

actor DarkLance : mimiclance
{
    +notimefreeze
	+BLOODSPLATTER
	+FORCEXYBILLBOARD	
	+bright
	Speed 25
	Damage (15)
	Projectile
	+bright
	translation "0:255=%[0.00,0.00,0.00]:[0.30,0.30,0.30]"
	states
	{
	spawn: 
		LNCE A 8
		goto flight
	}
}

actor Darkdagger : IceDagger
{
    +notimefreeze
	+BLOODSPLATTER
	+FORCEXYBILLBOARD	
	+thruspecies
	+bright
	species "EnemyShot"
	Radius 9
	Height 8
	Speed 30
	Damage (5)
	Projectile
	translation "0:255=%[0.00,0.00,0.00]:[0.30,0.30,0.30]"
	states
	{
	Spawn:
		DGGR A 2
		DGGR A 2 Thing_SetTranslation(0, 4242)
		DGGR A 2 Thing_SetTranslation(0, 0)
		DGGR A 2 Thing_SetTranslation(0, 4242)
		DGGR A 2 Thing_SetTranslation(0, 0)
		DGGR A 2 Thing_SetTranslation(0, 4242)
		DGGR A 2 Thing_SetTranslation(0, 0)
		DGGR A 1 a_changeflag ("nogravity",0)
		goto falling
	falling:
		DGGR A 2 Thing_SetTranslation(0, 0)
		DGGR A 2 Thing_SetTranslation(0, 4242)
		loop
	death:
		TNT1 A 0
		TNT1 A 0 Thing_SetTranslation(0, 0)
		TNT1 A 0 a_changeflag ("nogravity",1)
		TNT1 A 0 a_playsound ("subweapons/miss")
		SWMS ABC 3 bright
		stop
	Crash:
		TNT1 A 0
		TNT1 A 0 Thing_SetTranslation(0, 0)
		TNT1 A 0 a_changeflag ("nogravity",1)
		TNT1 A 0 a_playsound ("subweapons/miss")
		SWMS ABC 3 bright
		stop
	xdeath:
		TNT1 A 0
		TNT1 A 0 Thing_SetTranslation(0, 0)
		TNT1 A 0 a_changeflag ("nogravity",1)
		TNT1 A 0 a_playsound ("subweapons/hit")
		SWHT ABC 3 bright
		stop
	}
}


ACTOR DarkAwake : Inventory{}