Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.Events;
- using System.Collections;
- using System.Collections.Generic;
- public class Shop : MonoBehaviour
- {
- public enum State
- {
- Lock,
- Sale,
- Bought
- }
- public CarInfo Target
- {
- get
- {
- return m_Target;
- }
- set
- {
- if(m_Target) Destroy(m_Target.gameObject);
- if(!value) return;
- State state = (State) PlayerPrefsExt.IntValue[value.Id];
- //
- // if(state == State.Lock)
- // {
- // m_Target = GameObject.Instantiate(value.LockedCar, transform.position, transform.rotation) as CarInfo;
- // m_Target.Id = value.Id;
- //
- // Price.text = "LOCK";
- //
- // OnLockedCar.Invoke();
- //
- // return;
- // }
- //OnUnlockedCar.Invoke();
- m_Target = GameObject.Instantiate(value, transform.position, transform.rotation) as CarInfo;
- m_Target.Id = value.Id;
- var controller = m_Target.GetComponent<RCCCarControllerV2>();
- if(controller) controller.enabled = false;
- if(Info) Info.Target = m_Target;
- if(state == State.Bought)
- OnBoughtCar.Invoke();
- else
- OnSaleCar.Invoke();
- }
- }
- private CarInfo m_Target;
- public CarList CarsList;
- [Header("UI")]
- public Text Price;
- [Header("Events")]
- public UnityEvent OnBoughtCar;
- public UnityEvent OnSaleCar;
- public UnityEvent OnNoMoney;
- // public UnityEvent OnUnlockedCar;
- // public UnityEvent OnLockedCar;
- [Header("Other")]
- public CarInfoVisualizer Info;
- //public Garage GarageScript;
- void Start()
- {
- //PlayerPrefs.DeleteAll();
- if(!Info) Info = GameObject.FindObjectOfType<CarInfoVisualizer>();
- if(!CarsList) CarsList = GameObject.FindObjectOfType<CarList>();
- if(!IsBought(CarsList[0])) PlayerPrefsExt.IntValue[CarsList[0].Id] = 2;
- Next();
- }
- public void Next()
- {
- var index = -1;
- if(Target)
- index = GetCurrentIndex();
- index++;
- if(index == CarsList.Cars.Count) index = 0;
- Target = CarsList.Cars[index];
- }
- public void Prev()
- {
- var index = -1;
- if(Target)
- index = GetCurrentIndex();
- index--;
- if(index < 0) index = CarsList.Cars.Count - 1;
- Target = CarsList.Cars[index];
- }
- public void Reload()
- {
- if(Target) Target = CarsList.Cars[GetCurrentIndex()];
- }
- public void Buy()
- {
- Buy (Target.Id);
- }
- public void Buy(CarInfo car)
- {
- Buy (car.Id);
- }
- public void Buy(string carId)
- {
- if(Money.Remove(CarsList[carId].Price))
- {
- PlayerPrefsExt.IntValue[carId] = 2;
- Reload();
- }
- else
- {
- OnNoMoney.Invoke();
- }
- }
- public void Sell()
- {
- Sell (Target.Id);
- }
- public void Sell(string id)
- {
- // var car = CarsList[id];
- //
- // Money.Add(car.Price / 2);
- // PlayerPrefsExt.IntValue[car.Id] = 1;
- // Reload();
- // GarageScript.Remove(id);
- }
- public void Unlock()
- {
- if(UnlockOperation())
- {
- PlayerPrefsExt.IntValue[Target.Id] = 1;
- Reload();
- }
- }
- public void Select()
- {
- PlayerPrefsExt.StringValue["Current"] = Target.Id;
- }
- public int GetCurrentIndex()
- {
- return CarsList.Cars.FindIndex(a => a.Id == Target.Id);
- }
- public void Clear()
- {
- Target = null;
- }
- public bool IsBought(CarInfo car)
- {
- return IsBought(car.Id);
- }
- public bool IsBought(string carId)
- {
- return PlayerPrefsExt.IntValue[carId, 0] == 2;
- }
- protected bool UnlockOperation()
- {
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement