#pragma once
#include "Projectile.h"
#include "MovementLogic.h"
#include "LineOfSightIntercepting.h"

class Missile :
    public Projectile
{
public:
    Missile(void);
    Missile(LPCTSTR file, LPCTSTR path, float calibrationAngleX, float calibrationAngleY, float calibrationAngleZ);
    ~Missile(void);

    void Initialize();
    void Cycle(float deltaMs);
    void Destroy();
    void Fire(GameObject3D& hostObject, const GameObject3D& preyObject);

    static const float CALIBRATION_ANGLE_X;
    static const float CALIBRATION_ANGLE_Y;
    static const float CALIBRATION_ANGLE_Z;
    static const float SCALE_FACTOR;
    static const float SPEED_DEFAULT;
    static const float ROT_SPEED_DEFAULT;
    static const unsigned int TIME_TO_LIVE;

private:
    LineOfSightIntercepting m_LineOfSightIntercepting;
};
