using System.Collections; using System.Collections.Generic; using UnityEngine; using CodeJay.Enum; namespace CodeJay.Enum { public enum EProductReward { Delete_Ad, Heart, Key } public enum EProductType { ADS, IAP, Gold } } public class StorePanel : MonoBehaviour { [SerializeField] private GameObject SlotPrefab; [SerializeField] private GameObject BuyKeySlotPrefab; [SerializeField] private RectTransform content; private List _lstSlots; private int BuyOneKey = 6; private void Awake() { _lstSlots = new List(); for (int i = 0; i < 10; i++) { if (i == BuyOneKey) { _lstSlots.Add(Instantiate(BuyKeySlotPrefab, content).GetComponent()); } else { _lstSlots.Add(Instantiate(SlotPrefab, content).GetComponent()); } } _lstSlots[0].SetData(new CodeJay.Classes.ProductData("ads_remove", EProductType.IAP, "강제 광고 제거", "강제 노출되는 광고를 제거 합니다.", 5500, 0, EProductReward.Delete_Ad, 1)); _lstSlots[1].SetData(new CodeJay.Classes.ProductData("heart_free", EProductType.Gold, "일일 무료 하트 I", "무료 하트 획득!", 0, 1, EProductReward.Heart, 1)); _lstSlots[2].SetData(new CodeJay.Classes.ProductData("heart_ads", EProductType.ADS, "일일 무료 하트 II", "광고 시청 후 무료 하트 획득!", 0, 1, EProductReward.Heart, 1)); _lstSlots[3].SetData(new CodeJay.Classes.ProductData("heart_10", EProductType.IAP, "하트 10개 구매", "", 1000, 1, EProductReward.Heart, 10)); _lstSlots[4].SetData(new CodeJay.Classes.ProductData("heart_60", EProductType.IAP, "하트 60개 구매", "", 5500, 1, EProductReward.Heart, 60)); _lstSlots[5].SetData(new CodeJay.Classes.ProductData("heart_130", EProductType.IAP, "하트 130개 구매", "", 11000, 1, EProductReward.Heart, 130)); _lstSlots[BuyOneKey].SetData(new CodeJay.Classes.ProductData("key_1", EProductType.Gold, "열쇠 1 개", "", 100000 + (250000 * (int)GameManager.DB.BuyKeyCount), 2, EProductReward.Key, 1)); _lstSlots[7].SetData(new CodeJay.Classes.ProductData("key_20", EProductType.IAP, "열쇠 20 개", "", 11000, 2, EProductReward.Key, 10)); _lstSlots[8].SetData(new CodeJay.Classes.ProductData("key_45", EProductType.IAP, "열쇠 45 개", "", 22000, 2, EProductReward.Key, 25)); _lstSlots[9].SetData(new CodeJay.Classes.ProductData("key_75", EProductType.IAP, "열쇠 75 개", "", 33000, 2, EProductReward.Key, 45)); if (GameManager.Instance != null) { GameManager.Event.RegistEvent(EEventType.MoveToStore_Heart, this.MoveToStore_Heart); GameManager.Event.RegistEvent(EEventType.MoveToStore_Heart_DuringGame, this.MoveToStore_Heart); GameManager.Event.RegistEvent(EEventType.MoveToStore_Key, this.MoveToStore_Key); GameManager.Event.RegistEvent(EEventType.OnReturnToGameFromStore, this.OnReturnToGameFromStore); GameManager.Event.RegistEvent(EEventType.OnSynchronizeKey, this.OnSynchronizeKey); } } private void OnEnable() { GameManager.DB.CheckDayReset(); } private void OnDestroy() { if (GameManager.Instance != null) { GameManager.Event.RemoveEvent(EEventType.MoveToStore_Heart, this.MoveToStore_Heart); GameManager.Event.RemoveEvent(EEventType.MoveToStore_Heart_DuringGame, this.MoveToStore_Heart); GameManager.Event.RemoveEvent(EEventType.MoveToStore_Key, this.MoveToStore_Key); GameManager.Event.RemoveEvent(EEventType.OnReturnToGameFromStore, this.OnReturnToGameFromStore); GameManager.Event.RemoveEvent(EEventType.OnSynchronizeKey, this.OnSynchronizeKey); } } private void OnReturnToGameFromStore() { this.gameObject.SetActive(false); } private void MoveToStore_Heart() { if (this.gameObject.activeInHierarchy == false) this.gameObject.SetActive(true); content.anchoredPosition = Vector2.zero; } private void MoveToStore_Key() { // Height * 6, Spacing * 5 content.anchoredPosition = Vector2.up * ((300 * 6) + (20 * 5)); } private void OnSynchronizeKey() { _lstSlots[BuyOneKey].SetData(new CodeJay.Classes.ProductData("10", EProductType.Gold, "열쇠 1 개", "", 100000 + (250000 * (int)GameManager.DB.BuyKeyCount), 2, EProductReward.Key, 1)); } }