System/Chat/ChatCenter.cs
@@ -46,10 +46,12 @@ var _funcCfg = Config.Instance.Get<FuncConfigConfig>("BugleItem"); bugleItem = int.Parse(_funcCfg.Numerical1); chatChannels = new List<ChatInfoType>(); for (int i = (int)ChatInfoType.System; i <= (int)ChatInfoType.Friend; i++) { chatChannels.Add((ChatInfoType)i); } chatChannels.Add(ChatInfoType.System); chatChannels.Add(ChatInfoType.World); chatChannels.Add(ChatInfoType.Area); chatChannels.Add(ChatInfoType.Invite); chatChannels.Add(ChatInfoType.Trumpet); chatChannels.Add(ChatInfoType.Friend); } public event Action<string, bool, bool> UpdateChatValueEvent; @@ -755,10 +757,11 @@ return; } openChatAfterCollect = false; if (!WindowCenter.Instance.CheckOpen<ChatWin>()) if (!WindowCenter.Instance.CheckOpen<SocialWin>()) { ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy; WindowCenter.Instance.Open<ChatWin>(); WindowCenter.Instance.CloseImmediately<MainInterfaceWin>(); WindowCenter.Instance.Open<SocialWin>(false, 2); } } #endregion System/Chat/ChatTip.cs
@@ -145,7 +145,7 @@ private void OnChatClick() { if (WindowCenter.Instance.CheckOpen<ChatWin>()) if (WindowCenter.Instance.CheckOpen<ChatWin>() || WindowCenter.Instance.CheckOpen<SocialWin>()) { return; } @@ -154,6 +154,9 @@ if (mapId == 31230) { ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy; WindowCenter.Instance.CloseImmediately<MainInterfaceWin>(); WindowCenter.Instance.Open<SocialWin>(false, 2); return; } WindowCenter.Instance.Open<ChatWin>(); } @@ -211,7 +214,7 @@ void OnChatDataClick(ChatData data) { if (WindowCenter.Instance.CheckOpen<ChatWin>()) if (WindowCenter.Instance.CheckOpen<ChatWin>() || WindowCenter.Instance.CheckOpen<SocialWin>()) { return; } @@ -221,7 +224,20 @@ { ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy; } WindowCenter.Instance.Open<ChatWin>(); switch (ChatCtrl.Inst.presentChatType) { case ChatInfoType.Team: WindowCenter.Instance.CloseImmediately<MainInterfaceWin>(); WindowCenter.Instance.Open<SocialWin>(false, 1); break; case ChatInfoType.Fairy: WindowCenter.Instance.CloseImmediately<MainInterfaceWin>(); WindowCenter.Instance.Open<SocialWin>(false, 2); break; default: WindowCenter.Instance.Open<ChatWin>(); break; } } void OnRefreshChatTip(ChatInfoType type) System/Chat/FairyChatWin.cs
New file @@ -0,0 +1,97 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, September 19, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class FairyChatWin : Window { [SerializeField] ChatSendComponent m_ChatSend; [SerializeField] ChatContentBehaviour m_ChatContent; [SerializeField] RectTransform m_ContainerNoFairy; [SerializeField] Button m_JoinFairy; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_JoinFairy.AddListener(JoinFairy); } protected override void OnPreOpen() { WindowCenter.Instance.windowBeforeOpenEvent += WindowBeforeOpenEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += MyFairyRefresh; PlayerDatas.Instance.fairyData.OnRefreshFairyMine += MyFairyRefresh; ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy; m_ChatContent.chatType = ChatInfoType.Fairy; MyFairyRefresh(); } protected override void OnActived() { base.OnActived(); var parent = WindowCenter.Instance.Get<SocialWin>(); if (parent != null) { m_ChatSend.parent = parent; } } protected override void OnAfterOpen() { } protected override void OnPreClose() { WindowCenter.Instance.windowBeforeOpenEvent -= WindowBeforeOpenEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= MyFairyRefresh; PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= MyFairyRefresh; } protected override void OnAfterClose() { } #endregion private void JoinFairy() { int limit = Config.Instance.Get<FuncOpenLVConfig>((int)FuncOpenEnum.Fairy).LimitLV; if (PlayerDatas.Instance.baseData.LV < limit) { MessageWin.Inst.ShowFixedTip(Language.Get("L1136", limit)); return; } WindowCenter.Instance.CloseImmediately<SocialWin>(); WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.UnionFunc3); } void MyFairyRefresh() { m_ContainerNoFairy.gameObject.SetActive(!PlayerDatas.Instance.fairyData.HasFairy); m_ChatSend.gameObject.SetActive(PlayerDatas.Instance.fairyData.HasFairy); } private void WindowBeforeOpenEvent(Window win) { if (win is SocialWin) { m_ChatSend.parent = win; } } } } System/Chat/FairyChatWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: e5cba53e40a60a847b072488a5a85b29 timeCreated: 1537325731 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Chat/TeamChatWin.cs
New file @@ -0,0 +1,81 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, September 19, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class TeamChatWin : Window { [SerializeField] ChatSendComponent m_ChatSend; [SerializeField] ChatContentBehaviour m_ChatContent; [SerializeField] RectTransform m_NoTeamContainer; TeamModel team { get { return ModelCenter.Instance.GetModel<TeamModel>(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { WindowCenter.Instance.windowBeforeOpenEvent += WindowBeforeOpenEvent; team.myTeamRefreshEvent += MyTeamRefresh; ChatCtrl.Inst.presentChatType = ChatInfoType.Team; m_ChatContent.chatType = ChatInfoType.Team; MyTeamRefresh(); } protected override void OnActived() { base.OnActived(); var parent = WindowCenter.Instance.Get<SocialWin>(); if (parent != null) { m_ChatSend.parent = parent; } } protected override void OnAfterOpen() { } protected override void OnPreClose() { WindowCenter.Instance.windowBeforeOpenEvent -= WindowBeforeOpenEvent; team.myTeamRefreshEvent -= MyTeamRefresh; } protected override void OnAfterClose() { } #endregion private void WindowBeforeOpenEvent(Window win) { if(win is SocialWin) { m_ChatSend.parent = win; } } private void MyTeamRefresh() { m_ChatSend.gameObject.SetActive(team.myTeam.inTeam); m_NoTeamContainer.gameObject.SetActive(!team.myTeam.inTeam); } } } System/Chat/TeamChatWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: e3087f05daf1a3245ac52b7732703971 timeCreated: 1537322992 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/FriendSystem/New/FriendsModel.cs
@@ -911,6 +911,11 @@ else { ChatCtrl.Inst.presentChatType = ChatInfoType.Friend; if (WindowCenter.Instance.CheckOpen<SocialWin>()) { WindowJumpMgr.Instance.ClearJumpData(); WindowCenter.Instance.CloseImmediately<SocialWin>(); } WindowCenter.Instance.Open<ChatWin>(); } } System/FriendSystem/New/SocialWin.cs
@@ -1,56 +1,86 @@ using System; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class SocialWin : Window { [SerializeField] FunctionButton xianyuanBtn; [SerializeField] FunctionButtonGroup btnGroup; [SerializeField] Button closeBtn; [SerializeField] GameObject friendTipsObj; [SerializeField] ChatSendComponent m_ChatSend; protected override void BindController() { } protected override void AddListeners() { closeBtn.AddListener(CloseClick); xianyuanBtn.AddListener(ClickXianYuanBtn); } protected override void OnPreOpen() { m_ChatSend.parent = this; } protected override void OnActived() { base.OnActived(); btnGroup.TriggerByOrder(functionOrder); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } private void ClickXianYuanBtn() { friendTipsObj.SetActive(true); functionOrder = xianyuanBtn.order; } } } using System; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class SocialWin : Window { [SerializeField] FunctionButton xianyuanBtn; [SerializeField] FunctionButton m_TeamChat; [SerializeField] FunctionButton m_FairyChat; [SerializeField] FunctionButtonGroup btnGroup; [SerializeField] Button closeBtn; [SerializeField] GameObject friendTipsObj; [SerializeField] ChatSendComponent m_ChatSend; protected override void BindController() { } protected override void AddListeners() { closeBtn.AddListener(CloseClick); xianyuanBtn.AddListener(ClickXianYuanBtn); m_TeamChat.AddListener(TeamChat); m_FairyChat.AddListener(FairyChat); } protected override void OnPreOpen() { m_ChatSend.parent = this; } protected override void OnActived() { base.OnActived(); btnGroup.TriggerByOrder(functionOrder); } protected override void OnAfterOpen() { } protected override void OnPreClose() { CloseChild(); } protected override void OnAfterClose() { if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open<MainInterfaceWin>(); } } private void ClickXianYuanBtn() { CloseChild(); friendTipsObj.SetActive(true); functionOrder = xianyuanBtn.order; } private void TeamChat() { CloseChild(); WindowCenter.Instance.Open<TeamChatWin>(); functionOrder = m_TeamChat.order; } private void FairyChat() { CloseChild(); WindowCenter.Instance.Open<FairyChatWin>(); functionOrder = m_FairyChat.order; } void CloseChild() { friendTipsObj.SetActive(false); WindowCenter.Instance.CloseImmediately<TeamChatWin>(); WindowCenter.Instance.CloseImmediately<FairyChatWin>(); } } } System/KnapSack/Logic/ItemOverdueModel.cs
@@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.Linq; using LitJson; using TableConfig; using UnityEngine; @@ -9,7 +10,7 @@ { public class ItemOverdueModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk, ISwitchAccount { private List<ItemModel> guardItemlist = new List<ItemModel>(); private List<ItemModel> overdueGuardPushlist = new List<ItemModel>(); private Dictionary<int, List<int>> itemOverdueDict; public static event Action FirstGoldWPOver;//首冲试用结束 @@ -37,7 +38,7 @@ public readonly int VipExperirnceID = 985; public readonly int VipCardID = 978; Dictionary<int, Dictionary<int, List<ItemModel>>> allGuardDict = new Dictionary<int, Dictionary<int, List<ItemModel>>>(); //守护类型,守护ID public override void Init() { SysNotifyMgr.Instance.sysNotifyEvent += GetSysNotify; @@ -191,23 +192,49 @@ switch (sysID) { case "Guardian_Timeout": DebugEx.Log("Guardian_Timeout:" + list.Count); if (list.Count > 1) { guardOverdueIndex = int.Parse(list[1].ToString()); ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptItem, guardOverdueIndex); if (itemModel != null) { if (itemModel.chinItemModel.EquipPlace == (int)RoleEquipType.retSpiritAnimal) List<int> renewallist = GetRenewallist(itemModel.itemId); if(renewallist != null && allGuardDict.ContainsKey(renewallist[0])) { OnGetOverdueItem(itemModel.itemInfo.ItemID,itemModel.itemInfo.ItemGUID,itemModel.itemInfo.ItemPlace); Dictionary<int, List<ItemModel>> pairs = allGuardDict[renewallist[0]]; bool isOverdue = true; List<int> idlist = pairs.Keys.ToList(); idlist.Sort(); List<ItemModel> models = null; for (int i = idlist.Count - 1; i > -1; i--) { models = pairs[idlist[i]]; for (int j = 0; j < models.Count; j++) { if (!modelInterface.IsOverdue(models[j].itemInfo.ItemGUID, models[j].itemId, models[j].useDataDict)) { isOverdue = false; break; } } } models = pairs[idlist[idlist.Count - 1]]; if (isOverdue && models != null && models.Count > 0) { ItemModel overdueModel = models[0]; guardOverdueIndex = overdueModel.itemInfo.ItemPlace; OnGetOverdueItem(overdueModel.itemInfo.ItemID, overdueModel.itemInfo.ItemGUID, overdueModel.itemInfo.ItemPlace); } else { guardOverdueIndex = -1; } } } } break; case "VipTiyan_Timeout": OnGetOverdueItem(VipExperirnceID, "", -1); break; case "Vip_Timeout": @@ -232,65 +259,41 @@ public void GetOverdueGuard() { guardItemlist.Clear(); List<string> itemEffectlist = modelInterface.GetItemEffectTimelist(); int i = 0; for (i = 0; i < itemEffectlist.Count; i++) SetAllGuardIdlist(); overdueGuardPushlist.Clear(); foreach(var type in allGuardDict.Keys) { ItemModel itemModel = playerPack.GetItemModelByGUID(itemEffectlist[i]); if (itemModel != null && itemModel.packType == PackType.rptItem) bool isOverdue = true; List<int> idlist = allGuardDict[type].Keys.ToList(); idlist.Sort(); List<ItemModel> models = null; for (int i = idlist.Count - 1; i > -1; i--) { if (itemModel.chinItemModel.EquipPlace == (int)RoleEquipType.retSpiritAnimal) models = allGuardDict[type][idlist[i]]; for (int j = 0; j < models.Count; j++) { bool isOverdue = false; ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(itemModel.itemInfo.ItemGUID); if (itemModel.chinItemModel.ExpireTime > 0) if (!modelInterface.IsOverdue(models[j].itemInfo.ItemGUID, models[j].itemId, models[j].useDataDict)) { switch ((EquipReduceType)itemModel.chinItemModel.EndureReduceType) { case EquipReduceType.Def_EquipReduceType_Time: List<int> itemEffectTime = itemModel.GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime); if (itemEffectTime != null && itemEffectTime[0] != 0) { if (cool == null || cool.GetRemainTime() <= 0) { isOverdue = true; } } break; case EquipReduceType.Def_EquipReduceType_RTimeItem: if (cool == null || cool.GetRemainTime() <= 0) { isOverdue = true; } break; } } if (isOverdue) { guardItemlist.Add(itemModel); isOverdue = false; break; } } } } if (guardItemlist.Count > 0) models = allGuardDict[type][idlist[idlist.Count - 1]]; if (isOverdue && models != null && models.Count > 0) { ItemModel itemModel = models[0]; if (!overdueGuardPushlist.Contains(itemModel)) { overdueGuardPushlist.Add(itemModel); } } } for(int i = 0; i < overdueGuardPushlist.Count; i++) { guardItemlist.Sort(CompareItemID); OnGetOverdueItem(guardItemlist[0].itemInfo.ItemID, guardItemlist[0].itemInfo.ItemGUID, guardItemlist[0].itemInfo.ItemPlace); OnGetOverdueItem(overdueGuardPushlist[i].itemInfo.ItemID, overdueGuardPushlist[i].itemInfo.ItemGUID, overdueGuardPushlist[i].itemInfo.ItemPlace); } } public int CompareItemID(ItemModel start, ItemModel end) { int startId = start.itemInfo.ItemID; int endId = end.itemInfo.ItemID; if (startId.CompareTo(endId) != 0) return -startId.CompareTo(endId); return 0; } public bool IsMoneyEnough(int moneyType, int needMoney) @@ -302,6 +305,51 @@ return false; } public void SetAllGuardIdlist() { allGuardDict.Clear(); foreach(var id in itemOverdueDict.Keys) { SetGurdIdlistByPack(PackType.rptItem,id); SetGurdIdlistByPack(PackType.rptEquip,id); SetGurdIdlistByPack(PackType.rptWarehouse,id); } } private void SetGurdIdlistByPack(PackType type,int itemId) { SinglePackModel singlePack = playerPack.GetSinglePackModel(type); if (singlePack == null) return; List<ItemModel> itemModels = null; singlePack.GetItemCountByID(itemId, out itemModels); if (itemModels == null) return; List<int> renewallist = GetRenewallist(itemId); if (renewallist == null) return; if (!allGuardDict.ContainsKey(renewallist[0])) { Dictionary<int, List<ItemModel>> pairs = new Dictionary<int, List<ItemModel>>(); List<ItemModel> modellist = new List<ItemModel>(); modellist.AddRange(itemModels); pairs.Add(itemId,modellist); allGuardDict.Add(renewallist[0],pairs); } else { if(!allGuardDict[renewallist[0]].ContainsKey(itemId)) { List<ItemModel> modellist = new List<ItemModel>(); modellist.AddRange(itemModels); allGuardDict[renewallist[0]].Add(itemId, modellist); } else { allGuardDict[renewallist[0]][itemId].AddRange(itemModels); } } } public List<int> GetRenewallist(int itemID) { List<int> renewallist = null; System/MainInterfacePanel/ChatFrame.cs
@@ -307,6 +307,7 @@ //MainRedDot.Instance.redPointFriendChat.state = RedPointState.None; //ChatCtrl.Inst.presentChatType = ChatInfoType.Friend; //WindowCenter.Instance.Open<ChatWin>(); WindowCenter.Instance.CloseImmediately<MainInterfaceWin>(); WindowCenter.Instance.Open<SocialWin>(); } System/MainInterfacePanel/FeatureNoticeModel.cs
@@ -11,7 +11,7 @@ using Snxxz.UI; //功能预告红点 public class FeatureNoticeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk,ISwitchAccount public class FeatureNoticeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public List<FunctionForecastConfig> FunctionList = new List<FunctionForecastConfig>(); private const int Redpoint_key1 = 38; @@ -27,34 +27,38 @@ public void OnBeforePlayerDataInitialize() { } public void OnPlayerLoginOk() { RedDotStatus(); PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV; FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; treasureModel.treasureStateChangeEvent -= treasureStateChangeEvent; treasureModel.treasureStageUpEvent -= treasureStageUpEvent; } public void OnPlayerLoginOk() { FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayersUpLV; treasureModel.treasureStateChangeEvent += treasureStateChangeEvent; treasureModel.treasureStageUpEvent += treasureStageUpEvent; StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish; StageManager.Instance.onStageLoadFinish += OnStageLoadFinish; RedDotStatus(); } public override void UnInit() { } public void OnSwitchAccount() private void OnStageLoadFinish() { OpenFuncId = 0; RedPointChange = false; IsRedPoint = false; } if (!(StageManager.Instance.CurrentStage is DungeonStage)) { OpenFuncId = 0; RedPointChange = false; IsRedPoint = false; } } private void treasureStageUpEvent(int obj) { RedDotStatus(); System/MainInterfacePanel/FlyingShoesTask.cs
@@ -120,33 +120,6 @@ m_ImgSelected.SetActive(true); taskmodel.GetNowTaskID = Task_ID; if (mainModel.TaskId_Skill1.Contains(Task_ID))//特殊支线任务解锁被动技能的 { if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv) { int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品 if (itemNumber >= mainModel.ItemNumber) { taskmodel.CompletionOfTask(Task_ID); WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2); } else { StateDetermination(); var mapModel = ModelCenter.Instance.GetModel<MapModel>(); var point = mapModel.GetRecommendHangPoint(); var config = Config.Instance.Get<MapEventPointConfig>(point); MapTransferUtility.Instance.MoveToNPC(config.NPCID); } } else { WindowCenter.Instance.Open<HoistingWin>(); } return; } if (mainModel.WingTask == Task_ID && ((int)taskmodel.GetTaskStatus(Task_ID) == 0 || (int)taskmodel.GetTaskStatus(Task_ID) == -5))//关于特殊翅膀任务 { if (playerPack.GetSinglePackModel(PackType.rptItem) == null) @@ -279,24 +252,6 @@ private void OnClickDeliveryButton()//传送符 { //--------------特殊任务的传送逻辑 if (mainModel.TaskId_Skill1.Contains(Task_ID)) { var mapModel = ModelCenter.Instance.GetModel<MapModel>(); var point = mapModel.GetRecommendHangPoint(); var config = Config.Instance.Get<MapEventPointConfig>(point); var flyBootOwn = ModelCenter.Instance.GetModel<PlayerPackModel>().GetItemCountByID(PackType.rptItem, GeneralConfig.Instance.flyBootItemId); var isVipFreeTransfer = ModelCenter.Instance.GetModel<VipModel>().GetVipPrivilegeCnt(VipPrivilegeType.FreeTransfer) > 0; if (isVipFreeTransfer || flyBootOwn > 0) { MapTransferUtility.Instance.MissionFlyTo(config.MapID, config.NPCID); } else { MapTransferUtility.Instance.MoveToNPC(config.NPCID); } return; } mainModel.FlyShoseTaskID = Task_ID; string _FlyID = Config.Instance.Get<FuncConfigConfig>("TransportPay").Numerical1; int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, int.Parse(_FlyID));//获取飞鞋的数量 @@ -380,52 +335,16 @@ { m_TitleText.text = "<color=#ec4bf6>" + TaskTitle(TaskID) + "</color>"; } int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品 if (mainModel.TaskId_Skill1.Contains(TaskID)) { if (itemNumber >= mainModel.ItemNumber) { m_TitleText.text = "<color=#109d06>" + TaskTitle(TaskID) + "</color>"; } else { m_TitleText.text = "<color=#feed28>" + TaskTitle(TaskID) + "</color>"; } } string str = taskmodel.allMissionDict[TaskID].InforList; var taskinfo = Config.Instance.Get<TASKINFOConfig>(str); if (mainModel.TaskId_Skill1.Contains(TaskID))//特殊任务 var taskinfo = Config.Instance.Get<TASKINFOConfig>(str); if (taskinfo != null) { if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv) { string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, itemNumber); string Str_B = Language.Get("PassiveSkillTask2"); if (itemNumber >= mainModel.ItemNumber) { m_ContentText.text = Str_B; } else { m_ContentText.text = Str_A; } } else { string Str_C = string.Format(Language.Get("PassiveSkillTask5"), mainModel.TaskLv); m_ContentText.text = Str_C; } m_ContentText.text = taskinfo.show_writing; } else { if (taskinfo != null) { m_ContentText.text = taskinfo.show_writing; } else { DebugEx.LogError("任务表格PyTaskInfo配置缺失"); return; } DebugEx.LogError("任务表格PyTaskInfo配置缺失"); return; } bool isOPenTransferButton = HrefAnalysis.Inst.ContainsKey(taskinfo.show_writing, "flynpc"); if (isOPenTransferButton && !IsKaJiBool) @@ -436,20 +355,7 @@ { m_DeliveryButton.gameObject.SetActive(false); } //----------------特殊采集魔团任务的传送云处理 if (mainModel.TaskId_Skill1.Contains(TaskID))//特殊任务 { if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv) { m_DeliveryButton.gameObject.SetActive(true); } else { m_DeliveryButton.gameObject.SetActive(false); } } m_ContentText.raycastTarget = false; if (taskmodel._DicTaskInformation.ContainsKey(TaskID)) { Dictionary<string, string> SkillDic = new Dictionary<string, string>(); System/MainInterfacePanel/PlayerMainDate.cs
@@ -115,12 +115,9 @@ public bool IsEmperor = false; //---------关于任务需要的数据 public List<int> TaskId_Skill = new List<int>(); public List<int> TaskId_Skill1 = new List<int>(); public int ItemID = 0; public int UnitPrice = 0; public int ItemNumber = 0; public int TaskLv = 0;//任务等级 public List<int> TaskId_Skill = new List<int>();//任务ID public List<int> SkillIndex = new List<int>();//技能槽索引 public List<int> NeedFairyJade = new List<int>();//所需解锁仙玉 //-----关于支线翅膀任务的特殊逻辑 public int WingTask = 0; @@ -169,7 +166,8 @@ private void GetPassiveSkillTask()//获取任务数据 { TaskId_Skill.Clear(); TaskId_Skill1.Clear(); SkillIndex.Clear(); NeedFairyJade.Clear(); var PassiveSkillTaskconfig = Config.Instance.Get<FuncConfigConfig>("PassiveSkillTask"); int[] TaskId_SkillInt = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical1); for (int i = 0; i < TaskId_SkillInt.Length; i++) @@ -179,18 +177,13 @@ int[] TaskId_SkillInt1 = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical2); for (int i = 0; i < TaskId_SkillInt1.Length; i++) { TaskId_Skill1.Add(TaskId_SkillInt1[i]); SkillIndex.Add(TaskId_SkillInt1[i]); } int[] PassiveSkillTask = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical3); string str4 =PassiveSkillTaskconfig.Numerical4; TaskLv = int.Parse(str4); if (PassiveSkillTask.Length >= 3) int[] TaskId_SkillInt2 = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical3); for (int i = 0; i < TaskId_SkillInt2.Length; i++) { ItemID = PassiveSkillTask[0]; UnitPrice = PassiveSkillTask[1]; ItemNumber = PassiveSkillTask[2]; } NeedFairyJade.Add(TaskId_SkillInt2[i]); } } System/MainInterfacePanel/SideMission.cs
@@ -45,8 +45,6 @@ { TaskIdNow = 0; _TaskRamusList.OnRefreshCell += OnRefreshGridCell; playerPack.RefreshItemCountAct += RefreshItemCountAct; playerPack.ItemCntReduceAct += ItemCntReduceAct; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418) OnCreateGridLineCell(_TaskRamusList); } @@ -54,101 +52,16 @@ private void OnDisable() { _TaskRamusList.OnRefreshCell -= OnRefreshGridCell; playerPack.RefreshItemCountAct -= RefreshItemCountAct; playerPack.ItemCntReduceAct -= ItemCntReduceAct; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418) } private void Updatefighting(PlayerDataRefresh obj) { if (obj == PlayerDataRefresh.LV) { OpenShowButton(); } } private void OpenShowButton() { if (mainModel.TaskId_Skill1.Contains(TaskIdNow)) { if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv) { _Btn_Forward.gameObject.SetActive(true); } else { _Btn_Forward.gameObject.SetActive(false); } } } private void ItemCntReduceAct(PackType arg1, int arg2, int arg3) { if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID) { foreach (var key in taskmodel.SideQuestsDic.Keys) { if (mainModel.TaskId_Skill1.Contains(key)) { _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见 } } } } private void RefreshItemCountAct(PackType arg1, int arg2, int arg3) { if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID) { foreach (var key in taskmodel.SideQuestsDic.Keys) { if (mainModel.TaskId_Skill1.Contains(key)) { _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见 } } } } private void ForwardButton() { if (mainModel.TaskId_Skill1.Contains(TaskIdNow)) { int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品 if (itemNumber >= mainModel.ItemNumber) { taskmodel.CompletionOfTask(TaskIdNow); WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2); } else { int Gold = (int)UIHelper.GetMoneyCnt(1);//仙玉 string strNull = string.Empty; int needNumber = (mainModel.ItemNumber - itemNumber) * mainModel.UnitPrice;//所需金额 strNull = string.Format(Language.Get("PassiveSkillTask3"), needNumber); ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), strNull, (bool isOk) => { if (isOk) { if (Gold >= needNumber) { taskmodel.CompletionOfTask(TaskIdNow); WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2); } else { if (VersionConfig.Get().isBanShu) { SysNotifyMgr.Instance.ShowTip("GoldErr"); return; } WindowCenter.Instance.Open<RechargeTipWin>(); } } }); } return; } if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3) { taskmodel.CompletionOfTask(TaskIdNow); @@ -211,7 +124,6 @@ if (TaskId != TaskIdNow) { TaskIdNow = TaskId; OpenShowButton(); _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见 } }); @@ -228,37 +140,12 @@ _Text_TaskDescribe.text = Config.Instance.Get<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Desclist).show_writing;//任务描述 string strINfor = taskmodel.SideQuestsDic[taskID].InforList; string str = string.Empty; if (mainModel.TaskId_Skill1.Contains(taskID)) { if (PlayerDatas.Instance.baseData.LV >= mainModel.TaskLv) { int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品 if (itemNumber >= mainModel.ItemNumber) { string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, mainModel.ItemNumber); str = Str_A; } else { string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, itemNumber); str = Str_A; } } else { string Str_C = string.Format(Language.Get("PassiveSkillTask5"), mainModel.TaskLv); str = Str_C; } } else { str = Config.Instance.Get<TASKINFOConfig>(strINfor).show_writing; } str = Config.Instance.Get<TASKINFOConfig>(strINfor).show_writing; str = WordAnalysis.Color_Start_Regex.Replace(str, string.Empty); str = WordAnalysis.Color_End_Regex.Replace(str, string.Empty); _Text_TaskTarget.text = str;//任务目标 if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3 || mainModel.TaskId_Skill1.Contains(taskID))//能够进行立即完成的支线任务 if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3)//能够进行立即完成的支线任务 { _Text_Forward.text = string.Format(Language.Get("FinishAtOnce_Z")); } System/MainInterfacePanel/SkillTaskWin.cs
New file @@ -0,0 +1,49 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, September 18, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class SkillTaskWin : Window { #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion } } System/MainInterfacePanel/SkillTaskWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 0b9954631fd01f04e9b1422443d7cb4c timeCreated: 1537273256 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/MainInterfacePanel/TaskListTip.cs
@@ -102,8 +102,6 @@ model.collectingTreasureChangeEvent += OnCollectingTreasureChangeEvent; FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; TreasureNewGotWin.CloseTreasureNewGotWinEvent += CloseTreasureNewGotWinEvent; playerPack.RefreshItemCountAct += RefreshItemCountAct; playerPack.ItemCntReduceAct += ItemCntReduceAct; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418) OnCollectingTreasureChangeEvent(TreasureCategory.Human); TaskScheduling();//任务排序 1 @@ -134,54 +132,13 @@ FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; TreasureNewGotWin.CloseTreasureNewGotWinEvent -= CloseTreasureNewGotWinEvent; PlayerTaskDatas.MainCardLevelChange -= MainCardLevelChange;//卡级任务修改 playerPack.RefreshItemCountAct -= RefreshItemCountAct; playerPack.ItemCntReduceAct -= ItemCntReduceAct; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418) } private void Updatefighting(PlayerDataRefresh obj)//等级刷新 { if (obj == PlayerDataRefresh.LV) { foreach (var key in taskmodel.SideQuestsDic.Keys) { if (mainModel.TaskId_Skill1.Contains(key)) { TaskIdUpdate(key); } } } } private void ItemCntReduceAct(PackType arg1, int arg2, int arg3) { if (arg1 == PackType.rptItem && arg3== mainModel.ItemID) { foreach (var key in taskmodel.SideQuestsDic.Keys) { if (mainModel.TaskId_Skill1.Contains(key)) { TaskIdUpdate(key); } } } } private void RefreshItemCountAct(PackType arg1, int arg2, int arg3) { if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID) { foreach (var key in taskmodel.SideQuestsDic.Keys) { if (mainModel.TaskId_Skill1.Contains(key)) { TaskIdUpdate(key); } } } } private void TaskIdUpdate(int taskId) { int leng = Content.childCount; System/Skill/ScrollerController.cs
@@ -423,7 +423,7 @@ public void ResetScrollPos() { if (_data.Count == 0) if (_data.Count == 0 || !inited) { return; } System/Skill/SkillModel.cs
@@ -87,7 +87,7 @@ taskHoleDict = ConfigParse.GetDic<int, int>(funcCfg.Numerical4); } funcCfg = Config.Instance.Get<FuncConfigConfig>("PassiveSkillTask"); immediatelyUnlockTask = int.Parse(funcCfg.Numerical2); immediatelyUnlockTask = 0;//int.Parse(funcCfg.Numerical2); funcCfg = Config.Instance.Get<FuncConfigConfig>("PassSkillEquipGetWay"); if (funcCfg != null) { System/Skill/SkillPassWin.cs
@@ -627,35 +627,35 @@ void ImmediatelyUnlock() { var count = pack.GetItemCountByID(PackType.rptItem, taskMain.ItemID); if (count >= taskMain.ItemNumber) { task.CompletionOfTask(model.immediatelyUnlockTask); } else { var requireJade = (ulong)((taskMain.ItemNumber - count) * taskMain.UnitPrice); ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("PassiveSkillTask3", requireJade), (bool isOk) => { if (isOk) { if (UIHelper.GetMoneyCnt(1) >= requireJade) { task.CompletionOfTask(model.immediatelyUnlockTask); } else { if (VersionConfig.Get().isBanShu) { SysNotifyMgr.Instance.ShowTip("GoldErr"); return; } WindowCenter.Instance.Open<RechargeTipWin>(); } } }); } //var count = pack.GetItemCountByID(PackType.rptItem, taskMain.ItemID); //if (count >= taskMain.ItemNumber) //{ // task.CompletionOfTask(model.immediatelyUnlockTask); //} //else //{ // var requireJade = (ulong)((taskMain.ItemNumber - count) * taskMain.UnitPrice); // ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("PassiveSkillTask3", requireJade), // (bool isOk) => // { // if (isOk) // { // if (UIHelper.GetMoneyCnt(1) >= requireJade) // { // task.CompletionOfTask(model.immediatelyUnlockTask); // } // else // { // if (VersionConfig.Get().isBanShu) // { // SysNotifyMgr.Instance.ShowTip("GoldErr"); // return; // } // WindowCenter.Instance.Open<RechargeTipWin>(); // } // } // }); //} } private void OnClickFunc(CellView cell) System/Treasure/TreasureNewGotWin.cs
@@ -317,7 +317,8 @@ index++; if (treasure.treasureStages[k].unlockType == TreasureStageUnlock.Func || treasure.treasureStages[k].unlockType == TreasureStageUnlock.Skill || treasure.treasureStages[k].unlockType == TreasureStageUnlock.Treasure) treasure.treasureStages[k].unlockType == TreasureStageUnlock.Treasure || treasure.treasureStages[k].unlockType == TreasureStageUnlock.TreasureSoul) { _stage = treasure.treasureStages[k]; displayStageCount++; System/Vip/VipInvest/VipInvestWin.cs
@@ -14,6 +14,8 @@ [SerializeField] GameObject m_Realized_BGM; [SerializeField] Text m_RemainingDays;//剩余天数 [SerializeField] Button m_GoToVipBoss; [SerializeField] Text m_FairyJadeText;//仙玉 [SerializeField] Text m_TieTheJadeText;//绑玉 VipInvestModel _investModel; VipInvestModel investModel { get { return _investModel ?? (_investModel = ModelCenter.Instance.GetModel<VipInvestModel>()); } } ItemTipsModel _tipsModel; @@ -42,7 +44,7 @@ InvestInfo = investModel.GetInvestInfoByType((int)InvestType.Vip); cycle = investModel.GetInvestCycle(InvestInfo.curDay); investIndex = investModel.GetVipInvestIndex(); GetFairyJade(); if (InvestInfo.curDay <= 0) { m_RemainingDays.text = string.Format(Language.Get("TheRemainingNumberDays_Z"), UIHelper.GetTextColorByItemColor(TextColType.Green, 0.ToString(), true)); @@ -70,6 +72,7 @@ protected override void OnAfterOpen() { PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayersUpLV; if (investModel.redPointStre1.state == RedPointState.Simple) { investModel.IsRedpoint = false; @@ -80,9 +83,13 @@ } } protected override void OnPreClose() { investModel.RefreshInvestAct -= RefreshInvestState; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV; } protected override void OnAfterClose() @@ -281,5 +288,17 @@ { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.FindPreciousFrameFunc3); } private void OnPlayersUpLV(PlayerDataRefresh obj) { if (obj == PlayerDataRefresh.Gold || obj == PlayerDataRefresh.GoldPaper) { GetFairyJade(); } } private void GetFairyJade() { m_FairyJadeText.text = UIHelper.GetMoneyCnt(1).ToString(); m_TieTheJadeText.text = UIHelper.GetMoneyCnt(2).ToString(); } } } System/WindowJump/WindowJumpMgr.cs
@@ -278,6 +278,12 @@ } } break; case JumpUIType.VipRechargeFunc5: if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID)) { return; } break; case JumpUIType.OpenServerRank: case JumpUIType.OSTimeLimitGift: case JumpUIType.OpenServerActivityFunc2_1: @@ -478,7 +484,6 @@ case JumpUIType.VipRechargeFunc1: case JumpUIType.VipRechargeFunc2: case JumpUIType.VipRechargeFunc4: case JumpUIType.VipRechargeFunc5: if (VersionConfig.Get().isBanShu) { SysNotifyMgr.Instance.ShowTip("FuncNoOpen_VIP"); @@ -623,7 +628,16 @@ case JumpUIType.UnionChat1: case JumpUIType.UnionChat2: ChatCtrl.Inst.presentChatType = (ChatInfoType)(int.Parse(_tagWinSearchModel.SelectActive) - 1); SetJumpLogic<ChatWin>(_tagWinSearchModel.TABID); switch (ChatCtrl.Inst.presentChatType) { case ChatInfoType.Team: case ChatInfoType.Fairy: SetJumpLogic<SocialWin>(_tagWinSearchModel.TABID); break; default: SetJumpLogic<ChatWin>(_tagWinSearchModel.TABID); break; } break; case JumpUIType.MakeDrug: if (PackSendQuestMgr.Instance.useItemModel != null) @@ -680,6 +694,7 @@ case JumpUIType.OpenServerGift3: case JumpUIType.LimitedTimePackage: case JumpUIType.OpenServerRank: case JumpUIType.VipRechargeFunc5: SetJumpLogic<OpenServerActivityWin>(_tagWinSearchModel.TABID); break; case JumpUIType.OpenServerMountRank: