#pragma once

#include "GameObject3D.h"

class MovementLogic;
class Projectile;
class Model;

class EnemyCraft :
    public GameObject3D
{
public:
    EnemyCraft();
    EnemyCraft(LPCTSTR file, LPCTSTR path, float calibrationAngleX, float calibrationAngleY, float calibrationAngleZ);
    EnemyCraft(const Model &model);
    ~EnemyCraft();

    void Initialize();
    void Spawn(float x, float y, float z);
    void Impact(Projectile &p);
    void Destroy();
    void Cycle(float deltaMs);
    bool IsDestroyed();
    void Draw();
    void SetMovementLogic(MovementLogic* movementLogic);
    static const Model& GetStandardModel();

private:

    int m_HitPoints;
    bool m_Destroyed;
    MovementLogic* m_MovementLogic;

    static const float ROTATION_SPEED;
    static const float SPEED_DEFAULT;
    static const float CALIBRATION_ANGLE_ENEMY1_X;
    static const float CALIBRATION_ANGLE_ENEMY1_Y;
    static const float CALIBRATION_ANGLE_ENEMY1_Z;
    static const float SCALE_FACTOR;                

    static Model s_Model;

};
