少年修仙传客户端代码仓库
client_linchunjie
2019-02-13 9d95a715e57766db8ea13f81c1caa20a133e4c63
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
14个文件已添加
6个文件已修改
731 ■■■■■ 已修改文件
System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOnePlayerInfo.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneWin.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossSeverOneVsOneBuyMatchTimesWin.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/AutoTreasureAwardsRow.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/AutoTreasureAwardsRow.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/AutomaticTreasureWin.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/AutomaticTreasureWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/ImpactRankModel.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LuckyAwardsGroup.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LuckyAwardsGroup.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LuckyResultInfo.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LuckyResultInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LuckyTreasureModel.cs 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LuckyTreasureModel.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LuckyTreasureWin.cs 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LuckyTreasureWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OperationLuckyTreasure.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OperationLuckyTreasure.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/OperationTimeHepler.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs
@@ -256,6 +256,12 @@
                    InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Whole);
                    return;
                }
                int remainNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum();
                if (remainNum < 1)
                {
                    WindowCenter.Instance.Open<CrossSeverOneVsOneBuyMatchTimesWin>();
                    return;
                }
            }
            if (crossServerModel.isClickCoolTime) return;
System/CrossServerOneVsOne/CrossServerOneVsOnePlayerInfo.cs
@@ -75,10 +75,18 @@
        public bool TryGetMaxRank(out int upScore)
        {
            upScore = 0;
            var preArenaConfig = Config.Instance.Get<CrossServerArenaConfig>(DanLV - 1);
            var arenaConfig = Config.Instance.Get<CrossServerArenaConfig>(DanLV);
            if (arenaConfig != null)
            if (arenaConfig != null && arenaConfig.LVUpScore > 0)
            {
                upScore = arenaConfig.LVUpScore;
                if(preArenaConfig != null)
                {
                    upScore = arenaConfig.LVUpScore - preArenaConfig.LVUpScore;
                }
                else
                {
                    upScore = arenaConfig.LVUpScore;
                }
            }
            return upScore == 0;
        }
System/CrossServerOneVsOne/CrossServerOneVsOneWin.cs
@@ -140,8 +140,14 @@
            danLvUpObj.SetActive(!isMaxRank);
            if (!isMaxRank)
            {
                scorePerText.text = StringUtility.Contact(playerInfo.Score, "/", maxScore);
                scoreSlider.value = (float)playerInfo.Score / maxScore;
                var preUpScore = Config.Instance.Get<CrossServerArenaConfig>(playerInfo.DanLV - 1);
                int curScore = playerInfo.Score;
                if(preUpScore != null)
                {
                    curScore -= preUpScore.LVUpScore;
                }
                scorePerText.text = StringUtility.Contact(curScore, "/", maxScore);
                scoreSlider.value = (float)curScore / maxScore;
            }
        }
        private void ClickHonorStore()
System/CrossServerOneVsOne/CrossSeverOneVsOneBuyMatchTimesWin.cs
@@ -27,6 +27,7 @@
        protected override void OnPreOpen()
        {
            CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += SetDisplay;
            SetDisplay();
        }
        protected override void OnAfterOpen()
