void ATurret::OnFinishAATimer() { bAutoAttackOnCooldown = false; bAutoAttackLaunching = false; if (IsValid(GetCurrentTarget()) && GetCurrentTarget()->IsAlive() && !GetCurrentTarget()->bHidden) StartAutoAttack(); else TargetOutofRange(); }
void BattleData::PetsPlayCard(int side, int index, bool combine, CallBackWithVoid callback) //positino { CC_ASSERT((side == 0 || side == 1) && (index >=0 && index < 5), "Side, index is wrong"); if (!m_bPets[side][index] || m_bPets[side][index]->IsDead() || m_bPets[side][index]->moved() || !m_bPets[side][index]->canPlayCard()) { return; } const ATTRIBUTIONS ccard = m_bPets[side][index]->m_handCard; BattlePet * target = GetCurrentTarget(m_bPets[side][index]); if (combine) { std::vector<int> combines = GetCombinePets(side, index); const int clength = combines.size(); int cindex = 0; for (int j = 0; j < clength; ++j) { cindex = combines[j]; m_bPets[side][cindex]->AttackByCombineSkill(target, clength); m_bPets[side][cindex]->m_handCard = ATTRIBUTE_RELATIONS_Empty; m_bPets[side][cindex]->moved(1); } } else { m_bPets[side][index]->AttackBySkill(target); m_bPets[side][index]->m_handCard = ATTRIBUTE_RELATIONS_Empty; m_bPets[side][index]->moved(1); } if (ccard != ATTRIBUTE_RELATIONS_ALL) { m_TableCard = ccard; BattleEngine::GetInstance()->dispatchEventWithType(BattleMessage_TableCardUpdate, nullptr); } PetCarsEvent e(callback); e.index = -1; e.side = -1; BattleEngine::GetInstance()->dispatchEvent(&e); SetTarget(m_bPets[side][index]->m_attackSide, -1, true, m_bPets[side][index]); }
void BattleData::PetsNomalAtt(int side, int index, CallBackWithVoid callback) { CC_ASSERT((side == 0 || side == 1) && (index >= 0 && index < 5), "Side, index is wrong"); if (!m_bPets[side][index] || m_bPets[side][index]->IsDead() || m_bPets[side][index]->moved()) { return; } BattlePet * target = GetCurrentTarget(m_bPets[side][index]); m_bPets[side][index]->Attack(target); m_bPets[side][index]->m_handCard = ATTRIBUTE_RELATIONS_Empty; m_bPets[side][index]->moved(1); PetCarsEvent e(callback); e.index = -1; e.side = -1; BattleEngine::GetInstance()->dispatchEvent(&e); SetTarget(m_bPets[side][index]->m_attackSide, -1, true, m_bPets[side][index]); }