public void SetItemIndex(int idx, MenuItemIndex.RESULTTYPE type) { if (itemidx == idx) { return; } Item.ITEMCODE Code; MenuItemIndex.GetItemIndexToCode(out Code, type, idx); bool NoneValue = Code == Item.ITEMCODE.NONE; EnableText(!NoneValue); if (NoneValue) { return; } itemidx = (int)Code; SetTexts(); }
public void SetImage() { Item.ITEMCODE Codes; for (int i = 0; i < 2; i++) { if (MenuItemIndex.GetItemIndexToCode(out Codes, (MenuItemIndex.RESULTTYPE)i, ImageNumber)) { Item.ItemData data = Item.GetItem(Codes); if (i == 0) { PotionSprite = data.GetSprite(); } else { EqulpMentSprite = data.GetSprite(); } } } }
IEnumerator ItemSelect(int i) { ItemIconCtrl.switchs[i](); bool[] ItemsOK = { false, false }; SelectMenu Sm = TempMenu[i] = ItemSelecter[i]; TempMenu[i].isRun = true; Vector2 v; yield return(StartCoroutine("MoveMenu", new object[] { Sm, DownMenuY })); ItemDes[i].gameObject.SetActive(true); while (true) { if (Sm.isSelect(out v)) { if (false)//예외적 아이템 클릭. { Sm.Cancel(); continue; } if (!ItemsOK[1]) { EffectManager.ins.EffectRun(TempMenu[i].CursorTr.GetComponent <RectTransform>().position, Vector3.one, SmallSelectEffect[i], 0.63f, true); } if (!ItemsOK[0]) { //1번아이템 int index = (int)v.x + (int)v.y * Sm.XLength; MenuItemIndex.GetItemIndexToCode(out ItemCode[i], MenuItemIndex.RESULTTYPE.EQULPMENT, index); if (ItemCode[i] != Item.ITEMCODE.NONE) { Item.ItemData data = Item.GetItem(ItemCode[i]); if (Duration[i] + data.weight <= MAXDURATION) { GameData.ins.EquipmentCode[i] = ItemCode[i]; Duration[i] += data.weight; ItemsOK[0] = true; Sm.Cancel(); ItemDes[i].gameObject.SetActive(false); yield return(StartCoroutine("MoveMenu", new object[] { Sm, UpMenuY })); ItemIconCtrl.switchs[i](); //이미지교체 yield return(StartCoroutine("MoveMenu", new object[] { Sm, DownMenuY })); ItemDes[i].gameObject.SetActive(true); } else { Sm.Cancel(); } } else { Sm.Cancel(); } } else if (!ItemsOK[1]) { //2번아이템 int index = (int)v.x + (int)v.y * Sm.XLength; MenuItemIndex.GetItemIndexToCode(out ItemCode[i + 2], MenuItemIndex.RESULTTYPE.POTION, index); if (ItemCode[i + 2] != Item.ITEMCODE.NONE) { Item.ItemData data = Item.GetItem(ItemCode[i + 2]); if (Duration[i] + data.weight <= MAXDURATION) { GameData.ins.PotionCode[i] = ItemCode[i + 2]; Duration[i] += data.weight; AllOK[i] = true; CheckingCharacterIndex(i); ItemsOK[1] = true; ItemDes[i].gameObject.SetActive(false); yield return(StartCoroutine("MoveMenu", new object[] { Sm, UpMenuY })); ItemIconCtrl.switchs[i](); } else { Sm.Cancel(); } } else { Sm.Cancel(); } } } ItemDes[i].SetItemIndex((int)(v.x + v.y * TempMenu[i].XLength), ItemsOK[0] ? MenuItemIndex.RESULTTYPE.POTION : MenuItemIndex.RESULTTYPE.EQULPMENT); if (Input.GetKeyDown(Sm.KeysData[Sm.KeysData.Length - 1])) //exit눌렀을때 { AllOK[i] = false; bool isCancel = false; for (int j = 1; j >= 0; j--) { if (ItemsOK[j]) { ItemsOK[j] = !ItemsOK[j]; isCancel = true; Item.ItemData data = Item.GetItem(ItemCode[i + 2 * j]); Duration[i] -= data.weight; ItemDes[i].gameObject.SetActive(false); if (j != 1) { yield return(StartCoroutine("MoveMenu", new object[] { Sm, UpMenuY })); } ItemIconCtrl.switchs[i](); yield return(StartCoroutine("MoveMenu", new object[] { Sm, DownMenuY })); ItemDes[i].gameObject.SetActive(true); if (j == 1) { GameData.ins.PotionCode[i] = Item.ITEMCODE.NONE; } else { GameData.ins.EquipmentCode[i] = Item.ITEMCODE.NONE; } break; } } if (!isCancel) { PlayerStasis[i]--; Sm.isRun = false; CharacterSelecter[i].Cancel(); ItemDes[i].gameObject.SetActive(false); yield return(StartCoroutine("MoveMenu", new object[] { Sm, UpMenuY })); ItemIconCtrl.switchs[i](); StartCoroutine("StasisChecker", i); yield break; } } yield return(null); } }