少年修仙传客户端代码仓库
Hale Cai
2019-08-09 68efb676a739e7556780f5867c17442c7405cb11
8194 【前端】【主干】限时礼包改多档位类同每日充值界面
4个文件已添加
3个文件已修改
279 ■■■■■ 已修改文件
System/Vip/LimitedTimePackageItemBehaviour.cs 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/LimitedTimePackageItemBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/LimitedTimePackageItemCell.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/LimitedTimePackageItemCell.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/LimitedTimePackageModel.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/LimitedTimePackageWin.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/GiftPackageClass.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/LimitedTimePackageItemBehaviour.cs
New file
@@ -0,0 +1,119 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class LimitedTimePackageItemBehaviour : 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;
        LimitedTimePackageItemClassModel model
        {
            get { return ModelCenter.Instance.GetModel<LimitedTimePackageItemClassModel>(); }
        }
        int selectIndex = -1;
        private void Awake()
        {
            m_Select.onClick.AddListener(Select);
        }
        private void OnEnable()
        {
            model.selectUpdate += SelectUpdate;
            // model.accumulateRechargeUpdate += AccumulateRechargeUpdate;
            model.onStateUpdate += OnStateUpate;
        }
        private void OnDisable()
        {
            model.selectUpdate -= SelectUpdate;
            // model.accumulateRechargeUpdate -= AccumulateRechargeUpdate;
            model.onStateUpdate -= OnStateUpate;
        }
        private void OnStateUpate(int obj)
        {
            DisplayRedpoint();
        }
        private void AccumulateRechargeUpdate()
        {
            DisplayRedpoint();
        }
        public void Display(int index)
        {
            selectIndex = index;
            OperationBase operationBase;
            if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.GiftPackage, out operationBase))
            {
                GiftPackageClass operation = operationBase as GiftPackageClass;
                GiftPackageClass.Gift_Package reward;
                if (operation.TryGetGift(TimeUtility.ServerNow, out reward))
                {
                    if (index < reward.gifts.Length)
                    {
                        var recharge = reward.gifts[index];
                        m_MoneyClose.text = reward.gifts[index].rmb.ToString();
                        m_MoneyOpen.text = reward.gifts[index].rmb.ToString();
                        DisplayRedpoint();
                        DisplaySelect();
                    }
                }
            }
        }
        void DisplaySelect()
        {
            m_ContainerOpen.gameObject.SetActive(model.selectIndex == selectIndex);
            m_ContainerClose.gameObject.SetActive(model.selectIndex != selectIndex);
        }
        void DisplayRedpoint()
        {
            OperationBase operationBase;
            bool satisfyGet = false;
            if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.GiftPackage, out operationBase))
            {
                GiftPackageClass operation = operationBase as GiftPackageClass;
                GiftPackageClass.Gift_Package reward;
                if (operation.TryGetGift(TimeUtility.ServerNow, out reward))
                {
                    if (selectIndex < reward.gifts.Length && selectIndex >= 0)
                    {
                        var recharge = reward.gifts[selectIndex];
                        satisfyGet = model.IsExpired(selectIndex) && model.IsOpen;
                    }
                }
            }
            m_OpenRedpoint.gameObject.SetActive(satisfyGet);
            m_CloseRedpoint.gameObject.SetActive(satisfyGet);
        }
        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/LimitedTimePackageItemBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: a459a5b1953711d4485b92ae9669bdf9
timeCreated: 1565187180
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Vip/LimitedTimePackageItemCell.cs
New file
@@ -0,0 +1,17 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Snxxz.UI
{
    public class LimitedTimePackageItemCell : CellView
    {
        [SerializeField] LimitedTimePackageItemBehaviour m_LimitedTimePackage;
        public void Display(int index)
        {
            m_LimitedTimePackage.Display(index);
        }
    }
}
System/Vip/LimitedTimePackageItemCell.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 0685125230372a1499a223a15cd89b20
timeCreated: 1565187804
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Vip/LimitedTimePackageModel.cs
@@ -4,15 +4,28 @@
//--------------------------------------------------------
using Snxxz.UI;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using UnityEngine;
[XLua.LuaCallCSharp]
    public class LimitedTimePackageItemClassModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
public class LimitedTimePackageItemClassModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
{
    int m_SelectIndex = 0;
    public int selectIndex
    {
        get { return m_SelectIndex; }
        set
        {
            if (m_SelectIndex != value)
            {
                if (selectUpdate != null)
                {
                    selectUpdate(value);
                }
            }
            m_SelectIndex = value;
        }
    }
    public event Action<int> selectUpdate;
    public Dictionary<int, int> DicBuyPackage = new Dictionary<int, int>();
    public event Action UpdateLimitedTimePackageItem;
    public event Action<int> onStateUpdate;
@@ -82,7 +95,7 @@
    {
        if (obj == Operation.GiftPackage)
        {
           // IsShowTip();
            // IsShowTip();
            if (onStateUpdate != null)
            {
                onStateUpdate(7);
@@ -111,7 +124,7 @@
        bool Isbool = !IsExpired();
        if (day != GetDayOfYear && !IsExpired())
        {
         //   LocalSave.SetInt("IsOpenLimitedTime", GetDayOfYear);
            //   LocalSave.SetInt("IsOpenLimitedTime", GetDayOfYear);
            redPointStre1.state = RedPointState.Simple;
        }
        else
@@ -153,10 +166,11 @@
        //  DesignDebug.LogErrorFormat("礼包标题{0},所需金额{1},商品编号{2}", Title, RMBNum, OrderInfo);
    }
    public bool IsExpired()
    public bool IsExpired(int index = 0)
    {
        bool IsSatisfyAliveCondition = false;
        IsSatisfyAliveCondition = (OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.GiftPackage) || OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.GiftPackage));
        IsSatisfyAliveCondition = (OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.GiftPackage)
         || OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.GiftPackage));
        bool IsBuyBool = false;
        OperationBase operationBase;
        if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.GiftPackage, out operationBase))
@@ -167,8 +181,8 @@
            {
                if (gift.gifts.Length > 0)
                {
                    int BuyCountLimit = gift.gifts[0].limitNum;//限购数量
                    int GiftID = gift.gifts[0].id;//礼包ID
                    int BuyCountLimit = gift.gifts[index].limitNum;//限购数量
                    int GiftID = gift.gifts[index].id;//礼包ID
                    if (DicBuyPackage.ContainsKey(GiftID) && DicBuyPackage[GiftID] >= BuyCountLimit)
                    {
                        IsBuyBool = true;
System/Vip/LimitedTimePackageWin.cs
@@ -21,6 +21,11 @@
        [SerializeField] GameObject m_BoughtObj;//已购买
        [SerializeField] Transform m_Horizontal;
        [SerializeField] RectTransform m_ContaienrLess;
        [SerializeField] LimitedTimePackageItemBehaviour[] m_LimitedTimePackageItems;
        [SerializeField] RectTransform m_ContainerMore;
        [SerializeField] ScrollerController m_ScrollerControl;
        [SerializeField] Text m_Money1;//原价
        [SerializeField] Text m_Money2;//现价
        [SerializeField] Text m_Text_ActivityTimeTo;//活动时间
@@ -28,7 +33,7 @@
        private float time = 0;
        #region Built-in
        LimitedTimePackageItemClassModel limitedTimePackageItemModel { get { return ModelCenter.Instance.GetModel<LimitedTimePackageItemClassModel>(); } }
        protected override void BindController()
        {
        }
@@ -51,9 +56,15 @@
            OperationTimeHepler.Instance.operationTimeUpdateEvent += OperationTimeUpdateEvent;
            limitedTimePackageItemModel.UpdateLimitedTimePackageItem += UpdateLimitedTimePackageItem;
            GlobalTimeEvent.Instance.secondEvent += secondEvent;
            limitedTimePackageItemModel.selectUpdate += SelectChanged;
            time = 0;
            m_Buy_Btn.interactable = true;
            DisPlay();
        }
        private void SelectChanged(int select)
        {
            DisPlay(select);
        }
        protected override void OnAfterOpen()
@@ -64,7 +75,6 @@
                LocalSave.SetInt("IsOpenLimitedTime", GetDayOfYear);
                limitedTimePackageItemModel.IsShowTip();
            }
        }
        private void UpdateLimitedTimePackageItem()
