/// <summary> /// Handle process about release balloon /// </summary> /// <param name="isPlayerBalloon"></param> /// <returns>Released balloon successfully?</returns> private bool ReleaseBalloon(bool isPlayerBalloon) { if (isPlayerBalloon) { if (PlayerBalloon.State == Balloon.BalloonStatus.Normal) { return(false); } AudioManager.Instance.Play("EmitBalloon"); playerBalloonIndex++; PlayerBalloon.MoveAway(); PlayerReleasedBalloons.Add(PlayerBalloon); PlayerBalloon = null; } else { if (rivalBalloon.State == Balloon.BalloonStatus.Normal) { return(false); } AudioManager.Instance.Play("EmitBalloon"); rivalBalloonIndex++; rivalBalloon.MoveAway(); RivalReleasedBalloons.Add(rivalBalloon); rivalBalloon = null; } // Spawn balloon if (isPlayerBalloon) { Invoke("SpawnPlayerBalloon", balloonSpawnInterval); } else { Invoke("SpawnRivalBalloon", balloonSpawnInterval); } return(true); }
//====================================================================================== // Private methods //====================================================================================== /// <summary> /// Calc game player total score and sort balloons by type /// </summary> private void PrepareData() { // For-Loop by balloon type and add to list for (int i = 0; i < GetEnumCount <Balloon.BalloonType>(); i++) { var type = GetEnumByIndex <Balloon.BalloonType>(i); SortedPlayerReleasedBalloons.Add(PlayerReleasedBalloons.FindAll( x => x.PresentBallonType == type)); SortedRivalReleasedBalloons.Add(RivalReleasedBalloons.FindAll( x => x.PresentBallonType == type)); } // Calc total score foreach (var i in PlayerReleasedBalloons) { PlayerScore += i.GetBalloonScore(); } foreach (var i in RivalReleasedBalloons) { RivalScore += i.GetBalloonScore(); } // Get game result by total score if (PlayerScore > RivalScore) { PresentGameResult = GameResult.PlayerWin; } else if (PlayerScore == RivalScore) { PresentGameResult = GameResult.Match; } else { PresentGameResult = GameResult.RivalWin; } }