Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -479,6 +479,8 @@ #endregion Register(typeof(HA3B3_tagMCEquipPartPlusInfo), typeof(DTCA3B3_tagMCEquipPartPlusInfo));//装备强化 Register(typeof(HA502_tagMCFamilyActivityExchangeResult), typeof(DTCA502_tagMCFamilyActivityExchangeResult));//装备换活跃度 Register(typeof(HAA24_tagMCDayFreeGoldGiftState), typeof(DTCAA24_tagMCDayFreeGoldGiftState)); } private static void Register(Type _pack, Type _business) Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA110_tagMCCoinToGoldCountInfo.cs
@@ -16,6 +16,7 @@ base.Done(vNetPack); var package = vNetPack as HA110_tagMCCoinToGoldCountInfo; ModelCenter.Instance.GetModel<VipModel>().UpdateRechargeCount(package); ModelCenter.Instance.GetModel<DayPackageItemClassModel>().UpdateRechargeCount(package); } } Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA24_tagMCDayFreeGoldGiftState.cs
@@ -1,11 +1,14 @@ using UnityEngine; using System.Collections; using Snxxz.UI; // AA 24 每日免费直购礼包信息 #tagMCDayFreeGoldGiftState public class DTCAA24_tagMCDayFreeGoldGiftState : DtcBasic { public class DTCAA24_tagMCDayFreeGoldGiftState : DtcBasic { DayPackageItemClassModel dayPackageItemModel { get { return ModelCenter.Instance.GetModel<DayPackageItemClassModel>(); } } public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); HAA24_tagMCDayFreeGoldGiftState vNetData = vNetPack as HAA24_tagMCDayFreeGoldGiftState; HAA24_tagMCDayFreeGoldGiftState vNetData = vNetPack as HAA24_tagMCDayFreeGoldGiftState; dayPackageItemModel.FreeGoldGiftState(vNetData); } } Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA24_tagMCDayFreeGoldGiftState.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: da854f35cebf6054a8a265d69ef59ac1 timeCreated: 1571084282 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA24_tagMCDayFreeGoldGiftState.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 48069d16348ff96458ce82dd803c3f36 timeCreated: 1571084281 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/OpenServerActivity/OpenServerActivityWin.cs
@@ -19,7 +19,7 @@ List<int> m_OpenServerActivities = new List<int>(); Dictionary<int, bool> m_ActivitySpreadDict = new Dictionary<int, bool>(); ImpactRankModel impactRankModel { get { return ModelCenter.Instance.GetModel<ImpactRankModel>(); } } //ImpactRankModel impactRankModel { get { return ModelCenter.Instance.GetModel<ImpactRankModel>(); } } OSRedEnvelopeModel envelopeModel { get { return ModelCenter.Instance.GetModel<OSRedEnvelopeModel>(); } } FairyLeagueModel fairyLeagueModel { get { return ModelCenter.Instance.GetModel<FairyLeagueModel>(); } } OSGiftModel giftModel { get { return ModelCenter.Instance.GetModel<OSGiftModel>(); } } @@ -64,13 +64,13 @@ { m_ActivitySpreadDict[m_OpenServerActivities[i]] = false; } var impactDefaultType = impactRankModel.GetDefaultSelectType(); if (impactRankModel.IsLock(impactDefaultType)) { impactDefaultType = impactRankModel.impactRankSorts[0]; } impactRankModel.presentSelectType = impactDefaultType; impactRankModel.gotoImpactRankType = 0; //var impactDefaultType = impactRankModel.GetDefaultSelectType(); //if (impactRankModel.IsLock(impactDefaultType)) //{ // impactDefaultType = impactRankModel.impactRankSorts[0]; //} //impactRankModel.presentSelectType = impactDefaultType; //impactRankModel.gotoImpactRankType = 0; envelopeModel.selectType = 1; festivalRedpackModel.selectType = 1; monthWeekInvestModel.selectType = monthWeekInvestModel.investTypes[0]; @@ -149,7 +149,7 @@ protected override void OnAfterOpen() { impactRankModel.OSCEffectOpen = false; //impactRankModel.OSCEffectOpen = false; } protected override void OnPreClose() @@ -159,7 +159,7 @@ OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange; GlobalTimeEvent.Instance.secondEvent -= SecondEvent; CloseOtherWin(); impactRankModel.gotoImpactRankType = 0; //impactRankModel.gotoImpactRankType = 0; } protected override void OnAfterClose() @@ -390,10 +390,10 @@ _cell.redpoint.redpointId = (209 * 100 + _order) * 100 + _type; switch (_order) { case 0: _cell.titleTxt.text = Language.Get(StringUtility.Contact("ImpactRankType_", _type)); _cell.SetSelect(_type == impactRankModel.presentSelectType); break; //case 0: // _cell.titleTxt.text = Language.Get(StringUtility.Contact("ImpactRankType_", _type)); // _cell.SetSelect(_type == impactRankModel.presentSelectType); // break; case 2: _cell.titleTxt.text = Language.Get(StringUtility.Contact("OSRedEnvelopeType_", _type)); _cell.SetSelect(_type == envelopeModel.selectType); @@ -431,26 +431,26 @@ } switch (activityId) { case 0: m_ActivityCtrl.AddCell(ScrollerDataType.Header, activityId); if (functionOrder != activityId) { m_ActivitySpreadDict[activityId] = false; break; } if (!m_ActivitySpreadDict[activityId]) { break; } foreach (var _type in impactRankModel.impactRankSorts) { //if (impactRankModel.IsLock(_type)) //{ // continue; //} m_ActivityCtrl.AddCell(ScrollerDataType.Normal, activityId * 100 + _type); } break; //case 0: // m_ActivityCtrl.AddCell(ScrollerDataType.Header, activityId); // if (functionOrder != activityId) // { // m_ActivitySpreadDict[activityId] = false; // break; // } // if (!m_ActivitySpreadDict[activityId]) // { // break; // } //foreach (var _type in impactRankModel.impactRankSorts) //{ // //if (impactRankModel.IsLock(_type)) // //{ // // continue; // //} // m_ActivityCtrl.AddCell(ScrollerDataType.Normal, activityId * 100 + _type); //} //break; case 2: m_ActivityCtrl.AddCell(ScrollerDataType.Header, activityId); if (!m_ActivitySpreadDict[activityId]) @@ -564,14 +564,14 @@ var _type = _index % 100; switch (_order) { case 0: if (impactRankModel.IsLock(_type)) { SysNotifyMgr.Instance.ShowTip("ImpactRankActivityUnOpen"); return; } impactRankModel.presentSelectType = _type; break; //case 0: // if (impactRankModel.IsLock(_type)) // { // SysNotifyMgr.Instance.ShowTip("ImpactRankActivityUnOpen"); // return; // } // impactRankModel.presentSelectType = _type; // break; case 2: envelopeModel.selectType = _type; break; System/Vip/DayPackageItemBehaviour.cs
New file @@ -0,0 +1,97 @@ using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class DayPackageItemBehaviour : MonoBehaviour { [SerializeField] RectTransform m_ContainerOpen; [SerializeField] RectTransform m_ContainerClose; [SerializeField] Text m_MoneyClose; [SerializeField] Text m_MoneyOpen; [SerializeField] Image m_OpenRedpoint; [SerializeField] Image m_CloseRedpoint; [SerializeField] Button m_Select; DayPackageItemClassModel model { get { return ModelCenter.Instance.GetModel<DayPackageItemClassModel>(); } } int selectIndex = -1; private void Awake() { m_Select.onClick.AddListener(Select); } private void OnEnable() { model.selectUpdate += SelectUpdate; model.onStateUpdate += OnStateUpate; } private void OnDisable() { model.selectUpdate -= SelectUpdate; model.onStateUpdate -= OnStateUpate; } private void OnStateUpate(int obj) { DisplayRedpoint(obj); } public void Display(int index) { selectIndex = index; if (index < model.recordIDs.Length) { m_MoneyClose.text = model.GetDayGift(index).money.ToString(); m_MoneyOpen.text = model.GetDayGift(index).money.ToString(); DisplayRedpoint(index); DisplaySelect(); } } void DisplaySelect() { m_ContainerOpen.gameObject.SetActive(model.selectIndex == selectIndex); m_ContainerClose.gameObject.SetActive(model.selectIndex != selectIndex); } void DisplayRedpoint(int index) { m_OpenRedpoint.gameObject.SetActive(false); m_CloseRedpoint.gameObject.SetActive(false); if (index == 0 && model.GetDayGift(index).getCount <= 0) { m_OpenRedpoint.gameObject.SetActive(true); m_CloseRedpoint.gameObject.SetActive(true); } } private void SelectUpdate(int index) { m_ContainerOpen.gameObject.SetActive(index == selectIndex); m_ContainerClose.gameObject.SetActive(index != selectIndex); } private void Select() { if (model.selectIndex != selectIndex && selectIndex != -1) { model.selectIndex = selectIndex; } } } } System/Vip/DayPackageItemBehaviour.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 8df07ee679dca2f44bf26471312d5c00 timeCreated: 1571060576 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Vip/DayPackageItemCell.cs
New file @@ -0,0 +1,17 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Snxxz.UI { public class DayPackageItemCell : CellView { [SerializeField] DayPackageItemBehaviour m_LimitedTimePackage; public void Display(int index) { m_LimitedTimePackage.Display(index); } } } System/Vip/DayPackageItemCell.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 78f4b52f7d094444291e1324830828e9 timeCreated: 1571071496 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Vip/DayPackageModel.cs
New file @@ -0,0 +1,182 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, July 18, 2018 //-------------------------------------------------------- using Snxxz.UI; using System; using System.Collections.Generic; using LitJson; [XLua.LuaCallCSharp] public class DayPackageItemClassModel : Model, IPlayerLoginOk, IOpenServerActivity { int m_SelectIndex = 0; VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } } public int selectIndex { get { return m_SelectIndex; } set { if (m_SelectIndex != value) { m_SelectIndex = value; if (selectUpdate != null) { selectUpdate(value); } } } } public class DayGift { public string title; // 礼包名 public int getCount; // 已获得次数 public int[][] items; public int money; public string orderInfo; } public int[] recordIDs; public Dictionary<int, DayGift> m_RechargeDict = new Dictionary<int, DayGift>(); public event Action<int> selectUpdate; public event Action<int> onStateUpdate; public override void Init() { OpenServerActivityCenter.Instance.Register(23, this); recordIDs = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("DayFreeGoldGift").Numerical2); if (!m_RechargeDict.ContainsKey(0)) { var _sortArray = JsonMapper.ToObject<int[][]>(FuncConfigConfig.Get("DayFreeGoldGift").Numerical1); foreach (int recordID in recordIDs) { if (recordID == 0) { m_RechargeDict[recordID] = new DayGift() { title = "免费礼包", items = _sortArray, getCount = 0, money = 0, }; } else { var ctg = CTGConfig.Get(recordID); OrderInfoConfig config; vipModel.TryGetOrderInfo(recordID, out config); m_RechargeDict[recordID] = new DayGift() { title = ctg.Title, items = LitJson.JsonMapper.ToObject<int[][]>(ctg.GainItemList), getCount = 0, money = (int)config.PayRMBNum, orderInfo = config.OrderInfo, }; } } } } private const int Redpoint_key1 = 20923; public Redpoint redPointStre1 = new Redpoint(209, Redpoint_key1); //每日免费礼包 public bool IsOpen { get { return FuncOpen.Instance.IsFuncOpen(185); } } public bool priorityOpen { get { return redPointStre1.state == RedPointState.Simple || redPointStre1.state == RedPointState.GetReward; } } public bool IsAdvance { get { return false; } } public override void UnInit() { } public void OnPlayerLoginOk() { IsShowTip(); } public DayGift GetDayGift(int index) { return m_RechargeDict[recordIDs[index]]; } public void IsShowTip() { if (m_RechargeDict.ContainsKey(0) && m_RechargeDict[0].getCount == 0) redPointStre1.state = RedPointState.Simple; else redPointStre1.state = RedPointState.None; } public void UpdateRechargeCount(HA110_tagMCCoinToGoldCountInfo package) { for (int i = 0; i < package.RecordCount; i++) { var _data = package.CTGCountInfoList[i]; if (m_RechargeDict.ContainsKey(_data.RecordID)) m_RechargeDict[_data.RecordID].getCount = _data.TodayPayCount; } if (onStateUpdate != null) onStateUpdate(selectIndex); } public void FreeGoldGiftState(HAA24_tagMCDayFreeGoldGiftState package) { m_RechargeDict[0].getCount = package.DayFreeGoldGiftState; if (onStateUpdate != null) onStateUpdate(selectIndex); } public void OpenFreePlat(string Title, float RMBNum, string OrderInfo) { if (!WindowCenter.Instance.IsOpen<GotoChargeWin>()) { WindowCenter.Instance.Open<GotoChargeWin>(true); } SDKUtility.Instance.FreePlatformPay(Title, RMBNum, OrderInfo); // DesignDebug.LogErrorFormat("礼包标题{0},所需金额{1},商品编号{2}", Title, RMBNum, OrderInfo); } public void RequestReward() { var sendInfo = new CA504_tagCMPlayerGetReward(); sendInfo.RewardType = (int)GotServerRewardType.Def_RewardType_DayPackageFree; sendInfo.DataEx = 0; sendInfo.DataExStrLen = 0; sendInfo.DataExStr = string.Empty; GameNetSystem.Instance.SendInfo(sendInfo); } } System/Vip/DayPackageModel.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 025e0d39dfce1fd4ab1215e437c29898 timeCreated: 1571055942 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Vip/DayPackageWin.cs
New file @@ -0,0 +1,250 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, July 18, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //每日礼包 namespace Snxxz.UI { public class DayPackageWin : Window { [SerializeField] Text m_Text_PackageName;//礼包名 [SerializeField] Button m_Close_Btn;//关闭按钮 [SerializeField] Button m_Buy_Btn;//购买按钮 [SerializeField] Text m_Buy_Text;//按钮文字,免费领取 [SerializeField] GameObject m_BoughtObj;//已购买 [SerializeField] Transform m_Horizontal; [SerializeField] Text m_Text_Get;//已领取文字 [SerializeField] RectTransform m_ContaienrLess; [SerializeField] DayPackageItemBehaviour[] m_DayPackageItems; [SerializeField] RectTransform m_ContainerMore; [SerializeField] ScrollerController m_ScrollerControl; public int CDTIME = 20; private float time = 0; #region Built-in DayPackageItemClassModel dayPackageItemModel { get { return ModelCenter.Instance.GetModel<DayPackageItemClassModel>(); } } protected override void BindController() { } protected override void AddListeners() { m_Close_Btn.AddListener(() => { Close(); if (!WindowCenter.Instance.IsOpen<MainInterfaceWin>()) { WindowCenter.Instance.Open<MainInterfaceWin>(); } }); m_ScrollerControl.OnRefreshCell += OnRefreshCell; } private void OnRefreshCell(ScrollerDataType type, CellView cell) { var accumulateRechargeCell = cell as DayPackageItemCell; accumulateRechargeCell.Display(cell.index); } protected override void OnPreOpen() { dayPackageItemModel.selectIndex = GetSelect(); OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent; dayPackageItemModel.selectUpdate += SelectChanged; time = 0; m_Buy_Btn.interactable = true; DisPlay(dayPackageItemModel.selectIndex); dayPackageItemModel.onStateUpdate += onStateUpdate; } private void onStateUpdate(int select) { DisPlay(select); } private void SelectChanged(int select) { DisPlay(select); } protected override void OnAfterOpen() { if (dayPackageItemModel.redPointStre1.state == RedPointState.Simple) { int GetDayOfYear = DateTime.Now.DayOfYear; LocalSave.SetInt("IsOpenLimitedTime", GetDayOfYear); dayPackageItemModel.IsShowTip(); } } private void OperationTimeUpdateEvent(Operation type) { if (type == Operation.GiftPackage) { DisPlay(); } } private int GetSelect() { for (int i = 0; i < dayPackageItemModel.recordIDs.Length; i++) { if (dayPackageItemModel.m_RechargeDict[dayPackageItemModel.recordIDs[i]].getCount == 0) return i; } return 0; } private void DisPlay(int _index = 0) { for (int i = 0; i < m_Horizontal.childCount; i++) { m_Horizontal.GetChild(i).gameObject.SetActive(false); } m_Text_Get.gameObject.SetActive(false); if (_index > dayPackageItemModel.recordIDs.Length) return; int recordID = dayPackageItemModel.recordIDs[_index]; var gift = dayPackageItemModel.m_RechargeDict[recordID]; m_Text_PackageName.text = gift.title; //m_Text_PackageName.text = gift.money + Language.Get("RMB_Package_Z"); m_Buy_Btn.RemoveAllListeners(); m_Buy_Btn.AddListener(() => { //0为免费领取 if (recordID == 0) { dayPackageItemModel.RequestReward(); } else { m_Buy_Btn.interactable = false; time = 0; dayPackageItemModel.OpenFreePlat(gift.title, gift.money, gift.orderInfo); } }); if (gift.getCount > 0) { m_Buy_Btn.gameObject.SetActive(false); m_BoughtObj.SetActive(true); if (recordID == 0) { m_BoughtObj.SetActive(false); m_Text_Get.gameObject.SetActive(true); } } else { m_Buy_Btn.gameObject.SetActive(true); m_BoughtObj.SetActive(false); m_Buy_Text.text = recordID == 0 ? "免费领取": "购买"; } var items = gift.items; for (int type = 0; type < items.Length; type++) { if (type < m_Horizontal.childCount) { int itemId = items[type][0]; var LimitedTimeItem_Info = m_Horizontal.GetChild(type); LimitedTimeItem_Info.gameObject.SetActive(true); LimitedTimeItemInfo limitedTimeItemInfo = LimitedTimeItem_Info.GetComponent<LimitedTimeItemInfo>(); var ItemCell = limitedTimeItemInfo.Item_Cell; var Item = ItemConfig.Get(itemId); ItemCellModel cellModel = new ItemCellModel(itemId, true, (ulong)items[type][1]); ItemCell.Init(cellModel); ItemCell.button.RemoveAllListeners(); ItemCell.button.AddListener(() => { ItemTipUtility.Show(itemId); }); } } DisplayRewards(); } private void DisplayRewards() { var reward = dayPackageItemModel.recordIDs; m_ContaienrLess.gameObject.SetActive(reward.Length <= 4); m_ContainerMore.gameObject.SetActive(reward.Length > 4); if (reward.Length <= 4) { for (int i = 0; i < m_DayPackageItems.Length; i++) { if (i < reward.Length) { m_DayPackageItems[i].gameObject.SetActive(true); m_DayPackageItems[i].Display(i); } else { m_DayPackageItems[i].gameObject.SetActive(false); } } } else if (reward.Length > 4) { m_ScrollerControl.Refresh(); for (int i = 0; i < reward.Length; i++) { m_ScrollerControl.AddCell(ScrollerDataType.Header, i); } m_ScrollerControl.Restart(); m_ScrollerControl.JumpIndex(dayPackageItemModel.selectIndex); } } protected override void OnPreClose() { OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent; dayPackageItemModel.selectUpdate -= SelectChanged; dayPackageItemModel.onStateUpdate -= onStateUpdate; } protected override void OnAfterClose() { } protected override void LateUpdate() { if (!m_Buy_Btn.interactable) { time += Time.deltaTime; if (time >= CDTIME) { m_Buy_Btn.interactable = true; time = 0; } } } #endregion } } System/Vip/DayPackageWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 69f65c3b082dce447b83d4fd0c579763 timeCreated: 1571049453 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Utility/EnumHelper.cs
@@ -1104,6 +1104,7 @@ Def_RewardType_FeastWeekPartyPoint = 26, //领取节日巡礼积分奖励26 Def_RewardType_FairyAdventuresAward = 27,//缥缈奇遇 Def_RewardType_HistoryChargeAward = 28,//累计充值 Def_RewardType_DayPackageFree = 29,//每日免费礼包 } [XLua.LuaCallCSharp]