@@ -80,7 +90,7 @@
            }
        }
        private void DisPlay()
        private void DisPlay(int _index = 0)
        {
            for (int i = 0; i < m_Horizontal.childCount; i++)
            {
@@ -93,15 +103,15 @@
                GiftPackageClass.Gift_Package gift;
                if (operation.TryGetGift(TimeUtility.ServerNow, out gift))
                {
                    if (gift.gifts.Length > 0)
                    if (gift.gifts.Length > 0 && _index < gift.gifts.Length)
                    {
                        string str = string.Empty;
                        str = gift.gifts[0].rmb + Language.Get("RMB_Package_Z");
                        str = gift.gifts[_index].rmb + Language.Get("RMB_Package_Z");
                        m_Text_PackageName.text = str;
                        m_Money1.text = gift.gifts[0].rmbOriginal + Language.Get("RMB_Z");//原价
                        m_Money2.text = gift.gifts[0].rmb + Language.Get("RMB_Z");//现价
                        int BuyCountLimit = gift.gifts[0].limitNum;//限购数量
                        int GiftID = gift.gifts[0].id;//礼包ID
                        m_Money1.text = gift.gifts[_index].rmbOriginal + Language.Get("RMB_Z");//原价
                        m_Money2.text = gift.gifts[_index].rmb + Language.Get("RMB_Z");//现价
                        int BuyCountLimit = gift.gifts[_index].limitNum;//限购数量
                        int GiftID = gift.gifts[_index].id;//礼包ID
                        m_Buy_Btn.RemoveAllListeners();
                        m_Buy_Btn.AddListener(() =>
                        {
@@ -125,7 +135,7 @@
                                {
                                    m_Buy_Btn.interactable = false;
                                    time = 0;
                                    limitedTimePackageItemModel.OpenFreePlat(str, gift.gifts[0].rmb, gift.gifts[0].OrderInfo);
                                    limitedTimePackageItemModel.OpenFreePlat(str, gift.gifts[_index].rmb, gift.gifts[_index].OrderInfo);
                                    return;
                                }
@@ -147,7 +157,7 @@
                            m_Buy_Btn.gameObject.SetActive(true);
                            m_BoughtObj.SetActive(false);
                        }
                        var items = gift.gifts[0].items;
                        var items = gift.gifts[_index].items;
                        for (int i = 0; i < items.Length; i++)
                        {
                            int type = i;
@@ -180,14 +190,55 @@
                }
            }
            DisplaySurplusTime();
            DisplayRewards();
        }
        private void DisplayRewards()
        {
            OperationBase operationBase;
            GiftPackageClass.Gift_Package reward = default(GiftPackageClass.Gift_Package);
            if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.GiftPackage, out operationBase))
            {
                var operation = operationBase as GiftPackageClass;
                operation.TryGetGift(TimeUtility.ServerNow, out reward);
            }
            m_ContaienrLess.gameObject.SetActive(reward.gifts.Length <= 4);
            m_ContainerMore.gameObject.SetActive(reward.gifts.Length > 4);
            if (reward.gifts.Length <= 4)
            {
                for (int i = 0; i < m_LimitedTimePackageItems.Length; i++)
                {
                    if (i < reward.gifts.Length)
                    {
                        m_LimitedTimePackageItems[i].gameObject.SetActive(true);
                        m_LimitedTimePackageItems[i].Display(i);
                    }
                    else
                    {
                        m_LimitedTimePackageItems[i].gameObject.SetActive(false);
                    }
                }
            }
            else if (reward.gifts.Length > 4)
            {
                m_ScrollerControl.Refresh();
                for (int i = 0; i < reward.gifts.Length; i++)
                {
                    m_ScrollerControl.AddCell(ScrollerDataType.Header, i);
                }
                m_ScrollerControl.Restart();
                m_ScrollerControl.JumpIndex(limitedTimePackageItemModel.selectIndex);
            }
        }
        protected override void OnPreClose()
        {
            OperationTimeHepler.Instance.operationTimeUpdateEvent -= OperationTimeUpdateEvent;
            limitedTimePackageItemModel.UpdateLimitedTimePackageItem -= UpdateLimitedTimePackageItem;
            GlobalTimeEvent.Instance.secondEvent -= secondEvent;
            limitedTimePackageItemModel.selectUpdate -= SelectChanged;
        }
System/Welfare/GiftPackageClass.cs
@@ -1,7 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Snxxz.UI
{
    public class GiftPackageClass : OperationBase
@@ -102,5 +102,5 @@
            public bool isMainItem;
        }
    }
}
}