246 lines
5.3 KiB
C#
246 lines
5.3 KiB
C#
|
|
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();
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|