コード例 #1
0
    public SkillItemInfo GetSkillItem(int index, int setNo)
    {
        if (GetMaxSlot() <= index)
        {
            Log.Warning("GetSkillItem :: index out of bounds :: uniqID = " + base.uniqueID + " : tableID = " + base.tableID);
            return(null);
        }
        SkillItemInfo[] skillInventoryClone = MonoBehaviourSingleton <InventoryManager> .I.GetSkillInventoryClone();

        SkillItemInfo skill_info = null;

        Array.ForEach(skillInventoryClone, delegate(SkillItemInfo skill_item)
        {
            if (skill_info == null)
            {
                bool flag = false;
                EquipSetSkillData equipSetSkillData = skill_item.equipSetSkill.Find((EquipSetSkillData x) => x.equipSetNo == setNo);
                if (equipSetSkillData != null && equipSetSkillData.equipItemUniqId == base.uniqueID)
                {
                    if (equipSetSkillData.equipSlotNo == index)
                    {
                        flag = true;
                    }
                    else if (equipSetSkillData.equipSlotNo == GetExceedSkillSlotNo(index))
                    {
                        flag = true;
                    }
                }
                if (flag)
                {
                }
            }
        });
        return(skill_info);
    }
コード例 #2
0
    private IEnumerator SendReplacementSkill(List <MigrationSkillData> migrationSkill, List <SkillItemInfo> detachSkill)
    {
        foreach (MigrationSkillData item in migrationSkill)
        {
            bool isSendFinish2   = false;
            MigrationSkillData i = item;
            MonoBehaviourSingleton <StatusManager> .I.SendSetSkill(i.toUniqueId, i.skill.uniqueID, i.toSlotNo, MonoBehaviourSingleton <StatusManager> .I.GetCurrentEquipSetNo(), delegate(bool isSucces)
            {
                ((_003CSendReplacementSkill_003Ec__Iterator10E) /*Error near IL_00ac: stateMachine*/)._003C_003Ef__this.MigrationSkillCallback(isSucces);
                ((_003CSendReplacementSkill_003Ec__Iterator10E) /*Error near IL_00ac: stateMachine*/)._003CisSendFinish_003E__0 = true;
            });

            if (!isSendFinish2)
            {
                yield return((object)null);
            }
        }
        foreach (SkillItemInfo item2 in detachSkill)
        {
            bool              isSendFinish2 = false;
            SkillItemInfo     d             = item2;
            EquipSetSkillData setInfo       = d.equipSetSkill.Find((EquipSetSkillData x) => x.equipSetNo == MonoBehaviourSingleton <StatusManager> .I.GetCurrentEquipSetNo());
            MonoBehaviourSingleton <StatusManager> .I.SendDetachSkill(setInfo.equipItemUniqId, setInfo.equipSlotNo, setInfo.equipSetNo, delegate(bool isSucces)
            {
                ((_003CSendReplacementSkill_003Ec__Iterator10E) /*Error near IL_01a9: stateMachine*/)._003C_003Ef__this.MigrationSkillCallback(isSucces);
                ((_003CSendReplacementSkill_003Ec__Iterator10E) /*Error near IL_01a9: stateMachine*/)._003CisSendFinish_003E__0 = true;
            });

            if (!isSendFinish2)
            {
                yield return((object)null);
            }
        }
    }
