| Core/GameEngine/Model/Config/LoginRewardConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/Config/LoginRewardConfig.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/ConfigManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/EntryInformationCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/ImpactRankModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/LoginRewardModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/LoginRewardWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/OpenServerActivity/OpenServerActivityWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Model/Config/LoginRewardConfig.cs
New file @@ -0,0 +1,56 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, February 13, 2019 //-------------------------------------------------------- using UnityEngine; using System; namespace TableConfig { public partial class LoginRewardConfig : ConfigBase { public int Id { get ; private set ; } public int ActionType { get ; private set ; } public string Description { get ; private set; } public int jump { get ; private set ; } public int order { get ; private set ; } public int DailyQusetId { get ; private set ; } public int SpecialDisplayType { get ; private set ; } public override string getKey() { return Id.ToString(); } public override void Parse() { try { Id=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; ActionType=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; Description = rawContents[2].Trim(); jump=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0; order=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0; DailyQusetId=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0; SpecialDisplayType=IsNumeric(rawContents[6]) ? int.Parse(rawContents[6]):0; } catch (Exception ex) { DebugEx.Log(ex); } } } } Core/GameEngine/Model/Config/LoginRewardConfig.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 20bbea206a1a28d428792f768452039b timeCreated: 1550027145 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/GameEngine/Model/ConfigManager.cs
@@ -236,7 +236,7 @@ AddAsyncTask<FestivalRedpackTaskConfig>(); AddAsyncTask<HolidayHomingConfig>(); AddAsyncTask<HolidayHomingPointConfig>(); AddAsyncTask<LoginRewardConfig>(); while (!AllCompleted()) { var completedCount = 0; System/OpenServerActivity/EntryInformationCell.cs
@@ -5,6 +5,7 @@ using UnityEngine; using System.Collections; using UnityEngine.UI; using TableConfig; namespace Snxxz.UI { [XLua.Hotfix] @@ -12,19 +13,175 @@ [SerializeField] ItemCell m_ItemCell; [SerializeField] Text m_Text1; [SerializeField] Text m_Text2; [SerializeField] Button m_Button; [SerializeField] Text m_ButtonText; [SerializeField] Button m_Btn; [SerializeField] Text m_BtnText; [SerializeField] GameObject m_Miss;//错过 [SerializeField] GameObject m_Reach;//未达成 [SerializeField] GameObject m_Draw;//已领取 LoginRewardModel m_LoginRewardModel; LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } } public Button mButton { get { return m_Button; } set { m_Button = value; } } LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } } ItemTipsModel m_itemTipsModel; ItemTipsModel itemTipsModel { get { return m_itemTipsModel ?? (m_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } public void GetDisplayInformation(int id) { var config = Config.Instance.Get<LoginRewardConfig>(id); if (config == null) { DebugEx.LogError("登录奖励表没有此ID"+id); return; } if (!loginRewardModel.LoginAwardDic.ContainsKey(id)) { DebugEx.LogError("登录条目字典查无次ID" + id); return; } var LoginAward = loginRewardModel.LoginAwardDic[id]; int rewardNum = loginRewardModel.GetRewardNumber(loginRewardModel.SelectedNow, id);//已领奖次数 int carryOutNum = loginRewardModel.GetCarryOutNum(loginRewardModel.SelectedNow, id);//已完成次数 int number = LoginAward.TotalTimes / LoginAward.SingleTimes; var RemainingNum = 0; if (LoginAward.TotalTimes - rewardNum > 0) { RemainingNum = (LoginAward.TotalTimes - rewardNum) / LoginAward.SingleTimes; } if (LoginAward.TotalTimes - carryOutNum > 0 && RemainingNum > 0) { m_Text2.text = Language.Get("OSA_1", RemainingNum); } else { m_Text2.text = Language.Get("OSA_4"); } if (LoginAward.WeekPartyItem.Length >= 0) { var Item = LoginAward.WeekPartyItem[0]; ItemCellModel cellModel = new ItemCellModel(Item.ItemID, true, (ulong)Item.ItemCnt, Item.IsBind); m_ItemCell.Init(cellModel); m_ItemCell.cellBtn.SetListener(() => { ItemAttrData attrData = new ItemAttrData(Item.ItemID, false, (ulong)Item.ItemCnt, -1, Item.IsBind); itemTipsModel.SetItemTipsModel(attrData); }); } bool IsOpenPreviewTime = OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.LoginReward); if (loginRewardModel.SelectedNow != loginRewardModel.DayNow || IsOpenPreviewTime) { if (loginRewardModel.SelectedNow > loginRewardModel.DayNow || IsOpenPreviewTime)//还未到达的天数 { m_Btn.gameObject.SetActive(false); m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(false); } else//已过的天数 { int TaypeNumber = 0; if (carryOutNum - rewardNum > 0) { TaypeNumber = (carryOutNum - rewardNum) / LoginAward.SingleTimes; } if (TaypeNumber > 0)//可领 { //m_TextNumber.gameObject.SetActive(true); //m_TextNumber.text = SetText(ID); m_Btn.gameObject.SetActive(true); UIEffect uieffect = m_Btn.GetComponent<UIEffect>(); uieffect.Play(); m_BtnText.text = Language.Get("RealmPractice109");//领取 m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(false); m_Btn.SetListener(() => { bool _bool = loginRewardModel.IsOpenFeatures(); if (_bool) { loginRewardModel.SendLoginAwardInfo(loginRewardModel.SelectedNow, id); } else { SysNotifyMgr.Instance.ShowTip("SevenDayOver2"); } }); } else { if (rewardNum >= number)//已经领完 { m_Btn.gameObject.SetActive(false); m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(true); } else//未到达 { m_Btn.gameObject.SetActive(false); m_Miss.SetActive(false); m_Reach.SetActive(true); m_Draw.SetActive(false); } } } } else { int TaypeNumber = 0; if (carryOutNum - rewardNum > 0) { TaypeNumber = (carryOutNum - rewardNum) / LoginAward.SingleTimes; } if (TaypeNumber > 0)//可领 { //m_TextNumber.gameObject.SetActive(true); //m_TextNumber.text = SetText(ID); m_Btn.gameObject.SetActive(true); UIEffect uieffect = m_Btn.GetComponent<UIEffect>(); uieffect.Play(); m_BtnText.text = Language.Get("RealmPractice109");//领取 m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(false); m_Btn.SetListener(() => { bool _bool = loginRewardModel.IsOpenFeatures(); if (_bool) { loginRewardModel.SendLoginAwardInfo(loginRewardModel.SelectedNow, id); } else { SysNotifyMgr.Instance.ShowTip("SevenDayOver2"); } }); } else { if (rewardNum >= LoginAward.TotalTimes)//已经领完 { m_Btn.gameObject.SetActive(false); m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(true); } else//未到达(前往) { //m_TextNumber.gameObject.SetActive(true); //m_TextNumber.text = SetText(ID); m_Btn.gameObject.SetActive(true); m_BtnText.text = Language.Get("RealmPractice108");//前往 UIEffect uieffect = m_Btn.GetComponent<UIEffect>(); uieffect.Stop(); m_Miss.SetActive(false); m_Reach.SetActive(false); m_Draw.SetActive(false); m_Btn.SetListener(() => { WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump); }); } } } } } System/OpenServerActivity/ImpactRankModel.cs
@@ -833,6 +833,8 @@ FestivalRedpack, [Header("幸运鉴宝")] LuckyTreasure, [Header("登录奖励")] LoginReward, } } System/OpenServerActivity/LoginRewardModel.cs
@@ -8,9 +8,11 @@ using Snxxz.UI; //登录奖励 [XLua.LuaCallCSharp] public class LoginRewardModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk public class LoginRewardModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity { public event Action LoginAwardInfoUpdate;//领奖记录变更 public event Action<int> onStateUpate; public Dictionary<int, WeekPartyDayInfoClass> LoginAwardInfoDic = new Dictionary<int, WeekPartyDayInfoClass>();//领奖信息 public Dictionary<int, WeekPartyDayClass> LoginAwardDayDic = new Dictionary<int, WeekPartyDayClass>();//每天的奖励信息 public Dictionary<int, WeekPartyActionClass> LoginAwardDic = new Dictionary<int, WeekPartyActionClass>();//活动模板信息 @@ -18,12 +20,47 @@ public int DayNow = 0;//当前天 public int SelectedNow = 0;//获取选择天 public int LimitLV = 0;//限制等级 private const int Redpoint_key = 6666;//登录奖励红点 public Redpoint redPointStre = new Redpoint(666, Redpoint_key); private const int Redpoint_key = 20921;//登录奖励红点 public Redpoint redPointStre = new Redpoint(209, Redpoint_key); public bool IsOpen { get { return OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.LoginReward); } } public bool IsAdvance { get { return OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.LoginReward); } } public bool priorityOpen { get { if (redPointStre.state == RedPointState.GetReward || redPointStre.state == RedPointState.Simple) { return true; } else { return false; } } } public override void Init() { OpenServerActivityCenter.Instance.Register(21, this); OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent; } public void OnBeforePlayerDataInitialize() { @@ -34,6 +71,45 @@ { GetDay(); SetRedPoint(); OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent; OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent; OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent; OperationTimeHepler.Instance.dayResetEvent += DayResetEvent; } private void OperationEndEvent(Operation arg1, int arg2) { if (arg1 == Operation.LoginReward && arg2 == 0) { if (onStateUpate != null) { onStateUpate(21); } } } private void DayResetEvent(int obj) { if (obj == (int)Operation.LoginReward) { GetDay(); SetRedPoint(); if (onStateUpate != null) { onStateUpate(21); } } } private void OperationStartEvent(Operation arg1, int arg2) { if (arg1 == Operation.LoginReward) { GetDay(); SetRedPoint(); if (arg2 == 0 && onStateUpate != null) { onStateUpate(21); } } } public override void UnInit() @@ -44,8 +120,8 @@ public void LoginAwardInfo(HAA0C_tagMCActLoginAwardInfo info)//登录奖励活动信息 { LimitLV = info.LimitLV; LoginAwardDayDic.Clear(); LoginAwardDic.Clear(); //LoginAwardDayDic.Clear(); //LoginAwardDic.Clear(); for (int i = 0; i < info.DayCnt; i++)//每天的奖励信息 { int Index = i; @@ -143,6 +219,7 @@ LoginAwardInfoDic.Add(dayindex, loginAwardPlayerClass); } } GetDay(); SetRedPoint(); if (LoginAwardInfoUpdate != null) { @@ -211,7 +288,7 @@ } private void SetRedPointID()//设置红点ID { if (RedPointDic.Count > 0) if (RedPointDic.Count >= 7) { return; } @@ -259,19 +336,36 @@ return RedPointState.GetReward; } } } return RedPointState.None; } private void GetDay() public void GetDay() { OperationBase operationBase; if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.LoginReward, out operationBase)) { DayNow = (operationBase as EventDaysTime).GetInDayNow(); int inday = (operationBase as EventDaysTime).GetInDayNow(); if (LoginAwardInfoDic.Count <= 0 && inday <= 0) { DayNow = 0; } else if (inday >= 0 && LoginAwardInfoDic.Count > 0 && inday < LoginAwardInfoDic.Count) { DayNow = inday; } else if (LoginAwardInfoDic.Count > 0 && inday >= LoginAwardInfoDic.Count) { DayNow = LoginAwardInfoDic.Count - 1; } } } public bool IsOpenFeatures() { bool Isbool = false; Isbool = (OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.LoginReward) || OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.LoginReward)); return Isbool; } } System/OpenServerActivity/LoginRewardWin.cs
@@ -6,10 +6,12 @@ using System; using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { namespace Snxxz.UI { [XLua.Hotfix] public class LoginRewardWin : Window { @@ -32,7 +34,9 @@ protected override void OnPreOpen() { ChooseDay(); ChooseDay(); OnCreateGridLineCell_1(m_ScrollerController_1); OnCreateGridLineCell_2(m_ScrollerController_2); if (loginRewardModel.SelectedNow >= 3) @@ -42,7 +46,9 @@ } protected override void OnAfterOpen() { { OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent; OperationTimeHepler.Instance.dayResetEvent += DayResetEvent; loginRewardModel.LoginAwardInfoUpdate += LoginAwardInfoUpdate; } @@ -52,11 +58,34 @@ protected override void OnAfterClose() { OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent; OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent; loginRewardModel.LoginAwardInfoUpdate -= LoginAwardInfoUpdate; } private void OperationStartEvent(Operation arg1, int arg2) { if (arg1 == Operation.LoginReward) { loginRewardModel.GetDay(); m_ScrollerController_1.m_Scorller.RefreshActiveCellViews();//刷新可见 m_ScrollerController_2.m_Scorller.RefreshActiveCellViews();//刷新可见 } } private void DayResetEvent(int obj) { if (obj == (int)Operation.LoginReward) { loginRewardModel.GetDay(); m_ScrollerController_1.m_Scorller.RefreshActiveCellViews();//刷新可见 m_ScrollerController_2.m_Scorller.RefreshActiveCellViews();//刷新可见 } } private void LoginAwardInfoUpdate() { loginRewardModel.GetDay(); m_ScrollerController_1.m_Scorller.RefreshActiveCellViews(); m_ScrollerController_2.m_Scorller.RefreshActiveCellViews(); } @@ -75,7 +104,7 @@ int Index = cell.index; LogInDayNumber logInDayNumber = cell.GetComponent<LogInDayNumber>(); logInDayNumber.SetInDayNumber(Index, loginRewardModel.SelectedNow); logInDayNumber.DayNumberBtn.SetListener(()=> logInDayNumber.DayNumberBtn.SetListener(() => { if (loginRewardModel.SelectedNow != Index) { @@ -87,10 +116,11 @@ } void OnCreateGridLineCell_2(ScrollerController gridCtrl) { ToAddSorting(); gridCtrl.Refresh(); for (int i = 0; i < 10; i++) for (int i = 0; i < SortList.Count; i++) { gridCtrl.AddCell(ScrollerDataType.Header, i); gridCtrl.AddCell(ScrollerDataType.Header, SortList[i]); } gridCtrl.Restart(); } @@ -98,11 +128,7 @@ { int Index = cell.index; EntryInformationCell entryInformationCell = cell.GetComponent<EntryInformationCell>(); entryInformationCell.GetDisplayInformation(1); entryInformationCell.mButton.SetListener(()=> { // m_ScrollerController_2.m_Scorller.RefreshActiveCellViews();//刷新可见 }); entryInformationCell.GetDisplayInformation(Index); } public void ChooseDay()//选择天 { @@ -137,7 +163,93 @@ } int Compare(int x, int y)//数组排列 { bool havex1 = IsReceive(x); bool havey1 = IsReceive(y); if (havex1.CompareTo(havey1) != 0) { return -havex1.CompareTo(havey1); } bool havex2 = Undone(x); bool havey2 = Undone(y); if (havex2.CompareTo(havey2) != 0) { return -havex2.CompareTo(havey2); } bool havex3 = Completed(x); bool havey3 = Completed(y); if (havex3.CompareTo(havey3) != 0) { return -havex3.CompareTo(havey3); } int havex4 = SizeId(x); int havey4 = SizeId(y); if (havex4.CompareTo(havey4) != 0) { return havex4.CompareTo(havey4); } return 1; } private bool IsReceive(int ID)//可领取 { bool Bool = false; if (loginRewardModel.LoginAwardDic.ContainsKey(ID)) { var loginAward = loginRewardModel.LoginAwardDic[ID]; int number = loginAward.TotalTimes / loginAward.SingleTimes; int rewardNum = loginRewardModel.GetRewardNumber(loginRewardModel.SelectedNow, ID);//已领奖次数 int carryOutNum = loginRewardModel.GetCarryOutNum(loginRewardModel.SelectedNow, ID);//已完成次数 int TaypeNumber = 0; if (carryOutNum - rewardNum > 0) { TaypeNumber = (carryOutNum - rewardNum) / loginAward.SingleTimes; } if (TaypeNumber > 0) { Bool = true; } } return Bool; } private bool Undone(int ID)//未完成 { bool Bool = false; if (loginRewardModel.LoginAwardDic.ContainsKey(ID)) { var loginAward = loginRewardModel.LoginAwardDic[ID]; int number = loginAward.TotalTimes / loginAward.SingleTimes; int rewardNum = loginRewardModel.GetRewardNumber(loginRewardModel.SelectedNow, ID);//已领奖次数 int carryOutNum = loginRewardModel.GetCarryOutNum(loginRewardModel.SelectedNow, ID);//已完成次数 if (loginAward.TotalTimes > rewardNum) { Bool = true; } } return Bool; } private bool Completed(int ID)//已领取 { bool Bool = false; if (loginRewardModel.LoginAwardDic.ContainsKey(ID)) { var loginAward = loginRewardModel.LoginAwardDic[ID]; int rewardNum = loginRewardModel.GetRewardNumber(loginRewardModel.SelectedNow, ID);//已领奖次数 int carryOutNum = loginRewardModel.GetCarryOutNum(loginRewardModel.SelectedNow, ID);//已完成次数 if (rewardNum >= loginAward.TotalTimes) { Bool = true; } } return Bool; } private int SizeId(int ID) { int index = 1; var config = Config.Instance.Get<LoginRewardConfig>(ID); if (config != null) { index = config.order; } return index; } } System/OpenServerActivity/OpenServerActivityWin.cs
@@ -633,6 +633,11 @@ case 19: WindowCenter.Instance.Open<FestivalRedpackWin>(true); break; case 20: break; case 21: WindowCenter.Instance.Open<LoginRewardWin>(true); break; } }