//==================================
// CryoBow
//==================================

ACTOR CryoBow : Weapon
{
	Weapon.AmmoType "NewCell"
	Weapon.AmmoUse 1
	Weapon.AmmoGive 27
	Weapon.PreferredSkin "DTBallista-Marine"
	Weapon.UpSound "weapons/cryobowup"
	Inventory.PickupMessage "You got the Cryo Bow!"
	Obituary "%o was picked off by %k's Cryo Bow"
	States
	{
	Spawn:
		WBOW A -1
		Stop
	Deselect:
		BOWG A 1 Bright A_Lower
		Loop
	Select:
		BOWG A 1 Bright A_Raise
		Loop
	Ready:
		BOWG AAABBBCCCDDDBBB 1 Bright A_WeaponReady
    	Loop
	Fire:
		BOWG A 0 Bright A_GunFlash
		BOWG A 0 Bright A_Recoil(4.0)
		BOWG A 0 Bright A_PlaySound("weapons/cryobowshot")
		BOWG A 0 Bright A_PlaySound("weapons/cryobowfire", CHAN_WEAPON)
		BOWF A 2 Bright A_FireCustomMissile("CryoShot",0,1)
		BOWF BCD 2 Bright
		BOWF E 8
		BOWF E 2 A_PlaySound("weapons/cryobowreload")
		BOWF E 2 Offset(0,31) 
		BOWF F 2 Offset(0,32)
		BOWF F 2 Offset(0,30)
		BOWF G 2 Offset(0,31)
		BOWF HI 1 Offset(0,32)
		BOWG CDB 3 Bright Offset(0,32)
		BOWG A 0 A_ReFire
		Goto Ready
	Flash:
		TNT1 A 2 Bright A_Light1
		TNT1 A 2 Bright A_Light2
		TNT1 A 1 Bright A_Light1
		Goto LightDone
	}
}

ACTOR CryoShot : FastProjectile
{
	Radius 4
	Height 8
	Speed 100
	Damage 50
	Projectile
	RenderStyle Add
	Alpha 0.9
	+MTHRUSPECIES
	+FORCERADIUSDMG
	+NODAMAGETHRUST
	Damagetype "Marine"
	DeathSound "weapons/cryobowhit"
	MissileType "CryoTrail"
	MissileHeight 8
	Decal "PlasmaScorchLower"
	States
	{
	Spawn:
		SSHT A 0 Bright
		SSHT A 0 Bright A_PlaySound("weapons/cryobowflyby", CHAN_BODY, 1.0, 1)
		SSHT A 1 Bright
		Loop
	Death:		
		XXPL A 0 Bright A_StopSound(CHAN_BODY)
		XXPL A 0 Bright A_Explode(1, 128, 0) // Break frozen things.
		XXPL A 0 Bright A_ChangeFlag("ICEDAMAGE", 1)
		XXPL A 0 Bright A_ChangeFlag("NODAMAGETHRUST", 0)
		XXPL A 0 Bright A_Explode(50*random(1,4), 16, 0) // Simulated impact damage
		XXPL A 0 Bright A_Explode(228, 228, 0) // Freezy radius damage.
		XXPL AAAAAAAA 0 Bright A_SpawnItemEx("CryoSmokeCDI", 0, 0, 0, random(10, 30)*0.1, 0, random(0, 10)*0.1, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
		XXPL AAAA 0 Bright A_SpawnItemEx("CryoSmoke2CDI", 0, 0, 0, random(10, 30)*0.04, 0, random(0, 10)*0.04, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		XXPL ABCDEFGH 1 Bright
		XXPL IJKLLM 1 Bright A_FadeOut(0.1)
		Stop
	}
}

ACTOR CryoTrail
{
	+NOINTERACTION
	Radius 4
	Height 8
	Renderstyle Add
	Alpha 0.5
	States
	{
	Spawn:
		SSHT AABBCDEFG 1 Bright
		Stop
	}
}

ACTOR CryoSmokeCDI
{
    Radius 2
    Height 2
    +NOINTERACTION
    +FORCEXYBILLBOARD
    RenderStyle Shaded
    StencilColor "A0 A0 A0"
    Alpha 1.0
    Scale 0.4
    States
    {
    Spawn:
		SSOK A 0
        SSOK A 2 A_FadeOut (0.05)
        Wait
    }
}

Actor CryoSmoke2CDI : CryoSmokeCDI { StencilColor "DD DD DD" Scale 0.7 Alpha 0.5 VSpeed 2.5
	States {
	Spawn:
		TNT1 A 0
		SSOK A 6 A_FadeOut(0.04)
		Wait
	}
}
