using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization.Formatters.Binary; using UnityEditor; using UnityEngine; using UnityEngine.UI; using UnityEngine.Windows; using File = System.IO.File; public class ShopSkins : MonoBehaviour { public int TrySkin; public List HaveSkin = new List { 0, 1, 2, 3, 4, 5, 6 }; public Button[] Button; public int Moneys; public Button[] BuySkinButton; int ValueSkin; public Sprite Lock; public AudioSource AS; public AudioClip No; public AudioClip Yes; private List HaveAchievements; public void Back() { //List BackSkins = new List {0,1,2,3,4,5,6 }; //HaveSkin.Clear(); SaveS(); Debug.Log(HaveSkin); } void SaveS() { string json = JsonUtility.ToJson(new Serialization(HaveSkin)); PlayerPrefs.SetString("HaveS", json); PlayerPrefs.Save(); } private void Start() { LoadS(); LoadA(); List BackSkins = new List { 0, 1, 2, 3, 4, 5, 6, 7}; if (!HaveSkin.Contains(7)) HaveSkin.AddRange(BackSkins); SaveS(); if(!HaveSkin.Contains(13) & HaveAchievements.Contains(4)) { HaveSkin.Add(13); } if(!HaveSkin.Contains(15) & HaveAchievements.Contains(5)) { HaveSkin.Add(15); } } void LoadS() { if (PlayerPrefs.HasKey("HaveS")) { string json = PlayerPrefs.GetString("HaveS"); HaveSkin = JsonUtility.FromJson>(json).List; } else { Debug.Log(name); } } [System.Serializable] private class Serialization { public List List; public Serialization(List list) { this.List = list; } public List ToList() { return List; } } public void BuySkin(int SkinID) { switch (SkinID) { case 7: ValueSkin = 1000; Buy(); break; case 8: ValueSkin = 50; Buy(); break; case 13: ValueSkin = 80; Buy(); break; case 17: ValueSkin = 120; Buy(); break; case 18: ValueSkin = 99; Buy(); break; case 19: ValueSkin = 77; Buy(); break; case 23: ValueSkin = 125; Buy(); break; case 26: ValueSkin = 70; Buy(); break; case 28: ValueSkin = 90; Buy(); break; case 32: ValueSkin = 100000; Buy(); break; case 33: ValueSkin = 60; Buy(); break; case 43: ValueSkin = 350; Buy(); break; case 45: ValueSkin = 101; Buy(); break; case 52: ValueSkin = 250; Buy(); break; case 53: ValueSkin = -1; Buy(); break; case 62: ValueSkin = 1000000; Buy(); break; } void Buy() { if (Moneys >= ValueSkin) { LoadS(); HaveSkin.Add(SkinID+1); PlayerPrefs.SetInt("Moneys", Moneys - ValueSkin); SaveS(); AS.clip = Yes; } else { AS.clip = No; } AS.Play(); } } private void FixedUpdate() { Moneys = PlayerPrefs.GetInt("Moneys"); bool Gs = HaveSkin.Contains(8); if (Gs) { PlayerPrefs.SetInt("Gold", 1); } } private void Update() { LoadS(); for (int check = 0; check < Button.Length; check++) { Console.WriteLine(check); bool v = HaveSkin.Contains(check); Button[check].interactable = v; if (!v) { Button[check].image.sprite = Lock; } BuySkinButton[check].interactable = !v; } } public 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(); } }