Files
wnmj/Classes/Games/WNMJ/WN_WeaveCard.cpp

151 lines
3.6 KiB
C++
Raw Normal View History

2026-02-13 14:34:15 +08:00
#include "WN_WeaveCard.h"
#include "cocos2d.h"
#include "ui/CocosGUI.h"
#include "cocostudio/CocoStudio.h"
#include "SparrowCard.h"
using namespace WNMJ_SPACE;
///////////////////////////// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /////////////////////////////////////////////
WN_WeaveCard::WN_WeaveCard()
{
}
WN_WeaveCard::~WN_WeaveCard()
{
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool WN_WeaveCard::SetCardData(const uint8 cbCardData, DWORD dwOperateCode)
{
if (!uiInit(SP_SELFSTAND)) return false;
if (m_pRootlayer == nullptr) return false;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_cbCardData = cbCardData;
m_dwOperateCode = dwOperateCode;
m_CardType = SP_SELFSTAND;
// <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
Sprite* sp_Arrow = (Sprite*)m_pRootlayer->getChildByName("arrow");
sp_Arrow->setVisible(false);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8 cbCardDatas[MAX_WEAVE] = { 0, 0, 0, 0 };
uint8 cbCardCount = WN_CGameLogic::getInstance()->GetWeaveCard(dwOperateCode, cbCardData, cbCardDatas);
// <20><>ʾ<EFBFBD>ؼ<EFBFBD>
for (int i = 0; i < cbCardCount; i++)
{
string strCtrl = StringUtils::format("Card_%d", i);
ImageView*cardSprite = (ImageView*)m_pRootlayer->getChildByName(strCtrl);
cardSprite->setVisible(true);
// <20><><EFBFBD><EFBFBD>ֵ
Sprite* sp_value = (Sprite*)cardSprite->getChildByName("Value");
string strPng = SparrowCard::GetCardValuePng(cbCardDatas[i]);
sp_value->setTexture(strPng);
}
return true;
}
//<2F><><EFBFBD><EFBFBD>
void WN_WeaveCard::SetBuGang(const uint8 cbCardData)
{
if (m_pRootlayer == nullptr) return;
if ((m_dwOperateCode&WIK_WN_PENG) == 0) return;
m_dwOperateCode = WIK_WN_GANG;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ImageView* cardSprite = (ImageView*)m_pRootlayer->getChildByName("Card_3");
cardSprite->setVisible(true);
// <20><><EFBFBD><EFBFBD>ֵ
Sprite* sp_value = (Sprite*)cardSprite->getChildByName("Value");
string strPng = SparrowCard::GetCardValuePng(cbCardData);
sp_value->setTexture(strPng);
sp_value->setVisible(true);
}
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool WN_WeaveCard::ShowCardData(const WORD wChairID, const uint8 cbCenterCard, DWORD dwOperateCode, WORD wProvideUser)
{
if (!uiInit(wChairID)) return false;
if (m_pRootlayer == nullptr) return false;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_cbCardData = cbCenterCard;
m_dwOperateCode = dwOperateCode;
m_CardType = (EN_SPARROW_TYPE)wChairID;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8 cbCardDatas[MAX_WEAVE] = { 0, 0, 0, 0 };
m_cbCardCount = WN_CGameLogic::getInstance()->GetWeaveCard(dwOperateCode, cbCenterCard, cbCardDatas);
// <20><>ʾ<EFBFBD>ؼ<EFBFBD>
for (int i = 0; i < m_cbCardCount; i++)
{
// <20>ҵ<EFBFBD><D2B5><EFBFBD>
string strCtrl = StringUtils::format("Card_%d", i);
ImageView* cardSprite = (ImageView*)m_pRootlayer->getChildByName(strCtrl);
cardSprite->setVisible(true);
Sprite* sp_value = (Sprite*)cardSprite->getChildByName("Value");
// <20><><EFBFBD><EFBFBD>
if (wChairID == wProvideUser)
{
if (i < MAX_WEAVE - 1)
{
if ((SP_OPPSTAND == m_CardType) || (SP_SELFSTAND == m_CardType))
{
cardSprite->loadTexture("Games/Sparrow/card/bgAngang.png");
}
else
{
cardSprite->loadTexture("Games/Sparrow/card/xz_gai_card.png");
}
}
sp_value->setVisible(false);
}
else
{
// <20><><EFBFBD><EFBFBD>ֵ
string strPng = SparrowCard::GetCardValuePng(cbCardDatas[i]);
sp_value->setTexture(strPng);
sp_value->setVisible(true);
}
}
// <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
Sprite* sp_Arrow = (Sprite*)m_pRootlayer->getChildByName("arrow");
sp_Arrow->setTexture(StringUtils::format("Games/Sparrow/card/Weave%d.png", wProvideUser));
// <20>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (wChairID == wProvideUser)
{
sp_Arrow->setVisible(false);
ImageView*cardSprite = (ImageView*)m_pRootlayer->getChildByName("Card_3");
cardSprite->setVisible(true);
// <20><><EFBFBD><EFBFBD>ֵ
Sprite* sp_value = (Sprite*)cardSprite->getChildByName("Value");
string strPng = SparrowCard::GetCardValuePng(cbCardDatas[MAX_WEAVE - 1]);
sp_value->setTexture(strPng);
sp_value->setVisible(true);
}
return true;
}