@@ -36,7 +37,7 @@
        protected override void OnPreClose()
        {
            CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= SetDisplay;
        }
        protected override void OnAfterClose()
        {
@@ -63,6 +64,8 @@
        private void ClickBuyTimes()
        {
            if (!crossServerModel.TryGetBuyMatchTimes("CrossMatching21")) return;
            ulong gold = UIHelper.GetMoneyCnt(1);
            ulong bindGold = UIHelper.GetMoneyCnt(2);
            ulong sumGold = gold + bindGold;
@@ -94,7 +97,6 @@
        private void SendBuyTimes()
        {
            crossServerModel.SendBuyMatchCount();
            CloseImmediately();
        }
    }
}
System/OpenServerActivity/AutoTreasureAwardsRow.cs
New file
@@ -0,0 +1,49 @@
using System;
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
namespace Snxxz.UI
{
    public class AutoTreasureAwardsRow : MonoBehaviour
    {
        [SerializeField] List<AwardItem> awardItems = new List<AwardItem>();
        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        public void SetDisplay(int row,int sum)
        {
            int length = awardItems.Count;
            for(int i = 0; i < length; i++)
            {
                var awardItem = awardItems[i];
                int index = awardItems.Count * row + i;
                if(index < sum)
                {
                    awardItem.itemObj.SetActive(true);
                    ItemCellModel itemCellModel = new ItemCellModel(10101, true);
                    awardItem.itemBaisc.Init(itemCellModel);
                    awardItem.itemBaisc.cellBtn.RemoveAllListeners();
                    awardItem.itemBaisc.cellBtn.AddListener(() =>
                    {
                        ItemAttrData attrData = new ItemAttrData(10101, true);
                        tipsModel.SetItemTipsModel(attrData);
                    });
                }
                else
                {
                    awardItem.itemObj.SetActive(false);
                }
            }
        }
        [Serializable]
        public class AwardItem
        {
            public GameObject itemObj;
            public CommonItemBaisc itemBaisc;
        }
    }
}
System/OpenServerActivity/AutoTreasureAwardsRow.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 961051ac0ec5b404cbe2ed7f67288801
timeCreated: 1544423586
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/AutomaticTreasureWin.cs
New file
@@ -0,0 +1,95 @@
using System;
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
namespace Snxxz.UI
{
    [XLua.Hotfix]
    public class AutomaticTreasureWin : Window
    {
        [SerializeField] Button closeBtn;
        [SerializeField] Button treasureBtn;
        [SerializeField] Text treasureBtn_Text;
        [SerializeField] Transform container_Awards;
        [SerializeField] AutoTreasureAwardsRow awardsRow;
        LuckyTreasureModel luckyTreasureModel { get { return ModelCenter.Instance.GetModel<LuckyTreasureModel>(); } }
        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        int length = 13;
        List<AutoTreasureAwardsRow> awardsRows = new List<AutoTreasureAwardsRow>();
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            closeBtn.AddListener(CloseClick);
        }
        protected override void OnPreOpen()
        {
            SetDisplay();
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
            OnDestroyAwardsRow();
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        private void SetDisplay()
        {
            awardsRows.Clear();
            UpdateAwardsItem();
        }
        private void UpdateAwardsItem()
        {
            CreateAwardsRow();
            for(int i = 0; i < awardsRows.Count; i++)
            {
                var treasureAwardsRow = awardsRows[i];
                treasureAwardsRow.SetDisplay(i,length);
            }
        }
        private void CreateAwardsRow()
        {
            int row = length /10;
            if(length % 10 > 0)
            {
                row += 1;
            }
            int startRow = awardsRows.Count;
            for(int i = startRow; i < row; i++)
            {
                AutoTreasureAwardsRow treasureAwardsRow = Instantiate(awardsRow, Vector3.zero, Quaternion.identity, container_Awards);
                treasureAwardsRow.transform.localScale = Vector3.one;
                treasureAwardsRow.gameObject.SetActive(true);
                awardsRows.Add(treasureAwardsRow);
            }
            awardsRow.gameObject.SetActive(false);
        }
        private void OnDestroyAwardsRow()
        {
            for(int i = 0; i < awardsRows.Count;i++)
            {
                DestroyObject(awardsRows[i].gameObject);
            }
        }
    }
}
System/OpenServerActivity/AutomaticTreasureWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1a5a86936f3b05f419bc9803818b90fb
timeCreated: 1544421577
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/ImpactRankModel.cs
@@ -714,7 +714,7 @@
    [XLua.LuaCallCSharp]
    public class OpenServerActivityCenter : Singleton<OpenServerActivityCenter>
    {
        public event Action openServerActivityStateChange;
@@ -829,6 +829,8 @@
            AccumulateRecharge,
            [Header("神秘限购")]
            MysticalPurchase,
            [Header("幸运鉴宝")]
            LuckyTreasure,
            [Header("节日红包")]
            FestivalRedpack,
        }
