virtual void Update( float deltaTime )
	{
		UpdateSplashScreen();

		UpdateGameState();
		
		if (EGS_PLAYING == m_CurrentState)
		{
			UpdateSpawning( deltaTime );

			UpdateGlobalBlackboard( deltaTime );
		}

		DestroyPendingObjects();
		SpawnPendingObjects();
	}
Пример #2
0
	//! called during the update of the entity	
	void DefenderManager::Update()
	{
		auto coolDown = GSETTINGS->m_DefenderManagerSettings->m_Cooldown;

		// update cool down
		if (m_CooldownTimer > 0.0f)
		{			
			float angle = ((coolDown - m_CooldownTimer) / coolDown) * Math::PITimes2;
			m_CooldownTimer -= g_fDeltaTime;
			if (m_CooldownTimer <= 0.0f)			
			{
				angle = Math::PITimes2 + .1f;
				m_CooldownTimer = -1.0f;
				m_CallDownButton->SetUIEnabled(true);
				m_CallDownButton->GetChildByName("Halo")->SetVisibleAndEnabled(true);
			}
			m_CooldownShader->GetConstant("uCurrentAngle")->Set(&angle, 1);
		}

		switch(m_State)
		{
		case S_Spawning:
		UpdateSpawning();
		break;

		case S_Defending:		
		if (m_CooldownTimer < (coolDown - GSETTINGS->m_DefenderManagerSettings->m_PullBackTreshold))
			SwitchState(S_PullBack);		
		break;			

		case S_PullBack:
			m_DiseappearTimer -= g_fDeltaTime;
			if (m_CooldownTimer < 0.0f || m_DiseappearTimer < 0.0f)
			{
				for (auto defender : m_lDefenders)
				{
					if (defender.IsValid())
						defender->GetParent()->RemoveChild(defender);
				}

				m_lDefenders.clear();
				SwitchState(S_Ready);
			}
		break;
		}
	}
void RPG_AiControllerComponent::UpdateState(float const deltaTime)
{
  if (m_characterOwner->ShouldDisplayDebugStateInformation())
  {
    DebugDisplayStateInformation();
  }

  RPG_AIState_e const state = GetState();
  switch(state)
  {
  case ST_Spawning:
    UpdateSpawning(deltaTime);
    break;
  case ST_Wandering:
    UpdateWandering(deltaTime);
    break;
  case ST_Challenging:
    UpdateChallenging(deltaTime);
    break;
  case ST_MovingToPosition:
    UpdateMovingToPosition(deltaTime);
    break;
  case ST_MeleeAttacking:
    UpdateMeleeAttacking(deltaTime);
    break;
  case ST_RangedAttacking:
    UpdateRangedAttacking(deltaTime);
    break;
  case ST_AoeAttacking:
    UpdateAoeAttacking(deltaTime);
    break;
  case ST_Fleeing:
    UpdateFleeing(deltaTime);
    break;
  case ST_Healing:
    UpdateHealing(deltaTime);
    break;
  default:
    VASSERT_MSG(false, "RPG_Ai Controller Component tried to update an unhandled state.");
    break;
  }
  m_isFirstStateUpdate = false;
}