actor ChestSpider
{
    Health 500
    Radius 20
    Height 56
    PainChance 130
 	Painchance "BarrelGrab", 0
	Mass 800
    MeleeRange 78
	meleethreshold 200
    Speed 20
    Scale 1.5
    bloodtype Dukebloodsplatter
    Monster
    +FLOORCLIP
	+noblooddecals
	+LOOKALLAROUND
	+INVULNERABLE
	+DONTCORPSE
	-countkill
	-SHOOTABLE
	-SOLID
	SeeSound "Spiderchest/see"
    PainSound "Spiderchest/pain"
    ActiveSound "Spiderchest/Idle"
	DeathSound "Spiderchest/Die"
	Obituary "%o was pelted with gems by a plunder spider."
    HitObituary "%o has been chewed up by a plunder spider."
	dropitem "SpiderLoot" 256
	states
	{
	Spawn:
		TNT1 A 0
		MCAW A 5 
		MCAW C 9 Thrustthingz (0,40,0,0)
		MCAW B 1 
		MCAW A 2 
		TNT1 A 0 a_playsound ("doomslayer/swordup")
		MCAW DEF 2
		TNT1 A 0 a_playsound ("spiderchest/appear",0)
		MCAW G 4 
		MCAW H 1 a_changeflag ("INVULNERABLE",0)
		MCAW H 1 a_changeflag ("SHOOTABLE",1)
		MCAW H 1 a_changeflag ("SOLID",1)
		MCAW I 10 a_facetarget
	Waiting:
		CHMC BC 2 a_wander
		TNT1 A 0 a_look
		TNT1 A 0 a_playsound ("spiderchest/step",0,1,0,2.5)
		CHMC DE 2 a_wander 
		TNT1 A 0 a_look
		TNT1 A 0 a_playsound ("spiderchest/step",0,1,0,2.5)
		loop
	See:
		CHMC BC 2 fast a_chase
		TNT1 A 0 fast a_chase
		TNT1 A 0 a_playsound ("spiderchest/step",0,1,0,2.5)
		CHMC DE 2 fast a_chase
		TNT1 A 0 fast a_chase
		TNT1 A 0 a_playsound ("spiderchest/step",0,1,0,2.5)
		loop
	Melee:
		CHMC F 3 a_facetarget
		TNT1 A 0 a_playsound ("Spiderchest/Open",0)
		CHMC G 6 a_facetarget 
		CHMC H 4 a_facetarget
		CHMC I 3 a_facetarget
		TNT1 A 0 a_playsound ("Spiderchest/Chomp",0)
		CHMC J 5 a_custommeleeattack(15,"mace/hit",0,"thiefknife")
		CHMC K 4
		CHMC F 3 a_facetarget
		goto see
	Missile:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jump (180,"spreadblast")
	Rapidshot:
		CHMC F 12 a_facetarget
		TNT1 A 0 a_playsound ("Broodslime/attack",CHAN_VOICE)
		TNT1 A 0 a_custommissile ("MimicRuby",34)
		CHMC M 5 a_facetarget 
		CHMC F 3 a_facetarget
		TNT1 A 0 a_playsound ("Broodslime/attack",CHAN_VOICE)
		TNT1 A 0 a_custommissile ("MimicRuby",34)
		CHMC M 5 a_facetarget 
		CHMC F 3 a_facetarget
		TNT1 A 0 a_playsound ("Broodslime/attack",CHAN_VOICE)
		TNT1 A 0 a_custommissile ("MimicRuby",34)
		CHMC M 5 a_facetarget 
		TNT1 A 0 a_jump (120,"Rapidshot")
		goto see
	Spreadblast:
		CHMC F 12 a_facetarget
		TNT1 A 0 a_playsound ("Broodslime/attack",CHAN_VOICE)
		TNT1 A 0 a_custommissile ("MimicTopaz",34,-35)
		TNT1 A 0 a_custommissile ("MimicTopaz",34,6)
		TNT1 A 0 a_custommissile ("MimicTopaz",34)
		TNT1 A 0 a_custommissile ("MimicTopaz",34,6)
		TNT1 A 0 a_custommissile ("MimicTopaz",34,35)
		CHMC M 8 a_facetarget 
		CHMC F 3 a_facetarget
		goto see
	Pain: 
		CHMC L 3 a_facetarget
		TNT1 A 0 A_TakeInventory ("PowerTerrorStatus",999)
  		TNT1 A 0 A_TakeInventory ("PowerKickedStatus",999)
		CHMC L 3 a_pain
		CHMC F 4 a_facetarget
		goto see
	Pain.Dazer:
    Pain.Superkick:
    	CHMC L 3
		TNT1 A 0 a_giveinventory ("KickDazer",1)
		CHMC L 3 A_Pain
    	Goto Dazed
    Dazed:
		CHMC L 2
		CHMC L 1 A_SetAngle (angle+15)
		CHMC L 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		Goto See
	Death:
		TNT1 A 1 a_fall
		TNT1 A 0 a_scream
		TNT1 A 0 a_spawnitem ("bigdukebloodsplatter")
		TNT1 A 0 a_facetarget
		TNT1 AAAAAAAA 0 a_spawnitemex ("dukebloodsplatter",0,0,24)       
		TNT1 AAAA 0 a_spawnitemex ("SpiderchestChunk",0,0,0,random(-15,15),random(-15,15),15) 
		TNT1 AAA 0 a_spawnitemex ("SpiderLeg",0,0,0,random(-15,15),random(-15,15),random(15,20)) 
		TNT1 A 0 a_spawnitemex ("armorexplode",0,0,30)
		TNT1 A 0 a_spawnitemex ("SpiderHalf",0,0,0,random(15,25),random(-15,15),15) 
		TNT1 A 0 a_spawnitemex ("SpiderHalf2",0,0,0,random(-15,-25),random(-15,15),15) 
		TNT1 A 1
		TNT1 AAAAA 0 a_spawnitemex ("SpiderLeg",0,0,0,random(-15,15),random(-15,15),random(15,20)) 
		TNT1 A 1
		stop
	}
}

