#ifndef KIATTACK_H
#define KIATTACK_H

#define KIATTACK_SIZE 25
#define KIATTACK_TRAIL_LENGTH 70
/**
* Exploding attacks
* @version 18-5-2002
* @author Herwin 'harSens' van Welbergen
*/
class CKiAttack:public CBeamAttack
{	
public:
	/**
	 * Create a kiblast attack 
	 * @param entvars_t *pevOwner: Monster/Player who shoots it
	 * @param Vector vecStart: Origin vector of the attack
	 * @param Vector vecVelocity: Velocity of the attack
	 * @param damage: the amount of damage to be done
	 * @param CKiAttack *: the newly created attack
	 */
	static CKiAttack *ShootKiAttack( entvars_t *pevOwner, Vector vecStart, Vector vecVelocity, int damage, short flarea,short flareb, short trail);

	/**
	 * Create a kiblast attack that shoots in a curve 
	 * @param entvars_t *pevOwner: Monster/Player who shoots it
	 * @param Vector vecStart: Origin vector of the attack
	 * @param Vector vecVelocity: Velocity of the attack
	 * @param damage: the amount of damage to be done
	 * @param CKiAttack *: the newly created attack
	 */
	static CKiAttack *ShootCurvedKiAttack( entvars_t *pevOwner, Vector vecStart, Vector vecVelocity, int damage, short flarea,short flareb, short trail);
	
protected:
	/**
	 * Draw explosion fx
	 * @param int radius: radius of the explosion
	 * @param origin the origin of the explosion
	 */
	void DrawExplosionFX(int radius, Vector origin);


	/**
	 * Gets the explosion radius
	 * @param return int: the explosion radius
	 */
	virtual float GetExplosionRadius(){return KIATTACK_RADIUS;}

	/**
	 * Makes the blast move in a curve
	 */
	void EXPORT CurveThink( void );

	Vector m_vecSideVelocity;
	Vector m_vecForwardVelocity;
	Vector m_vecAcceleration;
	float m_flStartTime;
};
#endif