コード例 #3
0
    public void OnDiff(BaseModelDiff.DiffEquipSetSlot diff)
    {
        bool flag  = false;
        bool flag2 = false;

        if (Utility.IsExist(diff.add))
        {
            int i = 0;
            for (int count = diff.add.Count; i < count; i++)
            {
                SkillItem.DiffEquipSetSlot diffEquipSetSlot = diff.add[i];
                skillItemInventory.Find(ulong.Parse(diffEquipSetSlot.uniqId))?.equipSetSkill.Add(new EquipSetSkillData(diffEquipSetSlot));
            }
            flag = true;
        }
        if (Utility.IsExist(diff.update))
        {
            int j = 0;
            for (int count2 = diff.update.Count; j < count2; j++)
            {
                SkillItem.DiffEquipSetSlot o = diff.update[j];
                if (GameSaveData.instance.RemoveNewIcon(ITEM_ICON_TYPE.SKILL_ATTACK, o.uniqId))
                {
                    flag2 = true;
                }
                SkillItemInfo skillItemInfo = skillItemInventory.Find(ulong.Parse(o.uniqId));
                if (skillItemInfo != null)
                {
                    EquipSetSkillData equipSetSkillData = skillItemInfo.equipSetSkill.Find((EquipSetSkillData x) => x.equipSetNo == o.setNo);
                    ulong             num = ulong.Parse(o.euid);
                    if (num == 0L)
                    {
                        if (equipSetSkillData != null)
                        {
                            skillItemInfo.equipSetSkill.Remove(equipSetSkillData);
                        }
                    }
                    else if (equipSetSkillData == null)
                    {
                        skillItemInfo.equipSetSkill.Add(new EquipSetSkillData(o));
                    }
                    else
                    {
                        equipSetSkillData.equipItemUniqId = num;
                        equipSetSkillData.equipSlotNo     = o.slotNo;
                    }
                }
            }
            flag = true;
        }
        if (flag2)
        {
            GameSaveData.Save();
        }
        if (flag)
        {
            MonoBehaviourSingleton <GameSceneManager> .I.SetNotify(GameSection.NOTIFY_FLAG.UPDATE_SKILL_INVENTORY);
        }
    }
コード例 #4
0
    protected SkillSlotUIData[] GetSkillSlotData(EquipItemInfo equip)
    {
        if (equip == null)
        {
            return(null);
        }
        int maxSlot = equip.GetMaxSlot();

        if (maxSlot == 0)
        {
            return(null);
        }
        SkillSlotUIData[] ui_slot_data = new SkillSlotUIData[maxSlot];
        int currentSetNo = MonoBehaviourSingleton <StatusManager> .I.GetCurrentEquipSetNo();

        SkillItemInfo[] skillInventoryClone = MonoBehaviourSingleton <InventoryManager> .I.GetSkillInventoryClone();

        SkillItemInfo[] array = Array.FindAll(skillInventoryClone, (SkillItemInfo skill_item) => skill_item.equipSetSkill.Find((EquipSetSkillData skill) => skill.equipItemUniqId == equip.uniqueID && skill.equipSetNo == currentSetNo) != null);
        if (array != null && array.Length > maxSlot)
        {
            Log.Error("Attach Skill Num is Over Skill Slot Num");
        }
        SkillItemTable.SkillSlotData[] slot_data = equip.tableData.GetSkillSlot(equip.exceed);
        Array.ForEach(array, delegate(SkillItemInfo info)
        {
            if (info != null)
            {
                EquipSetSkillData equipSetSkillData = info.equipSetSkill.Find((EquipSetSkillData x) => x.equipSetNo == currentSetNo);
                if (equipSetSkillData != null)
                {
                    int num2 = equipSetSkillData.equipSlotNo;
                    if (equip.IsExceedSkillSlot(num2))
                    {
                        num2 = equip.GetExceedSkillIndex(equipSetSkillData.equipSlotNo);
                    }
                    ui_slot_data[num2]          = new SkillSlotUIData();
                    ui_slot_data[num2].slotData = new SkillItemTable.SkillSlotData(info.tableData.id, slot_data[num2].slotType);
                    ui_slot_data[num2].itemData = info;
                }
            }
        });
        int i = 0;

        for (int num = ui_slot_data.Length; i < num; i++)
        {
            if (ui_slot_data[i] == null)
            {
                ui_slot_data[i]          = new SkillSlotUIData();
                ui_slot_data[i].slotData = new SkillItemTable.SkillSlotData(0u, equip.tableData.GetSkillSlot(equip.exceed)[i].slotType);
            }
        }
        return(ui_slot_data);
    }
