ACTOR Ironlich~ : IronLich replaces IronLich
{

  States
  {
  Death:
    LICH C 7
    LICH D 7 A_Scream
	LICH E 0 A_SpawnItem("LichFlash",0,48)
	LICH E 0 A_SpawnItem("LichFlash2",0,48)
	LICH E 0 A_Explode(100,128)
    LICH E 7
	LICH F 7
    LICH G 7 A_NoBlocking
    LICH H 7
    LICH I -1 A_BossDeath
    Stop
  }
}

ACTOR LichFlash : Baseflare
{
   Scale 0.6
   alpha 0.8
   +DONTSPLASH
   +BRIGHT
   States
   {
   Spawn:
    YGZF A 15 BRIGHT
   Death:
	YGZF A 1 BRIGHT A_FadeOut
	Loop
   }
}

ACTOR LichFlash2 : Baseflare
{
   Scale 0.8
   alpha 1
   +DONTSPLASH
   +BRIGHT
   States
   {
   Spawn:
    GLIT A 19 BRIGHT
   Death:
	GLIT A 1 BRIGHT A_FadeOut
	Loop
   }
}

ACTOR Whirlwind~ : Whirlwind replaces Whirlwind
{
Alpha 0.55
PainSound "ironlich/windy"
  States
  {
  Spawn:
    FX07 D 0 
	FX07 D 0 A_Pain
    FX07 DEFG 3 
  Chaser:
	
	FX07 A 1 A_WhirlwindSeek
	FX07 AAAA 0 A_SpawnItemEx("DustFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,6),random(90,270))
	FX07 A 1 A_WhirlwindSeek
	FX07 AAA 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,2),random(90,270))
    FX07 A 1 A_WhirlwindSeek
	FX07 AAAA 0 A_SpawnItemEx("DustFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,4),random(90,270))
	
	FX07 B 1 A_WhirlwindSeek
	FX07 BBB 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,1),random(90,270))
	FX07 B 1 A_WhirlwindSeek
	FX07 BBBB 0 A_SpawnItemEx("DustFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,3),random(90,270))
	FX07 B 1 A_WhirlwindSeek
	FX07 BBBB 0 A_SpawnItemEx("DustFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,7),random(90,270))
	
	FX07 C 1 A_WhirlwindSeek
	FX07 CC 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,4),random(90,270))
	FX07 C 1 A_WhirlwindSeek
	FX07 CCCCCC 0 A_SpawnItemEx("DustFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,5),random(90,270))
	FX07 C 1 A_WhirlwindSeek
	FX07 CCC 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,1),random(90,270))
    Loop
  Death:
    TNT1 AAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("DustFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,10),random(0,360))
	TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,7),random(0,360))
    FX07 G 4
	TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("DustFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,10),random(0,360))
	TNT1 AAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,7),random(0,360))
	FX07 F 4
	TNT1 AAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("DustFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,10),random(0,360))
	TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,7),random(0,360))
	FX07 E 4
	TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx("DustFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,10),random(0,360))
	TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,7),random(0,360))
	FX07 D 4
    Stop
  }
}

ACTOR DustFX
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +CANNOTPUSH
  +CLIENTSIDEONLY
  scale 0.25
  RenderStyle Add
  Alpha 1
  States
  {
  Spawn:
    SMOK A 0 
	TNT1 A 1 A_Jump(256,"SMOKA0","SMOKB0","SMOKC0","SMKGA0")
	Loop
  SMOKA0:
    SMOK A 5
  FadeLoopA:
    SMOK A 1 A_FadeOut
	Loop
	
  SMOKB0:
    SMOK B 3
  FadeLoopB:
    SMOK B 1 A_FadeOut
	Loop
	
  SMOKC0:
    SMOK C 7
  FadeLoopC:
    SMOK C 1 A_FadeOut
	Loop

  SMKGA0:
    SMKG ABCDEFGHIJ 1 
   Stop
  }
}

ACTOR LeafFX
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +CANNOTPUSH
  +CLIENTSIDEONLY
  scale 1.1
  States
  {
  Spawn:
    SMOK A 0 
	TNT1 A 1 A_Jump(256,"LEF1A0","LEF2A0","LEF3A0")
	Loop
  LEF1A0:
    LEF1 ABCDEFGHIABCDEFGHI 2
  FadeLoopA:
    LEF1 ABCDEFGHI 1 A_FadeOut
	Loop
	
  LEF2A0:
    LEF2 ABCDEFGHIABCDEFGHIABCDEFGHI 2
  FadeLoopB:
    LEF2 ABCDEFGHI 1 A_FadeOut
	Loop
  LEF3A0:
    LEF3 ABCDE 2
  FadeLoopB:
    LEF3 ABCDE 1 A_FadeOut
	Loop
  }
}

