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/CrossServerModel.cs | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 51 insertions(+), 5 deletions(-)
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>();
--
Gitblit v1.8.0