コード例 #1
0
void Stats::updateFinalStats() {
  updateHealth();
  updateMana();
  updateAttack();
  updateMagicAttack();
  updateDefense();
  updateMagicDefense();
  updateDodge();
  updateHit();
}
コード例 #2
0
ファイル: bird.cpp プロジェクト: bradleypollard/Pokeballs
void Bird::update(std::vector<std::shared_ptr<Enemy>> e)
{
  if (!cooldown && (float)al_get_time() > time + 0.5f)
  {
    cooldown = true;
  }

  y += yv;
  yv += cooldown * gravity;

  updateAttack(e);
}
コード例 #3
0
void ComponentAIBomber::update()
{
	GameObject::removeDeadOnesFromList(onVisionList);
	GameObject::removeDeadOnesFromList(defenders);

	if(!parent->isDead())
	{

		if( state == EnemyState::ATTACK && distanceFromThePath() > 60 )
		{

			watching = false;
			shooting = false;		
			target=NULL;
			selectedTarget = false;
			messageStopAIM();
			state = EnemyState::RETURN;
		}


		//Comprueba que pases cerca del punto final del camino y si cambia el camino
		if(parent->position.getDistanceFrom(path->getEnd()) < 30 && state != EnemyState::ATTACK)
		{
			messageStopAIM();
			changeTarget(true);
		}

		switch (state)
		{
		case ATTACK:
			updateAttack();
			break;
		case MOVE:
			updateMove();
			break;
		case RETURN:
			updateReturn();
			break;
		default:
			break;
		}
	} 
	else
	{
		std::list<GameObject*>::iterator it;
		for (it=defenders.begin(); it!=defenders.end(); ++it)
		{
			(*it)->kill();
		}
	}
}
コード例 #4
0
ファイル: Player.cpp プロジェクト: dgengin/DGEngine
void Player::update(Game& game, Level& level)
{
	processQueuedActions(game);

	if (hasValidState() == false)
	{
		return;
	}
	if (useAI == true)
	{
		updateAI(level);
	}

	if (playerStatus != PlayerStatus::Dead &&
		LifeNow() <= 0)
	{
		playerStatus = PlayerStatus::Dead;
		playSound(dieSound);
	}

	switch (playerStatus)
	{
	default:
	case PlayerStatus::Stand:
		updateAnimation(game);
		break;
	case PlayerStatus::Walk:
		updateWalk(game, level);
		break;
	case PlayerStatus::Attack:
		updateAttack(game, level);
		break;
	case PlayerStatus::Dead:
		updateDead(game, level);
		break;
	}

	updateHover(game, level);
}
コード例 #5
0
void AvatarController::update(const float elapsedTime)
{
	m_avatarLogicCalculator->computeLogic();

	updateState();

	switch(m_avatarModel->getState()) {

		case AvatarModel::AvatarState::AVATAR_STATE_IDLE:
			updateIdle(elapsedTime);
			break;

		case AvatarModel::AvatarState::AVATAR_STATE_MOVE_UP:
			updateMove(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_MOVE_DOWN:
			updateMove(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_MOVE_LEFT:
			updateMove(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_MOVE_RIGHT:
			updateMove(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_MOVE_UP_LEFT:
			updateMove(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_MOVE_UP_RIGHT:
			updateMove(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_MOVE_DOWN_LEFT:
			updateMove(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_MOVE_DOWN_RIGHT:
			updateMove(elapsedTime);
			break;
		
		case AvatarModel::AvatarState::AVATAR_STATE_ATTACK_UP:
			updateAttack(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_ATTACK_DOWN:
			updateAttack(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_ATTACK_LEFT:
			updateAttack(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_ATTACK_RIGHT:
			updateAttack(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_ATTACK_UP_LEFT:
			updateAttack(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_ATTACK_UP_RIGHT:
			updateAttack(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_ATTACK_DOWN_LEFT:
			updateAttack(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_ATTACK_DOWN_RIGHT:
			updateAttack(elapsedTime);
			break;
		case AvatarModel::AvatarState::AVATAR_STATE_DIE:
			updateDie(elapsedTime);
			break;
		
		default:
			updateIdle(elapsedTime);
			break;
	}
	updateBasicAvatarMeasurements();
}