
// Ice Guy ------------------------------------------------------------------

class IceGuy : Actor
{
	Default
	{
		Health 120;
		PainChance 144;
		Speed 14;
		Radius 22;
		Height 75;
		Mass 150;
		DamageType "Ice";
		Monster;
		+NOBLOOD
		+TELESTOMP
		+NOICEDEATH
		SeeSound "IceGuySight";
		AttackSound "IceGuyAttack";
		ActiveSound "IceGuyActive";
		Obituary "$OB_ICEGUY";
	}

	native void A_IceGuyLook();
	native void A_IceGuyChase();
	native void A_IceGuyAttack();

	States
	{
	Spawn:
		ICEY A 10 A_IceGuyLook;
		Loop;
	See:
		ICEY A 4 A_Chase;
		ICEY B 4 A_IceGuyChase;
		ICEY CD 4 A_Chase;
		Loop;
	Pain:
		ICEY A 1 A_Pain;
		Goto See;
	Missile:
		ICEY EF 3 A_FaceTarget;
		ICEY G 8 Bright A_IceGuyAttack;
		ICEY F 4 A_FaceTarget;
		Goto See;
	Death:
		ICEY A 1 A_IceGuyDie;
		Stop;
	Inactive:
		ICEY A -1;
		Goto See;
	}
}

// Ice Guy Projectile -------------------------------------------------------

class IceGuyFX : Actor
{
	Default
	{
		Speed 14;
		Radius 8;
		Height 10;
		Damage 1;
		DamageType "Ice";
		Projectile;
		-ACTIVATEIMPACT -ACTIVATEPCROSS
		DeathSound "IceGuyMissileExplode";
	}

	native void A_IceGuyMissileExplode();

	States
	{
	Spawn:
		ICPR ABC 3 Bright A_SpawnItemEx("IceFXPuff", 0,0,2);
		Loop;
	Death:
		ICPR D 4 Bright;
		ICPR E 4 Bright A_IceGuyMissileExplode;
		ICPR FG 4 Bright;
		ICPR H 3 Bright;
		Stop;
	}
}

// Ice Guy Projectile's Puff ------------------------------------------------

class IceFXPuff : Actor
{
	Default
	{
		Radius 1;
		Height 1;
		+NOBLOCKMAP +NOGRAVITY +DROPOFF +SHADOW
		+NOTELEPORT
		RenderStyle "Translucent";
		Alpha 0.4;
	}
	States
	{
	Spawn:
		ICPR IJK 3;
		ICPR LM 2;
		Stop;
	}
}

// Secondary Ice Guy Projectile (ejected by the primary projectile) ---------

class IceGuyFX2 : Actor
{
	Default
	{
		Speed 10;
		Radius 4;
		Height 4;
		Damage 1;
		DamageType "Ice";
		Gravity 0.125;
		+NOBLOCKMAP +DROPOFF +MISSILE
		+NOTELEPORT
		+STRIFEDAMAGE
	}
	States
	{
	Spawn:
		ICPR NOP 3 Bright;
		Loop;
	}
}

// Ice Guy Bit --------------------------------------------------------------

class IceGuyBit : Actor
{
	Default
	{
		Radius 1;
		Height 1;
		Gravity 0.125;
		+NOBLOCKMAP +DROPOFF
		+NOTELEPORT
	}
	States
	{
	Spawn:
		ICPR Q 50 Bright;
		Stop;
		ICPR R 50 Bright;
		Stop;
	}
}

// Ice Guy Wisp 1 -----------------------------------------------------------

class IceGuyWisp1 : Actor
{
	Default
	{
		+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
		+NOTELEPORT
		RenderStyle "Translucent";
		Alpha 0.4;
	}
	States
	{
	Spawn:
		ICWS ABCDEFGHI 2;
		Stop;
	}
}

// Ice Guy Wisp 2 -----------------------------------------------------------

class IceGuyWisp2 : IceGuyWisp1
{
	States
	{
	Spawn:
		ICWS JKLMNOPQR 2;
		Stop;
	}
}
