Actor IceGolem 12347
{
  Health 300
  Radius 26
  Height 66
  Mass 600
  Speed 16
  Painchance 32
  DamageFactor "Fire", 1.2
  DamageFactor "Ice", 0.4
  Monster
  +FloorClip
  +NoBlood
  RenderStyle Translucent
  Alpha 0.8
  Scale 1.1
  SeeSound "mummy/sight"
  AttackSound "mummy/attack1"
  PainSound "mummy/pain"
  ActiveSound "mummy/active"
  HitObituary "%o was bludgeoned by an ice golem!"
  States
  {
  Spawn:
    IGLM AB 10 A_Look
    Loop
  See:
    IGLM A 0 A_JumpIfHealthLower(150, 1)
    Goto See+2
    IGLM A 0 A_Jump(12, "Regenerate")
    IGLM ABCD 5 A_Chase
    Loop
  Melee:
    IGLM E 0 A_Jump(128, "Melee2")
    IGLM E 6 A_FaceTarget
    IGLM F 6 A_CustomMeleeAttack(Random(5,10)*2, "mummy/attack2", "mummy/attack")
    IGLM G 6
    Goto See
  Melee2:
    IGLM H 6 A_FaceTarget
    IGLM I 6 A_CustomMeleeAttack(Random(5,10)*2, "mummy/attack2", "mummy/attack")
    IGLM J 6
    Goto See
  Regenerate:
    IGLM K 10
    IGLM K 0 A_PlayWeaponSound("misc/freeze")
    IGLM K 0 A_ChangeFlag("NoPain", 1)
    IGLM K 0 A_GiveInventory("IceGolemArmor", 1)
    IGLM K 0 HealThing(15)
    IGLM KKKKKKKKKK 1 A_SpawnItemEx("IceGolemParticleA", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    IGLM K 0 HealThing(15)
    IGLM KKKKKKKKKK 1 A_SpawnItemEx("IceGolemParticleA", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    IGLM K 0 HealThing(15)
    IGLM KKKKKKKKKK 1 A_SpawnItemEx("IceGolemParticleA", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    IGLM K 0 HealThing(15)
    IGLM KKKKKKKKKK 1 A_SpawnItemEx("IceGolemParticleA", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    IGLM K 0 HealThing(15)
    IGLM KKKKKKKKKK 1 A_SpawnItemEx("IceGolemParticleA", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    IGLM K 0 HealThing(15)
    IGLM KKKKKKKKKK 1 A_SpawnItemEx("IceGolemParticleA", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    IGLM K 0 HealThing(15)
    IGLM KKKKKKKKKK 1 A_SpawnItemEx("IceGolemParticleA", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    IGLM K 0 HealThing(15)
    IGLM KKKKKKKKKK 1 A_SpawnItemEx("IceGolemParticleA", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    IGLM K 0 HealThing(15)
    IGLM KKKKKKKKKK 1 A_SpawnItemEx("IceGolemParticleA", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    IGLM K 0 HealThing(15)
    IGLM KKKKKKKKKK 1 A_SpawnItemEx("IceGolemParticleA", Random(24, 32), 0, 4, 0, 0, (Random(20, 35)*0.1), Random(0, 360), 128)
    IGLM K 0 A_ChangeFlag("NoPain", 0)
    IGLM K 0 A_TakeInventory("BasicArmor", 100)
    Goto See
  Pain:
    IGLM L 4
    IGLM L 4 A_Pain
    Goto See
  Death:
    IGLM L 12
    IGLM L 0 A_SetTranslucent(1.0, 0)
    IGLM L 1 A_IceGuyDie
    Stop
  }
}

Actor IceGolemArmor : BasicArmorPickup
{
  Inventory.PickupMessage ""
  Armor.SaveAmount 100
  Armor.SavePercent 100
  Armor.MaxFullAbsorb 100
  states
  {
  Spawn:
    TNT1 A 1
    Fail
  }
}

Actor IceGolemParticleA
{
  Height 0
  Radius 0
  Mass 0
  +Missile
  +NoBlockMap
  +NoGravity
  +DontSplash
  +NoClip
  RenderStyle Add
  Scale 0.0275
  States
  {
  Spawn:
    IGLP A 0 A_SpawnItemEx("IceGolemParticleTrail", -(MomX*1.2), -(MomY*1.2), (MomZ*-1.2), (MomX*0.8), (MomY*0.8), (MomZ*0.8), -Angle, 138)
    IGLP A 1 A_FadeOut(0.065)
    Loop
  }
}

Actor IceGolemParticleTrail : IceGolemParticleA
{
  States
  {
  Spawn:
    IGLP A 1 A_FadeOut(0.075)
    Loop
  }
}

actor IceGolemSpot : CustomMonsterInvasionSpot 1248
{
dropitem IceGolem
}