private bool UpdateGameObjects() { spawnManager.Update(); if (isMarioTransition[GameUtilities.Player1]) { MarioTransitionUpdate(GameUtilities.Player1); return(false); } if (isMarioTransition[GameUtilities.Player2]) { MarioTransitionUpdate(GameUtilities.Player2); return(false); } for (int i = 0; i < animationList.Count; i++) { animationList[i].Update(); } foreach (IGameObject obj in backgroundList) { if (IsInViewBackground(obj)) { obj.Update(); } } foreach (IGameObject obj in blockList) { if (IsInView(obj)) { obj.Update(); } } Collection <IGameObject> tempEnemyList = new Collection <IGameObject>(); foreach (IEnemy obj in enemyList) { if (IsInView(obj) || obj.CanUpdate || !obj.Alive) { obj.Update(); } if (IsAboveSeaLevel(obj)) { tempEnemyList.Add(obj); } } enemyList = tempEnemyList; foreach (IGameObject obj in itemList) { obj.Update(); } foreach (IGameObject obj in pipeList) { if (IsInView(obj)) { obj.Update(); } } foreach (ISpawner obj in spawnerList) { if (GameUtilities.Game.State.Type == GameStates.Competitive && IsInView(obj)) { obj.Update(); } } Collection <IGameObject> tempFireBallList = new Collection <IGameObject>(); foreach (IGameObject obj in fireBallList) { obj.Update(); FireBallProjectile fireBall = (FireBallProjectile)obj; if (!fireBall.Used) { tempFireBallList.Add(obj); } } fireBallList = tempFireBallList; tempFireBallList = new Collection <IGameObject>(); foreach (IGameObject obj in fireBallList2) { obj.Update(); FireBallProjectile fireBall = (FireBallProjectile)obj; if (!fireBall.Used) { tempFireBallList.Add(obj); } } fireBallList2 = tempFireBallList; marios[GameUtilities.Player1].Update(); marios[GameUtilities.Player1].IsInAir = true; if (marios[GameUtilities.Player2] != null) { marios[GameUtilities.Player2].Update(); marios[GameUtilities.Player2].IsInAir = true; } HandleCollisions(); if (isSinglePlayerGame) { CheckAndStartSinglePlayerEndGame(); } return(true); }