SuperSpaceInvaderTurboApoca.../headers/god.h
2022-01-09 04:24:25 +01:00

97 lines
1.2 KiB
C++

/*!
*
* @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