actor MimicRuby
{
    +notimefreeze
	+BLOODSPLATTER
	+FORCEXYBILLBOARD	
	+THRUSPECIES
	+THRUGHOST
	+bright
	species "enemyshot"
	Radius 11
	Height 8
	Speed 30
	Damage (10)
	Projectile
	states
	{
	spawn:
		MRBY A 1
		loop
	death:
		TNT1 A 0 a_playsound ("subweapons/miss")
		TNT1 A 0 a_dropitem ("SmallBulletgemdrop",1,90)
		SWMS ABC 3 bright
		stop
	Crash:
		TNT1 A 0 a_playsound ("subweapons/miss")
		TNT1 A 0 a_dropitem ("SmallBulletgemdrop",1,90)
		SWMS ABC 3 bright
		stop
	xdeath:
		TNT1 A 0 a_playsound ("implord/javelinhit")
		SWHT ABC 3 bright
		stop
	}
}

actor MimicTopaz : MimicRuby
{
	speed 25
	Damage (6)
	states
	{
	spawn:
		MTPZ ABCD 2
		loop
	death:
		TNT1 A 0 a_playsound ("subweapons/miss")
		TNT1 A 0 a_dropitem ("minorarcanecrystaldrop",1,30)
		SWMS ABC 3 bright
		stop
	Crash:
		TNT1 A 0 a_playsound ("subweapons/miss")
		TNT1 A 0 a_dropitem ("minorarcanecrystaldrop",1,30)
		SWMS ABC 3 bright
		stop
	}
}

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

