151 lines
3.6 KiB
C++
151 lines
3.6 KiB
C++
#include "WN_WeaveCard.h"
|
|
|
|
#include "cocos2d.h"
|
|
#include "ui/CocosGUI.h"
|
|
#include "cocostudio/CocoStudio.h"
|
|
|
|
#include "SparrowCard.h"
|
|
|
|
using namespace WNMJ_SPACE;
|
|
|
|
///////////////////////////// 新组合牌 /////////////////////////////////////////////
|
|
|
|
WN_WeaveCard::WN_WeaveCard()
|
|
{
|
|
|
|
}
|
|
|
|
WN_WeaveCard::~WN_WeaveCard()
|
|
{
|
|
|
|
}
|
|
|
|
// 结算组合牌
|
|
bool WN_WeaveCard::SetCardData(const uint8 cbCardData, DWORD dwOperateCode)
|
|
{
|
|
if (!uiInit(SP_SELFSTAND)) return false;
|
|
if (m_pRootlayer == nullptr) return false;
|
|
|
|
// 组合情况
|
|
m_cbCardData = cbCardData;
|
|
m_dwOperateCode = dwOperateCode;
|
|
m_CardType = SP_SELFSTAND;
|
|
|
|
// 方向判定
|
|
Sprite* sp_Arrow = (Sprite*)m_pRootlayer->getChildByName("arrow");
|
|
sp_Arrow->setVisible(false);
|
|
|
|
// 牌数量
|
|
uint8 cbCardDatas[MAX_WEAVE] = { 0, 0, 0, 0 };
|
|
uint8 cbCardCount = WN_CGameLogic::getInstance()->GetWeaveCard(dwOperateCode, cbCardData, cbCardDatas);
|
|
|
|
// 显示控件
|
|
for (int i = 0; i < cbCardCount; i++)
|
|
{
|
|
string strCtrl = StringUtils::format("Card_%d", i);
|
|
ImageView*cardSprite = (ImageView*)m_pRootlayer->getChildByName(strCtrl);
|
|
cardSprite->setVisible(true);
|
|
|
|
// 设置值
|
|
Sprite* sp_value = (Sprite*)cardSprite->getChildByName("Value");
|
|
string strPng = SparrowCard::GetCardValuePng(cbCardDatas[i]);
|
|
sp_value->setTexture(strPng);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
//补杠
|
|
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;
|
|
|
|
// 第四张牌
|
|
ImageView* cardSprite = (ImageView*)m_pRootlayer->getChildByName("Card_3");
|
|
cardSprite->setVisible(true);
|
|
|
|
// 设置值
|
|
Sprite* sp_value = (Sprite*)cardSprite->getChildByName("Value");
|
|
string strPng = SparrowCard::GetCardValuePng(cbCardData);
|
|
sp_value->setTexture(strPng);
|
|
sp_value->setVisible(true);
|
|
|
|
}
|
|
|
|
// 显示组合牌
|
|
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;
|
|
|
|
// 组合情况
|
|
m_cbCardData = cbCenterCard;
|
|
m_dwOperateCode = dwOperateCode;
|
|
m_CardType = (EN_SPARROW_TYPE)wChairID;
|
|
|
|
// 牌数量
|
|
uint8 cbCardDatas[MAX_WEAVE] = { 0, 0, 0, 0 };
|
|
m_cbCardCount = WN_CGameLogic::getInstance()->GetWeaveCard(dwOperateCode, cbCenterCard, cbCardDatas);
|
|
|
|
// 显示控件
|
|
for (int i = 0; i < m_cbCardCount; i++)
|
|
{
|
|
// 找到牌
|
|
string strCtrl = StringUtils::format("Card_%d", i);
|
|
ImageView* cardSprite = (ImageView*)m_pRootlayer->getChildByName(strCtrl);
|
|
cardSprite->setVisible(true);
|
|
|
|
Sprite* sp_value = (Sprite*)cardSprite->getChildByName("Value");
|
|
|
|
// 暗杠
|
|
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
|
|
{
|
|
// 设置值
|
|
string strPng = SparrowCard::GetCardValuePng(cbCardDatas[i]);
|
|
sp_value->setTexture(strPng);
|
|
sp_value->setVisible(true);
|
|
}
|
|
}
|
|
|
|
// 方向判定
|
|
Sprite* sp_Arrow = (Sprite*)m_pRootlayer->getChildByName("arrow");
|
|
sp_Arrow->setTexture(StringUtils::format("Games/Sparrow/card/Weave%d.png", wProvideUser));
|
|
|
|
// 自己暗杠显示第四张牌
|
|
if (wChairID == wProvideUser)
|
|
{
|
|
sp_Arrow->setVisible(false);
|
|
|
|
ImageView*cardSprite = (ImageView*)m_pRootlayer->getChildByName("Card_3");
|
|
cardSprite->setVisible(true);
|
|
|
|
// 设置值
|
|
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;
|
|
}
|