ACTOR HeadFX1~ : HeadFX1 replaces HeadFX1
{
scale 0.7
RenderStyle Translucent
alpha 0.9
DeathSound "IceBall/Death"
  States
  {
  Spawn:
    ICE1 AB 2
	ICE1 BBB 0 A_SpawnItemEx("SnowFlake", Random(-7, 7), Random(-7, 7), Random(0, 9), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
	ICE1 CD 2
	ICE1 DDD 0 A_SpawnItemEx("SnowFlake", Random(-7, 7), Random(-7, 7), Random(0, 9), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
	ICE1 EF 2
	ICE1 FFF 0 A_SpawnItemEx("SnowFlake", Random(-7, 7), Random(-7, 7), Random(0, 9), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
    Loop
  Death:
    TNT1 A 0 A_Scream
    TNT1 A 0 A_SetTranslucent(0.8,0)
	TNT1 AAAAAAAAAA 0 A_SpawnItemEx("SnowFlakePiece", 0, 0, 0, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    ICE1 G 5 BRIGHT
	ICE1 G 0 BRIGHT A_LichIceImpact
	ICE1 HI 5 BRIGHT
    Stop
  }
}

ACTOR HeadFX2~ : HeadFX2 replaces HeadFX2
{
scale 0.4
RenderStyle Translucent
alpha 0.9
DeathSound "IceBall/Death"
  States
  {
  Spawn:
    ICE1 A 2 BRIGHT
	ICE1 AA 0 A_SpawnItemEx("SnowFlake", Random(-7, 7), Random(-7, 7), Random(0, 9), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
	ICE1 B 2 BRIGHT
	ICE1 BB 0 A_SpawnItemEx("SnowFlake", Random(-7, 7), Random(-7, 7), Random(0, 9), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
	ICE1 C 2 BRIGHT
	ICE1 CC 0 A_SpawnItemEx("SnowFlake", Random(-7, 7), Random(-7, 7), Random(0, 9), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
	
	ICE1 D 2 BRIGHT
	ICE1 DD 0 A_SpawnItemEx("SnowFlake", Random(-7, 7), Random(-7, 7), Random(0, 9), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
	ICE1 E 2 BRIGHT
	ICE1 EE 0 A_SpawnItemEx("SnowFlake", Random(-7, 7), Random(-7, 7), Random(0, 9), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
	ICE1 F 2 BRIGHT
	ICE1 FF 0 A_SpawnItemEx("SnowFlake", Random(-7, 7), Random(-7, 7), Random(0, 9), Random(1, 3), 0, (0.1)*Random(-10, 10), Random(-20, 20), 128)
    Loop
  Death:
    TNT1 A 0 A_Scream
    TNT1 AAAAA 0 A_SpawnItemEx("SnowFlakePiece", 0, 0, 0, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
    ICE1 GHI 5 Bright
    Stop
  }
}

Actor SnowFlake
{
  Height 0
  Radius 0
  Mass 0
  +MISSILE
  +NOBLOCKMAP
  +NOGRAVITY
  +DONTSPLASH
  RenderStyle Add
  Scale 0.03
  Gravity 0.5
  Alpha 0.6
  States
  {
  Spawn:
    SNFL A 2 Bright A_FadeOut(0.12)
    Loop
  }
}

Actor SnowFlakePiece
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +DontSplash
  +NoInteraction
  RenderStyle Add
  Scale 0.04
  Gravity 0.5
  Alpha 0.6
  States
  {
  Spawn:
  Death:
    SNFL A 3 Bright A_FadeOut(0.1)
    Loop
  }
}

ACTOR HeadFX3~ : HeadFX3 replaces HeadFX3
{
  States
  {
  Spawn:
    FX06 A 2 BRIGHT A_LichFireGrow
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
	FX06 A 2 BRIGHT A_LichFireGrow
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
	FX06 B 2 BRIGHT A_LichFireGrow
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
	FX06 B 2 BRIGHT A_LichFireGrow
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
	FX06 C 2 BRIGHT A_LichFireGrow
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
	FX06 C 2 BRIGHT A_LichFireGrow
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
    Loop
  NoGrow:
	FX06 A 2 BRIGHT 
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
	FX06 A 2 BRIGHT 
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
	FX06 B 2 BRIGHT 
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
	FX06 B 2 BRIGHT 
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
	FX06 C 2 BRIGHT 
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
	FX06 C 2 BRIGHT 
	FX06 A 0 A_SpawnItemEx("Puffy~",random(-8,8),random(-2,2),random(-2,2),0,0,random(1,5))
    Loop
  Death:
	TNT1 AAAAAAAA 0 A_SpawnItemEx("PhoenixProjFX1", 0, 0, 0, (0.1)*Random(25, 100), 0, (0.1)*Random(-25, 25), Random(0, 360), 128)
	TNT1 AAAAAAAA 0 A_SpawnItemEx("PhoenixProjFX2", 0, 0, 0, (0.1)*Random(25, 100), 0, (0.1)*Random(-25, 25), Random(0, 360), 128)
	TNT1 A 0 A_SpawnItem("PhoenixFlash")
	TNT1 A 0 A_SpawnItem("PhoenixFlash2")
    FX06 DEFG 5 BRIGHT
    Stop
  }
}