actor CrystalSpiderSpawn
{
	+dontblast
	+noclip
	+thruactors
	-nogravity
	states
	{
	spawn:
		CWAP A 10
		TNT1 A 0 a_playsound ("weaver/PullBack",6,0.6,0,1.4)
		CWAP BCD 2
		CWAP D 10
		TNT1 A 0 a_playsound ("weaver/Open",6,0.6,0,1.4)
		CWAP EFG 3
		CWAP G 6
		TNT1 A 0 a_playsound ("weaver/Throw",0,0.6,0,1.4)
		CWAP HIJKL 3
		CWAP L 5
		CWAP MNOP 2
		CWAP P 7
		TNT1 A 0 a_playsound ("Weaver/Legs",0)
		CWAP QQRRSSTTUUVVWWXXYY 1
		TNT1 A 1 a_spawnitemex ("CrystalSpider",0,0,10,0,0,4,0,SXF_NOCHECKPOSITION)
		stop
	death:
		TNT1 A 0
		TNT1 A 1
		stop
	}
}

	
actor CrystalSpider 
{
    Health 600
    Radius 20
    Height 56
    PainChance 130
 	Painchance "BarrelGrab", 0
	Mass 800
    MeleeRange 70
	meleethreshold 200
    Speed 28
    Scale 1
    bloodtype Dukebloodsplatter
    Monster
    +FLOORCLIP
	+noblooddecals
	+LOOKALLAROUND
	-countkill
	SeeSound "Weaver/see"
    PainSound "Weaver/pain"
    ActiveSound "Weaver/Idle"
	DeathSound "Weaver/Die"
	Obituary "%o was shredded by a Crystal Weaver."
	dropitem "SpiderLoot" 256
	states
	{
	spawn:
		CWEV A 5 a_facetarget
	waiting:
		CWEV AA 2 a_wander
		TNT1 A 0 a_look
		CWEV BB 2 a_wander
		TNT1 A 0 a_playsound ("Weaver/step",0,1,0,0.8)
		TNT1 A 0 a_look
		CWEV CC 2 a_wander
		TNT1 A 0 a_look
		CWEV DD 2 a_wander
		TNT1 A 0 a_playsound ("Weaver/step",0,1,0,0.8)
		TNT1 A 0 a_look
		loop
	see:
		CWEV AB 2 fast a_chase
		TNT1 A 0 a_playsound ("Weaver/step",0,1,0,0.8)
		CWEV CD 2 fast a_chase
		TNT1 A 0 a_playsound ("Weaver/step",0,1,0,0.8)
		loop
	missile:
		TNT1 A 0
		TNT1 A 0 a_jumpifcloser (500,"melee")
		CWEV A 5 a_facetarget
		CWEV E 8 a_facetarget
		TNT1 A 0 a_playsound ("Weaver/Laser",0)
		TNT1 A 0 a_custommissile ("weaverbeamspawn")
		CWEV F 2 bright a_facetarget
		CWEV G 2 bright a_facetarget
		CWEV F 2 bright a_facetarget
		CWEV G 2 bright a_facetarget
		CWEV A 2
		goto see
	melee:
		TNT1 A 0
		TNT1 A 0 a_playsound ("weaver/crack",0,1,0,0.9)
		CWTS ABCDE 3 a_facetarget
		CWTS E 5 a_facetarget
		TNT1 A 0 a_playsound ("weaver/Open",0,1,0,0.9)
		CWTS FGHIJ 3 a_facetarget
		CWTS K 3 a_facetarget
		TNT1 A 0 a_playsound ("weaver/Throw",0,1,0,0.9)
		CWTS L 2
		TNT1 A 0 a_custommissile ("WeaverShell")
		CWTS MN 3
		CWTS N 3
		TNT1 A 0 a_playsound ("weaver/Pullback",0,1,0,0.9)
		CWTS OPQRS 3
		CWTS S 3
		CWTS TUVW 3
		CWTS W 3
		goto see
	Pain:
		CWEV H 3 a_facetarget
		TNT1 A 0 A_TakeInventory ("PowerTerrorStatus",999)
  		TNT1 A 0 A_TakeInventory ("PowerKickedStatus",999)
		CWEV I 2 a_pain
		CWEV I 2
		CWEV H 1
		goto see
	Pain.Dazer:
    Pain.Superkick:
    	CWEV H 3
		TNT1 A 0 a_giveinventory ("KickDazer",1)
		CWEV H 3 A_Pain
    	Goto Dazed
    Dazed:
		CWEV H 2
		CWEV H 1 A_SetAngle (angle+15)
		CWEV H 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		Goto See
	Death:
		TNT1 A 1 a_fall
		TNT1 A 0 a_scream
		TNT1 A 0 a_spawnitem ("bigdukebloodsplatter")
		TNT1 A 0 a_facetarget
		TNT1 AAAAAAAAAA 0 a_spawnitemex ("dukebloodsplatter",0,0,24)       
		TNT1 AAAA 0 a_spawnitemex ("WeaverLeg",0,0,0,random(-15,15),random(-15,15),random(15,20)) 
		TNT1 A 0 a_spawnitemex ("armorexplode",0,0,30)
		TNT1 A 1
		TNT1 AAAAAA 0 a_spawnitemex ("WeaverLeg",0,0,0,random(-15,15),random(-15,15),random(15,20)) 
		TNT1 A 1
		stop
	}
}



