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); }
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); } } }
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); } }
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); }
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(); } } } }
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]); }