You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

215 lines
5.8 KiB

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<Toggle>();
txtAbility = awakenUnlock.transform.Find("txtEffect").GetComponent<TextMeshProUGUI>();
//numberCircle = awakenUnlock.transform.Find("numberCircle").gameObject;
txtNumber = awakenUnlock.transform.Find("txtNumber").GetComponent<TextMeshProUGUI>();
//txtNumber.text = key.ToString();
txtUnlockCondition = awakenLock.transform.Find("txtUnlockCondition").GetComponent<TextMeshProUGUI>();
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);
}
}
}