Actor CeltLord 3074
{
  //$Category Monsters
  //$Title Celt
  Health 50000
  Radius 66
  Height 210
  scale 3
  Mass 1000000000
  Speed 27
  PainChance 10
  MinMissileChance 30
  MeleeDamage 100
  Monster
  Obituary "%o was frozen to death by Celt"
  HitObituary "%o was frozen to death by Celt"
  Bloodcolor "7c7c98"
  Species "Celt"
 DamageFactor "PlayerDamage", 1.0
  Damagefactor "PEXPLOSIVE", 0.3
  Damagefactor "EXPLOSIVE", 0.3
  Damagefactor "PBullet", 0.3
  Damagefactor "Bullet", 0.3
  Damagefactor "ice", 0.3 
  +NOTARGET
  +FLOORCLIP 
  +DONTRIP
  +MISSILEMORE
  +NORADIUSDMG
  +BOSS
  +DONTMORPH
  +DONTHURTSPECIES
  +NOTARGET
  +AMBUSH
  +NOICEDEATH
  +QUICKTORETALIATE
  +TELESTOMP
  +DONTRIP
  +missilemore
  +missileevenmore
  SeeSound "Celt/see"
  PainSound "Celt/pain"
  DeathSound "Celt/death"
  ActiveSound "Celt/idle"
  var int user_celt;
  States
  {
  Spawn:
    CELT AB 10 A_Look
    Loop
	   Missile:
	 TNT1 A 0 A_FaceTarget
	 TNT1 A 0 A_Jump (256,"Missile1","Missile2","Missile3","Missile4","Missile5","Missile6","Missile7","Missile8","Missile9")
  See:
    TNT1 A 0 A_SetUserVar(user_celt,0)
	CELT A 0 A_Chase
	CELT AAA 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    CELT A 0 A_Chase
	CELT AAA 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT A 0 A_Chase
	CELT BBB 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT B 0 A_Chase
	CELT BBB 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT B 0 A_Chase
	CELT CCC 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT C 0 A_Chase
	CELT CCC 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT D 0 A_Chase
	CELT DDD 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT D 0 A_Chase
	CELT DDD 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	Loop
  Melee:
  Missile1:
    TNT1 A 0 A_Jump(128,"Spread","AnotherSpread")
	TNT1 A 0 A_Jump(128,"Ring", "DiamondDust")
	TNT1 A 0 A_Jump(128,"Clone")
  Spread:
    CELT EF 8 Bright A_FaceTarget
	CELT GGGGGGGGGGGGGGG 0 Bright A_CustomMissile ("CeltIceMiniShot",90,0,random(-10,10),2,random(-5,5))
    CELT H 3 Bright
    CELT H 0 A_Jump(128,1)
	Goto See
	Missile2:
    CELT IJ 8 Bright A_FaceTarget 
    CELT KKKKKKKKKKKKKKK 0 Bright A_CustomMissile ("CeltIceMiniShot",90,0,random(-10,10),2,random(-5,5))
    CELT L 3 Bright
    CELT L 0 A_Jump(64,"Ring")
    Goto See
	Missile3:
  AnotherSpread:
    CELT MN 8 Bright A_FaceTarget
    CELT O 0 Bright A_CustomMissile ("CeltIceBigShot",90,0,0,0)
	CELT O 0 Bright A_CustomMissile ("CeltIceBigShot",90,0,15,0)
	CELT O 0 Bright A_CustomMissile ("CeltIceBigShot",90,0,30,0)
	CELT O 0 Bright A_CustomMissile ("CeltIceBigShot",90,0,45,0)
	CELT O 0 Bright A_CustomMissile ("CeltIceBigShot",90,0,60,0)
	CELT O 0 Bright A_CustomMissile ("CeltIceBigShot",90,0,75,0)
	CELT O 0 Bright A_CustomMissile ("CeltIceBigShot",90,0,-15,0)
	CELT O 0 Bright A_CustomMissile ("CeltIceBigShot",90,0,-30,0)
	CELT O 0 Bright A_CustomMissile ("CeltIceBigShot",90,0,-45,0)
	CELT O 0 Bright A_CustomMissile ("CeltIceBigShot",90,0,-60,0)
	CELT O 0 Bright A_CustomMissile ("CeltIceBigShot",90,0,-75,0)
    CELT OP 4 Bright
    Goto See
	Missile4:
  Ring:
    CELT MN 8 Bright A_FaceTarget
	Goto RingLooping
  RingLooping:
	TNT1 A 0 A_CustomMissile("CeltIceMiniShot2",90,0,user_celt,CMF_ABSOLUTEANGLE)
	TNT1 A 0 A_SetUserVar(user_celt,user_celt+2)
	TNT1 A 0 A_JumpIf(user_celt>360,1)
	Loop
	TNT1 A 0 A_SetUserVar(user_celt,0)
    CELT OP 8 Bright
    Goto See
	Missile5:
  DiamondDust: 
    CELT MMMMMMMM 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT A 0 Bright A_FaceTarget
	CELT MMMMMMMM 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT A 0 Bright A_FaceTarget
	CELT NNNNNNNN 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    CELT A 0 Bright A_FaceTarget
    CELT O 4 Bright A_CustomMissile ("CeltDiamondDustBIG",90,0,0,0)
    CELT P 4 Bright
    Goto See
	Missile6:
  Clone:
    CELT QQQQQQQQQQ 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT Q 0 A_CustomMissile ("CeltIceCloneSpawner",2,0,90,2,0)
	CELT Q 0 A_CustomMissile ("CeltIceCloneSpawner",2,0,-90,2,0)
	CELT QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    Goto See
	Missile7:
  DiamondDust: 
    CELT MMMMMMMM 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT A 0 Bright A_FaceTarget
	CELT MMMMMMMM 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT A 0 Bright A_FaceTarget
	CELT NNNNNNNN 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    CELT A 0 Bright A_FaceTarget
    CELT O 4 Bright A_CustomMissile ("CeltDiamondDust",90,0,0,0)
	CELT O 4 Bright A_CustomMissile ("CeltDiamondDust",90,0,0,0)
	CELT O 4 Bright A_CustomMissile ("CeltDiamondDust",90,0,0,0)
	CELT O 4 Bright A_CustomMissile ("CeltDiamondDust",90,0,0,0)
	CELT O 4 Bright A_CustomMissile ("CeltDiamondDust",90,0,0,0)
	CELT O 4 Bright A_CustomMissile ("CeltDiamondDust",90,0,0,0)
    CELT P 4 Bright
	goto see
		Missile8:
  AnotherSpread:
    CELT MN 8 Bright A_FaceTarget
    CELT O 0 Bright A_CustomMissile ("CeltDiamondDust",90,0,0,0)
	CELT O 0 Bright A_CustomMissile ("CeltDiamondDust",90,0,15,0)
	CELT O 0 Bright A_CustomMissile ("CeltDiamondDust",90,0,30,0)
	CELT O 0 Bright A_CustomMissile ("CeltDiamondDust",90,0,45,0)
	CELT O 0 Bright A_CustomMissile ("CeltDiamondDust",90,0,60,0)
	CELT O 0 Bright A_CustomMissile ("CeltDiamondDust",90,0,75,0)
	CELT O 0 Bright A_CustomMissile ("CeltDiamondDust",90,0,-15,0)
	CELT O 0 Bright A_CustomMissile ("CeltDiamondDust",90,0,-30,0)
	CELT O 0 Bright A_CustomMissile ("CeltDiamondDust",90,0,-45,0)
	CELT O 0 Bright A_CustomMissile ("CeltDiamondDust",90,0,-60,0)
	CELT O 0 Bright A_CustomMissile ("CeltDiamondDust",90,0,-75,0)
    CELT OP 4 Bright
	goto see
		Missile9:
     CeltIceBigShot: 
    CELT MMMMMMMM 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT A 0 Bright A_FaceTarget
	CELT MMMMMMMM 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
	CELT A 0 Bright A_FaceTarget
	CELT NNNNNNNN 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    CELT A 0 Bright A_FaceTarget
    CELT O 4 Bright A_CustomMissile ("CeltIceBigShot",90,0,0,0)
	CELT O 4 Bright A_CustomMissile ("CeltIceBigShot",90,0,0,0)
	CELT O 4 Bright A_CustomMissile ("CeltIceBigShot",90,0,0,0)
	CELT O 4 Bright A_CustomMissile ("CeltIceBigShot",90,0,0,0)
	CELT O 4 Bright A_CustomMissile ("CeltIceBigShot",90,0,0,0)
	CELT O 4 Bright A_CustomMissile ("CeltIceBigShot",90,0,0,0)
    CELT P 4 Bright
	goto see
  Pain:
    CELT Q 2
    CELT Q 2 A_Pain
    Goto See
  Death:
    CELT R 10 Bright A_Scream
	CELT STUV 10 Bright
	TNT1 A 0 A_PlaySound("Celt/CometDeath",CHAN_7,1.0,FALSE,ATTN_NONE)
    TNT1 A 0 A_SpawnItemEx("CeltBody",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("KXCeltIceParticle2",0,0,5,frandom(-15,15),frandom(-15,15),frandom(5,15),random(1,360))
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("KXCeltIceParticle",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(1,360))
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_SpawnItemEx("CeltRealDiamondDust",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(1,360))
    CELT U 0 Bright A_NoBlocking
    TNT1 A -1 Bright
    Stop
  }
}

Actor CeltBody
{   
  Radius 0
  Height 0
  Speed 0
  Scale 3
  +ClientSideOnly
  +NoBlockMap
  Translation "0:255=%[0.00,0.00,1.84]:[1.24,1.24,2.00]"
  States
  {
  Spawn:
    CELT WXY 5 Bright
	CELT Z -1 Bright
    Stop
  }
}

Actor CeltIceBigShot
{
  Radius 3
  Height 3
  Speed 20
  Damage 100
  Projectile
  RenderStyle Add
  DamageType Ice
  SeeSound "Celt/IceShot"
  DeathSound "Celt/IceHit"
  Translation "0:255=%[0.00,0.00,1.84]:[1.24,1.24,2.00]"
  Decal RevenantScorch
  States
  {
  Spawn:
    IBAL AABB 2 Bright A_SpawnItemEx("CeltIceBigShotTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    Loop
  Death:
    IBAL AAAAAAAAAA 0 A_SpawnItemEx("KXCeltIceParticle",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(1,360))
	IBAL DEFGHI 4 Bright 
    Stop
  }
}

Actor CeltIceBigShotTrail
{
    Radius 1
    Height 1
    Speed 0
    Damage 50
    PROJECTILE
    RenderStyle Add
	Translation "0:255=%[0.00,0.00,1.84]:[1.24,1.24,2.00]"
	+ClientSideOnly
    +Randomize
    Alpha 0.9
    States
    {
    Spawn:
		IBAL A 1 Bright A_FadeOut(0.04)
		IBAL A 0 A_SetScale(ScaleX-0.03)
		IBAL A 1 Bright A_FadeOut(0.04)
		IBAL A 0 A_SetScale(ScaleX-0.03)
		IBAL A 1 Bright A_FadeOut(0.04)
		IBAL A 0 A_SetScale(ScaleX-0.03)
		IBAL A 1 Bright A_FadeOut(0.04)
		IBAL A 0 A_SetScale(ScaleX-0.03)
		IBAL B 1 Bright A_FadeOut(0.04)
		IBAL B 0 A_SetScale(ScaleX-0.03)
		IBAL B 1 Bright A_FadeOut(0.04)
		IBAL B 0 A_SetScale(ScaleX-0.03)
		IBAL B 1 Bright A_FadeOut(0.04)
		IBAL B 0 A_SetScale(ScaleX-0.03)
		IBAL B 1 Bright A_FadeOut(0.04)
		IBAL B 0 A_SetScale(ScaleX-0.03)
		Loop
    }
}

Actor CeltIceMiniShot
{
  Radius 3
  Height 3
  Speed 20
  Damage 10
  Projectile
  RenderStyle Add
  DamageType Ice
  SeeSound "Celt/IceShot"
  DeathSound "Celt/IceHit"
  States
  {
  Spawn:
    IPRJ AAABBBCCC 1 Bright A_SpawnItemEx("CeltIceMiniShotTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    Loop
  Death:
    IPRJ AAA 0 A_SpawnItemEx("KXCeltIceParticle",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(1,360))
	IPRJ DEFGH 3 Bright 
    Stop
  }
}

Actor CeltIceMiniShot2 : CeltIceMiniShot
{
  Speed 12
}

Actor CeltIceMiniShotTrail
{
    Radius 1
    Height 1
    Speed 0
    Damage 5
    PROJECTILE
    RenderStyle Add
	+ClientSideOnly
    +Randomize
    Alpha 1.0
    States
    {
    Spawn:
	    IPRJ AAAABBBBCCCC 1 Bright A_FadeOut(0.07)
		Stop
    }
}

Actor CeltDiamondDust
{
  Radius 13
  Height 8
  Speed 25
  Damage 50
  Projectile
  SeeSound "CELT/comet"
  Translation "0:255=%[0.00,0.00,2.00]:[2.00,2.00,2.00]"
  RenderStyle Add
  Projectile
  Decal RevenantScorch
  States
  {
  Spawn:
    ICOM AAAABBBBCCCC 1 Bright A_SpawnItemEx("CeltDiamondDustTail", 0, 0, 0, 0, 0, 0, 0, 128)
    Loop
  Death:
    ICOM A 0 A_PlaySound("Celt/CometDeath",CHAN_AUTO,1.0,FALSE,ATTN_NONE)
    ICOM A 0 Bright A_Explode(256,256,0)
	ICOM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("KXCeltIceParticle",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(1,360))
    ICOM DDDDEEEEFFFFGGGGHHHHIIII 1 Bright A_SpawnItemEx("CeltRealDiamondDust",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(1,360))
    Stop
  }
}

Actor CeltDiamondDustTail
{
    Radius 1
    Height 1
    Speed 0
	RenderStyle Add
    Projectile
    +DontSplash
	+ClientSideOnly
    States
    {
    Spawn:
	    TNT1 A 2 
        IRTB ABCDEFGHI 1 Bright
		Stop
    }
}

Actor CeltRealDiamondDust
{
  Radius 15
  Height 8
  Speed 20
  Damage 50
  Projectile
  +Ripper
  +HexenBounce
  Obituary "%o was frozen by Celt."
  DamageType Ice
  States
  {
  Spawn: 
      IRME ABCDEFGHIJKLMNS 2 Bright
	  IRME S 1 A_FadeOut(0.01)
      Wait
  }
}

actor CeltIceCloneSpawner : PlasmaBall
{
  RenderStyle Normal
  Radius 24
  Height 1
  Speed 9
  +HexenBounce
  Damage 10
  SeeSound ""
  DeathSound ""
  Translation "0:255=%[0.00,0.00,2.00]:[2.00,2.00,2.00]"
  States
  {
  Spawn:
    CELT ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    TNT1 A 0 A_Stop
	TNT1 A 0 A_PlaySound("misc/freeze",CHAN_AUTO,1.0)
    Goto Death
  Death:
    CELT YYYYYYXXXXXXWWWWWWVVVVVVUUUUUUTTTTTTSSSSSSRRRRRR 1 A_SpawnItemEx("KXCeltIceParticle", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    TNT1 A 0 A_PlaySound("misc/freeze",CHAN_AUTO,1.0)
    TNT1 A 0 Bright A_SpawnItemEx("CeltIceClone",0,0,1,0,0,0,0)
    Stop
  }
}

ACTOR CeltIceClone : BaronOfHell
{
  Health 150
  Speed 16
  PainChance 20
  Species "Celt"
  +DontHarmSpecies
  -CountKill
  -BossDeath
  SeeSound ""
  PainSound ""
  DeathSound "misc/freeze"
  ActiveSound ""
  Obituary "%o was frozen by Celt"
  HitObituary "%o was frozen by Celt"
  BloodColor "7c7c98"
  Translation Ice
  States
  {
  Spawn:
    CELT AB 10 A_Look
    Loop
  See:
    CELT AABBCCDD 3 A_Chase
    Loop
  Melee:
  Missile:
    CELT EF 8 Bright A_FaceTarget
	CELT GGGGGGGGGG 0 Bright A_CustomMissile ("CeltIceMiniShot",28,0,random(-10,10),2,random(-5,5))
    CELT GH 3 Bright
    CELT H 0 A_Jump(128,1)
	Goto See
    CELT IJ 8 Bright A_FaceTarget 
    CELT KKKKKKKKKK 0 Bright A_CustomMissile ("CeltIceMiniShot",28,0,random(-10,10),2,random(-5,5))
    CELT KL 3 Bright
	CELT H 0 A_Jump(128,"Missile")
    Goto See
  Pain:
    CELT Q 2
    CELT Q 2 A_Pain
    Goto See
  Death:
    CELT Q 5 A_IceGuyDie
    Stop
  Raise:
    Stop
  }
}

Actor KXCeltIceParticle
{
	Projectile
	Damage 0
	+NoBlockMap
	+BloodLessImpact
	+ClientSideOnly 
    -BloodSplatter
    +DontSplash
    +ForceXYBillBoard
	Speed 0
	Radius 1
	Height 1
	RenderStyle Add
	States
	{
  Spawn:
  Death:
    IPRJ I 1 Bright A_FadeOut(0.04)
    Loop
	}
}

Actor KXCeltIceParticle2
{
	Projectile
	Damage 0
	+NoBlockMap
	+BloodLessImpact
	+ClientSideOnly
    -BloodSplatter
    +DontSplash
    +ForceXYBillBoard
	-NoGravity
	Speed 0
	Radius 1
	Height 1
	Scale 0.2
	Gravity 0.8
	RenderStyle Add
	States
	{
  Spawn:
    IRTB A 1 Bright
    Loop
  Death:
    IRTB ABCDEFGHI 1 Bright A_FadeOut(0.04)
	Wait
	}
}

Actor CeltDiamondDustBIG
{
  Radius 66
  Height 210
  Speed 25
  SCALE 3
  Damage 200
  Projectile
  SeeSound "CELT/comet"
  Translation "0:255=%[0.00,0.00,2.00]:[2.00,2.00,2.00]"
  RenderStyle Add
  Projectile
  Decal RevenantScorch
  States
  {
  Spawn:
    ICOM AAAABBBBCCCC 1 Bright A_SpawnItemEx("CeltDiamondDustTailBIG", 0, 0, 0, 0, 0, 0, 0, 128)
    Loop
  Death:
    ICOM A 0 A_PlaySound("Celt/CometDeath",CHAN_AUTO,1.0,FALSE,ATTN_NONE)
    ICOM A 0 Bright A_Explode(256,256,0)
	ICOM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("KXCeltIceParticle",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(1,360))
    ICOM DDDDEEEEFFFFGGGGHHHHIIII 1 Bright A_SpawnItemEx("CeltRealDiamondDustBIG",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(1,360))
    Stop
  }
}

Actor CeltDiamondDustTailBIG
{
    Radius 1
    Height 210
	SCALE 3
    Speed 0
	RenderStyle Add
    Projectile
    +DontSplash
	+ClientSideOnly
    States
    {
    Spawn:
	    TNT1 A 2 
        IRTB ABCDEFGHI 1 Bright
		Stop
    }
}

Actor CeltRealDiamondDustBIG
{
  Radius 15
  Height 210
  SCALE 3
  Speed 20
  Damage 100
  Projectile
  +Ripper
  +HexenBounce
  Obituary "%o was frozen by Celt."
  DamageType Ice
  States
  {
  Spawn: 
      IRME ABCDEFGHIJKLMNS 2 Bright
	  IRME S 1 A_FadeOut(0.01)
      Wait
  }
}