Guest User

Untitled

a guest
Dec 2nd, 2020
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.52 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.SocialPlatforms;
  5.  
  6. namespace Manager
  7. {
  8.     [System.Serializable]
  9.     public class Scores
  10.     {
  11.         [SerializeField] private int score;
  12.         [SerializeField] private string name;
  13.  
  14.         public int GetScore()
  15.         {
  16.             return score;
  17.         }
  18.         public string GetName()
  19.         {
  20.             return name;
  21.         }
  22.  
  23.         public void SetScore(int newScore)
  24.         {
  25.             score = newScore;
  26.         }
  27.         public void SetName(string newName)
  28.         {
  29.             name = newName;
  30.         }
  31.     }
  32.  
  33.     public class GameManager : MonoBehaviour
  34.     {
  35.  
  36.         [Header("Badge States")]
  37.         [SerializeField] bool archeryBadge = false;
  38.         [SerializeField] bool destructionBadge = false;
  39.         [SerializeField] bool rockClimbingBadge = false;
  40.  
  41.         [Header("Game Highscores")]
  42.         [SerializeField] Scores[] archeryScore = new Scores[5];
  43.         [SerializeField] Scores[] destructionScore = new Scores[5];
  44.         [SerializeField] Scores[] rockClimbingScore = new Scores[5];
  45.  
  46.         public enum Games { Archery, Destruction, RockClimbing }
  47.  
  48.  
  49.         // Singleton implementation
  50.         private static GameManager instance = null;
  51.         public static GameManager Instance { get { return instance; } }
  52.  
  53.  
  54.         void Awake()
  55.         {
  56.             //Set Singleton Reference
  57.             if (instance != null)
  58.             {
  59.                 if (instance != this)
  60.                 {
  61.                     Destroy(this);
  62.                 }
  63.             }
  64.             else
  65.             {
  66.                 instance = this;
  67.             }
  68.  
  69.             DontDestroyOnLoad(this.gameObject);
  70.  
  71.             //Establish Leaderboards
  72.             for (int i = 0; i < archeryScore.Length; i++)
  73.             {
  74.                 archeryScore[i] = new Scores();
  75.             }
  76.             for (int i = 0; i < destructionScore.Length; i++)
  77.             {
  78.                 destructionScore[i] = new Scores();
  79.             }
  80.             for (int i = 0; i < rockClimbingScore.Length; i++)
  81.             {
  82.                 rockClimbingScore[i] = new Scores();
  83.             }
  84.  
  85.             //StartCoroutine(TestScores());
  86.         }
  87.  
  88.  
  89.         //used to test leaderboards
  90.         IEnumerator TestScores()
  91.         {
  92.             yield return new WaitForSeconds(2f);
  93.  
  94.             for (int i = 0; i < archeryScore.Length; i++)
  95.             {
  96.                 Debug.Log("Archery Leaderboard " + i + "Name: "+archeryScore[i].GetName()+"; Score " + archeryScore[i].GetScore());
  97.             }
  98.             /*
  99.             for (int i = 0; i < destructionScore.Length; i++)
  100.             {
  101.                 Debug.Log("Destruction Score " + destructionScore[i].GetScore());
  102.                 Debug.Log("Destruction Name " + destructionScore[i].GetName());
  103.             }
  104.             for (int i = 0; i < rockClimbingScore.Length; i++)
  105.             {
  106.                 Debug.Log("rockClimbing Score " + rockClimbingScore[i].GetScore());
  107.                 Debug.Log("rockClimbing Name " + rockClimbingScore[i].GetName());
  108.             }
  109.             */
  110.            
  111.         }
  112.        
  113.         public void SetBadgeState(Games badge, bool badgeState)
  114.         {
  115.             switch (badge)
  116.             {
  117.                 case Games.Archery:
  118.                     archeryBadge = badgeState;
  119.                     break;
  120.                 case Games.Destruction:
  121.                     destructionBadge = badgeState;
  122.                     break;
  123.                 case Games.RockClimbing:
  124.                     rockClimbingBadge = badgeState;
  125.                     break;
  126.             }
  127.         }
  128.  
  129.         public bool GetBadgeState(Games game)
  130.         {
  131.             switch (game)
  132.             {
  133.                 case Games.Archery:
  134.                     return archeryBadge;
  135.  
  136.                 case Games.Destruction:
  137.                     return destructionBadge;
  138.  
  139.                 case Games.RockClimbing:
  140.                     return rockClimbingBadge;
  141.  
  142.             }
  143.             return false;
  144.         }
  145.  
  146.         public void SetHighScore(Games game, int score, string name)
  147.         {
  148.             int scoreToUpdate = -1;
  149.             bool updateScore = false;
  150.  
  151.             switch (game)
  152.             {
  153.                 case Games.Archery:
  154.                     for (int i = 0; i < archeryScore.Length; i++)
  155.                     {
  156.                         if (archeryScore[i].GetScore() == score) { break; }
  157.                         if (archeryScore[i].GetScore() < score)
  158.                         {
  159.                             scoreToUpdate = i;
  160.                             updateScore = true;
  161.                             break;
  162.                         }
  163.                     }
  164.                     if (updateScore == true)
  165.                     {
  166.                         for (int x = 4; x >= 0; x--)
  167.                         {
  168.                             if (x != scoreToUpdate)
  169.                             {
  170.                                 archeryScore[x] = archeryScore[x - 1];
  171.                                 Debug.Log("Archery Sort " + x + "Name: " + archeryScore[x].GetName() + "; Score " + archeryScore[x].GetScore());
  172.                             }
  173.                             else
  174.                             {
  175.                                 archeryScore[x].SetScore(score);
  176.                                 archeryScore[x].SetName(name);
  177.                                 Debug.Log("Archery Leaderboard Set " + x + "Name: " + archeryScore[x].GetName() + "; Score " + archeryScore[x].GetScore());
  178.                                 break;
  179.                             }
  180.                         }
  181.                     }
  182.  
  183.                     break;
  184.                     /*
  185.                 case Games.Destruction:
  186.                     for (int i = 0; i < destructionScore.Length - 1; i++)
  187.                     {
  188.                         if (destructionScore[i].score == score) { break; }
  189.                         if (destructionScore[i].score < score)
  190.                         {
  191.                             scoreToUpdate = i;
  192.                             updateScore = true;
  193.                             break;
  194.                         }
  195.                     }
  196.                     if (updateScore == true)
  197.                     {
  198.                         for (int x = 4; x >= 0; x--)
  199.                         {
  200.                             if (x != scoreToUpdate)
  201.                             {
  202.                                 destructionScore[x] = destructionScore[x - 1];
  203.                             }
  204.                             else
  205.                             {
  206.                                 destructionScore[x].score = score;
  207.                                 destructionScore[x].name = name;
  208.                                 break;
  209.                             }
  210.                         }
  211.                     }
  212.                     break;
  213.                 case Games.RockClimbing:
  214.                     for (int i = 0; i < rockClimbingScore.Length - 1; i++)
  215.                     {
  216.                         if (rockClimbingScore[i].score == score) { break; }
  217.                         if (rockClimbingScore[i].score < score)
  218.                         {
  219.                             scoreToUpdate = i;
  220.                             updateScore = true;
  221.                             break;
  222.                         }
  223.                     }
  224.                     if (updateScore == true)
  225.                     {
  226.                         for (int x = 4; x >= 0; x--)
  227.                         {
  228.                             if (x != scoreToUpdate)
  229.                             {
  230.                                 rockClimbingScore[x] = rockClimbingScore[x - 1];
  231.                             }
  232.                             else
  233.                             {
  234.                                 rockClimbingScore[x].score = score;
  235.                                 rockClimbingScore[x].name = name;
  236.                                 break;
  237.                             }
  238.                         }
  239.                     }
  240.                     break;
  241.                     */
  242.             }
  243.         }
  244.  
  245.         public Scores[] GetHighScores(Games game)
  246.         {
  247.             switch (game)
  248.             {
  249.                 case Games.Archery:
  250.                     return archeryScore;
  251.                 case Games.Destruction:
  252.                     return destructionScore;
  253.                 case Games.RockClimbing:
  254.                     return rockClimbingScore;
  255.             }
  256.             return null;
  257.  
  258.         }
  259.     }
  260.  
  261. }
  262.  
Advertisement
Add Comment
Please, Sign In to add comment