From 8f3bfa07c7d0ed894fce64c17fa7c5148a67b604 Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期四, 20 十二月 2018 14:58:52 +0800
Subject: [PATCH] 5398 子 【开发】【1.4】跨服竞技场 / 【前端】【1.4】跨服竞技场开发
---
System/CrossServerOneVsOne/CrossSeverBuyMatchTimesWin.cs | 4 +-
System/CrossServerOneVsOne/CrossSeverDayAwardCell.cs | 25 ++++++++++++
System/CrossServerOneVsOne/CrossServerModel.cs | 56 +++++++++++++++++++++++++--
System/CrossServerOneVsOne/CrossServerArenaWin.cs | 2
System/CrossServerOneVsOne/CrossServerPlayerInfo.cs | 8 ++++
System/CrossServerOneVsOne/CrossServerRewardModel.cs | 22 +++++-----
6 files changed, 97 insertions(+), 20 deletions(-)
diff --git a/System/CrossServerOneVsOne/CrossServerArenaWin.cs b/System/CrossServerOneVsOne/CrossServerArenaWin.cs
index 4216fd6..77eb9a5 100644
--- a/System/CrossServerOneVsOne/CrossServerArenaWin.cs
+++ b/System/CrossServerOneVsOne/CrossServerArenaWin.cs
@@ -83,7 +83,7 @@
private void UpdateActivityState()
{
- bool isInTime = false;
+ bool isInTime = CrossServerPKSeason.Instance.InDay(TimeUtility.ServerNow);
bool isOpen = false;
matchBtn.RemoveAllListeners();
if(!isInTime)
diff --git a/System/CrossServerOneVsOne/CrossServerModel.cs b/System/CrossServerOneVsOne/CrossServerModel.cs
index 3066f44..bfa41ec 100644
--- a/System/CrossServerOneVsOne/CrossServerModel.cs
+++ b/System/CrossServerOneVsOne/CrossServerModel.cs
@@ -13,6 +13,8 @@
{
public string PkResultLocalSaveKey { get; private set; }
public List<CrossServerPkResult> localSaveResults { get; private set; }
+ CrossServerRewardModel rewardModel { get { return ModelCenter.Instance.GetModel<CrossServerRewardModel>(); } }
+ public event Action UpdateDayAwardsEvent;
public override void Init()
{
@@ -21,6 +23,8 @@
public void OnBeforePlayerDataInitialize()
{
+ rewardModel.CrossRealmPKAwardStateUpdate -= UpdateDayAwardState;
+ CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdateDayAwardState;
InitData();
}
@@ -33,7 +37,9 @@
public void OnPlayerLoginOk()
{
-
+ rewardModel.CrossRealmPKAwardStateUpdate += UpdateDayAwardState;
+ CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent += UpdateDayAwardState;
+ UpdateDayAwardState();
}
public override void UnInit()
@@ -45,6 +51,32 @@
{
CrossServerPlayerInfo.Instance.InitData();
pkResultInfo = new CrossServerPkResult();
+ }
+
+ public void UpdateDayAwardState()
+ {
+ var playerInfo = CrossServerPlayerInfo.Instance;
+ for(int i = 0; i < dayAwardTypelist.Count; i++)
+ {
+ var dayAward = dayAwardTypelist[i];
+ int awardType = dayAward.type;
+ switch(awardType)
+ {
+ case 1:
+ dayAward.IsReceived = rewardModel.IsAwardState(CrossRealmPKAwardStateEnum.DayWinCountAwardState,dayAward.index);
+ dayAward.SetCompletedNum(playerInfo.DayWinCount);
+ break;
+ case 2:
+ dayAward.IsReceived = rewardModel.IsAwardState(CrossRealmPKAwardStateEnum.DayPKCountAwardState,dayAward.index);
+ dayAward.SetCompletedNum(playerInfo.DayPKCount);
+ break;
+ }
+ }
+
+ if(UpdateDayAwardsEvent != null)
+ {
+ UpdateDayAwardsEvent();
+ }
}
public List<AwardType> sortDayAwardslist = new List<AwardType>();
@@ -80,11 +112,12 @@
var dayMatchAwardData = JsonMapper.ToObject(CrossRealmPKAward.Numerical1);
var dayWinAwardData = JsonMapper.ToObject(CrossRealmPKAward.Numerical2);
dayAwardTypelist = new List<AwardType>();
+ int dayWinIndex = 0;
foreach (var num in dayWinAwardData.Keys)
{
int times = int.Parse(num);
var items = dayWinAwardData[num];
- var awardType = new AwardType(times,1);
+ var awardType = new AwardType(times,1,dayWinIndex);
dayAwardTypelist.Add(awardType);
if (items.IsArray)
{
@@ -104,13 +137,16 @@
}
}
}
+
+ dayWinIndex += 1;
}
+ int dayPkIndex = 0;
foreach (var num in dayMatchAwardData.Keys)
{
int times = int.Parse(num);
var items = dayMatchAwardData[num];
- var awardType = new AwardType(times,2);
+ var awardType = new AwardType(times,2,dayPkIndex);
dayAwardTypelist.Add(awardType);
if (items.IsArray)
{
@@ -130,6 +166,8 @@
}
}
}
+
+ dayPkIndex += 1;
}
var CrossRealmPKMatchCount = Config.Instance.Get<FuncConfigConfig>("CrossRealmPKMatchCount");
@@ -144,15 +182,17 @@
public class AwardType
{
public int type { get; private set; } //1 鑳滃埄濂栧姳 2 鍖归厤濂栧姳
+ public int index { get; private set; }
public int num { get; private set;}
public int curCompletedNum { get; private set; }
public CompleteProgress progress { get; private set;}
public bool IsReceived { get; set; }
public List<AwardItem> awardItems = new List<AwardItem>();
- public AwardType(int _num,int _type)
+ public AwardType(int _num,int _type,int _index)
{
type = _type;
num = _num;
+ index = _index;
curCompletedNum = 0;
IsReceived = false;
progress = CompleteProgress.Completed;
@@ -224,10 +264,16 @@
match.Type = (byte)type;
GameNetSystem.Instance.SendInfo(match);
}
+
+ public void SendBuyMatchCount()
+ {
+ CC102_tagCMCrossRealmPKBuy pKBuy = new CC102_tagCMCrossRealmPKBuy();
+ GameNetSystem.Instance.SendInfo(pKBuy);
+ }
#endregion
#region 鍖归厤璁板綍
-
+
private void GetLocalSaveData()
{
localSaveResults = new List<CrossServerPkResult>();
diff --git a/System/CrossServerOneVsOne/CrossServerPlayerInfo.cs b/System/CrossServerOneVsOne/CrossServerPlayerInfo.cs
index 71e8651..b5671be 100644
--- a/System/CrossServerOneVsOne/CrossServerPlayerInfo.cs
+++ b/System/CrossServerOneVsOne/CrossServerPlayerInfo.cs
@@ -20,9 +20,12 @@
public int DayPKCount { get; private set; } // 褰撴棩宸睵K娆℃暟
+ public int DayWinCount { get; private set;} //褰撴棩鑳滃埄娆℃暟
+
public int DayBuyCount { get; private set; } // 褰撴棩宸茶喘涔版鏁�
CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
+ public event Action UpdatePlayerInfoEvent;
public void InitData()
{
@@ -33,6 +36,7 @@
CWinCount = 0;
DayPKCount = 0;
DayBuyCount = 0;
+ DayWinCount = 0;
}
public void UpdatePlayerInfo(HC101_tagMCCrossRealmPKPlayerInfo playerInfo)
@@ -44,6 +48,10 @@
this.CWinCount = playerInfo.CWinCount;
this.DayPKCount = playerInfo.DayPKCount;
this.DayBuyCount = playerInfo.DayBuyCount;
+ if(UpdatePlayerInfoEvent != null)
+ {
+ UpdatePlayerInfoEvent();
+ }
}
public bool TryGetMaxRank(out int upScore)
diff --git a/System/CrossServerOneVsOne/CrossServerRewardModel.cs b/System/CrossServerOneVsOne/CrossServerRewardModel.cs
index 68233c7..4505893 100644
--- a/System/CrossServerOneVsOne/CrossServerRewardModel.cs
+++ b/System/CrossServerOneVsOne/CrossServerRewardModel.cs
@@ -1,7 +1,7 @@
-锘�//--------------------------------------------------------
-// [Author]: 绗簩涓栫晫
-// [ Date ]: Wednesday, December 12, 2018
-//--------------------------------------------------------
+锘�//--------------------------------------------------------
+// [Author]: 绗簩涓栫晫
+// [ Date ]: Wednesday, December 12, 2018
+//--------------------------------------------------------
using System;
using System.Collections.Generic;
using TableConfig;
@@ -147,7 +147,7 @@
}
}
- private bool IsAwardState(CrossRealmPKAwardStateEnum _cross, int Index)//鏄惁宸查鍙栧鍔�
+ public bool IsAwardState(CrossRealmPKAwardStateEnum _cross, int Index)//鏄惁宸查鍙栧鍔�
{
bool _bool = false;
if (_cross == CrossRealmPKAwardStateEnum.SeasonAwardState)
@@ -187,9 +187,9 @@
GameNetSystem.Instance.SendInfo(c103);
}
-}
-
-
-
-
-
+}
+
+
+
+
+
diff --git a/System/CrossServerOneVsOne/CrossSeverBuyMatchTimesWin.cs b/System/CrossServerOneVsOne/CrossSeverBuyMatchTimesWin.cs
index dde5ad1..c90c4a6 100644
--- a/System/CrossServerOneVsOne/CrossSeverBuyMatchTimesWin.cs
+++ b/System/CrossServerOneVsOne/CrossSeverBuyMatchTimesWin.cs
@@ -75,14 +75,14 @@
{
if (isOk)
{
-
+ crossServerModel.SendBuyMatchCount();
}
});
return;
}
else
{
-
+ crossServerModel.SendBuyMatchCount();
}
}
else
diff --git a/System/CrossServerOneVsOne/CrossSeverDayAwardCell.cs b/System/CrossServerOneVsOne/CrossSeverDayAwardCell.cs
index a9b1337..0d3c469 100644
--- a/System/CrossServerOneVsOne/CrossSeverDayAwardCell.cs
+++ b/System/CrossServerOneVsOne/CrossSeverDayAwardCell.cs
@@ -25,13 +25,17 @@
CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
+ CrossServerRewardModel rewardModel { get { return ModelCenter.Instance.GetModel<CrossServerRewardModel>(); } }
+
CrossServerModel.AwardType awardType;
float height = 0;
-
+ bool isLineMove = false;
public override void Display(object _data)
{
base.Display(_data);
+ isLineMove = false;
recieveBtn.AddListener(ClickRecieve);
+ crossServerModel.UpdateDayAwardsEvent += UpdateDayAwards;
awardType = (CrossServerModel.AwardType)_data;
DisplayDayAward();
}
@@ -40,6 +44,7 @@
{
base.Dispose();
recieveBtn.RemoveAllListeners();
+ crossServerModel.UpdateDayAwardsEvent -= UpdateDayAwards;
}
private void DisplayDayAward()
@@ -74,7 +79,25 @@
{
if (awardType == null) return;
+ isLineMove = true;
+ switch (awardType.type)
+ {
+ case 1:
+ rewardModel.CrossRealmPKGetAward(CrossRealmPKAwardStateEnum.DayWinCountAwardState,awardType.num);
+ break;
+ case 2:
+ rewardModel.CrossRealmPKGetAward(CrossRealmPKAwardStateEnum.DayPKCountAwardState, awardType.num);
+ break;
+ }
+ }
+
+ private void UpdateDayAwards()
+ {
+ if (!isLineMove) return;
+
+ isLineMove = false;
m_CrossServerCyclicScroll.ShowBegin(this);
}
+
}
}
--
Gitblit v1.8.0