From 7a6cf79f0c59ea0a080fac7313b4dcaab55ded6d Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期三, 22 八月 2018 14:51:51 +0800
Subject: [PATCH] 单号【2727】特殊任务的添加和表现
---
System/MainInterfacePanel/PlayerMainDate.cs | 35 +++++
System/MainInterfacePanel/SideMission.cs | 132 ++++++++++++++++++++--
System/MainInterfacePanel/TaskListTip.cs | 57 ++++++++-
System/MainInterfacePanel/FlyingShoesTask.cs | 108 ++++++++++++-----
4 files changed, 281 insertions(+), 51 deletions(-)
diff --git a/System/MainInterfacePanel/FlyingShoesTask.cs b/System/MainInterfacePanel/FlyingShoesTask.cs
index 067699e..66291d4 100644
--- a/System/MainInterfacePanel/FlyingShoesTask.cs
+++ b/System/MainInterfacePanel/FlyingShoesTask.cs
@@ -120,36 +120,27 @@
m_ImgSelected.SetActive(true);
taskmodel.GetNowTaskID = Task_ID;
+
+ if (mainModel.TaskId_Skill1.Contains(Task_ID))
+ {
+ int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//鑾峰彇鐗规畩鐗╁搧
+ if (itemNumber >= mainModel.ItemNumber)
+ {
+ taskmodel.CompletionOfTask(Task_ID);
+ WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
+ }
+ else
+ {
+ StateDetermination();
+ ContentText.ExcuteHref();
+ }
+ return;
+ }
switch ((int)taskmodel.GetTaskStatus(Task_ID))
{
case -5:
case 0:
- DropItemManager.StopMissionPickup = true;//涓诲姩鍋滄鎷惧彇鐗╁搧
- if (PlayerDatas.Instance.extersion.bossState == 1)
- {
- string strNpc = string.Empty;
- strNpc = ContentText.GetHrefMessage("movenpc");
- int npcId = 0;
- int mapID = PlayerDatas.Instance.baseData.MapID;
- if (int.TryParse(strNpc, out npcId))
- {
- var npcConfig = Config.Instance.GetAllValues<mapnpcConfig>();
- foreach (var value in npcConfig)
- {
- if (value.NPCID == npcId && value.MapID != mapID)
- {
- SysNotifyMgr.Instance.ShowTip("Task_Transfer1");
- return;
- }
- }
- var MonsterConfig = Config.Instance.Get<MonsterRefreshPointConfig>(npcId);
- if (MonsterConfig != null && MonsterConfig.MapId != mapID)
- {
- SysNotifyMgr.Instance.ShowTip("Task_Transfer1");
- return;
- }
- }
- }
+ StateDetermination();
ContentText.ExcuteHref();
OpenPanel(Task_ID);
break;
@@ -202,12 +193,47 @@
break;
case 3:
taskmodel.CompletionOfTask(Task_ID);
+ if (mainModel.TaskId_Skill.Contains(Task_ID))
+ {
+ WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
+ }
break;
default:
break;
-
}
}
+
+ private void StateDetermination()//鐘舵�佸垽瀹�
+ {
+ DropItemManager.StopMissionPickup = true;//涓诲姩鍋滄鎷惧彇鐗╁搧
+ if (PlayerDatas.Instance.extersion.bossState == 1)
+ {
+ string strNpc = string.Empty;
+ strNpc = ContentText.GetHrefMessage("movenpc");
+ int npcId = 0;
+ int mapID = PlayerDatas.Instance.baseData.MapID;
+ if (int.TryParse(strNpc, out npcId))
+ {
+ var npcConfig = Config.Instance.GetAllValues<mapnpcConfig>();
+ foreach (var value in npcConfig)
+ {
+ if (value.NPCID == npcId && value.MapID != mapID)
+ {
+ SysNotifyMgr.Instance.ShowTip("Task_Transfer1");
+ return;
+ }
+ }
+ var MonsterConfig = Config.Instance.Get<MonsterRefreshPointConfig>(npcId);
+ if (MonsterConfig != null && MonsterConfig.MapId != mapID)
+ {
+ SysNotifyMgr.Instance.ShowTip("Task_Transfer1");
+ return;
+ }
+ }
+ }
+
+ }
+
private void OnClickDeliveryButton()//浼犻�佺
{
mainModel.FlyShoseTaskID = Task_ID;
@@ -293,16 +319,32 @@
}
string str = taskmodel.allMissionDict[TaskID].InforList;
var taskinfo = Config.Instance.Get<TASKINFOConfig>(str);
- if (taskinfo != null)
+ if (mainModel.TaskId_Skill1.Contains(TaskID))//鐗规畩浠诲姟
{
- m_ContentText.text = taskinfo.show_writing;
+ int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//鑾峰彇鐗规畩鐗╁搧
+ 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
{
- DebugEx.LogError("浠诲姟琛ㄦ牸PyTaskInfo閰嶇疆缂哄け");
- return;
- }
-
+ if (taskinfo != null)
+ {
+ m_ContentText.text = taskinfo.show_writing;
+ }
+ else
+ {
+ DebugEx.LogError("浠诲姟琛ㄦ牸PyTaskInfo閰嶇疆缂哄け");
+ return;
+ }
+ }
bool isOPenTransferButton = HrefAnalysis.Inst.ContainsKey(taskinfo.show_writing, "flynpc");
if (isOPenTransferButton && !IsKaJiBool)
{
diff --git a/System/MainInterfacePanel/PlayerMainDate.cs b/System/MainInterfacePanel/PlayerMainDate.cs
index e49ebe1..d791053 100644
--- a/System/MainInterfacePanel/PlayerMainDate.cs
+++ b/System/MainInterfacePanel/PlayerMainDate.cs
@@ -123,6 +123,7 @@
OneKeyList.Add(Listmap[i]);
}
NetworkState = (int)SDKUtility.Instance.NetworkType;
+ GetPassiveSkillTask();
}
//----------鍏充簬鏌愪簺鍓湰鍙互杩涜鍦板浘鎸傛満
public List<int> OneKeyList = new List<int>();
@@ -130,6 +131,40 @@
//----------浣跨敤濞茬殗鍗疯酱鍚庣殑Buff琛ㄧ幇
public static event Action EmperorBuffEvent;
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;
+
+
+ private void GetPassiveSkillTask()//鑾峰彇浠诲姟鏁版嵁
+ {
+ TaskId_Skill.Clear();
+ TaskId_Skill1.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++)
+ {
+ TaskId_Skill.Add(TaskId_SkillInt[i]);
+ }
+ int[] TaskId_SkillInt1 = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical2);
+ for (int i = 0; i < TaskId_SkillInt1.Length; i++)
+ {
+ TaskId_Skill1.Add(TaskId_SkillInt1[i]);
+ }
+ int[] PassiveSkillTask = ConfigParse.GetMultipleStr<int>(PassiveSkillTaskconfig.Numerical3);
+ if (PassiveSkillTask.Length >= 3)
+ {
+ ItemID = PassiveSkillTask[0];
+ UnitPrice = PassiveSkillTask[1];
+ ItemNumber = PassiveSkillTask[2];
+ }
+ }
+
+
private void UseItemSuccessAct(int Index, int ItemID)
{
if (ItemID == 221)
diff --git a/System/MainInterfacePanel/SideMission.cs b/System/MainInterfacePanel/SideMission.cs
index 8c168cf..b9ec018 100644
--- a/System/MainInterfacePanel/SideMission.cs
+++ b/System/MainInterfacePanel/SideMission.cs
@@ -9,9 +9,11 @@
using TableConfig;
using System.Collections.Generic;
//浠诲姟闈㈡澘鐨勬敮绾夸换鍔�
-namespace Snxxz.UI {
+namespace Snxxz.UI
+{
- public class SideMission:MonoBehaviour {
+ public class SideMission : MonoBehaviour
+ {
[SerializeField] ScrollerController _TaskRamusList;
//鍙充晶闈㈡澘
[SerializeField] Text _Text_TaskName;//浠诲姟鍚�
@@ -25,11 +27,15 @@
PlayerTaskDatas taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<PlayerTaskDatas>()); } }
ItemTipsModel _itemTipsModel;
ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
+ PlayerPackModel _playerPack;
+ PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } }
+ PlayerMainDate m_MainModel;
+ PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
private List<RewardAnalysis.RewardInfo> rewardList = new List<RewardAnalysis.RewardInfo>();
private int TaskIdNow = 0;
private void Awake()
{
-
+
}
private void Start()
{
@@ -39,25 +45,108 @@
{
TaskIdNow = 0;
_TaskRamusList.OnRefreshCell += OnRefreshGridCell;
+ playerPack.RefreshItemCountAct += RefreshItemCountAct;
+ playerPack.ItemCntReduceAct += ItemCntReduceAct;
OnCreateGridLineCell(_TaskRamusList);
}
private void OnDisable()
{
_TaskRamusList.OnRefreshCell -= OnRefreshGridCell;
+ playerPack.RefreshItemCountAct -= RefreshItemCountAct;
+ playerPack.ItemCntReduceAct -= ItemCntReduceAct;
+ }
+
+ 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);//浠欑帀
+ int GoldPaper = (int)UIHelper.GetMoneyCnt(2);//缁戠帀
+ string strNull = string.Empty;
+ int needNumber = (mainModel.ItemNumber - itemNumber) * mainModel.UnitPrice;//鎵�闇�閲戦
+ if (GoldPaper >= needNumber)
+ {
+ strNull = string.Format(Language.Get("PassiveSkillTask3"), needNumber);
+ }
+ else
+ {
+ strNull = string.Format(Language.Get("PassiveSkillTask4"), needNumber, GoldPaper, needNumber- GoldPaper);
+ }
+ ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), strNull, (bool isOk) =>
+ {
+
+ if (isOk)
+ {
+ if (Gold + GoldPaper >= 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);
+ if (mainModel.TaskId_Skill.Contains(TaskIdNow))
+ {
+ WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
+ }
}
else
{
_Text_TaskTarget.ExcuteHref();
}
-
+
WindowCenter.Instance.CloseImmediately<TaskWin>();
WindowCenter.Instance.Open<MainInterfaceWin>();
}
@@ -92,17 +181,17 @@
var taskname = taskmodel.SideQuestsDic[TaskId].Name;
if (Config.Instance.Get<TASKINFOConfig>(taskname) == null)
{
- DebugEx.LogError("TASKINFO浠诲姟琛ㄦ牸娌℃湁鑾峰彇鍒拌浠诲姟鍚嶇О"+ taskname);
+ DebugEx.LogError("TASKINFO浠诲姟琛ㄦ牸娌℃湁鑾峰彇鍒拌浠诲姟鍚嶇О" + taskname);
return;
}
- sideMissionTitleBtton.TitleName.text= Config.Instance.Get<TASKINFOConfig>(taskname).show_writing;//浠诲姟鍚�
+ sideMissionTitleBtton.TitleName.text = Config.Instance.Get<TASKINFOConfig>(taskname).show_writing;//浠诲姟鍚�
if (!taskmodel.SideQuestsDic.ContainsKey(TaskId))
{
return;
}
sideMissionTitleBtton.Text_RamusState.text = GegionalTaskStatus(taskmodel.SideQuestsDic[TaskId].MissionState);
sideMissionTitleBtton.SideMissionTitleBtton1.RemoveAllListeners();
- sideMissionTitleBtton.SideMissionTitleBtton1.AddListener(()=>
+ sideMissionTitleBtton.SideMissionTitleBtton1.AddListener(() =>
{
if (TaskId != TaskIdNow)
{
@@ -122,24 +211,43 @@
_Text_TaskName.text = Config.Instance.Get<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Name).show_writing;//浠诲姟鍚�
_Text_TaskDescribe.text = Config.Instance.Get<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Desclist).show_writing;//浠诲姟鎻忚堪
string strINfor = taskmodel.SideQuestsDic[taskID].InforList;
- string str = Config.Instance.Get<TASKINFOConfig>(strINfor).show_writing;
+ string str = string.Empty;
+ if (mainModel.TaskId_Skill1.Contains(taskID))
+ {
+ 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
+ {
+ 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)
+
+ if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3 || mainModel.TaskId_Skill1.Contains(taskID))//鑳藉杩涜绔嬪嵆瀹屾垚鐨勬敮绾夸换鍔�
{
- _Text_Forward.text = string.Format(Language.Get("FinishAtOnce_Z")) ;
+ _Text_Forward.text = string.Format(Language.Get("FinishAtOnce_Z"));
}
else
{
_Text_Forward.text = TaskStatus(taskmodel.SideQuestsDic[taskID].MissionState);
}
-
+
if (taskmodel._DicTaskInformation.ContainsKey(taskID))
{
_Text_TaskTarget.SetReplaceInfo(taskmodel._DicTaskInformation[taskID]);
}
-
+
if (taskmodel.SideQuestsDic[taskID].RewardList == null)
{
if (_Grid.childCount != 0)
diff --git a/System/MainInterfacePanel/TaskListTip.cs b/System/MainInterfacePanel/TaskListTip.cs
index 5981779..a7f6553 100644
--- a/System/MainInterfacePanel/TaskListTip.cs
+++ b/System/MainInterfacePanel/TaskListTip.cs
@@ -33,6 +33,10 @@
TreasureModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>()); } }
PlayerTaskDatas m_TaskModel;
PlayerTaskDatas taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<PlayerTaskDatas>()); } }
+ PlayerPackModel _playerPack;
+ PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } }
+ PlayerMainDate m_MainModel;
+ PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
List<int> RenzhuTaskIDList = new List<int>();//娉曞疂浠诲姟鏁扮粍ID
List<int> ListSort = new List<int>();//鐢ㄤ簬鎺掑垪椤哄簭(鏈崱绾�)
List<int> ListSort1 = new List<int>();//鐢ㄤ簬鎺掑簭锛堝崱绾э級
@@ -104,12 +108,12 @@
PlayerTaskDatas.Event_TaskRefreshes += TaskRefreshes;//浠诲姟鐨勫埛鏂�
PlayerTaskDatas.Event_TaskToDelete += OnTaskToDelete;//浠诲姟鐨勫垹闄�
PlayerTaskDatas.Event_TaskInformation += TaskInformation;//浠诲姟瀛楀吀淇℃伅
- //PlayerTaskDatas.CardLevelChange += CardLevelChange;//浠诲姟鍗$骇鐘舵�佹敼鍙�
PlayerTaskDatas.MainCardLevelChange += MainCardLevelChange;//鍗$骇浠诲姟淇敼
model.collectingTreasureChangeEvent += OnCollectingTreasureChangeEvent;
FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
TreasureNewGotWin.CloseTreasureNewGotWinEvent += CloseTreasureNewGotWinEvent;
-
+ playerPack.RefreshItemCountAct += RefreshItemCountAct;
+ playerPack.ItemCntReduceAct += ItemCntReduceAct;
OnCollectingTreasureChangeEvent(TreasureCategory.Human);
TaskScheduling();//浠诲姟鎺掑簭 1
TheTaskToGenerate();//浠诲姟鐢熸垚
@@ -139,11 +143,55 @@
FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
TreasureNewGotWin.CloseTreasureNewGotWinEvent -= CloseTreasureNewGotWinEvent;
PlayerTaskDatas.MainCardLevelChange -= MainCardLevelChange;//鍗$骇浠诲姟淇敼
+ playerPack.RefreshItemCountAct -= RefreshItemCountAct;
+ playerPack.ItemCntReduceAct -= ItemCntReduceAct;
+ }
+
+ 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;
+ for (int i = 0; i < leng; i++)
+ {
+ GameObject childObj = Content.GetChild(i).gameObject;
+ TaskType childObjTaskType = Content.GetChild(i).gameObject.GetComponent<TaskType>();
+ if (childObj.activeSelf && childObjTaskType.TaskID == taskId)
+ {
+ childObj.GetComponent<FlyingShoesTask>().FlyingShoes_Task(taskId);
+ }
+ }
}
private void MainCardLevelChange(int _id)
{
-
TaskScheduling();
bool IsDefault = true;
var State = taskmodel.GetTaskStatus(_id);
@@ -348,7 +396,6 @@
{
_list.Sort(Compare1);//鍗$骇鎺掑簭
}
-
}
int Compare(int x, int y)//榛樿鎺掑簭(鏃犲崱绾�)
{
@@ -401,8 +448,6 @@
var _position = (_list.Count - type) * m_SizeHeight + (_list.Count - type - 1) * 2;
_position -= 196;
m_ScrollRect.verticalNormalizedPosition = Mathf.Clamp01(_position / ((Content as RectTransform).sizeDelta.y - 196));
- // m_ScrollRect.verticalNormalizedPosition = Mathf.Clamp01(m_ScrollRect.verticalNormalizedPosition + ((Content as RectTransform).sizeDelta.y - 196));
- //m_ScrollRect.verticalNormalizedPosition = ((float)1 - (float)(type + 1) / _list.Count);
}
}
}
--
Gitblit v1.8.0