using System.Collections; using System.Collections.Generic; using System.Linq; using TMPro; using UnityEngine; using UnityEngine.SocialPlatforms.Impl; using UnityEngine.UI; public class Achievements : MonoBehaviour { public Sprite[] AchivementsImage; public GameObject AchievementsGet; public int AchievementsId; public Vector3 AchivementGetPos; private int Speed; private Image AchImage; public Sprite[] ImageId; public AudioSource AchievementSound; public Canvas Canvas; public List HaveAchievements = new List(); private int MaxMoney; private int DieCount; private int WinCount; private int MiniGamesComplete; private int LevelComplete; private int Gold; void LoadA() { //if (PlayerPrefs.HasKey("HaveA")) { //string json = PlayerPrefs.GetString("HaveA"); //HaveAchievements = JsonUtility.FromJson>(json).List; } } void SaveA() { //string json = JsonUtility.ToJson(new Serialization(HaveAchievements)); //PlayerPrefs.SetString("HaveA", json); //PlayerPrefs.Save(); } //[System.Serializable] //private class Serialization //{ // public List List; // // public Serialization(List list) // { // this.List = list; // } //public List ToList() //{ // return List; //} //} private void Start() { Canvas.worldCamera = Camera.main; } private void Update() { if (Speed > 0) { AchievementsGet.transform.Translate(Vector3.down * Speed * Time.deltaTime); } else if (Speed < 0) { AchievementsGet.transform.Translate(Vector3.up * 6 * Time.deltaTime); } MaxMoney = PlayerPrefs.GetInt("MaxMoney"); DieCount = PlayerPrefs.GetInt("CountDie") / 2; WinCount = PlayerPrefs.GetInt("CountWin"); MiniGamesComplete = PlayerPrefs.GetInt("MiniGamesComplete"); LevelComplete = PlayerPrefs.GetInt("LevelComplete"); Gold = PlayerPrefs.GetInt("Gold"); } public void ClearA() { HaveAchievements.Clear(); SaveA(); } private void FixedUpdate() { HaveAchievements = Currencies.Load("HaveA");//LoadA(); if (DieCount > 0 && !HaveAchievements.Contains(0)) { GetAchievements(0); } else if (DieCount > 4 && !HaveAchievements.Contains(1)) { GetAchievements(1); } else if (DieCount > 99 && !HaveAchievements.Contains(2)) { GetAchievements(2); } else if (DieCount > 999 && !HaveAchievements.Contains(3)) { GetAchievements(3); } if (LevelComplete > 0 && !HaveAchievements.Contains(4)) { GetAchievements(4); } if (LevelComplete == 34 && !HaveAchievements.Contains(5)) { GetAchievements(5); } if (MiniGamesComplete == 4 && !HaveAchievements.Contains(6)) { GetAchievements(6); } if (WinCount >= 100 && !HaveAchievements.Contains(7)) { GetAchievements(7); } if (MaxMoney > 9999 && !HaveAchievements.Contains(11)) { GetAchievements(11); } if (Gold == 1 && !HaveAchievements.Contains(10)) { GetAchievements(10); } //SaveA(); } private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "Player" && !HaveAchievements.Contains(AchievementsId)) { HaveAchievements.Add(AchievementsId); GetAchievements(AchievementsId); } } void SetSpeedZero() { Speed = 0; Invoke("SetBackSpeed", 1f); } void SetBackSpeed() { Speed = -1; Invoke("BackZeroSpeed", 0.5f); } void BackZeroSpeed() { Speed = 0; } public void GetAchievements(int NewAch) { Currencies.AddValue("HaveA", NewAch); Debug.Log(NewAch); //HA.Add(NewAch); AchImage = AchievementsGet.transform.Find("AchImg").GetComponent(); AchImage.sprite = ImageId[NewAch]; Speed = 6; Invoke("SetSpeedZero", 0.5f); //Debug.Log(HA.Count); AchievementSound.Play(); Debug.Log("Tring Save"); //print(string.Join(", ", HA)); //Currencies.Save("HaveA", HA); } }