
// The Cleric's Flame Strike ------------------------------------------------

class CWeapFlame : ClericWeapon
{
	Default
	{
		+NOGRAVITY
		Weapon.SelectionOrder 1000;
		Weapon.AmmoUse 4;
		Weapon.AmmoGive 25;
		Weapon.KickBack 150;
		Weapon.YAdjust 10;
		Weapon.AmmoType1 "Mana2";
		Inventory.PickupMessage "$TXT_WEAPON_C3";
		Tag "$TAG_CWEAPFLAME";
	}

	action native void A_CFlameAttack();

	States
	{
	Spawn:
		WCFM ABCDEFGH 4 Bright;
		Loop;
	Select:
		CFLM A 1 A_Raise;
		Loop;
	Deselect:
		CFLM A 1 A_Lower;
		Loop;
	Ready:
		CFLM AAAABBBBCCCC 1 A_WeaponReady;
		Loop;
	Fire:
		CFLM A 2 Offset (0, 40);
		CFLM D 2 Offset (0, 50);
		CFLM D 2 Offset (0, 36);
		CFLM E 4 Bright;
		CFLM F 4 Bright A_CFlameAttack;
		CFLM E 4 Bright;
		CFLM G 2 Offset (0, 40);
		CFLM G 2;
		Goto Ready;
	}
}

// Floor Flame --------------------------------------------------------------

class CFlameFloor : Actor
{
	Default
	{
		+NOBLOCKMAP +NOGRAVITY
		RenderStyle "Add";
	}
	States
	{
	Spawn:
		CFFX N 5 Bright;
		CFFX O 4 Bright;
		CFFX P 3 Bright;
		Stop;
	}
}

// Flame Puff ---------------------------------------------------------------

class FlamePuff : Actor
{
	Default
	{
		Radius 1;
		Height 1;
		+NOBLOCKMAP +NOGRAVITY
		RenderStyle "Add";;
		SeeSound "ClericFlameExplode";
		AttackSound "ClericFlameExplode";
	}
	States
	{
	Spawn:
		CFFX ABC 3 Bright;
		CFFX D 4 Bright;
		CFFX E 3 Bright;
		CFFX F 4 Bright;
		CFFX G 3 Bright;
		CFFX H 4 Bright;
		CFFX I 3 Bright;
		CFFX J 4 Bright;
		CFFX K 3 Bright;
		CFFX L 4 Bright;
		CFFX M 3 Bright;
		Stop;
	}
}

// Flame Puff 2 -------------------------------------------------------------

class FlamePuff2 : FlamePuff
{
	States
	{
	Spawn:
		CFFX ABC 3 Bright;
		CFFX D 4 Bright;
		CFFX E 3 Bright;
		CFFX F 4 Bright;
		CFFX G 3 Bright;
		CFFX H 4 Bright;
		CFFX IC 3 Bright;
		CFFX D 4 Bright;
		CFFX E 3 Bright;
		CFFX F 4 Bright;
		CFFX G 3 Bright;
		CFFX H 4 Bright;
		CFFX I 3 Bright;
		CFFX J 4 Bright;
		CFFX K 3 Bright;
		CFFX L 4 Bright;
		CFFX M 3 Bright;
		Stop;
	}
}

// Circle Flame -------------------------------------------------------------

class CircleFlame : Actor
{
	Default
	{
		Radius 6;
		Damage 2;
		DamageType "Fire";
		Projectile;
		-ACTIVATEIMPACT
		-ACTIVATEPCROSS
		RenderStyle "Add";
		DeathSound "ClericFlameCircle";
		Obituary "$OB_MPCWEAPFLAME";
	}

	native void A_CFlameRotate();

	States
	{
	Spawn:
		CFCF A 4 Bright;
		CFCF B 2 Bright A_CFlameRotate;
		CFCF C 2 Bright;
		CFCF D 1 Bright;
		CFCF E 2 Bright;
		CFCF F 2 Bright A_CFlameRotate;
		CFCF G 1 Bright;
		CFCF HI 2 Bright;
		CFCF J 1 Bright A_CFlameRotate;
		CFCF K 2 Bright;
		CFCF LM 3 Bright;
		CFCF N 2 Bright A_CFlameRotate;
		CFCF O 3 Bright;
		CFCF P 2 Bright;
		Stop;
	Death:
		CFCF QR 3 Bright;
		CFCF S 3 Bright A_Explode(20, 20, 0);
		CFCF TUVWXYZ 3 Bright;
		Stop;
	}
}

// Flame Missile ------------------------------------------------------------

class CFlameMissile : FastProjectile native
{
	Default
	{
		Speed 200;
		Radius 14;
		Height 8;
		Damage 8;
		DamageType "Fire";
		+INVISIBLE
		RenderStyle "Add";
		Obituary "$OB_MPCWEAPFLAME";
	}

	native void A_CFlamePuff();
	native void A_CFlameMissile();

	States
	{
	Spawn:
		CFFX A 4 Bright;
		CFFX A 1 A_CFlamePuff;
		Goto Death + 1;
	Death:
		CFFX A 1 Bright A_CFlameMissile;
		CFFX ABC 3 Bright;
		CFFX D 4 Bright;
		CFFX E 3 Bright;
		CFFX F 4 Bright;
		CFFX G 3 Bright;
		CFFX H 4 Bright;
		CFFX I 3 Bright;
		CFFX J 4 Bright;
		CFFX K 3 Bright;
		CFFX L 4 Bright;
		CFFX M 3 Bright;
		Stop;
	}
}
