diff --git a/Assets/Script/Server/ServerClass.cs b/Assets/Script/Server/ServerClass.cs index abbb79dee..754c149f0 100644 --- a/Assets/Script/Server/ServerClass.cs +++ b/Assets/Script/Server/ServerClass.cs @@ -1057,8 +1057,44 @@ public partial class ServerData Mission[key1].Add(key2, new List { 0, 0 }); ++Mission[key1][key2][0]; Mission[key1][key2][0].RandomizeCryptoKey(); + + var missionData = table_missionlist.Ins.Get_Data_orNull(group, _id); + if (missionData.e_LinkedQuestType == eLinkedQuestType.First || missionData.e_LinkedQuestType == eLinkedQuestType.Ing) + { + if (!missionData.isACC) + { + int addindex = 1; + while (true) + { + if (Set_MissionCount(group, _id + (addindex++))) + break; + } + } + } } } + bool Set_MissionCount(int group, int _id) + { + var nextData = table_missionlist.Ins.Get_Data_orNull(group, _id); + if (nextData.e_LinkedQuestType == eLinkedQuestType.Ing || nextData.e_LinkedQuestType == eLinkedQuestType.Last) + { + var key1 = Get_Key(group); + if (Mission.ContainsKey(key1)) + { + var key2 = Get_Key(_id); + if (Mission[key1].ContainsKey(key2)) + { + for (int i = 0; i < Mission[key1][key2].Count; i++) + { + Mission[key1][key2][i] = 0; + Mission[key1][key2][i].RandomizeCryptoKey(); + } + } + } + } + + return nextData.e_LinkedQuestType == eLinkedQuestType.Last; + } public void Add_MissionCount(ePurpose purpose, int conditionvalue = 0, int _v = 1, bool setValue = false) { if (_v < 1) return; diff --git a/Assets/Script/Table/Mission/table_missionlist.cs b/Assets/Script/Table/Mission/table_missionlist.cs index 9fa960969..90a6304b9 100644 --- a/Assets/Script/Table/Mission/table_missionlist.cs +++ b/Assets/Script/Table/Mission/table_missionlist.cs @@ -25,6 +25,7 @@ public class MissionListTableData : TableDataBase public eLinkedQuestType e_LinkedQuestType; public int n_MissionDesc; public ePurpose e_MissionConditionType; + public bool isACC; protected ObscuredInt _MissionConditionValue; public int n_MissionConditionValue @@ -86,7 +87,7 @@ public class table_missionlist : table_missionbase for (int i = 0; i < Get_DataList().Count; i++) { var temp = Get_DataList()[i]; - var itemtype = temp.n_MissionGroupId; + temp.isACC = temp.e_MissionConditionType.ToString().Contains("_ACC"); if (!dic_alldatas.ContainsKey(temp.n_MissionGroupId)) dic_alldatas.Add(temp.n_MissionGroupId, new List()); diff --git a/Assets/Script/UI/Mission/MissionCard.cs b/Assets/Script/UI/Mission/MissionCard.cs index f92b0cf5f..3bd00b393 100644 --- a/Assets/Script/UI/Mission/MissionCard.cs +++ b/Assets/Script/UI/Mission/MissionCard.cs @@ -34,7 +34,8 @@ public class MissionCard : CardBase if (m_Data.e_LinkedQuestType == eLinkedQuestType.None) return true; var sdata = ServerInfo.Ins.m_ServerData; if (m_Data.e_LinkedQuestType == eLinkedQuestType.Last || m_Data.e_LinkedQuestType == eLinkedQuestType.Ing) - return sdata.Get_MissionLv(m_Data.n_MissionGroupId, m_Data.n_MissionIndex - 1) > 0; + return sdata.Get_MissionLv(m_Data.n_MissionGroupId, m_Data.n_MissionIndex - 1) > 0 && + sdata.Get_MissionLv(m_Data.n_MissionGroupId, m_Data.n_MissionIndex) == 0; if (m_Data.e_LinkedQuestType == eLinkedQuestType.First) return sdata.Get_MissionLv(m_Data.n_MissionGroupId, m_Data.n_MissionIndex) == 0; return false; @@ -148,7 +149,7 @@ public class MissionCard : CardBase sdata.Add_Item(m_Data.n_RewardValue, m_Data.n_RewardCount); sdata.Add_MissionLv(m_Data.n_MissionGroupId, m_Data.n_MissionIndex); sdata.Add_MissionCompletCount(m_Data.n_MissionGroupId); - NewGameUI.Ins.m_MissionUI.Set_CompleteCard(); + NewGameUI.Ins.m_MissionUI.Set_UI(); Set_Complete(); } else diff --git a/Assets/Script/UI/Mission/MissionUI.cs b/Assets/Script/UI/Mission/MissionUI.cs index b563bf2e8..3ad57bfd7 100644 --- a/Assets/Script/UI/Mission/MissionUI.cs +++ b/Assets/Script/UI/Mission/MissionUI.cs @@ -21,11 +21,9 @@ public class MissionUI : uScrollViewMgr Set_UI(); } - public void Set_CompleteCard() { m_Complete.Set(table_missionlist.Ins.Get_CompleteData(m_Tab.Get_Index() + 1)); } - public override void Set_UI() { - Set_CompleteCard(); + m_Complete.Set(table_missionlist.Ins.Get_CompleteData(m_Tab.Get_Index() + 1)); Set_ScrollView(table_missionlist.Ins.Get_DataList(m_Tab.Get_Index() + 1)); }