using UnityEngine; using UnityEngine.UI; using TMPro; public class AwakenItem : MonoBehaviour { [SerializeField] int key; public void SetKey(int Key) { key = Key; } GameObject awakenUnlock; GameObject awakenLock; Toggle abilityLock; TextMeshProUGUI txtAbility; GameObject numberCircle; TextMeshProUGUI txtNumber; GameObject btnLock; [SerializeField] Image imgUnlock,imgLock; TextMeshProUGUI txtUnlockCondition; bool isUnlock; public bool GetIsUnlock() { return isUnlock; } public void SetIsUnlock(bool isunlock) { abilityLock.isOn = !isunlock; } public void UnlockAbilitySlot() { isUnlock = true; } bool isAbilityLock; public bool GetIsAbilityLock() { return isAbilityLock; } public void FirstOpen() { awakenUnlock = transform.Find("AwakenUnlock").gameObject; awakenLock = transform.Find("AwakenLock").gameObject; abilityLock = awakenUnlock.transform.Find("btnLock").GetComponent(); txtAbility = awakenUnlock.transform.Find("txtEffect").GetComponent(); //numberCircle = awakenUnlock.transform.Find("numberCircle").gameObject; txtNumber = awakenUnlock.transform.Find("txtNumber").GetComponent(); //txtNumber.text = key.ToString(); txtUnlockCondition = awakenLock.transform.Find("txtUnlockCondition").GetComponent(); btnLock = awakenUnlock.transform.Find("btnLock").gameObject; txtAbility.text = ""; isUnlock = DataHandler.GetServerAwakenSlots().awaken >= key; isAbilityLock = false; if (!isUnlock) { awakenUnlock.SetActive(false); awakenLock.SetActive(true); } else { awakenUnlock.SetActive(true); awakenLock.SetActive(false); if (DataHandler.GetServerAwakenSlots().extras[DataHandler.PlayAwaken.usePreset][key - 1] < 0) { abilityLock.SetIsOnWithoutNotify(true); } ShowAbility(); } txtUnlockCondition.text = FormatString.StringFormat(LocalizationText.GetText("awaken_unlock_slot_condition"), key); if (abilityLock.isOn == true) { //잠금 abilityLock.isOn = true; isAbilityLock = true; //EnhanceMgr.RecalculateRerollCost(); } } public void Localize() { txtUnlockCondition.text = FormatString.StringFormat(LocalizationText.GetText("awaken_unlock_slot_condition"), key); ShowAbility(); } public void AwakenLockButton() { //if (DataHandler.GetServerAwakenSlots().extras[DataHandler.AwakenSlot.usePreset][key - 1] < 0) //{ // abilityLock.isOn = false; // return; //} bool isToggled = abilityLock.isOn; SoundMgr.PlaySfx(SoundName.BtnPress); if (EnhanceMgr.GetAutoReroll()) { if (isToggled == true) { //잠금 abilityLock.SetIsOnWithoutNotify(false); } else { //열림 abilityLock.SetIsOnWithoutNotify(true); } return; } imgUnlock.gameObject.SetActive(!isToggled); imgLock.gameObject.SetActive(isToggled); if (isToggled == true) { //잠금 abilityLock.isOn = true; isAbilityLock = true; EnhanceMgr.RecalculateRerollCost(); DataHandler.PlayAwaken.awakenUnlock[DataHandler.PlayAwaken.usePreset][key - 1] = false; DataHandler.PlayAwaken.Save(); return; } else { //열림 abilityLock.isOn = false; isAbilityLock = false; EnhanceMgr.RecalculateRerollCost(); DataHandler.PlayAwaken.awakenUnlock[DataHandler.PlayAwaken.usePreset][key - 1] = true; DataHandler.PlayAwaken.Save(); return; } } public void RefreshView() { ShowAbility(); } public void RefreshUnlock() { if (!isUnlock) { awakenUnlock.SetActive(false); awakenLock.SetActive(true); } else { awakenUnlock.SetActive(true); awakenLock.SetActive(false); isUnlock = true; ShowAbility(); } } public void UnlockSlot() { if (!isUnlock) { isUnlock = true; awakenUnlock.SetActive(true); awakenLock.SetActive(false); } } private void ShowAbility() { abilityLock.gameObject.SetActive(true); if (DataHandler.GetServerAwakenSlots().extras[DataHandler.PlayAwaken.usePreset][key - 1] < 0) { Color clr = Global.CLR_White; clr.a = 0f; txtAbility.text = LocalizationText.GetText("efc0"); txtAbility.color = Global.CLR_RarityBack[0]; txtNumber.color = txtAbility.color; //tglLock.SetIsOnWithoutNotify(false); abilityLock.gameObject.SetActive(false); return; } awakenLock.SetActive(false); IVDataFormat.dExtraAbility ability = DataHandler.GetExtraAbility(DataHandler.GetServerAwakenSlots().extras[DataHandler.PlayAwaken.usePreset][key - 1]); txtAbility.text = FormatString.TextEffectTitleValue(ability.abilityType, ability.abilityValue); txtAbility.color = Global.CLR_RarityBack[ability.rarity]; txtNumber.color = txtAbility.color; } public void UnlockLockButton() { if (btnLock.activeSelf || !isUnlock) { return; } else { btnLock.SetActive(true); } } }