Beispiel #1
0
 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);
             }
         }
     }
 }
Beispiel #2
0
    public static Int32 FF9Item_GetCount(Int32 id)
    {
        FF9ITEM ptr = FF9Item_GetPtr(id);

        if (ptr == null)
        {
            return(0);
        }
        return(ptr.count);
    }
Beispiel #3
0
    public static int FF9Item_GetCount(int id)
    {
        FF9ITEM ptr = FF9Item_GetPtr(id);

        if (ptr == null)
        {
            return(0);
        }
        return(ptr.count);
    }
Beispiel #4
0
 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);
 }
Beispiel #5
0
 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);
 }
Beispiel #6
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;
        }
    }
Beispiel #7
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);
    }
Beispiel #8
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);
     }
 }
Beispiel #9
0
    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);
    }