void ATurret::OnFinishAATimer()
{
	bAutoAttackOnCooldown = false;
	bAutoAttackLaunching = false;

	if (IsValid(GetCurrentTarget()) && GetCurrentTarget()->IsAlive() && !GetCurrentTarget()->bHidden)
		StartAutoAttack();
	else
		TargetOutofRange();
}
Example #2
0
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]);
}
Example #3
0
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]);
}