public void OnGameUpdateBase(EventArgs args)
{
#region PosistionEvents
//OnAriveAtShop
if (Player.IsAtShop() && !_onAriveAtShopCalled)
{
OnAriveAtShop();
_onAriveAtShopCalled = true;
}
else if(_onAriveAtShopCalled && !Player.IsAtShop()) _onAriveAtShopCalled = false;
//OnArriveAtRegion
//Fps Drops if enabled.
if (CheckRegionIn)
{
var regionIn = Player.RegionIn;
if (CurrentRegion != regionIn && !_onArriveAtRegionCalled)
{
OnArriveAtRegion(CurrentRegion, regionIn);
CurrentRegion = regionIn;
_onArriveAtRegionCalled = true;
}
else _onArriveAtRegionCalled = false;
}
#endregion
#region Game Events
//When spawn gate falls
if(!Timing.IsGateUp && !_onGateDownCalled)
{
OnGateDown();
_onGateDownCalled = true;
}
#endregion
switch (Situation.Game.GameState)
{
case GameState.GameStart:
OnGameStart();
break;
case GameState.MinionsSpawning:
OnMinionsSpawning();
break;
case GameState.JungleSpawning:
OnJungleSpawning();
break;
case GameState.FirstMinionContact:
OnMinionContact();
break;
case GameState.Laning:
OnLaning();
break;
case GameState.AllyGrouping:
OnAllyGrouping();
break;
case GameState.EnemyGrouping:
OnEnemyGrouping();
break;
case GameState.AllyFinishing:
OnAllyFinishing();
break;
case GameState.EnemyFinishing:
OnEnemyFinishing();
break;
default:
throw new ArgumentOutOfRangeException();
}
OnGameUpdate(args);
}