System/OpenServerActivity/LuckyAwardsGroup.cs
New file
@@ -0,0 +1,49 @@
using UnityEngine;
using UnityEngine.UI;
using EnhancedUI.EnhancedScroller;
using System;
using System.Collections.Generic;
namespace Snxxz.UI
{
    public class LuckyAwardsGroup : ScrollerUI
    {
        [SerializeField] List<AwardCell> awardCells = new List<AwardCell>();
        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        public override void Refresh(CellView cell)
        {
            int length = awardCells.Count;
            for (int i = 0; i < length; i++)
            {
                var awardCell = awardCells[i];
                int index = cell.index * length + i;
                List<int> awardIds = null;
                if(index < awardIds.Count)
                {
                    int awardId = awardIds[i];
                    awardCell.itemBaisc.gameObject.SetActive(true);
                    ItemCellModel itemCellModel = new ItemCellModel(awardId, true);
                    awardCell.itemBaisc.Init(itemCellModel);
                    awardCell.itemBaisc.cellBtn.RemoveAllListeners();
                    awardCell.itemBaisc.cellBtn.AddListener(() =>
                    {
                        ItemAttrData attrData = new ItemAttrData(awardId, true);
                        tipsModel.SetItemTipsModel(attrData);
                    });
                }
                else
                {
                    awardCell.itemBaisc.gameObject.SetActive(false);
                }
            }
        }
        [Serializable]
        public class AwardCell
        {
            public CommonItemBaisc itemBaisc;
        }
    }
}
System/OpenServerActivity/LuckyAwardsGroup.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 28f0f9094a9cef344a511fe96782184d
timeCreated: 1544250056
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/LuckyResultInfo.cs
New file
@@ -0,0 +1,22 @@
using UnityEngine;
using UnityEngine.UI;
using EnhancedUI.EnhancedScroller;
using System;
using System.Collections.Generic;
namespace Snxxz.UI
{
    public class LuckyResultInfo : ScrollerUI
    {
        [SerializeField] Text infoText;
        LuckyTreasureModel luckyTreasureModel { get { return ModelCenter.Instance.GetModel<LuckyTreasureModel>(); } }
        public override void Refresh(CellView cell)
        {
            string info = luckyTreasureModel.resultInfolist[cell.index];
            infoText.text = info;
        }
    }
}
System/OpenServerActivity/LuckyResultInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c421cb0c6c83dd54ea2f661a01bed01a
timeCreated: 1544250175
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/LuckyTreasureModel.cs
New file
@@ -0,0 +1,132 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Snxxz.UI
{
    [XLua.Hotfix]
    [XLua.LuaCallCSharp]
    public class LuckyTreasureModel : Model, IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk, IOpenServerActivity
    {
        public string resultInfoLocalSave { get; private set; }
        public List<string> resultInfolist { get; private set; }
        public event Action<int> onStateUpate;
        public override void Init()
        {
            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
            OperationTimeHepler.Instance.operationEndEvent += OperationEndEvent;
            OperationTimeHepler.Instance.operationAdvanceEvent += OperationAdvanceEvent;
            OpenServerActivityCenter.Instance.Register((int)OpenServerActivityCenter.OSActivityType.LuckyTreasure, this);
            maxLuckValue = 600;
            curLuckValue = 300;
        }
        public void OnBeforePlayerDataInitialize()
        {
        }
        public void OnAfterPlayerDataInitialize()
        {
            int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
            resultInfoLocalSave = StringUtility.Contact("LuckyTreasureResult", playerId);
            GetLocalSaveData();
        }
        public void OnPlayerLoginOk()
        {
        }
        public override void UnInit()
        {
            OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
            OperationTimeHepler.Instance.operationEndEvent -= OperationEndEvent;
            OperationTimeHepler.Instance.operationAdvanceEvent -= OperationAdvanceEvent;
        }
        public bool IsOpen { get { return false; } }
        public bool IsAdvance { get { return false; } }
        public bool priorityOpen { get { return false; } }
        public OperationLuckyTreasure GetOperation()
        {
            OperationBase operationBase;
            if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.LuckyTreasure, out operationBase))
            {
                return operationBase as OperationLuckyTreasure;
            }
            return null;
        }
        private void OperationAdvanceEvent(Operation type)
        {
            if (type == Operation.LuckyTreasure)
            {
                if (onStateUpate != null)
                {
                    onStateUpate((int)OpenServerActivityCenter.OSActivityType.LuckyTreasure);
                }
            }
        }
        private void OperationStartEvent(Operation type, int state)
        {
            if (type == Operation.LuckyTreasure && state == 0)
            {
                if (onStateUpate != null)
                {
                    onStateUpate((int)OpenServerActivityCenter.OSActivityType.LuckyTreasure);
                }
            }
        }
        private void OperationEndEvent(Operation type, int state)
        {
            if (type == Operation.LuckyTreasure && state == 0)
            {
                if (onStateUpate != null)
                {
                    onStateUpate((int)OpenServerActivityCenter.OSActivityType.LuckyTreasure);
                }
            }
        }
        #region 表数据
        public int maxLuckValue { get; private set;}
        public int luckAwardId { get; private set; } //幸运大奖物品id
        public int maxRecordResultNum { get; private set; } //记录鉴宝结果最大条数
        public event Action UpdateResultEvent;
        private void GetLocalSaveData()
        {
            string[] infos = LocalSave.GeStringArray(resultInfoLocalSave);
            resultInfolist = infos == null ? new List<string>() : infos.ToList();
        }
        private void SetAwardResultLocalSave(string info)
        {
            resultInfolist = resultInfolist == null ? new List<string>() : resultInfolist;
            if (resultInfolist.Count >= 3)
            {
                resultInfolist.RemoveAt(resultInfolist.Count - 1);
            }
            resultInfolist.Insert(0, info);
            LocalSave.SetStringArray(resultInfoLocalSave, resultInfolist.ToArray());
            if (UpdateResultEvent != null)
            {
                UpdateResultEvent();
            }
        }
        #endregion
        #region 协议
        public int curLuckValue { get; private set; }
        #endregion
    }
}
System/OpenServerActivity/LuckyTreasureModel.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ed5d42ea068242740b8b79e77b49e3de
timeCreated: 1544241553
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/LuckyTreasureWin.cs
New file
@@ -0,0 +1,157 @@
using System;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    [XLua.Hotfix]
    public class LuckyTreasureWin : Window
    {
        [SerializeField] ScrollerController awardsCtrl;
        [SerializeField] ScrollerController resultCtrl;
        [SerializeField] Text remainMoneyText;
        [SerializeField] Text operationTimeText;
        [SerializeField] CommonItemBaisc luckAward_Item;
        [SerializeField] Button freeTreasureBtn;
        [SerializeField] Button goldTreasureBtn;
        [SerializeField] Button autoTreasureBtn;
        [SerializeField] Slider luckValueSlider;
        [SerializeField] Text luckValueText;
        [SerializeField] Text ruleText;
        [Header("滑动时间"), SerializeField] float sliderTime = 0.1f;
        [Header("滑动速度"), SerializeField] float sliderSpeed = 0.1f;
        OperationLuckyTreasure operation = null;
        LuckyTreasureModel luckyTreasureModel { get { return ModelCenter.Instance.GetModel<LuckyTreasureModel>(); } }
        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            freeTreasureBtn.AddListener(ClickFreeTreasure);
            goldTreasureBtn.AddListener(ClickGoldTreasure);
            autoTreasureBtn.AddListener(ClickAutoTreasure);
        }
        protected override void OnPreOpen()
        {
            SetDisplay();
        }
        protected override void OnAfterOpen()
        {
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += UpdatePlayerData;
            luckyTreasureModel.UpdateResultEvent += UpdateResultInfo;
        }
        protected override void LateUpdate()
        {
            base.LateUpdate();
            UpdateLuckValue();
        }
        protected override void OnPreClose()
        {
            luckyTreasureModel.UpdateResultEvent -= UpdateResultInfo;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= UpdatePlayerData;
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        private void SetDisplay()
        {
            operation = luckyTreasureModel.GetOperation();
            if (operation == null) return;
            UpdateRemainMoney();
            UpdateResultInfo();
            operationTimeText.text = operation.ToDisplayTime();
            luckValueSlider.value = luckyTreasureModel.curLuckValue;
            luckValueSlider.minValue = 0;
            luckValueSlider.maxValue = luckyTreasureModel.maxLuckValue;
            int luckAwardId = luckyTreasureModel.luckAwardId;
            ItemCellModel itemCellModel = new ItemCellModel(luckAwardId, true);
            luckAward_Item.Init(itemCellModel);
            luckAward_Item.cellBtn.RemoveAllListeners();
            luckAward_Item.cellBtn.AddListener(() =>
            {
                ItemAttrData attrData = new ItemAttrData(luckAwardId, true);
                tipsModel.SetItemTipsModel(attrData);
            });
        }
        private void UpdateAwards()
        {
            awardsCtrl.Refresh();
            for(int i = 0; i < 4; i++)
            {
                awardsCtrl.AddCell(ScrollerDataType.Header,i);
            }
            awardsCtrl.Restart();
        }
        private void UpdateResultInfo()
        {
            var results = luckyTreasureModel.resultInfolist;
            resultCtrl.Refresh();
            for(int i = 0; i < 5; i++)
            {
                resultCtrl.AddCell(ScrollerDataType.Header,i);
            }
            resultCtrl.Restart();
        }
        private void UpdateLuckValue()
        {
            float offset = luckyTreasureModel.curLuckValue - luckValueSlider.value;
            if (offset < 0.01f)
            {
                luckValueSlider.value = luckyTreasureModel.curLuckValue;
                return;
            }
            luckValueSlider.value = Mathf.SmoothDamp(luckValueSlider.value,luckyTreasureModel.curLuckValue,ref sliderSpeed,sliderTime);
        }
        private void UpdatePlayerData(PlayerDataRefresh type)
        {
            switch(type)
            {
                case PlayerDataRefresh.Gold:
                    UpdateRemainMoney();
                    break;
            }
        }
        private void UpdateRemainMoney()
        {
            ulong moneyNum = UIHelper.GetMoneyCnt(1);
            remainMoneyText.text = moneyNum.ToString();
        }
        private void ClickAutoTreasure()
        {
            WindowCenter.Instance.Open<AutomaticTreasureWin>();
        }
        private void ClickGoldTreasure()
        {
        }
        private void ClickFreeTreasure()
        {
        }
    }
}
System/OpenServerActivity/LuckyTreasureWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ccf800a8024840e43a089b58339958f5
timeCreated: 1544240681
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/OperationLuckyTreasure.cs
New file
@@ -0,0 +1,70 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Snxxz.UI
{
    public class OperationLuckyTreasure : OperationBase
    {
        public override void Reset()
        {
            base.Reset();
        }
        public override string ToDisplayTime()
        {
            var textBuilder = OperationTimeHepler.textBuilder;
            textBuilder.Length = 0;
            textBuilder.Append(startDate.ToDisplay());
            if (startDate != endDate)
            {
                textBuilder.Append("—");
                textBuilder.Append(endDate.ToDisplay());
            }
            return textBuilder.ToString();
        }
        public int GetActivityDay()
        {
            int dayIndex = IndexOfDays(TimeUtility.ServerNow);
            if(resetType == 0)
            {
                return dayIndex + 1;
            }
            else if(resetType == 1)
            {
                if(IsLastDay)
                {
                    return dayIndex;
                }
                else
                {
                    return dayIndex + 1;
                }
            }
            return dayIndex + 1;
        }
        public int GetActivitySumDay()
        {
           if(resetType == 0)
            {
                return totalDays + 1;
            }
           else if(resetType == 1)
            {
                return totalDays;
            }
            return totalDays;
        }
        public void ParsePackage(HAA19_tagMCActWishingWellInfo package)
        {
            for (int i = 0; i < package.Count; i++)
            {
            }
        }
    }
}
System/OpenServerActivity/OperationLuckyTreasure.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: bf8497f0cbb6a0b428aa828120cd0768
timeCreated: 1544251132
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Welfare/OperationTimeHepler.cs
@@ -330,6 +330,40 @@
        }
        /// <summary>
        /// 幸运鉴宝
        /// </summary>
        /// <param name="package"></param>
        public void UpdateLuckyTreasure(HAA19_tagMCActWishingWellInfo package)
        {
            OperationBase operationBase = null;
            operationDict.TryGetValue(Operation.LuckyTreasure, out operationBase);
            if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
            {
                ForceStopOperation(Operation.LuckyTreasure);
            }
            else
            {
                if (operationBase == null)
                {
                    operationBase = new OperationLuckyTreasure();
                    operationDict.Add(Operation.LuckyTreasure, operationBase);
                }
                var operation = operationBase as OperationLuckyTreasure;
                operation.Reset();
                operation.limitLv = package.LimitLV;
                operation.startDate = ParseOperationDate(package.StartDate);
                operation.endDate = ParseOperationDate(package.EndtDate);
                operation.dayReset = package.IsDayReset == 1;
                operation.resetType = package.ResetType;
                operation.ParsePackage(package);
                if (operationTimeUpdateEvent != null)
                {
                    operationTimeUpdateEvent(Operation.LuckyTreasure);
                }
            }
        }
        /// <summary>
        /// 限时礼包
        /// </summary>
        /// <param name="package"></param>
@@ -928,6 +962,7 @@
        FlashRushToBuy, //限时抢购
        WishingWellInfo, //许愿池
        AccumulateRecharge,//累计充值
        LuckyTreasure,//幸运鉴宝
        LoginReward,//登录奖励
        FestivalRedpack,//节日红包
        NewYearFairyCeremony, //春节仙界盛典