84 lines
1.8 KiB
C++
84 lines
1.8 KiB
C++
#ifndef SERVER_GAMESERVER_MINIGAME_H
|
|
#define SERVER_GAMESERVER_MINIGAME_H
|
|
|
|
#ifdef _NA_008404_20150712_MINIGAME_SYSTEM
|
|
|
|
class Player;
|
|
|
|
bool CompareIndex(MiniGameBingoInfos* minigame_bingo_infos);
|
|
|
|
struct MiniGameParam
|
|
{
|
|
public:
|
|
MiniGameParam(eMINIGAME_TYPE type){ minigame_type = type; };
|
|
eMINIGAME_TYPE minigame_type;
|
|
|
|
private:
|
|
MiniGameParam(){};
|
|
};
|
|
|
|
struct MiniGameBingoParam : public MiniGameParam
|
|
{
|
|
MiniGameBingoParam(eMINIGAME_TYPE type)
|
|
:MiniGameParam(type)
|
|
{
|
|
minigame_bingo_infos = NULL;
|
|
}
|
|
MiniGameBingoInfos* minigame_bingo_infos;
|
|
};
|
|
|
|
struct MiniGameBingoActionParam : public MiniGameBingoParam
|
|
{
|
|
MiniGameBingoActionParam(eMINIGAME_TYPE type, int number)
|
|
:MiniGameBingoParam(type)
|
|
{
|
|
bingo_number = number;
|
|
}
|
|
|
|
int bingo_number;
|
|
};
|
|
|
|
struct MiniGameBingoRewardParam : public MiniGameBingoParam
|
|
{
|
|
MiniGameBingoRewardParam(eMINIGAME_TYPE type, Player* player_)
|
|
:MiniGameBingoParam(type)
|
|
{
|
|
player = player_;
|
|
}
|
|
Player* player;
|
|
};
|
|
|
|
class MiniGame
|
|
{
|
|
public:
|
|
MiniGame()
|
|
{
|
|
m_minigame_type = eMINIGAME_TYPE_NONE;
|
|
}
|
|
|
|
virtual RC::eMINIGAME_RESULT DoAction(MiniGameParam& minigame_param) = 0;
|
|
virtual RC::eMINIGAME_RESULT GetReward(MiniGameParam& minigame_param) = 0;
|
|
|
|
protected:
|
|
bool ObtainReward( Player* player, CODETYPE reward_code );
|
|
eMINIGAME_TYPE m_minigame_type;
|
|
};
|
|
|
|
class MiniGameBingo : public MiniGame
|
|
{
|
|
public:
|
|
MiniGameBingo()
|
|
{
|
|
m_minigame_type = eMINIGAME_TYPE_BINGO;
|
|
}
|
|
|
|
RC::eMINIGAME_RESULT DoAction(MiniGameParam& minigame_param);
|
|
RC::eMINIGAME_RESULT GetReward(MiniGameParam& minigame_param);
|
|
|
|
private:
|
|
int CalculateBingo(MiniGameBingoInfos* minigame_bingo_infos);
|
|
};
|
|
|
|
#endif // _NA_008404_20150712_MINIGAME_SYSTEM
|
|
|
|
#endif // SERVER_GAMESERVER_MINIGAME_H
|