actor ringpellettrail
{
	+dontblast
	+notimefreeze
	+nointeraction
	+clientsideonly
	projectile
	+FORCEXYBILLBOARD	
	+LOOKALLAROUND
	radius 2
	speed 3
	Scale 0.80
	renderstyle add
	alpha 0.50
	states
	{
	spawn:
		RRNG E 2 bright
		RRNG D 2 bright
		RRNG C 1 bright
		RRNG B 1 bright
		stop
	death:
		TNT1 A 0
		stop
	}
}

actor beamtrail1
{
	+notimefreeze
	+nointeraction
	+clientsideonly
	projectile
    +FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+DONTBLAST
	radius 2
	speed 50
    Scale 5
	renderstyle translucent
	alpha 0.20
	states
	{
	Spawn:
		TNT1 A 0
		HBEM A 2 bright
		HBEM B 1 bright
		HBEM A 2 bright
		stop
	death:
		TNT1 A 0 bright 
		TNT1 A 1 bright 
		stop
	xdeath:
		TNT1 A 0 bright 
		TNT1 A 1 bright 
		stop
	}
}

actor beamtrail2 : beamtrail1
{
	scale 4
}

actor beamtrail3 : beamtrail1
{
	scale 3
}

actor beamtrail4 : beamtrail1
{
	scale 2
}


actor WeaverBeamSpawn
{
	PROJECTILE
	+NOINTERACTION
	Speed 1
	Radius 4
	Height 8
	Damage (0)
	RenderStyle None
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 a_spawnitemex ("WeaverRingTrail",18,2,2)
		TNT1 A 1 A_SpawnItemEx("WeaverBeam1",0,0,0,momx*60,momy*60,momz*60,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM)
		TNT1 A 1 A_SpawnItemEx("WeaverBeam2",0,0,0,momx*60,momy*60,momz*60,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM)
		TNT1 A 1 A_SpawnItemEx("WeaverBeam3",0,0,0,momx*60,momy*60,momz*60,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM)
		TNT1 A 1 A_SpawnItemEx("WeaverBeam4",0,0,0,momx*60,momy*60,momz*60,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM)
		TNT1 A 1 A_SpawnItemEx("WeaverBeam5",0,0,0,momx*60,momy*60,momz*60,0,SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM)
		Stop
	}
}

actor WeaverRingTrail : ringpellettrail
{
    Scale 0.80
	Translation "5:31=208:223", "168:191=211:223"
	states
	{
	spawn:
		RRNG E 2 bright
		RRNG D 2 bright
		RRNG C 1 bright
		RRNG B 1 bright
		stop
	death:
		TNT1 A 0
		stop
	}
}