コード例 #5
0
    protected override void OnDecision()
    {
        List <GameSectionHistory.HistoryData> historyList = MonoBehaviourSingleton <GameSceneManager> .I.GetHistoryList();

        string sectionName = historyList[historyList.Count - 2].sectionName;
        bool   flag        = sectionName == "ItemDetailSkillDialog" || sectionName == "ItemDetailSkill";

        if (selectIndex == -1)
        {
            if (equipSkillItem == null)
            {
                GameSection.BackSection();
            }
            else
            {
                GameSection.ChangeEvent("DETACH", null);
                SendDetachEquipSkill();
            }
        }
        else
        {
            SortCompareData sortCompareData = inventory.datas[selectIndex];
            if (equipSkillItem != null && equipSkillItem.uniqueID == sortCompareData.GetUniqID())
            {
                GameSection.BackSection();
            }
            else
            {
                EquipItemInfo equipItemInfo = null;
                SkillItemInfo skillItemInfo = sortCompareData.GetItemData() as SkillItemInfo;
                if (skillItemInfo.IsCurrentEquipSetAttached)
                {
                    EquipSetSkillData equipSetSkillData = skillItemInfo.equipSetSkill.Find((EquipSetSkillData x) => x.equipSetNo == MonoBehaviourSingleton <StatusManager> .I.GetCurrentEquipSetNo());
                    equipItemInfo = MonoBehaviourSingleton <InventoryManager> .I.equipItemInventory.Find(equipSetSkillData.equipItemUniqId);
                }
                if (equipSkillItem != null)
                {
                    if (!skillItemInfo.IsCurrentEquipSetAttached)
                    {
                        GameSection.ChangeEvent((!flag) ? "EQUIP" : "EQUIP_DETAIL", null);
                        CheckSendEquipSkill();
                    }
                    else
                    {
                        GameSection.ChangeEvent((!flag) ? "STEAL" : "STEAL_DETAIL", new object[5]
                        {
                            equipSkillItem.tableData.name,
                            equipSkillItem.level.ToString(),
                            equipItemInfo.tableData.name,
                            sortCompareData.GetName(),
                            sortCompareData.GetLevel().ToString()
                        });
                    }
                }
                else if (skillItemInfo.IsCurrentEquipSetAttached)
                {
                    GameSection.ChangeEvent((!flag) ? "REPLACE" : "REPLACE_DETAIL", new object[3]
                    {
                        equipItemInfo.tableData.name,
                        sortCompareData.GetName(),
                        sortCompareData.GetLevel().ToString()
                    });
                }
                else
                {
                    GameSection.ChangeEvent((!flag) ? "EQUIP" : "EQUIP_DETAIL", null);
                    CheckSendEquipSkill();
                }
            }
        }
    }
