private void AnalyzeArgument() { this.AnalyzeParty(); this.defaultExp = (UInt32)((this.remainPlayerCounter == 0) ? 0UL : ((UInt64)battle.btl_bonus.exp / (UInt64)((Int64)this.remainPlayerCounter))); this.defaultAp = (UInt32)battle.btl_bonus.ap; this.defaultGil = battle.btl_bonus.gil; this.defaultCard = (Int32)((QuadMistDatabase.MiniGame_GetAllCardCount() < 100) ? battle.btl_bonus.card : Byte.MaxValue); this.itemList.Clear(); for (Int32 i = 0; i < BattleResultUI.ItemArgMax; i++) { if (battle.btl_bonus.item[i] != 255) { Boolean flag = false; for (Int32 j = 0; j < this.itemList.Count; j++) { if (battle.btl_bonus.item[i] == this.itemList[j].id) { FF9ITEM ff9ITEM = this.itemList[j]; ff9ITEM.count = (Byte)(ff9ITEM.count + 1); flag = true; break; } } if (!flag) { if (this.itemList.Count >= BattleResultUI.ItemMax) { return; } FF9ITEM item = new FF9ITEM(battle.btl_bonus.item[i], 1); this.itemList.Add(item); } } } }
public static Int32 FF9Item_GetCount(Int32 id) { FF9ITEM ptr = FF9Item_GetPtr(id); if (ptr == null) { return(0); } return(ptr.count); }
public static int FF9Item_GetCount(int id) { FF9ITEM ptr = FF9Item_GetPtr(id); if (ptr == null) { return(0); } return(ptr.count); }
public static FF9ITEM FF9Item_GetPtr(Int32 id) { FF9ITEM[] ff9ItemArray = FF9StateSystem.Common.FF9.item; for (Int32 index = 0; index < 256; ++index) { FF9ITEM ff9Item = ff9ItemArray[index]; if (ff9Item.count != 0 && ff9Item.id == id) { return(ff9Item); } } return(null); }
public static Int32 FF9Item_Remove(Int32 id, Int32 count) { FF9ITEM[] ff9ItemArray = FF9StateSystem.Common.FF9.item; for (Int32 index = 0; index < 256; ++index) { FF9ITEM ff9Item = ff9ItemArray[index]; if (ff9Item.count != 0 && ff9Item.id == id) { if (ff9Item.count < count) { count = ff9Item.count; } ff9Item.count -= (Byte)count; return(count); } } return(0); }
private void ArrangeAuto() { FF9ITEM[] ff9ItemArray = new FF9ITEM[256]; Int32 num = 0; for (Int32 index = 0; index < 256; ++index) { if (FF9StateSystem.Common.FF9.item[index].count != 0 && FF9StateSystem.Common.FF9.item[index].id != Byte.MaxValue) { ff9ItemArray[num++] = new FF9ITEM(FF9StateSystem.Common.FF9.item[index].id, FF9StateSystem.Common.FF9.item[index].count); } } for (Int32 index1 = 0; index1 < num - 1; ++index1) { for (Int32 index2 = index1 + 1; index2 < num; ++index2) { FF9ITEM_DATA ff9ItemData1 = ff9item._FF9Item_Data[ff9ItemArray[index1].id]; FF9ITEM_DATA ff9ItemData2 = ff9item._FF9Item_Data[ff9ItemArray[index2].id]; if (ff9ItemData1.sort > ff9ItemData2.sort) { FF9ITEM ff9Item = ff9ItemArray[index1]; ff9ItemArray[index1] = ff9ItemArray[index2]; ff9ItemArray[index2] = ff9Item; } else if (ff9ItemData1.sort == ff9ItemData2.sort && ff9ItemArray[index1].id > ff9ItemArray[index2].id) { FF9ITEM ff9Item = ff9ItemArray[index1]; ff9ItemArray[index1] = ff9ItemArray[index2]; ff9ItemArray[index2] = ff9Item; } } } for (Int32 index = 0; index < num; ++index) { FF9StateSystem.Common.FF9.item[index].id = ff9ItemArray[index].id; FF9StateSystem.Common.FF9.item[index].count = ff9ItemArray[index].count; } for (Int32 index = num; index < 256; ++index) { FF9StateSystem.Common.FF9.item[index].count = 0; } }
public static Int32 FF9Item_Add(Int32 id, Int32 count) { FF9StateGlobal ff9StateGlobal = FF9StateSystem.Common.FF9; if (id == Byte.MaxValue) { return(0); } Int32 index1 = 0; FF9ITEM[] ff9ItemArray1 = ff9StateGlobal.item; for (; index1 < 256; ++index1) { FF9ITEM ff9Item = ff9ItemArray1[index1]; if (ff9Item.count != 0 && ff9Item.id == id) { if (ff9Item.count + count > 99) { count = 99 - ff9Item.count; } ff9Item.count += (Byte)count; FF9Item_Achievement(ff9Item.id, ff9Item.count); return(count); } } Int32 index2 = 0; FF9ITEM[] ff9ItemArray2 = ff9StateGlobal.item; for (; index2 < 256; ++index2) { FF9ITEM ff9Item = ff9ItemArray2[index2]; if (ff9Item.count == 0) { ff9Item.id = (Byte)id; ff9Item.count = (Byte)count; FF9Item_Achievement(ff9Item.id, ff9Item.count); return(count); } } return(0); }
public static void FF9Item_Init() { FF9ITEM[] ff9ItemArray = new FF9ITEM[8] { new FF9ITEM(236, 7), new FF9ITEM(237, 2), new FF9ITEM(238, 2), new FF9ITEM(240, 2), new FF9ITEM(247, 2), new FF9ITEM(249, 1), new FF9ITEM(253, 1), new FF9ITEM(Byte.MaxValue, 0) }; FF9Item_InitNormal(); FF9Item_InitImportant(); for (Int32 index = 0; ff9ItemArray[index].id != Byte.MaxValue; ++index) { FF9ITEM ff9Item = ff9ItemArray[index]; FF9Item_Add(ff9Item.id, ff9Item.count); } }
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); }