actor Weaverbeam1 : fastprojectile
{
	+notimefreeze
	projectile
    +dontblast
	+FORCEXYBILLBOARD	
	+LOOKALLAROUND
	+NODAMAGETHRUST
	radius 6
	height 8
	speed 30
	damage (5)
    missileheight 8
	missiletype "weaverbeamtrail1"
	Scale 6
	renderstyle translucent
	deathsound "gauntlet/miss"
	alpha 0.50
	Translation "5:31=208:223", "168:191=211:223"
	states
	{
	Spawn: 
		HBEM A 2 bright
		HBEM B 1 bright
		loop
	death:
		TNT1 A 0
		SPRK ABCD 1 bright
		stop
	Xdeath:
		TNT1 A 0
		SPRK ABCD 1 bright
		stop
	}
}


actor weaverbeamtrail1 : beamtrail1
{
	speed 15
    Scale 3
	Translation "5:31=208:223", "168:191=211:223"
	states
	{
	Spawn:
		TNT1 A 0
		HBEM A 2 bright
		HBEM B 1 bright
		HBEM A 2 bright
		stop
	death:
		TNT1 A 0 bright 
		TNT1 A 1 bright 
		stop
	xdeath:
		TNT1 A 0 bright 
		TNT1 A 1 bright 
		stop
	}
}

actor WeaverBeam2 : WeaverBeam1
{
	missiletype "weaverbeamtrail2"
	Scale 3
}

actor weaverbeamtrail2 : weaverbeamtrail1
{
	scale 2
}

actor WeaverBeam3 : WeaverBeam1
{
	missiletype "Weaverbeamtrail3"
	Scale 2
}

actor weaverbeamtrail3 : weaverbeamtrail1
{
	scale 1
}

actor WeaverBeam4 : WeaverBeam1
{
	missiletype "Weaverbeamtrail4"
	Scale 1
}

actor weaverbeamtrail4 : weaverbeamtrail1
{
	scale 1
}

actor WeaverBeam5 : WeaverBeam1
{
	missiletype "Weaverbeamtrail4"
	Scale 1
}



actor WeaverShell
{
	+notimefreeze
	projectile
	+bloodlessimpact
	+bright
	damage (20)
	speed 25
	+FORCEXYBILLBOARD
	-NOGRAVITY
	seesound "bomberknight/throw"
	DeathSound "Subweapons/shatterbomb"
	radius 10
	height 12
	scale 1
	Gravity 1.2
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 0 thrustthingz (0,24,0,1)
		CWSH ABCDEFGH 1
		CWSH ABCDEFGH 1
		CWSH ABCD 2
		goto falling
	falling:
		CWSH D 1
		loop
	death:
		TNT1 A 0
		TNT1 A 0 
		TNT1 A 0 a_changeflag ("NOGRAVITY",1)
		TNT1 AAAAAAAAA 0 a_spawnitemex ("ShellFrag",0,0,frandom(4,8),random(-45,45),random(-40,40),frandom(9,13)) 
		TNT1 A 0 Radius_Quake (2,6,0,10,0)
		TNT1 A 0 a_explode (25,100,0,0,30)
		REVS FGHIJK 2
		stop
	}
}

actor Shellfrag
{
	seesound "gibs/icefragment"
	projectile
	-NOGRAVITY
	damage (4)
	speed 20
	scale 1.50
	gravity 1.6
	+hexenbounce
	Bouncecount 5
	bouncefactor 1.20
	+bright
	states
	{
	Spawn:
		TNT1 A 0
		CWFG ABCDEFGH 1
		loop
	death:
		TNT1 A 0
		TNT1 A 1
		stop
	Xdeath:
		TNT1 A 0
		TNT1 A 0 a_playsound ("subweapons/hit")
		TNT1 A 0 a_changeflag ("NOGRAVITY", 1)
		SWHT ABC 3 bright
		stop		
	}
}