コード例 #6
0
    public TutorialMessageData GetEnableExecTutorial(string section_name, bool is_force, bool is_new_section, string event_name = null)
    {
        TutorialReadData           save_data = Singleton <TutorialMessageTable> .I.ReadData;
        List <TutorialMessageData> list      = new List <TutorialMessageData>();

        tutorialSectionMessages.ForEach(delegate(TutorialMessageData o)
        {
            if (!(o.sectionName != section_name))
            {
                if (!TutorialStep.HasAllTutorialCompleted() && o.completedTutorialStep != -1)
                {
                    if (o.completedTutorialStep == 0 || (MonoBehaviourSingleton <UserInfoManager> .IsValid() && MonoBehaviourSingleton <UserInfoManager> .I.userStatus.tutorialStep >= o.completedTutorialStep) || (o.sceneName == "StatusScene" && o.sectionName == "StatusTop" && o.messageId == 1 && TutorialStep.isChangeLocalEquip))
                    {
                        return;
                    }
                }
                else if ((o.completedTutorialStep != 0 && o.completedTutorialStep != -1) || (!is_force && !o.GetFinishTutorialBit().HasValue&& o.completedTutorialStep >= 0 && save_data.HasRead(o.tutorialId)) || (o.appearId > 0 && !save_data.HasRead(o.appearId)) || (o.appearId < 0 && save_data.LastRead() != -o.appearId))
                {
                    return;
                }
                if (o.GetFinishTutorialBit().HasValue)
                {
                    TUTORIAL_MENU_BIT value = o.GetFinishTutorialBit().Value;
                    if (MonoBehaviourSingleton <UserInfoManager> .I.CheckTutorialBit(value))
                    {
                        return;
                    }
                }
                if (o.GetAppearTutorialBit().HasValue)
                {
                    TUTORIAL_MENU_BIT value2 = o.GetAppearTutorialBit().Value;
                    if (!MonoBehaviourSingleton <UserInfoManager> .I.CheckTutorialBit(value2))
                    {
                        return;
                    }
                }
                if ((o.appearDeliveryId == 0 || (MonoBehaviourSingleton <DeliveryManager> .IsValid() && MonoBehaviourSingleton <DeliveryManager> .I.IsClearDelivery((uint)o.appearDeliveryId))) && (!o.isNewSectionOnly || is_new_section))
                {
                    if (!string.IsNullOrEmpty(event_name))
                    {
                        if (o.triggerEventName != event_name)
                        {
                            return;
                        }
                    }
                    else if (!string.IsNullOrEmpty(o.triggerEventName))
                    {
                        return;
                    }
                    if ((!(o.sectionName == "WorldMap") && !(o.sectionName == "RegionMap")) || !string.IsNullOrEmpty(event_name) || !MonoBehaviourSingleton <WorldMapManager> .IsValid() || (!MonoBehaviourSingleton <WorldMapManager> .I.isDisplayQuestTargetMode() && !MonoBehaviourSingleton <WorldMapManager> .I.ignoreTutorial))
                    {
                        if (o.sectionName == "EquipSetDetailAttachSkillDialog" && !string.IsNullOrEmpty(o.checkKeyword))
                        {
                            uint target_id = uint.Parse(o.checkKeyword);
                            bool find_non_equip_attack_skill = false;
                            MonoBehaviourSingleton <InventoryManager> .I.ForAllSkillItemInventory(delegate(SkillItemInfo data)
                            {
                                if (!find_non_equip_attack_skill && data != null && data.tableData.type == SKILL_SLOT_TYPE.ATTACK && !data.isAttached && target_id != data.tableID)
                                {
                                    find_non_equip_attack_skill = true;
                                }
                            });
                            if (!find_non_equip_attack_skill)
                            {
                                return;
                            }
                            bool is_equip_first_slot = false;
                            if (MonoBehaviourSingleton <StatusManager> .I.GetLocalEquipSet() == null)
                            {
                                MonoBehaviourSingleton <StatusManager> .I.CreateLocalEquipSetData();
                            }
                            int eSetNo = MonoBehaviourSingleton <UserInfoManager> .I.userStatus.eSetNo;
                            EquipItemInfo main_weapon = MonoBehaviourSingleton <StatusManager> .I.GetLocalEquipSet()[eSetNo].item[0];
                            if (main_weapon != null)
                            {
                                MonoBehaviourSingleton <InventoryManager> .I.ForAllSkillItemInventory(delegate(SkillItemInfo data)
                                {
                                    if (!is_equip_first_slot && data != null)
                                    {
                                        EquipSetSkillData equipSetSkillData = data.equipSetSkill.Find((EquipSetSkillData x) => x.equipSetNo == MonoBehaviourSingleton <StatusManager> .I.GetCurrentEquipSetNo());
                                        if (equipSetSkillData != null && equipSetSkillData.equipItemUniqId == main_weapon.uniqueID && equipSetSkillData.equipSlotNo == 0)
                                        {
                                            is_equip_first_slot = true;
                                        }
                                    }
                                });
                            }
                            if (!is_equip_first_slot)
                            {
                                int index = o.messageData.Count - 1;
                                o.messageData[index].waitEventName = o.messageData[index].waitEventName.Replace("_DETAIL", string.Empty);
                                Debug.LogWarning((object)("replace : " + o.messageData[index].waitEventName));
                            }
                        }
                        list.Add(o);
                    }
                }
            }
        });
        if (list.Count == 0)
        {
            return(null);
        }
        list.Sort((TutorialMessageData l, TutorialMessageData r) => l.messageId - r.messageId);
        return(list[0]);
    }