namespace BP
{
	namespace Weapon
	{
		class Bow : ScriptWeapon
		{   
			float m_fScalar;
			//------------------------------------------------------------------------------------------------------------------------
			Bow(kWeapon @actor)
			{
				id = kWpn_Bow;
				super(actor);
				m_fScalar = 1.0f;
			}
			//------------------------------------------------------------------------------------------------------------------------
			void OnSerialize(kDict& out dict)
			{
				SERIALIZE(m_fScalar);
			}
			//------------------------------------------------------------------------------------------------------------------------
			void OnDeserialize(kDict& in dict)
			{
				DESERIALIZE_FLOAT(m_fScalar);
			}
			//------------------------------------------------------------------------------------------------------------------------
			void OnEndFire(void) override
			{
				ScriptWeapon::OnEndFire();
				m_fScalar = Math::Max(0.5f, Math::Min(1.5f, self.AnimTrackComponent().PlayTime()));
			}
			//------------------------------------------------------------------------------------------------------------------------
			void OnFiredParticleFromAnim(kParticle@ pArrow) override
			{
				ScriptWeapon::OnFiredParticleFromAnim(@pArrow);
				pArrow.Velocity() *= m_fScalar;
				m_fScalar = 1.0f;
			}
			//------------------------------------------------------------------------------------------------------------------------
		};
	}
}
