Files
wnmj-normal/Classes/Games/WNMJ/WN_CardManager.h

120 lines
4.6 KiB
C
Raw Normal View History

2026-03-03 13:56:44 +08:00
#pragma once
#include "cocos2d.h"
#include "ui/CocosGUI.h"
#include "WN_CMD_Sparrow.h"
#include "WN_WeaveCard.h"
#include "WN_GameLogic.h"
#include "WN_CNotifyDlg.h"
#include "WN_SparrowCard.h"
USING_NS_CC;
using namespace ui;
using namespace std;
namespace WNMJ_SPACE{
//////////////////////////////////////////////////////////////////////////
//<2F><EFBFBD><E9BDAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
class WN_CardManager : public cocos2d::Layer
{
// <20>û<EFBFBD><C3BB><EFBFBD>Ϣ
public:
WORD m_wCurrentUser; // <20><>ǰ<EFBFBD>û<EFBFBD>
bool m_IsGameRecord; // <20>Ƿ<EFBFBD><C7B7><EFBFBD>¼<EFBFBD><C2BC>ģʽ;
bool m_bOutCardStatus; // <20>Ƿ<EFBFBD><C7B7>ǿɳ<C7BF><C9B3><EFBFBD>״̬;
WORD m_wRealChairCount; // <20><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӻű<D3BA><C5B1><EFBFBD>)
public:
Point m_ptStartCard[GAME_PLAYER]; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Point m_ptOutCard[GAME_PLAYER]; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>һ<EFBFBD>ų<EFBFBD><C5B3><EFBFBD>
Point m_ptCurrentCard[GAME_PLAYER]; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
Point m_ptWeaveCard[GAME_PLAYER]; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Point m_ptKingCard[2]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
///<<3C><EFBFBD>б<EFBFBD>(<28>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӻű<D3BA><C5B1><EFBFBD>)
public:
WN_SparrowCard* m_pLastHandCard[GAME_PLAYER]; // <20><>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::list<WN_SparrowCard*> m_OppHandCardList; // <20>Լ<EFBFBD>
std::list<WN_SparrowCard*> m_RightHandCardList; // <20><><EFBFBD>ֱ<EFBFBD>
std::list<WN_SparrowCard*> m_SelfHandCardList; // <20>Լ<EFBFBD>
std::list<WN_SparrowCard*> m_LeftHandCardList; // <20><><EFBFBD>ֱ<EFBFBD>
std::list<WN_SparrowCard*> m_pOutCardSprite; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD>
WN_WeaveCard* m_pWeaveCard[GAME_PLAYER][MAX_WEAVE]; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WN_SparrowCard* m_pCurrentOutCard; // <20><>ǰ<EFBFBD><C7B0><EFBFBD>Ҵ<EFBFBD><D2B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WN_SparrowCard* m_pKingCardSprite[2]; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
uint8 m_cbHandCardCount[GAME_PLAYER]; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8 m_cbOutCarCount[GAME_PLAYER]; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8 m_cbWeaveCount[GAME_PLAYER]; // ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool m_bActiveStatus[GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
WN_NotifyDlg* m_pNoticelayer; // <20>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//public:
// CMD_S_OperateNotify m_OperateNotify; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
///<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
WN_CardManager();
~WN_CardManager();
CREATE_FUNC(WN_CardManager);
virtual bool init(); // <20><>ʼ<EFBFBD><CABC>
void ResetAll(); // <20><><EFBFBD><EFBFBD>
void SetCurrentUser(WORD wChairID); // <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
void SetGameRecord(bool isGameRecord); // <20><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ģʽ;
void SetActiveStatus(bool bActiveStatus[], WORD wArrViewChairID[], WORD wRealChairCount);
// <20><><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD>
public:
float SetAllCard(uint8 cbCardData[], WORD wStartID); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float SendAllCard(WORD wStartID); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SendCard(uint8 cbCardData, WORD wGetCardUser); // <20><><EFBFBD><EFBFBD>
void SubOutCard(uint8 cbCardData, WORD wOutCardUser, bool isShow = true); // <20>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>(<28><>ͼ<EFBFBD><CDBC><EFBFBD>Ӻ<EFBFBD>)
void SubWeaveCard(CMD_S_OperateResult *pOperateResult); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SetGangWeave(CMD_S_OperateResult *pOperateResult); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SetPengWeave(CMD_S_OperateResult *pOperateResult); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SortSelfCard(WORD wChairID = SELF_VIEW_CHAIRID); // <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void ShowCurrentCard(WORD wChairID, uint8 cbCardData); // <20><>ʾ<EFBFBD><CABE>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void DelOutCard(WORD wChairID, uint8 cbCardData); // ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void ResetHandCard(WORD wChairID); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Point GetWaveCardPoint(WORD wChairID); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Point GetCardPoint(WORD wChairID, uint8 cbIndex); // <20>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Point GetOutPoint(WORD wViewChairID); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>
public:
void SceneWeaveCard(WORD wViewChairID, uint8 cbWeaveCount, tagWeaveItem WeaveItemArray[MAX_WEAVE], WORD wArrViewChairID[GAME_PLAYER]); // <20><><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD><C6B4><EFBFBD>
void SceneHandCard(WORD wViewChairID, uint8 cbCardCount, uint8 cbCardData[]); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SceneOutCard(WORD wViewChairID, uint8 cbCardCount, uint8 cbOutCardData[]); // <20><><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD>
// <20><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
public:
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
void ShowLastCard(uint8 cbCardData, WORD wGetCardUser, uint8 cbDirection);
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void ShowAllHandCard(WORD wChairID, uint8 cbCardCount, const uint8 cbCardData[MAX_COUNT]);
// <20>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
void HideNoticeDlg(); // <20><><EFBFBD>ظ߼<D8B8><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void SetNoticeData(CMD_S_OperateNotify &OperateNotify); // <20><><EFBFBD>ø߼<C3B8><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
bool IsHaveOperateCard(DWORD dwUserAction); // <20>Ƿ<EFBFBD><C7B7>и߼<D0B8><DFBC><EFBFBD><EFBFBD><EFBFBD>;
bool CheckOperateCard(uint8 cbOperateCard); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>Ǹ<EFBFBD><C7B8><EFBFBD>;
// <20><><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD>
public:
bool onSendCardEvent(cocos2d::Ref *pSender, Vec2 pos); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
private:
std::list<WN_SparrowCard*>* GetCardList(WORD wChairID);
void ClearCardList(WORD wChairID);
};
}