PJ/Assets/scripts/ShopSkins.cs

246 lines
5.3 KiB
C#
Raw Normal View History

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<int> HaveSkin = new List<int> { 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<int> HaveAchievements;
public void Back()
{
//List<int> BackSkins = new List<int> {0,1,2,3,4,5,6 };
//HaveSkin.Clear();
SaveS();
Debug.Log(HaveSkin);
}
void SaveS()
{
string json = JsonUtility.ToJson(new Serialization<int>(HaveSkin));
PlayerPrefs.SetString("HaveS", json);
PlayerPrefs.Save();
}
private void Start()
{
LoadS();
LoadA();
List<int> BackSkins = new List<int> { 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<Serialization<int>>(json).List;
}
else
{
Debug.Log(name);
}
}
[System.Serializable]
private class Serialization<T>
{
public List<T> List;
public Serialization(List<T> list)
{
this.List = list;
}
public List<T> 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<Serialization<int>>(json).List;
}
}
void SaveA()
{
string json = JsonUtility.ToJson(new Serialization<int>(HaveAchievements));
PlayerPrefs.SetString("HaveA", json);
PlayerPrefs.Save();
}
}