actor redwyvern : actor replaces cacodemon
{
    Health 400
    Radius 28
    Height 52
    Speed 12
    PainChance 200
 	Painchance "BarrelGrab", 0
	painchance "KustamKick", 256
	Mass 600
    scale 1.5
	MONSTER 
	+FLOAT
	+NOGRAVITY
    SeeSound "wyvern/see"
    PainSound "wyvern/pain"
    DeathSound "wyvern/die"
    ActiveSound "wyvern/idle"
    bloodtype newbloodsplatter
	Obituary "%o was scorched by a Wyvern."
	states
	{
	spawn:
		WYRN ABCD 8 A_Look
		loop
	see:
		WYRN AABBCCDD 3 A_Chase
		TNT1 A 0 A_PlaySound ("wyvern/fly",0)
		loop
	missile:
		TNT1 A 0 A_PlaySound ("wyvern/attack",0)
		WYRN E 8 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser (300, "flamethrower")
		WYRN F 3 A_CustomMissile ("Wyvernfireball")
		WYRN FGHI 5
		goto see
	flamethrower:
		WYRN E 8 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("Wyvernflame")
		WYRN E 4 
		TNT1 A 0 A_CustomMissile ("Wyvernflame")
		WYRN E 4 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("Wyvernflame")
		WYRN E 4
		TNT1 A 0 A_CustomMissile ("Wyvernflame")
		WYRN E 4 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("Wyvernflame")
		WYRN E 4
		TNT1 A 0 A_CustomMissile ("Wyvernflame")
		WYRN E 4 A_FaceTarget
		TNT1 A 0 A_CustomMissile ("Wyvernflame")
		WYRN E 4
		TNT1 A 0 A_CustomMissile ("Wyvernflame")
		WYRN E 4 A_FaceTarget
		goto see
	pain:
		WYRN J 4 
		TNT1 A 0 A_ChangeFlag ("NoGravity",1)
		TNT1 A 0 A_TakeInventory ("PowerTerrorStatus",999)
		TNT1 A 0 A_TakeInventory ("PowerKickedStatus",999)
		WYRN J 4 A_Pain
		goto see
	Pain.Dazer:
    Pain.Superkick:
		WYRN J 4 
		TNT1 A 0 A_GiveInventory ("KickDazer",1)
		TNT1 A 0 A_ChangeFlag ("NoGravity",0)
		WYRN J 4 A_Pain
		goto Dazed
    Dazed:
		WYRN J 2
		WYRN J 1 A_SetAngle (angle+15)
		WYRN J 1 A_JumpIfInventory ("PowerKickedStatus",1,"Dazed")
		WYRN J 1 A_ChangeFlag ("NoGravity",1)
		Goto See
	death:
		WYRN K 4 a_scream
		WYRN L 3 a_fall
		WYRN MN 4
		WYRN OP 4
		WYRN P -1
		stop
	Xdeath:
		WYRN K 3 a_scream
		TNT1 A 0 a_fall
		TNT1 A 0 a_spawnitem ("bigbloodsplatter")
		TNT1 A 0 A_PlaySound ("skeleton/gib",0,1,0,0.6)
		TNT1 AAAAAAAA 0 a_spawnitemex ("newbloodsplatter",0,0,24)       
		TNT1 AAA 0 a_spawnitemex("bonegib",0,0,0,random(-10,10),random(-10,10),10)
		ISKL AAAAAAA 0 a_spawnitemex("hipbonegib",0,0,32,random(-10,10),random(-10,10),10)
		ISKL AAAAA 0 a_spawnitemex("ribbonegib",0,0,32,random(-10,10),random(-10,10),12)
		TNT1 A 0 thrustthingz (0,40,0,1)
		TNT1 A 0 ThrustThing(angle*256/360+128, 7, 0, 0)
		TNT1 A 4
	Skullflying:
		WYRN Q 1
		TNT1 A 0 A_JumpIf(floorz == z, "Skulded")
		WYRN Q 1
		TNT1 A 0 A_JumpIf(floorz == z, "Skulded")
		WYRN R 1
		TNT1 A 0 A_JumpIf(floorz == z, "Skulded")
		WYRN R 1
		TNT1 A 0 A_JumpIf(floorz == z, "Skulded")
		WYRN S 1
		TNT1 A 0 A_JumpIf(floorz == z, "Skulded")
		WYRN S 1
		TNT1 A 0 A_JumpIf(floorz == z, "Skulded")
		WYRN T 1
		TNT1 A 0 A_JumpIf(floorz == z, "Skulded")
		WYRN T 1
		TNT1 A 0 A_JumpIf(floorz == z, "Skulded")
		loop
	SkulDed:
		WYRN Q 1 A_PlaySound ("gibs/bones",0)
		TNT1 A 0 thrustthingz (0,20,0,0)
		WYRN RSTQ 2
		WYRN Q -1
		stop
		
	death.superkick:
		WYRN K 1 a_scream
		WYRN K 1 a_scalevelocity (0.1)
		WYRN K 1 a_stop
		WYRN K 1 a_noblocking
		TNT1 A 0 A_ChangeFlag ("NOCLIP",1)
		TNT1 A 0 A_ChangeFlag ("NOGRAVITY",1)
		WYRN K 1 A_FaceTarget
		TNT1 A 0 thrustthingz (0,80,0,1)
		TNT1 A 0 ThrustThing(angle*256/360+128, 110, 1, 0)
		TNT1 A 0 a_spawnitemex ("kickdeathsound")
        WYRN L 1
		WYRN M 2
	kickfly:
		WYRN OOOOOOO 1 a_spawnitemex ("KustamParticle",random(-8,8),random(-8,8),random(-10,10),random(-120,120)/15.0,random(-130,130)/12.0,random(-110,110)/17.0,0)
		TNT1 A 0 a_fadeout (0.02)
		loop
	death.sentinelarm:
		WYRN K 4 a_scream
		WYRN L 3 a_fall
		WYRN MN 2
		WYRN N 2
		TNT1 A 0 a_nogravity
		TNT1 A 0 a_stop
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",CHAN_VOICE,1,0,0.4)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",5,1,0,0.6)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",6,1,0,0.6)
		TNT1 A 0 A_PlaySound ("Kustam/OCKill",7,1,0,0.6)
		OCKL ABCDEF 2 bright
		stop
		
	
	death.blazice:
		WYRN K 2 a_scream
		WYIC A 1 A_noblocking
		TNT1 A 0 thrustthingz (0,25,0,0)
		TNT1 A 0 A_PlaySound ("swordtech/freezedeath")
		TNT1 A 0 a_fadeout (0.20)
		TNT1 AAAAAAAAAAAA 0 a_spawnitemex ("iceparticle",random(-8,8),random(-8,8),32,random(-100,100)/10.0,random(-100,100)/10.0,random(-100,100)/20.0,0,160)
	falling:
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "Shatter")
		WYIC B 1 bright A_JumpIf(Abs(VelZ) <= 0.01, "Shatter")
		TNT1 A 0 A_JumpIf(Abs(VelZ) <= 0.01, "Shatter")		
		loop
	shatter:
		WYIC C 2 bright
		TNT1 A 0 A_PlaySound ("swordtech/iceshatter")
		TNT1 AAA 0 a_spawnitemex ("icefragment",0,0,0,random(-10,10),random(-10,10),10) 
		TNT1 AAAA 0 a_spawnitemex ("icefragment",0,0,0,random(-4,13),random(-8,13),8) 
		stop
	death.fatalslash:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag ("nogravity",1)
		TNT1 A 0 a_stop
		WYRN J 2 a_scream
		WYIC A 4 a_noblocking
		TNT1 A 0 a_stop
		FDWV A 15
	randomwait:
		FDWV A 1 a_jump (20,"split")
		loop
	split:
		FDWV AABBCC 5
		FDWV DE 2
		FDWV FGHIJ 3 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWV J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWV J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWV J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWV J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWV J 1 bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
	exploding:
		FDWV J 1 Bright 
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWV J 1 Bright 
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWV J 1 Bright 
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		FDWV J 1 Bright a_jump (100,"reallydie")
		TNT1 A 1 Bright A_SpawnItemEx ("fatalburst", frandom(-20,20),frandom(-20,20),frandom(10,35), 0,0,0, 0, SXF_NOCHECKPOSITION,80)
		loop
	reallydie:	
		TNT1 A 0
		TNT1 A 1 a_spawnitemex ("fataldrawdeath",0,0,0)
		stop
	raise:
		WYRN PONMLK 4
		TNT1 A 0 a_jump (40,"chaosexplode")
		goto see
	chaosexplode:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    	WYRN A 8
        WYRN J 6 A_Pain
    	WYRN A 8
        WYRN J 6 A_Pain
    	WYRN A 8
        WYRN J 6 A_Pain
        TNT1 A 0 a_scream
        TNT1 A 0 A_NoBlocking
		TNT1 A 0 a_radiusgive ("chaoslaugh",650,RGF_MONSTERS)
		TNT1 A 0 a_spawnitemex("Skuttle",0,0,12,random(-6,6),random(-8,8),random(6,10),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_PlaySound ("bonelord/explode",0,1,0,0.6)
		TNT1 A 0 Radius_Quake (4,20,0,32,0)
		TNT1 A 0 a_spawnitem ("bigbloodsplatter")
		TNT1 AAAAAAAAAAAA 0 a_spawnitem ("newbloodsplatter") 
		TNT1 AAAAAAAA 0 a_spawnitemex("bonegib",0,0,0,random(-30,30),random(-30,30),10)
		ISKL AAAAAAA 0 a_spawnitemex("hipbonegib",0,0,32,random(-10,10),random(-10,10),10)
		ISKL AAAAA 0 a_spawnitemex("ribbonegib",0,0,32,random(-10,10),random(-10,10),12)
		TNT1 AAA 0 a_spawnitemex("bonegib",0,0,0,random(-30,30),random(-30,30),10)
		TNT1 A 4
		TNT1 A 0 a_spawnitemex("Skuttle",0,0,12,random(-6,6),random(-8,8),random(6,10),0,SXF_NOCHECKPOSITION)
		TNT1 A 4
		TNT1 A 0 a_spawnitemex("Skuttle",0,0,12,random(-6,6),random(-8,8),random(6,10),0,SXF_NOCHECKPOSITION)
		TNT1 A 20
		stop
	

	}
}

actor wyvernfireball 
{
    +notimefreeze
	+FORCEXYBILLBOARD	
	+THRUSPECIES
	species "enemyshot"
	Radius 6
	Height 8
	Speed 20
	Damage (20)
	seesound "wyvern/fireball"
	deathsound "wyvern/fireballhit"
	Projectile
	states
	{
	spawn:
		DMFX ABC 3 bright
		loop
	death:
		DMFX DEFGH 5
		stop
	}
}

actor wyvernflame : wyvernfireball
{
	speed 25
	damage (3)
	states
	{
	spawn:
		FX04 AAAAA 3 bright
		goto death
	death:
		TNT1 A 0 a_stop
		FX04 BCDEF 2
		stop
	}
}