mirror of
https://github.com/wu736139669/SmallGame_Cocos2dx.git
synced 2026-08-05 06:23:09 +00:00
189 lines
4.3 KiB
C++
189 lines
4.3 KiB
C++
|
|
|
|
#include "RightTouchData.h"
|
|
#include "RightTouchDefine.h"
|
|
#include "GameItemManager.h"
|
|
USING_NS_CC;
|
|
static CRightTouchData* s_pFruitData = NULL;
|
|
CRightTouchData* CRightTouchData::getInstance()
|
|
{
|
|
if(s_pFruitData==NULL){
|
|
s_pFruitData = CRightTouchData::create();
|
|
s_pFruitData->retain();
|
|
//s_pFruitData->init();
|
|
}
|
|
return s_pFruitData;
|
|
}
|
|
void CRightTouchData::purge()
|
|
{
|
|
CC_SAFE_RELEASE_NULL(s_pFruitData);
|
|
}
|
|
CRightTouchData::CRightTouchData()
|
|
{
|
|
mbItemGen = false;
|
|
mnItemGenVal = 0;
|
|
mnItemGenValLimit = 100;
|
|
}
|
|
CRightTouchData::~CRightTouchData()
|
|
{
|
|
// this->flush();
|
|
}
|
|
bool CRightTouchData::init()
|
|
{
|
|
//加入强化
|
|
auto pE = new CFrIntersifyEffectQuickGrow();
|
|
pE->mnEffectVal = 0;
|
|
addEffect(pE);
|
|
auto pE1 = new CFrIntersifyEffectGenBigCell();
|
|
pE1->mnEffectVal = 0;
|
|
addEffect(pE1);
|
|
auto pE2 = new CFrIntersifyEffectSubItemGenVal();
|
|
pE2->mnEffectVal = 0;
|
|
addEffect(pE2);
|
|
return true;
|
|
}
|
|
void CRightTouchData::reset()
|
|
{
|
|
CBaseData::reset();
|
|
setAnger(0);
|
|
mnItemGenVal = 0;
|
|
mbItemGen = false;
|
|
mnItemGenValLimit = 100;
|
|
}
|
|
void CRightTouchData::alterAnger(int delta)
|
|
{
|
|
this->setAnger(this->getAnger()+delta);
|
|
if(getAnger() >= 100)
|
|
{
|
|
setGenBomb(true);
|
|
setAnger(0);
|
|
}
|
|
}
|
|
void CRightTouchData::alterContinueNum(int delta)
|
|
{
|
|
setContinueNum(mnContinueNum + delta);
|
|
}
|
|
void CRightTouchData::alterCrazyContinueNum(int delta)
|
|
{
|
|
setCrazyContinueNum(getCrazyContinueNum() + delta);
|
|
}
|
|
|
|
void CRightTouchData::alterScore(int delta)
|
|
{
|
|
int nScore = delta;
|
|
setScore(this->getScore()+nScore);
|
|
}
|
|
int CRightTouchData::getCrazyAdd()
|
|
{
|
|
int nVal = 1;
|
|
if(getContinueNum() >= 20)
|
|
{
|
|
nVal = TR_CRAZY_ADD_2;
|
|
}else if(getContinueNum() >= 10)
|
|
{
|
|
nVal = TR_CRAZY_ADD_1;
|
|
}
|
|
return nVal;
|
|
}
|
|
void CRightTouchData::alterItemGenVal(int delta)
|
|
{
|
|
setItemGenVal(getItemGenVal() + delta);
|
|
|
|
if(getItemGenVal() >= getItemGenValLimit())
|
|
{
|
|
setItemGen(true);
|
|
setItemGenVal(0);
|
|
}
|
|
}
|
|
|
|
void CRightTouchData::updataMode()
|
|
{
|
|
if(mMode == eComCrazyMode && getContinueNum() >= RT_SUPER_MODE_CONTINUE_NEED_TIMES)
|
|
{
|
|
mMode = eSuperCrazyMode;
|
|
}else if(mMode == eNoneMode && getContinueNum() >= 10)
|
|
{
|
|
mMode = eComCrazyMode;
|
|
}
|
|
}
|
|
|
|
int CRightTouchData::getContinueNum()
|
|
{
|
|
int nNum = mnContinueNum - 1;
|
|
if( nNum < 0)
|
|
return 0;
|
|
return nNum;
|
|
|
|
}
|
|
CRTBaseEffect* CRightTouchData::getEffect(ERTEffectType eType)
|
|
{
|
|
for (int i = 0; i < mVecEffect.size(); ++i)
|
|
{
|
|
if(mVecEffect[i]->getType() == eType)
|
|
return mVecEffect[i];
|
|
}
|
|
return NULL;
|
|
}
|
|
void CRightTouchData::delEffect(ERTEffectType eType)
|
|
{
|
|
for (int i = 0; i < mVecEffect.size(); ++i){
|
|
CRTBaseEffect* pEffect = mVecEffect[i];
|
|
if (pEffect->getType() == eType){
|
|
CC_SAFE_DELETE(pEffect);
|
|
mVecEffect.erase(mVecEffect.begin()+i);
|
|
}
|
|
}
|
|
}
|
|
void CRightTouchData::addEffect(CRTBaseEffect* pEffect)
|
|
{
|
|
mVecEffect.push_back(pEffect);
|
|
}
|
|
void CRightTouchData::addEffectByItemId(int nItemId)
|
|
{
|
|
switch(nItemId)
|
|
{
|
|
case ItemTag_1://疯狂开局
|
|
addEffect(new CRTEffectCrazy());
|
|
break;
|
|
case ItemTag_2://避免失误
|
|
addEffect(new CRTEffectSkipErr());
|
|
break;
|
|
case ItemTag_3://时间延长
|
|
addEffect(new CRTEffectTimeDelay());
|
|
break;
|
|
case ItemTag_4://染色剂
|
|
addEffect(new CRTEffectColourOpen());
|
|
break;
|
|
}
|
|
setNoUsePlayItem(false);
|
|
}
|
|
void CRightTouchData::clearEffect()
|
|
{
|
|
for (int i = 0; i < mVecEffect.size(); ++i)
|
|
{
|
|
CRTBaseEffect* pEffect = mVecEffect[i];
|
|
CC_SAFE_DELETE(pEffect);
|
|
}
|
|
mVecEffect.clear();
|
|
}
|
|
void CRightTouchData::setEffectStrengthenVal(e_GameType eGameType,int nStrengthenId,float fEffVal)
|
|
{
|
|
if (nStrengthenId == eRTIntensifyEffectGenBigCell){
|
|
CFrIntersifyEffectGenBigCell* pEff = (CFrIntersifyEffectGenBigCell*)CRtData.getEffect(eRTIntensifyEffectGenBigCell);
|
|
if (pEff){
|
|
pEff->mnEffectVal = fEffVal * RAND_GAME_BASE_VAL;
|
|
}
|
|
}else if (nStrengthenId == eRTIntensifyEffectSubItemGenVal)
|
|
{
|
|
CFrIntersifyEffectSubItemGenVal* pEff = (CFrIntersifyEffectSubItemGenVal*)CRtData.getEffect(eRTIntensifyEffectSubItemGenVal);
|
|
if (pEff){
|
|
pEff->mnEffectVal = fEffVal;
|
|
}
|
|
}else if (nStrengthenId == eRTIntensifyEffectQuickGrow)
|
|
{
|
|
CFrIntersifyEffectQuickGrow* pEff = (CFrIntersifyEffectQuickGrow*)CRtData.getEffect(eRTIntensifyEffectQuickGrow);
|
|
if (pEff){
|
|
pEff->mnEffectVal = fEffVal* RAND_GAME_BASE_VAL;
|
|
}
|
|
}
|
|
} |