PJ/Assets/scripts/Achievements.cs

183 lines
4.7 KiB
C#
Raw Normal View History

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<int> HaveAchievements = new List<int>();
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<Serialization<int>>(json).List;
}
}
void SaveA()
{
//string json = JsonUtility.ToJson(new Serialization<int>(HaveAchievements));
//PlayerPrefs.SetString("HaveA", json);
//PlayerPrefs.Save();
}
//[System.Serializable]
//private class Serialization<T>
//{
// public List<T> List;
//
// public Serialization(List<T> list)
// {
// this.List = list;
// }
//public List<T> 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<Image>();
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);
}
}