From f293a7484f17baf6c6b156f4e5a719a532fbe1fc Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期二, 18 九月 2018 17:01:04 +0800
Subject: [PATCH] 1559 兑换码开发
---
System/FriendSystem/MailAllModel.cs | 37 ++++++++++-
System/Welfare/AwardExchangeModel.cs | 24 +++++++-
System/WindowBase/ModelCenter.cs | 1
System/Welfare/ExchangeGetItemWin.cs | 71 +++++++++--------------
System/Welfare/ExchangeGetItemWin.cs.meta | 4
5 files changed, 84 insertions(+), 53 deletions(-)
diff --git a/System/FriendSystem/MailAllModel.cs b/System/FriendSystem/MailAllModel.cs
index 0ac7e2c..d38ac28 100644
--- a/System/FriendSystem/MailAllModel.cs
+++ b/System/FriendSystem/MailAllModel.cs
@@ -62,6 +62,8 @@
get { return m_dailyModel ?? (m_dailyModel = ModelCenter.Instance.GetModel<DailyQuestModel>()); }
}
+ AwardExchangeModel exchangeModel { get { return ModelCenter.Instance.GetModel<AwardExchangeModel>(); } }
+
public MailAllModel()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerDataInit;
@@ -158,12 +160,14 @@
if (mailModelDict.ContainsKey(mailModel.PackList[i].GUID))
{
MailInfo info = mailModelDict[mailModel.PackList[i].GUID];
- switch(GetMailType(info))
+ string mailTitle = GetMailTitle(info);
+ if(mailTitle.Contains("<gcode>"))
{
- case "CodeRewardMail":
- WindowCenter.Instance.Open<ExchangeGetItemWin>();
- break;
-
+ exchangeModel.SetAwardExchangeModel(info.Items);
+ }
+ else if(GetMailType(info) == "CodeRewardMail")
+ {
+ exchangeModel.SetAwardExchangeModel(info.Items);
}
}
}
@@ -428,6 +432,7 @@
}
}
+ mailTitleStr = mailTitleStr.Replace("<gcode>","");
}
public string GetMailType(MailInfo info)
@@ -444,6 +449,28 @@
return string.Empty;
}
+ public string GetMailTitle(MailInfo info)
+ {
+ if (smatch.IsMatch(info.Text))
+ {
+ Match match = smatch.Match(info.Text);
+ MailConfig _mailModel = Config.Instance.Get<MailConfig>(match.Groups[1].Value);
+ if (_mailModel != null)
+ {
+ return _mailModel.Title;
+ }
+ }
+ else
+ {
+ string[] mailContentArray = info.Text.Split(new string[] { "<$_$>" }, StringSplitOptions.RemoveEmptyEntries);
+ if (mailContentArray.Length > 0)
+ {
+ return mailContentArray[1];
+ }
+ }
+ return string.Empty;
+ }
+
StringBuilder todayDailySB = new StringBuilder();
public string GetTodayDailyNotify(DateTime getTime)
{
diff --git a/System/Welfare/AwardExchangeModel.cs b/System/Welfare/AwardExchangeModel.cs
index f1058c5..44f6a7c 100644
--- a/System/Welfare/AwardExchangeModel.cs
+++ b/System/Welfare/AwardExchangeModel.cs
@@ -7,8 +7,9 @@
{
public class AwardExchangeModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
{
- public PlayerPackModel.DecomposeGetMatInfo[] getItems { get; private set; }
+ public MailItemModel[] getItems { get; private set; }
+ bool isLogin = true;
public override void Init()
{
@@ -16,7 +17,7 @@
public void OnBeforePlayerDataInitialize()
{
-
+ isLogin = true;
}
public void OnAfterPlayerDataInitialize()
@@ -26,12 +27,29 @@
public void OnPlayerLoginOk()
{
-
+ isLogin = false;
}
public override void UnInit()
{
}
+
+ public void SetAwardExchangeModel(MailItemModel[] Items)
+ {
+ getItems = null;
+ if (Items == null || isLogin) return;
+
+ getItems = Items;
+ if(!WindowCenter.Instance.CheckOpen<ExchangeGetItemWin>())
+ {
+ WindowCenter.Instance.Open<ExchangeGetItemWin>();
+ }
+ }
+
+ public void ClearAwardExchangeModel()
+ {
+ getItems = null;
+ }
}
}
diff --git a/System/Welfare/ExchangeGetItemWin.cs b/System/Welfare/ExchangeGetItemWin.cs
index 0cdd4f1..a5a5bff 100644
--- a/System/Welfare/ExchangeGetItemWin.cs
+++ b/System/Welfare/ExchangeGetItemWin.cs
@@ -6,37 +6,31 @@
{
public class ExchangeGetItemWin : Window
{
- [SerializeField] GameObject getItemObj;
- [SerializeField] RectTransform getItemParent;
[SerializeField] Button sureBtn;
+ [SerializeField] List<CommonItemBaisc> itemBaiscs = new List<CommonItemBaisc>();
- List<GameObject> GetItemlist = new List<GameObject>();
- AwardExchangeModel exchange { get { return ModelCenter.Instance.GetModel<AwardExchangeModel>(); } }
+ AwardExchangeModel exchangeModel { get { return ModelCenter.Instance.GetModel<AwardExchangeModel>(); } }
ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
-
protected override void BindController()
{
}
-
protected override void AddListeners()
{
sureBtn.AddListener(CloseClick);
}
-
protected override void OnPreOpen()
{
- getItemObj.SetActive(false);
- CreateGetItem();
+ SetDisplayModel();
}
protected override void OnAfterOpen()
{
-
+ transform.SetAsLastSibling();
}
protected override void OnPreClose()
{
- DestroyGetItemlist();
+ exchangeModel.ClearAwardExchangeModel();
}
protected override void OnAfterClose()
@@ -44,42 +38,33 @@
}
- private void CreateGetItem()
+ private void SetDisplayModel()
{
- GetItemlist.Clear();
- if (exchange.getItems == null) return;
+ if (exchangeModel == null) return;
- for (int i = 0; i < exchange.getItems.Length; i++)
+ for(int i = 0; i < itemBaiscs.Count; i++)
{
- GameObject item = Instantiate(getItemObj);
- PlayerPackModel.DecomposeGetMatInfo matInfo = exchange.getItems[i];
- item.transform.SetParent(getItemParent);
- item.transform.localPosition = Vector3.zero;
- item.transform.localScale = Vector3.one;
- item.name = StringUtility.Contact("getItem",i);
- item.gameObject.SetActive(true);
- CommonItemBaisc itemBasic = item.transform.Find("CommonItemCell").GetComponent<CommonItemBaisc>();
- ItemCellModel cellModel = new ItemCellModel(matInfo.ItemID, false, (ulong)matInfo.Count, matInfo.IsBind,
- "", PackType.rptDeleted, false, ConfigParse.Analysis(matInfo.UserData));
- itemBasic.Init(cellModel);
- itemBasic.cellBtn.RemoveAllListeners();
- itemBasic.cellBtn.AddListener(() =>
+ if(i < exchangeModel.getItems.Length)
{
- ItemAttrData attrData = new ItemAttrData(matInfo.ItemID, false, (ulong)matInfo.Count, -1, matInfo.IsBind,
- false, PackType.rptDeleted, "", ConfigParse.Analysis(matInfo.UserData));
- tipsModel.SetItemTipsModel(attrData);
-
- });
- itemBasic.gameObject.SetActive(true);
- GetItemlist.Add(item);
- }
- }
-
- private void DestroyGetItemlist()
- {
- for (int i = 0; i < GetItemlist.Count; i++)
- {
- Destroy(GetItemlist[i]);
+ MailItemModel itemModel = exchangeModel.getItems[i];
+ itemBaiscs[i].gameObject.SetActive(true);
+ ItemCellModel cellModel = new ItemCellModel((int)itemModel.ItemID,false
+ ,(ulong)itemModel.Count, itemModel.IsBind,"",PackType.rptDeleted,
+ false,ConfigParse.Analysis(itemModel.UserData));
+ itemBaiscs[i].Init(cellModel);
+ itemBaiscs[i].cellBtn.RemoveAllListeners();
+ itemBaiscs[i].cellBtn.AddListener(()=>
+ {
+ ItemAttrData attrData = new ItemAttrData((int)itemModel.ItemID, false
+ , (ulong)itemModel.Count,-1,itemModel.IsBind,false, PackType.rptDeleted,
+ "", ConfigParse.Analysis(itemModel.UserData));
+ tipsModel.SetItemTipsModel(attrData);
+ });
+ }
+ else
+ {
+ itemBaiscs[i].gameObject.SetActive(false);
+ }
}
}
diff --git a/System/Welfare/ExchangeGetItemWin.cs.meta b/System/Welfare/ExchangeGetItemWin.cs.meta
index 8dace72..999e7e3 100644
--- a/System/Welfare/ExchangeGetItemWin.cs.meta
+++ b/System/Welfare/ExchangeGetItemWin.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: b88138dfb3783c34db741e9d6a847c2a
-timeCreated: 1531139769
+guid: b367524e0821f67439d7c80ed1a0254f
+timeCreated: 1537257075
licenseType: Pro
MonoImporter:
serializedVersion: 2
diff --git a/System/WindowBase/ModelCenter.cs b/System/WindowBase/ModelCenter.cs
index d9750f7..e555f65 100644
--- a/System/WindowBase/ModelCenter.cs
+++ b/System/WindowBase/ModelCenter.cs
@@ -194,6 +194,7 @@
RegisterModel<GodBeastModel>();
RegisterModel<PrayForDurgModel>();
RegisterModel<FeatureNoticeModel>();
+ RegisterModel<AwardExchangeModel>();
inited = true;
}
--
Gitblit v1.8.0