private void DisplayItemDetail(Transform item, ListDataTypeBase data, Int32 index, Boolean isInit) { FieldItemListData fieldItemListData = (FieldItemListData)data; ItemDetailHUD itemDetailHud = new ItemDetailHUD(item.gameObject); if (isInit) { UIEventListener uiEventListener = UIEventListener.Get(itemDetailHud.ManualButton.gameObject); uiEventListener.Select += itemDetailHud.Self.GetComponent <ScrollItemKeyNavigation>().OnOtherObjectSelect; DisplayWindowBackground(item.gameObject, null); } if (ButtonGroupState.ActiveGroup == ItemArrangeGroupButton) { if (_currentItemIndex == index && !_switchingItem) { if (isInit) { ButtonGroupState.HoldActiveStateOnGroup(item.gameObject, ItemGroupButton); } ButtonGroupState.SetButtonAnimation(item.gameObject, false); ButtonGroupState.SetOutsideLimitRectBehavior(PointerManager.LimitRectBehavior.Hide, ItemGroupButton); } else { ButtonGroupState.SetButtonAnimation(item.gameObject, true); } } FF9UIDataTool.DisplayItem(fieldItemListData.ItemId, itemDetailHud.IconSprite, itemDetailHud.NameLabel, fieldItemListData.Enable); itemDetailHud.NumberLabel.text = fieldItemListData.ItemCount.ToString(); itemDetailHud.NumberLabel.color = !fieldItemListData.Enable ? FF9TextTool.Gray : FF9TextTool.White; itemDetailHud.Button.Help.Enable = true; itemDetailHud.Button.Help.Text = FF9TextTool.ItemHelpDescription(fieldItemListData.ItemId); itemDetailHud.ManualButton.Help.Enable = true; itemDetailHud.ManualButton.Help.Text = FF9TextTool.ItemHelpDescription(fieldItemListData.ItemId); }
public override Boolean OnKeyCancel(GameObject go) { if (base.OnKeyCancel(go)) { if (_isShowingKeyItemDesp) { FF9Sfx.FF9SFX_Play(101); DisplayKeyItemSkin(false); } if (ButtonGroupState.ActiveGroup == SubMenuGroupButton) { FF9Sfx.FF9SFX_Play(101); _fastSwitch = false; Hide(() => { PersistenSingleton <UIManager> .Instance.MainMenuScene.NeedTweenAndHideSubMenu = false; PersistenSingleton <UIManager> .Instance.MainMenuScene.CurrentSubMenu = MainMenuUI.SubMenu.Item; PersistenSingleton <UIManager> .Instance.ChangeUIState(UIManager.UIState.MainMenu); }); } else if (ButtonGroupState.ActiveGroup == ArrangeMenuGroupButton) { FF9Sfx.FF9SFX_Play(101); _currentArrangeMode = 0; // ISSUE: method pointer _arrangeTransition.TweenOut(() => Loading = false); Loading = true; ButtonGroupState.ActiveGroup = SubMenuGroupButton; } else if (ButtonGroupState.ActiveGroup == ItemGroupButton) { FF9Sfx.FF9SFX_Play(101); ButtonGroupState.ActiveGroup = SubMenuGroupButton; } else if (ButtonGroupState.ActiveGroup == KeyItemGroupButton) { FF9Sfx.FF9SFX_Play(101); ButtonGroupState.ActiveGroup = SubMenuGroupButton; } else if (ButtonGroupState.ActiveGroup == TargetGroupButton) { FF9Sfx.FF9SFX_Play(101); ButtonGroupState.ActiveGroup = ItemGroupButton; Loading = true; // ISSUE: method pointer _targetTransition.TweenOut(new Byte[1], () => Loading = false); } else if (ButtonGroupState.ActiveGroup == ItemArrangeGroupButton) { FF9Sfx.FF9SFX_Play(101); Int32 itemDataIndex = go.transform.parent.GetComponent <RecycleListItem>().ItemDataIndex; _switchingItem = true; _currentItemIndex = itemDataIndex; _itemScrollList.JumpToIndex(_currentItemIndex, false); ButtonGroupState.RemoveCursorMemorize(ItemGroupButton); ButtonGroupState.ActiveGroup = ItemGroupButton; ButtonGroupState.SetOutsideLimitRectBehavior(PointerManager.LimitRectBehavior.Limit, ItemGroupButton); _switchingItem = false; } } return(true); }
public override Boolean OnKeyConfirm(GameObject go) { if (base.OnKeyConfirm(go)) { if (_isShowingKeyItemDesp) { FF9Sfx.FF9SFX_Play(103); DisplayKeyItemSkin(false); } if (ButtonGroupState.ActiveGroup == SubMenuGroupButton) { FF9Sfx.FF9SFX_Play(103); _currentMenu = GetSubMenuFromGameObject(go); switch (_currentMenu) { case SubMenu.Use: _currentArrangeMode = 0; ButtonGroupState.ActiveGroup = ItemGroupButton; ButtonGroupState.SetSecondaryOnGroup(SubMenuGroupButton); ButtonGroupState.HoldActiveStateOnGroup(SubMenuGroupButton); break; case SubMenu.Arrange: _arrangeTransition.TweenIn(() => { Loading = false; ButtonGroupState.ActiveGroup = ArrangeMenuGroupButton; ButtonGroupState.HoldActiveStateOnGroup(SubMenuGroupButton); }); Loading = true; break; case SubMenu.Key: if (_keyItemIdList.Count > 0) { ButtonGroupState.ActiveGroup = KeyItemGroupButton; ButtonGroupState.SetSecondaryOnGroup(SubMenuGroupButton); ButtonGroupState.HoldActiveStateOnGroup(SubMenuGroupButton); } break; } } else if (ButtonGroupState.ActiveGroup == ArrangeMenuGroupButton) { FF9Sfx.FF9SFX_Play(103); _currentArrangeMode = go.transform.GetSiblingIndex() + 1; switch (_currentArrangeMode) { case 1: _arrangeTransition.TweenOut(() => Loading = false); Loading = true; ButtonGroupState.ActiveGroup = SubMenuGroupButton; ArrangeAuto(); DisplayItem(); break; case 2: _arrangeTransition.TweenOut(() => Loading = false); Loading = true; ButtonGroupState.ActiveGroup = ItemGroupButton; ButtonGroupState.SetSecondaryOnGroup(SubMenuGroupButton); ButtonGroupState.HoldActiveStateOnGroup(SubMenuGroupButton); DisplayItem(); break; } } else if (ButtonGroupState.ActiveGroup == ItemGroupButton) { if (ButtonGroupState.ContainButtonInGroup(go, ItemGroupButton)) { _currentItemIndex = go.GetComponent <RecycleListItem>().ItemDataIndex; if (_currentArrangeMode == 0) { PLAYER player = FF9StateSystem.Common.FF9.party.member[0]; Int32 itemId = _itemIdList[_currentItemIndex]; FF9ITEM_DATA ff9ItemData = ff9item._FF9Item_Data[itemId]; if (citem.YCITEM_IS_ITEM(itemId)) { ITEM_DATA tbl = ff9item._FF9Item_Info[itemId - 224]; if ((ff9ItemData.type & 1) == 1) { if (!_usedItemIdList.Contains(itemId)) { if ((FF9FITEM_ID_VEGETABLE != itemId ? tbl.info.DisplayStats : 0) == 0) { if (SFieldCalculator.FieldCalcMain(player, player, tbl, tbl.Ref.ScriptId, 0U)) { FF9Sfx.FF9SFX_Play(106); ff9item.FF9Item_Remove(itemId, 1); if (ff9item.FF9Item_GetCount(itemId) == 0) { _usedItemIdList.Add(itemId); } DisplayItem(); } else { FF9Sfx.FF9SFX_Play(102); } } else { FF9Sfx.FF9SFX_Play(103); if (_currentItemIndex % 2 == 0) { _targetTransition.animatedInStartPosition = new Vector3(1543f, 0.0f, 0.0f); _targetTransition.animatedOutEndPosition = new Vector3(1543f, 0.0f, 0.0f); TargetListPanel.transform.localPosition = new Vector3(TargetPositionXOffset, 0.0f, 0.0f); } else { _targetTransition.animatedInStartPosition = new Vector3(-1543f, 0.0f, 0.0f); _targetTransition.animatedOutEndPosition = new Vector3(-1543f, 0.0f, 0.0f); TargetListPanel.transform.localPosition = new Vector3((Single)(-TargetPositionXOffset - 60.0), 0.0f, 0.0f); } _targetTransition.DestinationPosition = new Vector3[1] { TargetListPanel.transform.localPosition }; DisplayTarget(); Loading = true; _targetTransition.TweenIn(new Byte[1], () => { Loading = false; ButtonGroupState.RemoveCursorMemorize(TargetGroupButton); ButtonGroupState.ActiveGroup = TargetGroupButton; ButtonGroupState.HoldActiveStateOnGroup(ItemGroupButton); }); } } else { FF9Sfx.FF9SFX_Play(102); } } else { FF9Sfx.FF9SFX_Play(102); } } else { FF9Sfx.FF9SFX_Play(102); } } else if (_currentArrangeMode == 2) { FF9Sfx.FF9SFX_Play(103); ButtonGroupState.SetCursorMemorize(go.GetChild(1), ItemArrangeGroupButton); ButtonGroupState.ActiveGroup = ItemArrangeGroupButton; ButtonGroupState.HoldActiveStateOnGroup(ItemGroupButton); ButtonGroupState.SetOutsideLimitRectBehavior(PointerManager.LimitRectBehavior.Hide, ItemGroupButton); } } else { OnSecondaryGroupClick(go); } } else if (ButtonGroupState.ActiveGroup == KeyItemGroupButton) { if (ButtonGroupState.ContainButtonInGroup(go, KeyItemGroupButton)) { _currentItemIndex = go.GetComponent <RecycleListItem>().ItemDataIndex; if (_keyItemIdList[_currentItemIndex] != FF9FITEM_RARE_NONE) { FF9Sfx.FF9SFX_Play(103); DisplayKeyItemSkin(true); } else { FF9Sfx.FF9SFX_Play(102); } } else { OnSecondaryGroupClick(go); } } else if (ButtonGroupState.ActiveGroup == TargetGroupButton) { if (ButtonGroupState.ContainButtonInGroup(go, TargetGroupButton)) { Int32 siblingIndex = go.transform.GetSiblingIndex(); Int32 itemId = _itemIdList[_currentItemIndex]; PLAYER player = FF9StateSystem.Common.FF9.party.member[siblingIndex]; ITEM_DATA tbl = ff9item._FF9Item_Info[itemId - 224]; if (SFieldCalculator.FieldCalcMain(player, player, tbl, tbl.Ref.ScriptId, 0U)) { FF9Sfx.FF9SFX_Play(106); ff9item.FF9Item_Remove(itemId, 1); if (ff9item.FF9Item_GetCount(itemId) > 0) { DisplayItem(); DisplayTarget(); } else { _usedItemIdList.Add(itemId); DisplayItem(); ButtonGroupState.ActiveGroup = ItemGroupButton; Loading = true; // ISSUE: method pointer _targetTransition.TweenOut(new Byte[1], () => Loading = false); } } else { FF9Sfx.FF9SFX_Play(102); } } } else if (ButtonGroupState.ActiveGroup == ItemArrangeGroupButton) { if (ButtonGroupState.ContainButtonInGroup(go, ItemArrangeGroupButton)) { FF9Sfx.FF9SFX_Play(103); _currentArrangeItemIndex = go.transform.parent.GetComponent <RecycleListItem>().ItemDataIndex; FF9ITEM ff9Item = FF9StateSystem.Common.FF9.item[_currentItemIndex]; FF9StateSystem.Common.FF9.item[_currentItemIndex] = FF9StateSystem.Common.FF9.item[_currentArrangeItemIndex]; FF9StateSystem.Common.FF9.item[_currentArrangeItemIndex] = ff9Item; _switchingItem = true; DisplayItem(); _itemScrollList.JumpToIndex(_currentArrangeItemIndex, false); ButtonGroupState.RemoveCursorMemorize(ItemGroupButton); ButtonGroupState.ActiveGroup = ItemGroupButton; ButtonGroupState.SetOutsideLimitRectBehavior(PointerManager.LimitRectBehavior.Limit, ItemGroupButton); _switchingItem = false; } else { OnSecondaryGroupClick(go); } } } return(true); }