/*! * * @file god.h * @author RUBINI Thomas * @date January 2022 * @version 1.0 * @brief Special entity known as "God" * */ #ifndef GUARD_GOD_H #define GUARD_GOD_H #include "utils.h" #include "invadersGrid.h" /*! * @brief */ enum class GodState{ NONE, AWAKE, WAIT, RETRIEVE1, RETRIEVE2, THROW, YOLO, }; // I don't want to put that in config, I feel like it would be useless and overkill at this point #define GOD_BENCH_SIZE 64 #define GOD_HAND_SIZE 64 #define GOD_HAND_DISTANCE 100 /*! * Hand position is determined */ /*! * @class God * @brief */ class God{ public: /*! * @brief */ GodState state; /*! * @brief */ unsigned counter; // we do not use a Position because it is used for pixel X and Y /*! * @brief */ unsigned thrownInvPosX; /*! * @brief */ unsigned thrownInvPosY; /*! * @brief */ InvaderType thrownInvType; /*! * @brief */ Position thrownVector; /*! * @brief */ Position thrownTransition; /*! * @brief * @param[in] screenWidth : * @return * @fn Position getRightHandPos(unsigned screenWidth) const; */ Position getRightHandPos(unsigned screenWidth) const; }; #endif