少年修仙传客户端代码仓库
client_Wu Xijin
2019-01-28 6b06db2f3a11624359fad90337433a395d385b42
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
9个文件已修改
40个文件已添加
2646 ■■■■■ 已修改文件
Core/GameEngine/DataToCtl/PackageRegedit.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/HolidayHomingConfig.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/HolidayHomingConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/HolidayHomingPointConfig.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/HolidayHomingPointConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0C_tagMCActLoginAwardInfo.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0C_tagMCActLoginAwardInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0D_tagMCActLoginAwardPlayerInfo.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0D_tagMCActLoginAwardPlayerInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA20_tagMCFeastWeekPartyInfo.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA20_tagMCFeastWeekPartyInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA21_tagMCFeastWeekPartyPlayerInfo.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA21_tagMCFeastWeekPartyPlayerInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0C_tagMCActLoginAwardInfo.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0C_tagMCActLoginAwardInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0D_tagMCActLoginAwardPlayerInfo.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0D_tagMCActLoginAwardPlayerInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA20_tagMCFeastWeekPartyInfo.cs 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA20_tagMCFeastWeekPartyInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA21_tagMCFeastWeekPartyPlayerInfo.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA21_tagMCFeastWeekPartyPlayerInfo.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/HighSettingFadeInFadeOut.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/AchievementActivityWin.cs 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/EntryInformationCell.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/EntryInformationCell.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/EventDaysTime.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/EventDaysTime.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/HolidayHomingIcon.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/HolidayHomingIcon.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LogInDayNumber.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LogInDayNumber.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LoginRewardModel.cs 278 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LoginRewardModel.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LoginRewardWin.cs 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/LoginRewardWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServiceAchievementModel.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/SpringFestivalCell.cs 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/SpringFestivalCell.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/SpringFestivalItem.cs 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/SpringFestivalItem.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/SpringFestivalModel.cs 389 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/SpringFestivalModel.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/SpringFestivalWin.cs 398 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/SpringFestivalWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/OperationTimeHepler.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/ModelCenter.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -440,6 +440,10 @@
        Register(typeof(HA806_tagMCMysticalShopTimeInfo), typeof(DTCA806_tagMCMysticalShopTimeInfo));
        Register(typeof(HAA0A_tagMCWeekPartyInfo), typeof(DTCAA0A_tagMCWeekPartyInfo));
        Register(typeof(HAA0B_tagMCWeekPartyPlayerInfo), typeof(DTCAA0B_tagMCWeekPartyPlayerInfo));
        Register(typeof(HAA0C_tagMCActLoginAwardInfo), typeof(DTCAA0C_tagMCActLoginAwardInfo));
        Register(typeof(HAA0D_tagMCActLoginAwardPlayerInfo), typeof(DTCAA0D_tagMCActLoginAwardPlayerInfo));
        Register(typeof(HAA20_tagMCFeastWeekPartyInfo), typeof(DTCAA20_tagMCFeastWeekPartyInfo));
        Register(typeof(HAA21_tagMCFeastWeekPartyPlayerInfo), typeof(DTCAA21_tagMCFeastWeekPartyPlayerInfo));
    }
    private static void Register(Type _pack, Type _business)
Core/GameEngine/Model/Config/HolidayHomingConfig.cs
New file
@@ -0,0 +1,56 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Monday, January 28, 2019
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class HolidayHomingConfig : 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/HolidayHomingConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 8d3d7608c7608d344837efce0985daa5
timeCreated: 1548642619
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/GameEngine/Model/Config/HolidayHomingPointConfig.cs
New file
@@ -0,0 +1,47 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Monday, January 28, 2019
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class HolidayHomingPointConfig : ConfigBase {
        public int Id { get ; private set ; }
        public string ImageType1 { get ; private set; }
        public string ImageType2 { get ; private set; }
        public string name { get ; private set; }
        public override string getKey()
        {
            return Id.ToString();
        }
        public override void Parse() {
            try
            {
                Id=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                ImageType1 = rawContents[1].Trim();
                ImageType2 = rawContents[2].Trim();
                name = rawContents[3].Trim();
            }
            catch (Exception ex)
            {
                DebugEx.Log(ex);
            }
        }
    }
}
Core/GameEngine/Model/Config/HolidayHomingPointConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 72b35cd6566b7d34389dd31103502961
timeCreated: 1548642631
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/GameEngine/Model/ConfigManager.cs
@@ -232,7 +232,8 @@
        AddAsyncTask<JadeDynastyBossConfig>();
        AddAsyncTask<JadeDynastySuitAttrConfig>();
        AddAsyncTask<SkillFrameAnimationConfig>();
        AddAsyncTask<HolidayHomingConfig>();
        AddAsyncTask<HolidayHomingPointConfig>();
        while (!AllCompleted())
        {
            var completedCount = 0;
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0A_tagMCWeekPartyInfo.cs
@@ -15,6 +15,7 @@
        {
            return;
        }
        OperationTimeHepler.Instance.OpenServiceAchievement(vNetData);
        model.WeekPartyInfo(vNetData);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0C_tagMCActLoginAwardInfo.cs
New file
@@ -0,0 +1,21 @@
using UnityEngine;
using System.Collections;
using Snxxz.UI;
// AA 0C 登录奖励活动信息 #tagMCActLoginAwardInfo
public class DTCAA0C_tagMCActLoginAwardInfo : DtcBasic {
    LoginRewardModel m_LoginRewardModel;
    LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } }
    public override void Done(GameNetPackBasic vNetPack) {
        base.Done(vNetPack);
        HAA0C_tagMCActLoginAwardInfo vNetData = vNetPack as HAA0C_tagMCActLoginAwardInfo;         if (vNetData == null)
        {
            return;
        }
        OperationTimeHepler.Instance.RefreshLoginReward(vNetData);         loginRewardModel.LoginAwardInfo(vNetData);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0C_tagMCActLoginAwardInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 7a1f6e4974acd9e4fa893257d4a0a5a3
timeCreated: 1547783303
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0D_tagMCActLoginAwardPlayerInfo.cs
New file
@@ -0,0 +1,20 @@
using UnityEngine;
using System.Collections;
using Snxxz.UI;
// AA 0D 登录奖励玩家活动信息 #tagMCActLoginAwardPlayerInfo
public class DTCAA0D_tagMCActLoginAwardPlayerInfo : DtcBasic {
    LoginRewardModel m_LoginRewardModel;
    LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } }
    public override void Done(GameNetPackBasic vNetPack) {
        base.Done(vNetPack);
        HAA0D_tagMCActLoginAwardPlayerInfo vNetData = vNetPack as HAA0D_tagMCActLoginAwardPlayerInfo;         if (vNetData == null)
        {
            return;
        }
        loginRewardModel.LoginAwardPlayerInfo(vNetData);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA0D_tagMCActLoginAwardPlayerInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 34ae4e7c0f7c0184391054f28930408a
timeCreated: 1547783303
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA20_tagMCFeastWeekPartyInfo.cs
New file
@@ -0,0 +1,22 @@
using UnityEngine;
using System.Collections;
using Snxxz.UI;
// AA 20 节日巡礼活动信息 #tagMCFeastWeekPartyInfo
public class DTCAA20_tagMCFeastWeekPartyInfo : DtcBasic
{
    SpringFestivalModel model { get { return ModelCenter.Instance.GetModel<SpringFestivalModel>(); } }
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        HAA20_tagMCFeastWeekPartyInfo vNetData = vNetPack as HAA20_tagMCFeastWeekPartyInfo;         if (vNetData == null)
        {
            return;
        }
        OperationTimeHepler.Instance.SpringFestival(vNetData);
        model.SpringFestivalTemplate(vNetData);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA20_tagMCFeastWeekPartyInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: aaf06cbce14a41245bd9fba2fdfbbc87
timeCreated: 1548641524
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA21_tagMCFeastWeekPartyPlayerInfo.cs
New file
@@ -0,0 +1,22 @@
using UnityEngine;
using System.Collections;
using Snxxz.UI;
// AA 21 节日巡礼玩家活动信息 #tagMCFeastWeekPartyPlayerInfo
public class DTCAA21_tagMCFeastWeekPartyPlayerInfo : DtcBasic
{
    SpringFestivalModel model { get { return ModelCenter.Instance.GetModel<SpringFestivalModel>(); } }
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        HAA21_tagMCFeastWeekPartyPlayerInfo vNetData = vNetPack as HAA21_tagMCFeastWeekPartyPlayerInfo;
        if (vNetData == null)
        {
            return;
        }
        model.SpringFestivalInfo(vNetData);
    }
}
Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA21_tagMCFeastWeekPartyPlayerInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 545412b628f8a19419a48aee51cea0dc
timeCreated: 1548641521
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0C_tagMCActLoginAwardInfo.cs
New file
@@ -0,0 +1,75 @@
using UnityEngine;
using System.Collections;
// AA 0C 登录奖励活动信息 #tagMCActLoginAwardInfo
public class HAA0C_tagMCActLoginAwardInfo : GameNetPackBasic {
    public string StartDate;    // 开始日期 y-m-d
    public string EndtDate;    // 结束日期 y-m-d
    public ushort AdvanceMinutes;    // 提前显示分钟
    public byte IsDayReset;    //是否每天重置
    public byte ResetType;    // 重置类型,0-0点重置;1-5点重置
    public ushort LimitLV;    // 限制等级
    public byte DayCnt;    // 天数
    public  tagMCActLoginAwardDayInfo[] DayInfoList;    // 每天模板
    public byte TCount;    // 模板数
    public  tagMCActLoginAwardAction[] ActionInfo;    // 活动模板信息
    public HAA0C_tagMCActLoginAwardInfo () {
        _cmd = (ushort)0xAA0C;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out StartDate, vBytes, NetDataType.Chars, 10);
        TransBytes (out EndtDate, vBytes, NetDataType.Chars, 10);
        TransBytes (out AdvanceMinutes, vBytes, NetDataType.WORD);
        TransBytes (out IsDayReset, vBytes, NetDataType.BYTE);
        TransBytes (out ResetType, vBytes, NetDataType.BYTE);
        TransBytes (out LimitLV, vBytes, NetDataType.WORD);
        TransBytes (out DayCnt, vBytes, NetDataType.BYTE);
        DayInfoList = new tagMCActLoginAwardDayInfo[DayCnt];
        for (int i = 0; i < DayCnt; i ++) {
            DayInfoList[i] = new tagMCActLoginAwardDayInfo();
            TransBytes (out DayInfoList[i].ActCnt, vBytes, NetDataType.BYTE);
            TransBytes (out DayInfoList[i].TemplateList, vBytes, NetDataType.WORD, DayInfoList[i].ActCnt);
        }
        TransBytes (out TCount, vBytes, NetDataType.BYTE);
        ActionInfo = new tagMCActLoginAwardAction[TCount];
        for (int i = 0; i < TCount; i ++) {
            ActionInfo[i] = new tagMCActLoginAwardAction();
            TransBytes (out ActionInfo[i].TemplateID, vBytes, NetDataType.DWORD);
            TransBytes (out ActionInfo[i].ActionType, vBytes, NetDataType.WORD);
            TransBytes (out ActionInfo[i].TotalTimes, vBytes, NetDataType.DWORD);
            TransBytes (out ActionInfo[i].SingleTimes, vBytes, NetDataType.DWORD);
            TransBytes (out ActionInfo[i].Count, vBytes, NetDataType.BYTE);
            ActionInfo[i].ItemInfo = new tagMCActLoginAwardItem[ActionInfo[i].Count];
            for (int j = 0; j < ActionInfo[i].Count; j ++) {
                ActionInfo[i].ItemInfo[j] = new tagMCActLoginAwardItem();
                TransBytes (out ActionInfo[i].ItemInfo[j].ItemID, vBytes, NetDataType.DWORD);
                TransBytes (out ActionInfo[i].ItemInfo[j].ItemCnt, vBytes, NetDataType.WORD);
                TransBytes (out ActionInfo[i].ItemInfo[j].IsBind, vBytes, NetDataType.BYTE);
            }
        }
    }
    public struct tagMCActLoginAwardItem {
        public uint ItemID;        // 物品ID
        public ushort ItemCnt;        // 物品数量
        public byte IsBind;        // 是否绑定
    }
    public struct tagMCActLoginAwardAction {
        public uint TemplateID;        // 模板ID
        public ushort ActionType;        // 活动类别
        public uint TotalTimes;        // 可完成的总次数,0表示不限次数
        public uint SingleTimes;        // 单次领奖需要的次数
        public byte Count;        // 物品数
        public  tagMCActLoginAwardItem[] ItemInfo;        // 物品信息
    }
    public struct tagMCActLoginAwardDayInfo {
        public byte ActCnt;        // 数量
        public  ushort[] TemplateList;        // 模板列表
    }
}
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0C_tagMCActLoginAwardInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b1fcb37796d75a545a76f01f1ec085bf
timeCreated: 1547783303
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0D_tagMCActLoginAwardPlayerInfo.cs
New file
@@ -0,0 +1,43 @@
using UnityEngine;
using System.Collections;
// AA 0D 登录奖励玩家活动信息 #tagMCActLoginAwardPlayerInfo
public class HAA0D_tagMCActLoginAwardPlayerInfo : GameNetPackBasic {
    public byte Count;
    public  tagMCActLoginAwardDayPlayerInfo[] DayInfoList;    //活动完成次数信息
    public HAA0D_tagMCActLoginAwardPlayerInfo () {
        _cmd = (ushort)0xAA0D;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out Count, vBytes, NetDataType.BYTE);
        DayInfoList = new tagMCActLoginAwardDayPlayerInfo[Count];
        for (int i = 0; i < Count; i ++) {
            DayInfoList[i] = new tagMCActLoginAwardDayPlayerInfo();
            TransBytes (out DayInfoList[i].DayIndex, vBytes, NetDataType.DWORD);
            TransBytes (out DayInfoList[i].ACount, vBytes, NetDataType.DWORD);
            DayInfoList[i].TaskList = new tagMCActLoginAwardTaskInfo[DayInfoList[i].ACount];
            for (int j = 0; j < DayInfoList[i].ACount; j ++) {
                DayInfoList[i].TaskList[j] = new tagMCActLoginAwardTaskInfo();
                TransBytes (out DayInfoList[i].TaskList[j].TemplateID, vBytes, NetDataType.WORD);
                TransBytes (out DayInfoList[i].TaskList[j].CurTimes, vBytes, NetDataType.WORD);
                TransBytes (out DayInfoList[i].TaskList[j].GotTimes, vBytes, NetDataType.WORD);
            }
        }
    }
    public struct tagMCActLoginAwardDayPlayerInfo {
        public uint DayIndex;        //第X天
        public uint ACount;        //任务条目数
        public  tagMCActLoginAwardTaskInfo[] TaskList;        //活动完成次数信息
    }
    public struct tagMCActLoginAwardTaskInfo {
        public ushort TemplateID;        // 模板ID
        public ushort CurTimes;        //已完成次数
        public ushort GotTimes;        //已领取次数
    }
}
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA0D_tagMCActLoginAwardPlayerInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 0ba7797ba0b9ed64daf82d4441538adf
timeCreated: 1547783303
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA20_tagMCFeastWeekPartyInfo.cs
New file
@@ -0,0 +1,90 @@
using UnityEngine;
using System.Collections;
// AA 20 节日巡礼活动信息 #tagMCFeastWeekPartyInfo
public class HAA20_tagMCFeastWeekPartyInfo : GameNetPackBasic {
    public string StartDate;    // 开始日期 y-m-d
    public string EndtDate;    // 结束日期 y-m-d
    public ushort AdvanceMinutes;    // 提前显示分钟
    public byte IsDayReset;    //是否每天重置
    public byte ResetType;    // 重置类型,0-0点重置;1-5点重置
    public ushort LimitLV;    // 限制等级
    public byte DayCnt;    // 天数
    public  tagMCFeastWeekPartyDayInfo[] DayInfoList;    // 每天模板
    public byte TCount;    // 模板数
    public  tagMCFeastWeekPartyAction[] ActionInfo;    // 活动模板信息
    public HAA20_tagMCFeastWeekPartyInfo () {
        _cmd = (ushort)0xAA20;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out StartDate, vBytes, NetDataType.Chars, 10);
        TransBytes (out EndtDate, vBytes, NetDataType.Chars, 10);
        TransBytes (out AdvanceMinutes, vBytes, NetDataType.WORD);
        TransBytes (out IsDayReset, vBytes, NetDataType.BYTE);
        TransBytes (out ResetType, vBytes, NetDataType.BYTE);
        TransBytes (out LimitLV, vBytes, NetDataType.WORD);
        TransBytes (out DayCnt, vBytes, NetDataType.BYTE);
        DayInfoList = new tagMCFeastWeekPartyDayInfo[DayCnt];
        for (int i = 0; i < DayCnt; i ++) {
            DayInfoList[i] = new tagMCFeastWeekPartyDayInfo();
            TransBytes (out DayInfoList[i].ActCnt, vBytes, NetDataType.BYTE);
            TransBytes (out DayInfoList[i].TemplateList, vBytes, NetDataType.WORD, DayInfoList[i].ActCnt);
            TransBytes (out DayInfoList[i].PCount, vBytes, NetDataType.BYTE);
            DayInfoList[i].PItemInfo = new tagMCFeastWeekPartyItem[DayInfoList[i].PCount];
            for (int j = 0; j < DayInfoList[i].PCount; j ++) {
                DayInfoList[i].PItemInfo[j] = new tagMCFeastWeekPartyItem();
                TransBytes (out DayInfoList[i].PItemInfo[j].NeedPoint, vBytes, NetDataType.WORD);
                TransBytes (out DayInfoList[i].PItemInfo[j].ItemID, vBytes, NetDataType.DWORD);
                TransBytes (out DayInfoList[i].PItemInfo[j].ItemCnt, vBytes, NetDataType.WORD);
                TransBytes (out DayInfoList[i].PItemInfo[j].IsBind, vBytes, NetDataType.BYTE);
            }
        }
        TransBytes (out TCount, vBytes, NetDataType.BYTE);
        ActionInfo = new tagMCFeastWeekPartyAction[TCount];
        for (int i = 0; i < TCount; i ++) {
            ActionInfo[i] = new tagMCFeastWeekPartyAction();
            TransBytes (out ActionInfo[i].TemplateID, vBytes, NetDataType.DWORD);
            TransBytes (out ActionInfo[i].ActionType, vBytes, NetDataType.WORD);
            TransBytes (out ActionInfo[i].TotalTimes, vBytes, NetDataType.DWORD);
            TransBytes (out ActionInfo[i].SingleTimes, vBytes, NetDataType.DWORD);
            TransBytes (out ActionInfo[i].Point, vBytes, NetDataType.DWORD);
            TransBytes (out ActionInfo[i].Count, vBytes, NetDataType.BYTE);
            ActionInfo[i].ItemInfo = new tagMCFeastWeekPartyItem[ActionInfo[i].Count];
            for (int j = 0; j < ActionInfo[i].Count; j ++) {
                ActionInfo[i].ItemInfo[j] = new tagMCFeastWeekPartyItem();
                TransBytes (out ActionInfo[i].ItemInfo[j].NeedPoint, vBytes, NetDataType.WORD);
                TransBytes (out ActionInfo[i].ItemInfo[j].ItemID, vBytes, NetDataType.DWORD);
                TransBytes (out ActionInfo[i].ItemInfo[j].ItemCnt, vBytes, NetDataType.WORD);
                TransBytes (out ActionInfo[i].ItemInfo[j].IsBind, vBytes, NetDataType.BYTE);
            }
        }
    }
    public struct tagMCFeastWeekPartyAction {
        public uint TemplateID;        // 模板ID
        public ushort ActionType;        // 活动类别
        public uint TotalTimes;        // 可完成的总次数,0表示不限次数
        public uint SingleTimes;        // 单次领奖需要的次数
        public uint Point;        // 单次领奖积分
        public byte Count;        // 物品数
        public  tagMCFeastWeekPartyItem[] ItemInfo;        // 物品信息
    }
    public struct tagMCFeastWeekPartyItem {
        public ushort NeedPoint;        // 领奖需要积分
        public uint ItemID;        // 物品ID
        public ushort ItemCnt;        // 物品数量
        public byte IsBind;        // 是否绑定
    }
    public struct tagMCFeastWeekPartyDayInfo {
        public byte ActCnt;        // 数量
        public  ushort[] TemplateList;        // 模板列表
        public byte PCount;        // 物品数
        public  tagMCFeastWeekPartyItem[] PItemInfo;        // 物品信息
    }
}
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA20_tagMCFeastWeekPartyInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: eeaeb20e0eb5d8c47a368fa5b96cfc98
timeCreated: 1548641524
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA21_tagMCFeastWeekPartyPlayerInfo.cs
New file
@@ -0,0 +1,47 @@
using UnityEngine;
using System.Collections;
// AA 21 节日巡礼玩家活动信息 #tagMCFeastWeekPartyPlayerInfo
public class HAA21_tagMCFeastWeekPartyPlayerInfo : GameNetPackBasic {
    public byte Count;
    public  tagMCFeastWeekPartyDayPlayerInfo[] DayInfoList;    //活动完成次数信息
    public HAA21_tagMCFeastWeekPartyPlayerInfo () {
        _cmd = (ushort)0xAA21;
    }
    public override void ReadFromBytes (byte[] vBytes) {
        TransBytes (out Count, vBytes, NetDataType.BYTE);
        DayInfoList = new tagMCFeastWeekPartyDayPlayerInfo[Count];
        for (int i = 0; i < Count; i ++) {
            DayInfoList[i] = new tagMCFeastWeekPartyDayPlayerInfo();
            TransBytes (out DayInfoList[i].DayIndex, vBytes, NetDataType.DWORD);
            TransBytes (out DayInfoList[i].Point, vBytes, NetDataType.DWORD);
            TransBytes (out DayInfoList[i].AwardRecord, vBytes, NetDataType.DWORD);
            TransBytes (out DayInfoList[i].ACount, vBytes, NetDataType.DWORD);
            DayInfoList[i].TaskList = new tagMCFeastWeekPartyTaskInfo[DayInfoList[i].ACount];
            for (int j = 0; j < DayInfoList[i].ACount; j ++) {
                DayInfoList[i].TaskList[j] = new tagMCFeastWeekPartyTaskInfo();
                TransBytes (out DayInfoList[i].TaskList[j].TemplateID, vBytes, NetDataType.WORD);
                TransBytes (out DayInfoList[i].TaskList[j].CurTimes, vBytes, NetDataType.DWORD);
                TransBytes (out DayInfoList[i].TaskList[j].GotTimes, vBytes, NetDataType.DWORD);
            }
        }
    }
    public struct tagMCFeastWeekPartyDayPlayerInfo {
        public uint DayIndex;        //第X天
        public uint Point;        //积分
        public uint AwardRecord;        //积分领奖记录
        public uint ACount;        //任务条目数
        public  tagMCFeastWeekPartyTaskInfo[] TaskList;        //活动完成次数信息
    }
    public struct tagMCFeastWeekPartyTaskInfo {
        public ushort TemplateID;        // 模板ID
        public uint CurTimes;        //已完成次数
        public uint GotTimes;        //已领取次数
    }
}
Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA21_tagMCFeastWeekPartyPlayerInfo.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 726d8302a026f8941aa12b1844e92b1c
timeCreated: 1548641524
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/MainInterfacePanel/HighSettingFadeInFadeOut.cs
@@ -55,6 +55,7 @@
        CrossServerOneVsOneRewardModel m_CrossServerRewardModel;
        CrossServerOneVsOneRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerOneVsOneRewardModel>()); } }
        OpenServiceAchievementModel OpenServerModel { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
        SpringFestivalModel springFestival { get { return ModelCenter.Instance.GetModel<SpringFestivalModel>(); } }
        public void Init()
        {
            if (LatencyTimeList.Count <= 0)
@@ -84,6 +85,7 @@
            impactRankModel.inImpactRankUpdate += InImpactRankUpdate;
            OpenServerModel.IsOpenEvent += IsOpenEvent;
            OpenServerModel.IsPreviewTimeUpdate += IsOpenEvent;
            OperationTimeHepler.Instance.operationAdvanceEvent += OperationAdvanceEvent;
        }
        public void Unit()
@@ -100,6 +102,12 @@
            impactRankModel.inImpactRankUpdate -= InImpactRankUpdate;
            OpenServerModel.IsOpenEvent -= IsOpenEvent;
            OpenServerModel.IsPreviewTimeUpdate -= IsOpenEvent;
            OperationTimeHepler.Instance.operationAdvanceEvent -= OperationAdvanceEvent;
        }
        private void OperationAdvanceEvent(Operation obj)
        {
            Classify();
        }
        private void IsOpenEvent()
@@ -119,18 +127,13 @@
        private void operationEndEvent(Operation arg1, int arg2)
        {
            if (arg1 == Operation.FairyCeremony || arg1== Operation.NewYearFairyCeremony)
            {
                Classify();
            }
            Classify();
        }
        private void operationStartEvent(Operation arg1, int arg2)
        {
            if (arg1 == Operation.FairyCeremony || arg1 == Operation.NewYearFairyCeremony)
            {
                Classify();
            }
            Classify();
        }
        private void UpdateRedpoint(int redPointID)
@@ -656,8 +659,9 @@
                        }
                        else if (IndexOf == 4)
                        {
                            bool Isopen = OpenServerModel.IsOpen;
                            if (!AnimationFadeOutDicLow.ContainsKey(highBtnRecord.Index) && Isopen)//7天寻礼
                            bool Isopen = OpenServerModel.IsOpenFeatures();
                            bool _isOpen = springFestival.IsOpenFeatures();
                            if (!AnimationFadeOutDicLow.ContainsKey(highBtnRecord.Index) && (Isopen || _isOpen))//7天寻礼
                            {
                                if (AnimationFadeOutDicLow.Count < 6)//------第二层
                                {
System/OpenServerActivity/AchievementActivityWin.cs
@@ -9,7 +9,8 @@
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI {
namespace Snxxz.UI
{
    //成就活动面板
    public class AchievementActivityWin : Window
    {
@@ -20,6 +21,9 @@
        [SerializeField] Button _LeftBtn;
        [SerializeField] Button _RightBtn;
        [SerializeField] FunctionButton m_OpenServiceAchievementBtn;//周狂欢
        [SerializeField] FunctionButton m_SpringFestival;//春节活动
        OpenServiceAchievementModel openServiceAchievementModel { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
        SpringFestivalModel springFestivalModel { get { return ModelCenter.Instance.GetModel<SpringFestivalModel>(); } }
        protected override void BindController()
        {
        }
@@ -30,16 +34,25 @@
            _LeftBtn.AddListener(OnClickLeftBtn);
            _RightBtn.AddListener(OnClickRight);
            m_OpenServiceAchievementBtn.AddListener(OpenServiceAchievementButton);
            m_SpringFestival.AddListener(SpringFestivalButton);
        }
        protected override void OnPreOpen()
        {
            OperationTimeHepler.Instance.operationStartEvent += operationStartEvent;
            IsButtonNumber();
            if (WindowCenter.Instance.IsOpen<MainInterfaceWin>())
            {
                WindowCenter.Instance.Close<MainInterfaceWin>();
            }
            functionOrder = 0;
            if (openServiceAchievementModel.IsOpenFeatures())
            {
                functionOrder = 0;
            }
            else if (springFestivalModel.IsOpenFeatures())
            {
                functionOrder = 1;
            }
        }
        protected override void OnActived()
@@ -47,10 +60,18 @@
            FuncBtnGroup.TriggerByOrder(functionOrder);
        }
        protected override void OnAfterOpen()
        {
        }
        {
            OperationTimeHepler.Instance.operationStartEvent -= operationStartEvent;
        }
        private void operationStartEvent(Operation arg1, int arg2)
        {
            if (arg1 == Operation.SpringFestival || arg1== Operation.OpenServiceAchievement)
            {
                IsButtonNumber();
            }
        }
        protected override void OnPreClose()
        {
            CloseChild();
@@ -84,6 +105,10 @@
            {
                WindowCenter.Instance.CloseImmediately<OpenServiceAchievementWin>();
            }
            if (WindowCenter.Instance.IsOpen<SpringFestivalWin>())
            {
                WindowCenter.Instance.CloseImmediately<SpringFestivalWin>();
            }
        }
        private void OpenServiceAchievementButton()
@@ -99,8 +124,39 @@
            }
            functionOrder = 0;
        }
        private void SpringFestivalButton()
        {
            CloseChild();
            if (windowState == WindowState.Opened)
            {
                WindowCenter.Instance.OpenWithoutAnimation<SpringFestivalWin>();
            }
            else
            {
                WindowCenter.Instance.Open<SpringFestivalWin>(true);
            }
            functionOrder = 1;
        }
        #endregion
        private void IsButtonNumber()
        {
            if (openServiceAchievementModel.IsOpenFeatures())
            {
                m_OpenServiceAchievementBtn.gameObject.SetActive(true);
            }
            else
            {
                m_OpenServiceAchievementBtn.gameObject.SetActive(false);
            }
            if (springFestivalModel.IsOpenFeatures())
            {
                m_SpringFestival.gameObject.SetActive(true);
            }
            else
            {
                m_SpringFestival.gameObject.SetActive(false);
            }
        }
    }
}
System/OpenServerActivity/EntryInformationCell.cs
New file
@@ -0,0 +1,34 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, December 10, 2018
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
namespace Snxxz.UI {
    [XLua.Hotfix]
    public class EntryInformationCell:MonoBehaviour {
        [SerializeField] ItemCell m_ItemCell;
        [SerializeField] Text m_Text1;
        [SerializeField] Text m_Text2;
        [SerializeField] Button m_Button;
        [SerializeField] Text m_ButtonText;
        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; }
        }
        public void GetDisplayInformation(int id)
        {
        }
    }
}
System/OpenServerActivity/EntryInformationCell.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 2df4f76a8cbf84e4d820e06234d5a875
timeCreated: 1544409750
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/EventDaysTime.cs
New file
@@ -0,0 +1,23 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 21, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Snxxz.UI {
    public class EventDaysTime: OperationBase
    {
        public int GetInDayNow()
        {
            return base.IndexOfDays(TimeUtility.ServerNow);
        }
    }
}
System/OpenServerActivity/EventDaysTime.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c1691eb2a2ee9604b86be65cb98bfca3
timeCreated: 1548038322
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/HolidayHomingIcon.cs
New file
@@ -0,0 +1,69 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 28, 2019
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;
using TableConfig;
namespace Snxxz.UI
{
    public class HolidayHomingIcon : MonoBehaviour
    {
        [SerializeField] Image m_Icon;
        private string Iconkey1 = string.Empty;
        private string Iconkey2 = string.Empty;
        OpenServiceAchievementModel openServiceAchievementModel { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
        SpringFestivalModel springFestivalModel { get { return ModelCenter.Instance.GetModel<SpringFestivalModel>(); } }
        private void Awake()
        {
            OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
            OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent;
            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
            OperationTimeHepler.Instance.dayResetEvent += DayResetEvent;
            var funconfig = Config.Instance.Get<FuncConfigConfig>("HolidayHomingIcon");
            Iconkey1 = funconfig.Numerical1;
            Iconkey2 = funconfig.Numerical2;
        }
        private void OnEnable()
        {
            SetIcon();
        }
        private void SetIcon()
        {
            if (openServiceAchievementModel.IsOpenFeatures())
            {
                m_Icon.SetSprite(Iconkey1);
            }
            else if (springFestivalModel.IsOpenFeatures())
            {
                m_Icon.SetSprite(Iconkey2);
            }
        }
        private void DayResetEvent(int obj)
        {
            if (obj == (int)Operation.OpenServiceAchievement || obj == (int)Operation.SpringFestival)
            {
                SetIcon();
            }
        }
        private void OperationStartEvent(Operation arg1, int arg2)
        {
            if (arg1 == Operation.OpenServiceAchievement || arg1 == Operation.SpringFestival)
            {
                SetIcon();
            }
        }
    }
}
System/OpenServerActivity/HolidayHomingIcon.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 7f574cca031dd7e4e93d6ace04260f95
timeCreated: 1548658770
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/LogInDayNumber.cs
New file
@@ -0,0 +1,61 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Friday, December 07, 2018
//--------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
namespace Snxxz.UI {
    //登录奖励天数标签
    [XLua.Hotfix]
    public class LogInDayNumber:MonoBehaviour {
        [SerializeField] Button m_DayNumberBtn;
        [SerializeField] ImageEx m_DayNumberImage;
        [SerializeField] ImageEx m_SelectedImage;
        [SerializeField] GameObject m_Obj1;
        [SerializeField] Text m_DayText1;
        [SerializeField] GameObject m_Obj2;
        [SerializeField] Text m_DayText2;
        LoginRewardModel m_LoginRewardModel;
        LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } }
        public Button DayNumberBtn
        {
            get { return m_DayNumberBtn; }
            set { m_DayNumberBtn = value; }
        }
        public void SetInDayNumber(int day,int clockDayNow)
        {
            if (day == clockDayNow)
            {
                m_SelectedImage.gameObject.SetActive(true);
            }
            else
            {
                m_SelectedImage.gameObject.SetActive(false);
            }
            if (day > loginRewardModel.DayNow)
            {
                m_SelectedImage.gray = true;
                m_DayNumberImage.gray = true;
                m_Obj1.SetActive(false);
                m_Obj2.SetActive(true);
                m_DayText2.text = (day + 1).ToString();
            }
            else
            {
                m_SelectedImage.gray = false;
                m_DayNumberImage.gray = false;
                m_Obj1.SetActive(true);
                m_Obj2.SetActive(false);
                m_DayText1.text= (day + 1).ToString();
            }
        }
    }
}
System/OpenServerActivity/LogInDayNumber.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 8df633ca001b5e24298dcad5c878087d
timeCreated: 1544167978
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/LoginRewardModel.cs
New file
@@ -0,0 +1,278 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, December 10, 2018
//--------------------------------------------------------
using System;
using System.Collections.Generic;
using TableConfig;
using Snxxz.UI;
//登录奖励
[XLua.LuaCallCSharp]
public class LoginRewardModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    public event Action LoginAwardInfoUpdate;//领奖记录变更
    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>();//活动模板信息
    public Dictionary<int, Redpoint> RedPointDic = new Dictionary<int, Redpoint>();//红点
    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);
    public override void Init()
    {
    }
    public void OnBeforePlayerDataInitialize()
    {
        LoginAwardInfoDic.Clear();
    }
    public void OnPlayerLoginOk()
    {
        GetDay();
        SetRedPoint();
    }
    public override void UnInit()
    {
    }
    public void LoginAwardInfo(HAA0C_tagMCActLoginAwardInfo info)//登录奖励活动信息
    {
        LimitLV = info.LimitLV;
        LoginAwardDayDic.Clear();
        LoginAwardDic.Clear();
        for (int i = 0; i < info.DayCnt; i++)//每天的奖励信息
        {
            int Index = i;
            var dayInfo = info.DayInfoList[i];
            WeekPartyDayClass loginAwardDay = new WeekPartyDayClass();
            loginAwardDay.TemplateList = new int[dayInfo.ActCnt];
            for (int k = 0; k < dayInfo.ActCnt; k++)
            {
                loginAwardDay.TemplateList[k] = dayInfo.TemplateList[k];
            }
            if (LoginAwardDayDic.ContainsKey(Index))
            {
                LoginAwardDayDic[Index] = loginAwardDay;
            }
            else
            {
                LoginAwardDayDic.Add(Index, loginAwardDay);
            }
        }
        for (int i = 0; i < info.TCount; i++)// 活动模板信息
        {
            var ActionInfo = info.ActionInfo[i];
            var templateID = (int)ActionInfo.TemplateID;
            WeekPartyActionClass loginAward = new WeekPartyActionClass();
            loginAward.TemplateID = (int)ActionInfo.TemplateID;
            loginAward.ActionType = (int)ActionInfo.ActionType;
            loginAward.TotalTimes = (int)ActionInfo.TotalTimes;
            loginAward.SingleTimes = (int)ActionInfo.SingleTimes;
            loginAward.WeekPartyItem = new WeekPartyItemClass[ActionInfo.Count];
            for (int z = 0; z < ActionInfo.Count; z++)
            {
                var item = ActionInfo.ItemInfo[z];
                WeekPartyItemClass loginAwardItem = new WeekPartyItemClass();
                loginAwardItem.ItemID = (int)item.ItemID;
                loginAwardItem.ItemCnt = (int)item.ItemCnt;
                loginAwardItem.IsBind = item.IsBind;
                loginAward.WeekPartyItem[z] = loginAwardItem;
            }
            if (LoginAwardDic.ContainsKey(templateID))
            {
                LoginAwardDic[templateID] = loginAward;
            }
            else
            {
                LoginAwardDic.Add(templateID, loginAward);
            }
        }
    }
    public void LoginAwardPlayerInfo(HAA0D_tagMCActLoginAwardPlayerInfo info)//登录奖励玩家活动信息
    {
        for (int i = 0; i < info.Count; i++)
        {
            var Dayinfo = info.DayInfoList[i];
            WeekPartyDayInfoClass loginAwardPlayerClass = new WeekPartyDayInfoClass();
            var dayindex = (int)Dayinfo.DayIndex;
            loginAwardPlayerClass.DayIndex = dayindex;
            if (LoginAwardInfoDic.ContainsKey(dayindex))
            {
                var dit = LoginAwardInfoDic[dayindex];
                dit.DayIndex = dayindex;
                for (int j = 0; j < Dayinfo.ACount; j++)
                {
                    var taskList = Dayinfo.TaskList[j];
                    int Index = dit.ActionType.FindIndex(s => s.TemplateID == taskList.TemplateID);
                    if (Index != -1)
                    {
                        dit.ActionType[Index].CurTimes = taskList.CurTimes;
                        dit.ActionType[Index].GotTimes = taskList.GotTimes;
                    }
                    else
                    {
                        ActionTypeClass ActionType = new ActionTypeClass();
                        ActionType.TemplateID = taskList.TemplateID;
                        ActionType.CurTimes = taskList.CurTimes;
                        ActionType.GotTimes = taskList.GotTimes;
                        dit.ActionType.Add(ActionType);
                    }
                }
                LoginAwardInfoDic[dayindex] = dit;
            }
            else
            {
                loginAwardPlayerClass.ActionType = new List<ActionTypeClass>();
                for (int k = 0; k < Dayinfo.ACount; k++)
                {
                    var Task = Dayinfo.TaskList[k];
                    ActionTypeClass ActionType = new ActionTypeClass();
                    ActionType.TemplateID = Task.TemplateID;
                    ActionType.CurTimes = Task.CurTimes;
                    ActionType.GotTimes = Task.GotTimes;
                    loginAwardPlayerClass.ActionType.Add(ActionType);
                }
                LoginAwardInfoDic.Add(dayindex, loginAwardPlayerClass);
            }
        }
        SetRedPoint();
        if (LoginAwardInfoUpdate != null)
        {
            LoginAwardInfoUpdate();
        }
    }
    public int GetRewardNumber(int Day, int ID)//获取领奖次数
    {
        int Num = 0;
        if (LoginAwardInfoDic.ContainsKey(Day))
        {
            var loginAward = LoginAwardInfoDic[Day];
            for (int i = 0; i < loginAward.ActionType.Count; i++)
            {
                var ActionType = loginAward.ActionType[i];
                if (ID == ActionType.TemplateID)
                {
                    Num = ActionType.GotTimes;
                }
            }
        }
        return Num;
    }
    public int GetCarryOutNum(int Day,int ID)//获取已完成次数
    {
        int Num = 0;
        if (LoginAwardInfoDic.ContainsKey(Day))
        {
            var loginAward = LoginAwardInfoDic[Day];
            for (int i = 0; i < loginAward.ActionType.Count; i++)
            {
                var ActionType = loginAward.ActionType[i];
                if (ID == ActionType.TemplateID)
                {
                    Num = ActionType.CurTimes;
                }
            }
        }
        return Num;
    }
    public void SendLoginAwardInfo(int day, int temdayplateID)//领取奖励
    {
        CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
        getReward.RewardType = (byte)GotServerRewardType.Def_RewardType_ActLoginAwardAct;
        getReward.DataEx = (uint)day;
        string StrID = temdayplateID.ToString();
        getReward.DataExStrLen = (byte)StrID.Length;
        getReward.DataExStr = StrID;
        GameNetSystem.Instance.SendInfo(getReward);
    }
    private void SetRedPoint()//红点设置
    {
        SetRedPointID();
        foreach (var key in RedPointDic.Keys)
        {
            RedPointDic[key].state = RedPointState.None;
        }
        foreach (var key in RedPointDic.Keys)
        {
            RedPointDic[key].state = SetRedPointState(key);
        }
    }
    private void SetRedPointID()//设置红点ID
    {
        if (RedPointDic.Count > 0)
        {
            return;
        }
        foreach (var key in LoginAwardInfoDic.Keys)
        {
            int RedPoint = Redpoint_key * 10 + key;
            if (!RedPointDic.ContainsKey(key))
            {
                Redpoint redPointMountStare = new Redpoint(Redpoint_key, RedPoint);
                RedPointDic.Add(key, redPointMountStare);
            }
        }
    }
    private RedPointState SetRedPointState(int day)//红点状态设置
    {
        if (!LoginAwardDayDic.ContainsKey(day) || !LoginAwardInfoDic.ContainsKey(day))
        {
            return RedPointState.None;
        }
        WeekPartyDayClass loginAward = new WeekPartyDayClass();
        foreach (var key in LoginAwardDayDic.Keys)
        {
            if (key == day)
            {
                loginAward = LoginAwardDayDic[key];
            }
        }
        for (int i = 0; i < loginAward.TemplateList.Length; i++)
        {
            var TemplateID = loginAward.TemplateList[i];
            if (LoginAwardDic.ContainsKey(TemplateID))
            {
                var LoginAward = LoginAwardDic[TemplateID];
                int number = LoginAward.TotalTimes / LoginAward.SingleTimes;
                int rewardNum = GetRewardNumber(day, TemplateID);//已领奖次数
                int carryOutNum = GetCarryOutNum(day, TemplateID);//已完成次数
                int TaypeNumber = 0;
                if (carryOutNum - rewardNum > 0)
                {
                    TaypeNumber = (carryOutNum - rewardNum) / LoginAward.SingleTimes;
                }
                if (TaypeNumber > 0 && rewardNum < number)
                {
                    return RedPointState.GetReward;
                }
            }
        }
        return RedPointState.None;
    }
    private void GetDay()
    {
        OperationBase operationBase;
        if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.LoginReward, out operationBase))
        {
            DayNow = (operationBase as EventDaysTime).GetInDayNow();
        }
    }
}
System/OpenServerActivity/LoginRewardModel.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 57fcce9a94d2fc743bc2d1f6ef954fa3
timeCreated: 1544410332
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/LoginRewardWin.cs
New file
@@ -0,0 +1,148 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Friday, December 07, 2018
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI {
    [XLua.Hotfix]
    public class LoginRewardWin : Window
    {
        //登录奖励
        #region Built-in
        [SerializeField] ScrollerController m_ScrollerController_1;
        [SerializeField] ScrollerController m_ScrollerController_2;
        LoginRewardModel m_LoginRewardModel;
        LoginRewardModel loginRewardModel { get { return m_LoginRewardModel ?? (m_LoginRewardModel = ModelCenter.Instance.GetModel<LoginRewardModel>()); } }
        List<int> SortList = new List<int>();
        protected override void BindController()
        {
            m_ScrollerController_1.OnRefreshCell += OnRefreshGridCell_1;
            m_ScrollerController_2.OnRefreshCell += OnRefreshGridCell_2;
        }
        protected override void AddListeners()
        {
        }
        protected override void OnPreOpen()
        {
            ChooseDay();
            OnCreateGridLineCell_1(m_ScrollerController_1);
            OnCreateGridLineCell_2(m_ScrollerController_2);
            if (loginRewardModel.SelectedNow >= 3)
            {
                m_ScrollerController_1.JumpIndex(loginRewardModel.SelectedNow);
            }
        }
        protected override void OnAfterOpen()
        {
            loginRewardModel.LoginAwardInfoUpdate += LoginAwardInfoUpdate;
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
            loginRewardModel.LoginAwardInfoUpdate -= LoginAwardInfoUpdate;
        }
        private void LoginAwardInfoUpdate()
        {
            m_ScrollerController_1.m_Scorller.RefreshActiveCellViews();
            m_ScrollerController_2.m_Scorller.RefreshActiveCellViews();
        }
        #endregion
        void OnCreateGridLineCell_1(ScrollerController gridCtrl)
        {
            gridCtrl.Refresh();
            foreach (var key in loginRewardModel.LoginAwardDayDic.Keys)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, key);
            }
            gridCtrl.Restart();
        }
        private void OnRefreshGridCell_1(ScrollerDataType type, CellView cell)
        {
            int Index = cell.index;
            LogInDayNumber logInDayNumber = cell.GetComponent<LogInDayNumber>();
            logInDayNumber.SetInDayNumber(Index, loginRewardModel.SelectedNow);
            logInDayNumber.DayNumberBtn.SetListener(()=>
            {
                if (loginRewardModel.SelectedNow != Index)
                {
                    loginRewardModel.SelectedNow = Index;
                    m_ScrollerController_1.m_Scorller.RefreshActiveCellViews();//刷新可见
                    OnCreateGridLineCell_2(m_ScrollerController_2);
                }
            });
        }
        void OnCreateGridLineCell_2(ScrollerController gridCtrl)
        {
            gridCtrl.Refresh();
            for (int i = 0; i < 10; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, i);
            }
            gridCtrl.Restart();
        }
        private void OnRefreshGridCell_2(ScrollerDataType type, CellView cell)
        {
            int Index = cell.index;
            EntryInformationCell entryInformationCell = cell.GetComponent<EntryInformationCell>();
            entryInformationCell.GetDisplayInformation(1);
            entryInformationCell.mButton.SetListener(()=>
            {
               // m_ScrollerController_2.m_Scorller.RefreshActiveCellViews();//刷新可见
            });
        }
        public void ChooseDay()//选择天
        {
            foreach (var key in loginRewardModel.RedPointDic.Keys)//红点选择可领取的天
            {
                if (loginRewardModel.RedPointDic[key].state == RedPointState.GetReward)
                {
                    loginRewardModel.SelectedNow = key;
                    return;
                }
            }
            loginRewardModel.SelectedNow = loginRewardModel.DayNow;
        }
        private void ToAddSorting()
        {
            SortList.Clear();
            foreach (var key in loginRewardModel.LoginAwardDayDic.Keys)
            {
                if (key == loginRewardModel.SelectedNow)
                {
                    var loginReward = loginRewardModel.LoginAwardDayDic[key];
                    for (int i = 0; i < loginReward.TemplateList.Length; i++)
                    {
                        var TemplateId = loginReward.TemplateList[i];
                        SortList.Add(TemplateId);
                    }
                }
            }
            SortList.Sort(Compare);
        }
        int Compare(int x, int y)//数组排列
        {
            return 1;
        }
    }
}
System/OpenServerActivity/LoginRewardWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: aba0dd26d09942440ae9339e4ef4120f
timeCreated: 1544166304
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/OpenServiceAchievementModel.cs
@@ -627,6 +627,13 @@
        }
        return _bool;
    }
    public bool IsOpenFeatures()
    {
        bool Isbool = false;
        Isbool = (OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.OpenServiceAchievement)
            || OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.OpenServiceAchievement));
        return Isbool;
    }
}
System/OpenServerActivity/SpringFestivalCell.cs
New file
@@ -0,0 +1,257 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Tuesday, January 22, 2019
//--------------------------------------------------------
using EnhancedUI.EnhancedScroller;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
using UnityEngine.UI;
using System;
namespace Snxxz.UI
{
    [XLua.Hotfix]
    public class SpringFestivalCell : ScrollerUI
    {
        [SerializeField] Text m_TextA;
        [SerializeField] Text m_TextB;
        [SerializeField] Text m_TextC;
        [SerializeField] Transform m_ItemList;
        [SerializeField] Button m_Btn;
        [SerializeField] Text m_BtnText;
        [SerializeField] GameObject m_Miss;//错过
        [SerializeField] GameObject m_Reach;//未达成
        [SerializeField] GameObject m_Draw;//已领取
        [SerializeField] Text m_TextNumber;//已领取次数
        SpringFestivalModel model { get { return ModelCenter.Instance.GetModel<SpringFestivalModel>(); } }
        ItemTipsModel _itemTipsModel;
        ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
        public override void Refresh(CellView cell)
        {
            int ID = cell.index;
            var config = Config.Instance.Get<WeekPartyConfig>(ID);
            if (config == null || !model.SpringFestivalDic.ContainsKey(ID))
            {
                return;
            }
            var SpringFestival = model.SpringFestivalDic[ID];
            int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数
            int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数
            int number = SpringFestival.TotalTimes / SpringFestival.SingleTimes;
            var RemainingNum = 0;
            if (SpringFestival.TotalTimes - rewardNum > 0)
            {
                RemainingNum = (SpringFestival.TotalTimes - rewardNum) / SpringFestival.SingleTimes;
            }
            if (SpringFestival.TotalTimes - carryOutNum > 0 && RemainingNum > 0)
            {
                m_TextA.text = Language.Get("OSA_1", RemainingNum);
            }
            else
            {
                m_TextA.text = Language.Get("OSA_4");
            }
            if (config.ActionType == 20)
            {
                m_TextB.text = string.Format(config.Description, (model.SelectedNow + 1));
            }
            else
            {
                m_TextB.text = string.Format(config.Description, SpringFestival.SingleTimes);
            }
            m_TextC.text = Language.Get("OSA_2", SpringFestival.Point);
            for (int i = 0; i < m_ItemList.childCount; i++)
            {
                GameObject Obj = m_ItemList.GetChild(i).gameObject;
                ItemCell itemCell = Obj.GetComponent<ItemCell>();
                if (i < SpringFestival.WeekPartyItem.Length)
                {
                    Obj.SetActive(true);
                    var Item = SpringFestival.WeekPartyItem[i];
                    ItemCellModel cellModel = new ItemCellModel(Item.ItemID, true, (ulong)Item.ItemCnt, Item.IsBind);
                    itemCell.Init(cellModel);
                    itemCell.cellBtn.SetListener(() =>
                    {
                        ItemAttrData attrData = new ItemAttrData(Item.ItemID, false, (ulong)Item.ItemCnt, -1, Item.IsBind);
                        itemTipsModel.SetItemTipsModel(attrData);
                    });
                }
                else
                {
                    Obj.SetActive(false);
                }
            }
            bool IsOpenPreviewTime = OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.SpringFestival);
            if (model.SelectedNow != model.DayNow || IsOpenPreviewTime)
            {
                if (model.SelectedNow > model.DayNow || IsOpenPreviewTime)//还未到达的天数
                {
                    m_Btn.gameObject.SetActive(false);
                    m_TextNumber.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) / SpringFestival.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 = model.IsOpenFeatures();
                            if (_bool)
                            {
                                model.SendGetSpringFestival(model.SelectedNow, ID);
                            }
                            else
                            {
                                SysNotifyMgr.Instance.ShowTip("SevenDayOver2");
                            }
                        });
                    }
                    else
                    {
                        if (rewardNum >= number)//已经领完
                        {
                            m_TextNumber.gameObject.SetActive(false);
                            m_Btn.gameObject.SetActive(false);
                            m_Miss.SetActive(false);
                            m_Reach.SetActive(false);
                            m_Draw.SetActive(true);
                        }
                        else//未到达
                        {
                            m_TextNumber.gameObject.SetActive(false);
                            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) / SpringFestival.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 = model.IsOpenFeatures();
                        if (_bool)
                        {
                            model.SendGetSpringFestival(model.SelectedNow, ID);
                        }
                        else
                        {
                            SysNotifyMgr.Instance.ShowTip("SevenDayOver2");
                        }
                    });
                }
                else
                {
                    if (rewardNum >= SpringFestival.TotalTimes)//已经领完
                    {
                        m_TextNumber.gameObject.SetActive(false);
                        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);
                        });
                    }
                }
            }
        }
        string SetText(int ID)
        {
            string str = string.Empty;
            var SpringFestival = model.SpringFestivalDic[ID];
            int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数
            int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数
            var config = Config.Instance.Get<WeekPartyConfig>(ID);
            if (config != null && config.SpecialDisplayType == 1)
            {
                if (carryOutNum > 0)
                {
                    str = "1/1";
                }
                else
                {
                    str = "0/1";
                }
                return str;
            }
            int TaypeNumber = 0;
            if (carryOutNum - rewardNum > 0)
            {
                TaypeNumber = (carryOutNum - rewardNum) / SpringFestival.SingleTimes;
            }
            if (TaypeNumber > 0)
            {
                str = SpringFestival.SingleTimes + "/" + SpringFestival.SingleTimes;
                return str;
            }
            else
            {
                int type = carryOutNum % SpringFestival.SingleTimes;
                str = type + "/" + SpringFestival.SingleTimes;
            }
            return str;
        }
    }
}
System/OpenServerActivity/SpringFestivalCell.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 44a71fdc1fc45a7448e87c4942d0db7c
timeCreated: 1548146393
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/SpringFestivalItem.cs
New file
@@ -0,0 +1,93 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Tuesday, January 22, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TableConfig;
namespace Snxxz.UI
{
    [XLua.Hotfix]
    public class SpringFestivalItem : MonoBehaviour
    {
        [SerializeField] Text m_Text_A;
        [SerializeField] Image m_BGM;
        [SerializeField] Image m_ImageShow;
        [SerializeField] Text m_TextPoint;
        [SerializeField] Button m_ReceiveBtn;
        [SerializeField] GameObject m_IsReachImage;
        [SerializeField] GameObject m_IsDrawImage;
        SpringFestivalModel model { get { return ModelCenter.Instance.GetModel<SpringFestivalModel>(); } }
        public void SetReward(int day, WeekPartyItemClass item, int index, int Type)
        {
            var holidayHomingPointConfig = Config.Instance.Get<HolidayHomingPointConfig>(item.ItemID);
            if (holidayHomingPointConfig != null)
            {
                m_Text_A.text = holidayHomingPointConfig.name;
                if (Type == 1)
                {
                    m_ImageShow.SetSprite(holidayHomingPointConfig.ImageType1);
                }
                else
                {
                    m_ImageShow.SetSprite(holidayHomingPointConfig.ImageType2);
                }
                m_ImageShow.SetNativeSize();
            }
            int Point = model.GetPoint(day);
            m_TextPoint.text = Language.Get("OSA_3", item.NeedPoint);
            bool IsBool = model.IsDayReward(model.SelectedNow, index);
            if (model.SelectedNow > model.DayNow)
            {
                m_ReceiveBtn.gameObject.SetActive(false);
                m_IsReachImage.SetActive(false);
                m_IsDrawImage.SetActive(false);
            }
            else
            {
                if (Point >= item.NeedPoint && !IsBool)//可领
                {
                    m_ReceiveBtn.gameObject.SetActive(true);
                    m_ReceiveBtn.SetListener(() =>
                    {
                        bool _bool = model.IsOpenFeatures();
                        if (_bool)
                        {
                            model.SendGetSpringFestivalPoint(model.SelectedNow, item.NeedPoint);
                        }
                        else
                        {
                            SysNotifyMgr.Instance.ShowTip("SevenDayOver2");
                        }
                    });
                    m_IsReachImage.SetActive(false);
                    m_IsDrawImage.SetActive(false);
                }
                else if (Point >= item.NeedPoint && IsBool)//已领
                {
                    m_ReceiveBtn.gameObject.SetActive(false);
                    m_IsReachImage.SetActive(false);
                    m_IsDrawImage.SetActive(true);
                }
                else if (item.NeedPoint > Point)
                {
                    m_ReceiveBtn.gameObject.SetActive(false);
                    m_IsReachImage.SetActive(true);
                    m_IsDrawImage.SetActive(false);
                }
            }
        }
    }
}
System/OpenServerActivity/SpringFestivalItem.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 09255ebe0b6808b4188754d0f5f4df1f
timeCreated: 1548145610
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/SpringFestivalModel.cs
New file
@@ -0,0 +1,389 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 21, 2019
//--------------------------------------------------------
using System;
using System.Collections.Generic;
using TableConfig;
using Snxxz.UI;
using System.Linq;
[XLua.LuaCallCSharp]
//春节活动巡礼
public class SpringFestivalModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    public Dictionary<int, WeekPartyDayInfoClass> SpringFestivalInfoDic = new Dictionary<int, WeekPartyDayInfoClass>();//每天领取奖励信息
    public event Action SpringFestivalRewardUpdate;//领奖记录变化
    public Dictionary<int, WeekPartyDayClass> SpringFestivalDayDic = new Dictionary<int, WeekPartyDayClass>();//每天的奖励信息
    public Dictionary<int, WeekPartyActionClass> SpringFestivalDic = new Dictionary<int, WeekPartyActionClass>();//活动模板总信息
    public Dictionary<int, Redpoint> RedPointDic = new Dictionary<int, Redpoint>();//红点
    private const int Redpoint_key1 = 21402;//周狂欢红点
    public Redpoint redPointStre1 = new Redpoint(214, Redpoint_key1);
    public int LimitLV = 0;//限制等级
    private int _SelectedNow = 0;
    public int SelectedNow//选中天
    {
        get { return _SelectedNow; }
        set { _SelectedNow = value; }
    }
    private int _DayNow = 0;
    public int DayNow//当前天
    {
        get { return _DayNow; }
        set { _DayNow = value; }
    }
    public override void Init()
    {
    }
    public void OnBeforePlayerDataInitialize()
    {
        SpringFestivalInfoDic.Clear();
    }
    public void OnPlayerLoginOk()
    {
        GetDayNow();
        OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
        OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent;
        OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
        OperationTimeHepler.Instance.dayResetEvent += DayResetEvent;
    }
    public override void UnInit()
    {
    }
    private void DayResetEvent(int obj)
    {
        if (obj == (int)Operation.OpenServiceAchievement)
        {
            GetDayNow();
        }
    }
    private void OperationStartEvent(Operation arg1, int arg2)
    {
        if (arg1 == Operation.OpenServiceAchievement)
        {
            GetDayNow();
        }
    }
    public void SpringFestivalInfo(HAA21_tagMCFeastWeekPartyPlayerInfo info)//每天领奖信息
    {
        for (int i = 0; i < info.Count; i++)
        {
            var DayInfo = info.DayInfoList[i];
            WeekPartyDayInfoClass WeekPartyDayInfo = new WeekPartyDayInfoClass();
            WeekPartyDayInfo.DayIndex = (int)DayInfo.DayIndex;
            WeekPartyDayInfo.Point = (int)DayInfo.Point;
            WeekPartyDayInfo.AwardRecord = (int)DayInfo.AwardRecord;
            if (SpringFestivalInfoDic.ContainsKey((int)DayInfo.DayIndex))
            {
                var dit = SpringFestivalInfoDic[(int)DayInfo.DayIndex];
                dit.DayIndex = (int)DayInfo.DayIndex;
                dit.Point = (int)DayInfo.Point;
                dit.AwardRecord = (int)DayInfo.AwardRecord;
                for (int j = 0; j < DayInfo.ACount; j++)
                {
                    var taskList = DayInfo.TaskList[j];
                    int Index = dit.ActionType.FindIndex(s => s.TemplateID == taskList.TemplateID);
                    if (Index != -1)
                    {
                        dit.ActionType[Index].CurTimes = (int)taskList.CurTimes;
                        dit.ActionType[Index].GotTimes = (int)taskList.GotTimes;
                    }
                    else
                    {
                        ActionTypeClass ActionType = new ActionTypeClass();
                        ActionType.TemplateID = taskList.TemplateID;
                        ActionType.CurTimes = (int)taskList.CurTimes;
                        ActionType.GotTimes = (int)taskList.GotTimes;
                        dit.ActionType.Add(ActionType);
                    }
                }
                SpringFestivalInfoDic[(int)DayInfo.DayIndex] = dit;
            }
            else
            {
                WeekPartyDayInfo.ActionType = new List<ActionTypeClass>();
                for (int k = 0; k < DayInfo.ACount; k++)
                {
                    var Task = DayInfo.TaskList[k];
                    ActionTypeClass ActionType = new ActionTypeClass();
                    ActionType.TemplateID = Task.TemplateID;
                    ActionType.CurTimes = (int)Task.CurTimes;
                    ActionType.GotTimes = (int)Task.GotTimes;
                    WeekPartyDayInfo.ActionType.Add(ActionType);
                }
                SpringFestivalInfoDic.Add((int)DayInfo.DayIndex, WeekPartyDayInfo);
            }
        }
        GetDayNow();
        SetRedPoint();
        if (SpringFestivalRewardUpdate != null)
        {
            SpringFestivalRewardUpdate();
        }
    }
    public void SpringFestivalTemplate(HAA20_tagMCFeastWeekPartyInfo info)//每天模板信息
    {
        LimitLV = info.LimitLV;
        for (int i = 0; i < info.DayCnt; i++)
        {
            int Index = i;
            var DayInfo = info.DayInfoList[i];
            WeekPartyDayClass WeekPartyDay = new WeekPartyDayClass();
            WeekPartyDay.TemplateList = new int[DayInfo.ActCnt];
            for (int k = 0; k < DayInfo.ActCnt; k++)
            {
                WeekPartyDay.TemplateList[k] = DayInfo.TemplateList[k];
            }
            WeekPartyDay.WeekPartyItem = new WeekPartyItemClass[DayInfo.PCount];
            for (int p = 0; p < DayInfo.PCount; p++)
            {
                WeekPartyItemClass WeekPartyItem = new WeekPartyItemClass();
                var Item = DayInfo.PItemInfo[p];
                WeekPartyItem.NeedPoint = Item.NeedPoint;
                WeekPartyItem.ItemID = (int)Item.ItemID;
                WeekPartyItem.ItemCnt = (int)Item.ItemCnt;
                WeekPartyItem.IsBind = (int)Item.IsBind;
                WeekPartyDay.WeekPartyItem[p] = WeekPartyItem;
            }
            if (SpringFestivalDayDic.ContainsKey(Index))
            {
                SpringFestivalDayDic[Index] = WeekPartyDay;
            }
            else
            {
                SpringFestivalDayDic.Add(Index, WeekPartyDay);
            }
        }// 每天模板
        for (int i = 0; i < info.TCount; i++)
        {
            var ActionInfo = info.ActionInfo[i];
            WeekPartyActionClass WeekPartyAction = new WeekPartyActionClass();
            WeekPartyAction.TemplateID = (int)ActionInfo.TemplateID;
            WeekPartyAction.ActionType = (int)ActionInfo.ActionType;
            WeekPartyAction.TotalTimes = (int)ActionInfo.TotalTimes;
            WeekPartyAction.SingleTimes = (int)ActionInfo.SingleTimes;
            WeekPartyAction.Point = (int)ActionInfo.Point;
            WeekPartyAction.WeekPartyItem = new WeekPartyItemClass[ActionInfo.Count];
            for (int z = 0; z < ActionInfo.Count; z++)
            {
                var item = ActionInfo.ItemInfo[z];
                WeekPartyItemClass WeekPartyItem = new WeekPartyItemClass();
                WeekPartyItem.ItemID = (int)item.ItemID;
                WeekPartyItem.ItemCnt = (int)item.ItemCnt;
                WeekPartyItem.IsBind = item.IsBind;
                WeekPartyItem.NeedPoint = 0;
                WeekPartyAction.WeekPartyItem[z] = WeekPartyItem;
            }
            if (SpringFestivalDic.ContainsKey((int)ActionInfo.TemplateID))
            {
                SpringFestivalDic[(int)ActionInfo.TemplateID] = WeekPartyAction;
            }
            else
            {
                SpringFestivalDic.Add((int)ActionInfo.TemplateID, WeekPartyAction);
            }
        }// 活动模板信息
        SetRedPoint();
    }
    public int GetRewardNumber(int Day, int ID)//获取领奖次数
    {
        int Num = 0;
        if (SpringFestivalInfoDic.ContainsKey(Day))
        {
            var SpringFestivalDay = SpringFestivalInfoDic[Day];
            for (int i = 0; i < SpringFestivalDay.ActionType.Count; i++)
            {
                var ActionType = SpringFestivalDay.ActionType[i];
                if (ID == ActionType.TemplateID)
                {
                    Num = ActionType.GotTimes;
                }
            }
        }
        return Num;
    }
    public int GetCarryOutNum(int Day, int ID)//获取已完成次数
    {
        int Num = 0;
        if (SpringFestivalInfoDic.ContainsKey(Day))
        {
            var SpringFestival = SpringFestivalInfoDic[Day];
            for (int i = 0; i < SpringFestival.ActionType.Count; i++)
            {
                var ActionType = SpringFestival.ActionType[i];
                if (ID == ActionType.TemplateID)
                {
                    Num = ActionType.CurTimes;
                }
            }
        }
        return Num;
    }
    public int GetPoint(int day)//获取某一天的积分
    {
        int Point = 0;
        if (SpringFestivalInfoDic.ContainsKey(day))
        {
            Point = SpringFestivalInfoDic[day].Point;
        }
        return Point;
    }
    public void SendGetSpringFestival(int day, int temdayplateID)//领取春节活动奖励
    {
        CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
        getReward.RewardType = (byte)GotServerRewardType.Def_RewardType_FeastWeekPartyAct;
        getReward.DataEx = (uint)day;
        string StrID = temdayplateID.ToString();
        getReward.DataExStrLen = (byte)StrID.Length;
        getReward.DataExStr = StrID;
        GameNetSystem.Instance.SendInfo(getReward);
    }
    public void SendGetSpringFestivalPoint(int day, int point)//领取春节积分奖励
    {
        CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
        getReward.RewardType = (byte)GotServerRewardType.Def_RewardType_FeastWeekPartyPoint;
        getReward.DataEx = (uint)day;
        string StrID = point.ToString();
        getReward.DataExStrLen = (byte)StrID.Length;
        getReward.DataExStr = StrID;
        GameNetSystem.Instance.SendInfo(getReward);
    }
    public bool IsDayReward(int day, int index)//是否领取奖励
    {
        bool _bool = false;
        int AwardRecord = 0;
        foreach (var key in SpringFestivalInfoDic.Keys)
        {
            if (key == day)
            {
                AwardRecord = SpringFestivalInfoDic[key].AwardRecord;
            }
        }
        _bool = MathUtility.GetBitValue((uint)AwardRecord, (ushort)index);
        return _bool;
    }
    private void SetRedPoint()//红点设置
    {
        SetRedPointId();
        foreach (var key in RedPointDic.Keys)
        {
            RedPointDic[key].state = RedPointState.None;
        }
        foreach (var key in RedPointDic.Keys)
        {
            RedPointDic[key].state = SetRedPointState(key);
        }
    }
    private void SetRedPointId()//设置红点ID
    {
        if (RedPointDic.Count >= 7)
        {
            return;
        }
        RedPointDic.Clear();
        foreach (var key in SpringFestivalInfoDic.Keys)
        {
            int RedPoint = Redpoint_key1 * 10 + key;
            if (!RedPointDic.ContainsKey(key))
            {
                Redpoint redPointMountStare = new Redpoint(Redpoint_key1, RedPoint);
                RedPointDic.Add(key, redPointMountStare);
            }
        }
    }
    private RedPointState SetRedPointState(int day)//红点状态设置
    {
        if (!SpringFestivalDayDic.ContainsKey(day) || !SpringFestivalInfoDic.ContainsKey(day) || day>DayNow)
        {
            return RedPointState.None;
        }
        WeekPartyDayClass WeekPartyDay = new WeekPartyDayClass();
        int point = SpringFestivalInfoDic[day].Point;
        foreach (var key in SpringFestivalDayDic.Keys)
        {
            if (key == day)
            {
                WeekPartyDay = SpringFestivalDayDic[key];
            }
        }
        for (int i = 0; i < WeekPartyDay.WeekPartyItem.Length; i++)//积分奖励
        {
            var item = WeekPartyDay.WeekPartyItem[i];
            int type = i;
            bool IsBool = IsDayReward(day, type);
            if (point >= item.NeedPoint && !IsBool)
            {
                return RedPointState.GetReward;
            }
        }
        for (int i = 0; i < WeekPartyDay.TemplateList.Length; i++)
        {
            var TemplateID = WeekPartyDay.TemplateList[i];
            if (SpringFestivalDic.ContainsKey(TemplateID))
            {
                var WeekPartyAction = SpringFestivalDic[TemplateID];
                int number = WeekPartyAction.TotalTimes / WeekPartyAction.SingleTimes;
                int rewardNum = GetRewardNumber(day, TemplateID);//已领奖次数
                int carryOutNum = GetCarryOutNum(day, TemplateID);//已完成次数
                int TaypeNumber = 0;
                if (carryOutNum - rewardNum > 0)
                {
                    TaypeNumber = (carryOutNum - rewardNum) / WeekPartyAction.SingleTimes;
                }
                if (TaypeNumber > 0 && rewardNum < number)
                {
                    return RedPointState.GetReward;
                }
            }
        }
        return RedPointState.None;
    }
    public void GetDayNow()
    {
        OperationBase operationBase;
        if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.SpringFestival, out operationBase))
        {
            int inday = (operationBase as EventDaysTime).GetInDayNow();
            if (inday >= 0 && inday < 7)
            {
                _DayNow = inday;
            }
            else if (inday >= 7)
            {
                _DayNow = 6;
            }
        }
    }
    public bool IsOpenFeatures()
    {
        bool Isbool = false;
        Isbool = (OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.SpringFestival)
            || OperationTimeHepler.Instance.SatisfyAdvanceCondition(Operation.SpringFestival));
        return Isbool;
    }
}
System/OpenServerActivity/SpringFestivalModel.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e745d55fc89be58489c27c9c7b292b0a
timeCreated: 1548042965
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/OpenServerActivity/SpringFestivalWin.cs
New file
@@ -0,0 +1,398 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Monday, January 21, 2019
//--------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TableConfig;
using EnhancedUI.EnhancedScroller;
namespace Snxxz.UI
{
    [XLua.Hotfix]
    public class SpringFestivalWin : Window
    {
        //春节巡礼
        #region Built-in
        [SerializeField]
        ScrollerController m_ScrollerController1;//天
        [SerializeField] ScrollerController m_ScrollerController2;//列表
        [SerializeField] Text m_TextIntegral;//当前积分
        [SerializeField] GameObject m_One;
        [SerializeField] GameObject m_Two;
        [SerializeField] SpringFestivalItem m_SpringFestivalItemA;
        [SerializeField] SpringFestivalItem m_SpringFestivalItemA1;
        [SerializeField] SpringFestivalItem m_SpringFestivalItemB1;
        DailyQuestModel dailymodel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        OpenServiceAchievementModel OpenServicemodel { get { return ModelCenter.Instance.GetModel<OpenServiceAchievementModel>(); } }
        SpringFestivalModel model { get { return ModelCenter.Instance.GetModel<SpringFestivalModel>(); } }
        List<int> SortList = new List<int>();
        List<WeekPartyItemClass> ItemDayList = new List<WeekPartyItemClass>();
        protected override void BindController()
        {
            m_ScrollerController1.OnRefreshCell += OnRefreshGridCell_1;
            m_ScrollerController2.OnRefreshCell += OnRefreshGridCell_2;
        }
        protected override void AddListeners()
        {
        }
        protected override void OnPreOpen()
        {
            ChooseDay();
            SetTextIntegral();
            OnCreateGridLineCell1(m_ScrollerController1);
            OnCreateGridLineCell2(m_ScrollerController2);
            if (model.SelectedNow >= 5)
            {
                m_ScrollerController1.JumpIndex(5);
            }
        }
        protected override void OnAfterOpen()
        {
            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
            OperationTimeHepler.Instance.dayResetEvent += DayResetEvent;
            model.SpringFestivalRewardUpdate += SpringFestivalRewardUpdate;
        }
        protected override void OnPreClose()
        {
            OperationTimeHepler.Instance.operationStartEvent -= OperationStartEvent;
            model.SpringFestivalRewardUpdate -= SpringFestivalRewardUpdate;
            OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent;
        }
        private void DayResetEvent(int obj)
        {
            if (obj == (int)Operation.OpenServiceAchievement)
            {
                GetPointRewardObj();//获取积分领奖信息
                m_ScrollerController1.m_Scorller.RefreshActiveCellViews();//刷新可见
                m_ScrollerController2.m_Scorller.RefreshActiveCellViews();//刷新可见
            }
        }
        private void OperationStartEvent(Operation arg1, int arg2)
        {
            if (arg1 == Operation.OpenServiceAchievement)
            {
                GetPointRewardObj();//获取积分领奖信息
                m_ScrollerController1.m_Scorller.RefreshActiveCellViews();//刷新可见
                m_ScrollerController2.m_Scorller.RefreshActiveCellViews();//刷新可见
            }
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        private void SpringFestivalRewardUpdate()
        {
            GetPointRewardObj();//获取积分领奖信息
            m_ScrollerController1.m_Scorller.RefreshActiveCellViews();//刷新可见
            m_ScrollerController2.m_Scorller.RefreshActiveCellViews();//刷新可见
        }
        void OnCreateGridLineCell1(ScrollerController gridCtrl)
        {
            gridCtrl.Refresh();
            foreach (var key in model.SpringFestivalDayDic.Keys)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, key);
            }
            gridCtrl.Restart();
        }
        private void OnRefreshGridCell_1(ScrollerDataType type, CellView cell)
        {
            int Index = cell.index;
            ButtonEx Btn = cell.GetComponent<ButtonEx>();
            GameObject SelectedObj = cell.transform.Find("Image_XZ").gameObject;//选中
            GameObject SelectedObj1 = cell.transform.Find("Image_XZ1").gameObject;//选中
            ImageEx SelectedImageEx = SelectedObj.GetComponent<ImageEx>();
            GameObject Unselected = cell.transform.Find("Image_WXZ").gameObject;//未选中
            ImageEx UnselectedIm = Unselected.GetComponent<ImageEx>();
            GameObject Lock = cell.transform.Find("Lock").gameObject;//锁
            GameObject IsNotGary = cell.transform.Find("Obj1").gameObject;
            Text IsNotGary_text = IsNotGary.transform.Find("DayText").GetComponent<Text>();
            GameObject Gary = cell.transform.Find("Obj2").gameObject;
            Text Gary_text = Gary.transform.Find("DayText").GetComponent<Text>();
            RedpointBehaviour redPoint = cell.transform.Find("RedPoint").GetComponent<RedpointBehaviour>();//红点
            if (model.RedPointDic.ContainsKey(Index))
            {
                redPoint.redpointId = model.RedPointDic[Index].id;
            }
            if (Index <= model.DayNow)
            {
                SelectedImageEx.gray = false;
                Unselected.SetActive(true);
                UnselectedIm.gray = false;
                SelectedObj.SetActive(false);
                SelectedObj1.SetActive(false);
                Lock.SetActive(false);
                IsNotGary.SetActive(true);
                Gary.SetActive(false);
                IsNotGary_text.text = (Index + 1).ToString();
            }
            else
            {
                Unselected.SetActive(true);
                UnselectedIm.gray = true;
                SelectedObj.SetActive(false);
                SelectedObj1.SetActive(false);
                Lock.SetActive(true);
                IsNotGary.SetActive(false);
                Gary.SetActive(true);
                Gary_text.text = (Index + 1).ToString();
            }
            if (Index == model.SelectedNow)
            {
                if (Index > model.DayNow)
                {
                    SelectedImageEx.gray = true;
                    IsNotGary.SetActive(false);
                    Gary.SetActive(true);
                    Lock.SetActive(true);
                }
                else
                {
                    SelectedImageEx.gray = false;
                    IsNotGary.SetActive(true);
                    Gary.SetActive(false);
                    Lock.SetActive(false);
                }
                SelectedObj.SetActive(true);
                SelectedObj1.SetActive(true);
                Unselected.SetActive(false);
                IsNotGary_text.text = (Index + 1).ToString();
            }
            Btn.SetListener(() =>
            {
                if (Index != model.SelectedNow)
                {
                    model.SelectedNow = Index;//选中天
                    SetTextIntegral();
                    OnCreateGridLineCell2(m_ScrollerController2);
                    m_ScrollerController1.m_Scorller.RefreshActiveCellViews();//刷新可见
                }
            });
        }
        private string InDayStr(int Day)
        {
            string DaySte = string.Empty;
            DaySte = Language.Get("SignIn_4", Day);
            return DaySte;
        }
        void OnCreateGridLineCell2(ScrollerController gridCtrl)
        {
            ToAddSorting();//排序
            GetPointRewardObj();//获取积分领奖信息
            gridCtrl.Refresh();
            for (int i = 0; i < SortList.Count; i++)
            {
                gridCtrl.AddCell(ScrollerDataType.Header, SortList[i]);
            }
            gridCtrl.Restart();
        }
        private void OnRefreshGridCell_2(ScrollerDataType type, CellView cell)
        {
        }
        private void ToAddSorting()
        {
            SortList.Clear();
            int Weekday = OpenServicemodel.GetWeekDay(model.SelectedNow);
            var quests = dailymodel.GetQuestByWeekTime(Weekday);
            List<int> dailyIdlist = new List<int>();
            foreach (var key in quests.Keys)
            {
                var _list = quests[key];
                for (int i = 0; i < _list.Count; i++)
                {
                    dailyIdlist.Add(_list[i]);
                }
            }
            foreach (var key in model.SpringFestivalDayDic.Keys)
            {
                if (key == model.SelectedNow)
                {
                    for (int i = 0; i < model.SpringFestivalDayDic[key].TemplateList.Length; i++)
                    {
                        var TemplateId = model.SpringFestivalDayDic[key].TemplateList[i];
                        var config = Config.Instance.Get<HolidayHomingConfig>(TemplateId);
                        if (config == null)
                        {
                            continue;
                        }
                        if (config.DailyQusetId != 0)
                        {
                            if (dailyIdlist.Contains(config.DailyQusetId))
                            {
                                SortList.Add(TemplateId);
                            }
                        }
                        else
                        {
                            SortList.Add(TemplateId);
                        }
                    }
                }
            }
            SortList.Sort(Compare);
        }
        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 (model.SpringFestivalDic.ContainsKey(ID))
            {
                var SpringFestival = model.SpringFestivalDic[ID];
                int number = SpringFestival.TotalTimes / SpringFestival.SingleTimes;
                int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数
                int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数
                int TaypeNumber = 0;
                if (carryOutNum - rewardNum > 0)
                {
                    TaypeNumber = (carryOutNum - rewardNum) / SpringFestival.SingleTimes;
                }
                if (TaypeNumber > 0)
                {
                    Bool = true;
                }
            }
            return Bool;
        }
        private bool Undone(int ID)//未完成
        {
            bool Bool = false;
            if (model.SpringFestivalDic.ContainsKey(ID))
            {
                var SpringFestival = model.SpringFestivalDic[ID];
                int number = SpringFestival.TotalTimes / SpringFestival.SingleTimes;
                int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数
                int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数
                if (SpringFestival.TotalTimes > rewardNum)
                {
                    Bool = true;
                }
            }
            return Bool;
        }
        private bool Completed(int ID)//已领取
        {
            bool Bool = false;
            if (model.SpringFestivalDic.ContainsKey(ID))
            {
                var SpringFestival = model.SpringFestivalDic[ID];
                int rewardNum = model.GetRewardNumber(model.SelectedNow, ID);//已领奖次数
                int carryOutNum = model.GetCarryOutNum(model.SelectedNow, ID);//已完成次数
                if (rewardNum >= SpringFestival.TotalTimes)
                {
                    Bool = true;
                }
            }
            return Bool;
        }
        private int SizeId(int ID)
        {
            int index = 1;
            var config = Config.Instance.Get<HolidayHomingConfig>(ID);
            if (config != null)
            {
                index = config.order;
            }
            return index;
        }
        private void SetTextIntegral()//获取当前积分
        {
            int Point = model.GetPoint(model.SelectedNow);
            m_TextIntegral.text = Point.ToString();
        }
        private void GetPointRewardObj()
        {
            ItemDayList.Clear();
            foreach (var key in model.SpringFestivalDayDic.Keys)
            {
                if (key == model.SelectedNow)
                {
                    for (int i = 0; i < model.SpringFestivalDayDic[key].WeekPartyItem.Length; i++)
                    {
                        ItemDayList.Add(model.SpringFestivalDayDic[key].WeekPartyItem[i]);
                    }
                }
            }
            if (ItemDayList.Count > 1)
            {
                m_One.SetActive(false);
                m_Two.SetActive(true);
                m_SpringFestivalItemA1.SetReward(model.SelectedNow, ItemDayList[0], 0, 2);
                m_SpringFestivalItemB1.SetReward(model.SelectedNow, ItemDayList[1], 1, 2);
            }
            else
            {
                m_One.SetActive(true);
                m_Two.SetActive(false);
                m_SpringFestivalItemA.SetReward(model.SelectedNow, ItemDayList[0], 0, 1);
            }
        }
        private void ChooseDay()//选择天
        {
            foreach (var key in model.RedPointDic.Keys)//红点选择可领取的天
            {
                if (model.RedPointDic[key].state == RedPointState.GetReward)
                {
                    model.SelectedNow = key;
                    return;
                }
            }
            model.SelectedNow = model.DayNow;
        }
    }
}
System/OpenServerActivity/SpringFestivalWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 3f29b1e883e6d9b4d8eeac6532685502
timeCreated: 1548041885
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Welfare/OperationTimeHepler.cs
@@ -488,7 +488,99 @@
                }
            }
        }
        /// <summary>
        /// 登录奖励
        /// </summary>
        /// <param name="package"></param>
        public void RefreshLoginReward(HAA0C_tagMCActLoginAwardInfo package)
        {
            OperationBase operation = null;
            operationDict.TryGetValue(Operation.LoginReward, out operation);
            if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
            {
                ForceStopOperation(Operation.LoginReward);
            }
            else
            {
                if (operation == null)
                {
                    operation = new EventDaysTime();
                    operationDict.Add(Operation.LoginReward, operation);
                }
                operation.Reset();
                operation.startDate = ParseOperationDate(package.StartDate);
                operation.endDate = ParseOperationDate(package.EndtDate);
                operation.limitLv = package.LimitLV;
                operation.dayReset = package.IsDayReset == 1;
                operation.resetType = package.ResetType;
                operation.inAdvanceMinute = package.AdvanceMinutes;
                if (operationTimeUpdateEvent != null)
                {
                    operationTimeUpdateEvent(Operation.LoginReward);
                }
            }
        }
        /// <summary>
        /// 春节巡礼
        /// </summary>
        /// <param name="package"></param>
        public void SpringFestival(HAA20_tagMCFeastWeekPartyInfo package)
        {
            OperationBase operation = null;
            operationDict.TryGetValue(Operation.SpringFestival, out operation);
            if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
            {
                ForceStopOperation(Operation.SpringFestival);
            }
            else
            {
                if (operation == null)
                {
                    operation = new EventDaysTime();
                    operationDict.Add(Operation.SpringFestival, operation);
                }
                operation.Reset();
                operation.startDate = ParseOperationDate(package.StartDate);
                operation.endDate = ParseOperationDate(package.EndtDate);
                operation.limitLv = package.LimitLV;
                operation.dayReset = package.IsDayReset == 1;
                operation.resetType = package.ResetType;
                operation.inAdvanceMinute = package.AdvanceMinutes;
                if (operationTimeUpdateEvent != null)
                {
                    operationTimeUpdateEvent(Operation.SpringFestival);
                }
            }
        }
        public void OpenServiceAchievement(HAA0A_tagMCWeekPartyInfo package)
        {
            OperationBase operation = null;
            operationDict.TryGetValue(Operation.OpenServiceAchievement, out operation);
            if (string.IsNullOrEmpty(package.StartDate) || string.IsNullOrEmpty(package.EndtDate))
            {
                ForceStopOperation(Operation.OpenServiceAchievement);
            }
            else
            {
                if (operation == null)
                {
                    operation = new EventDaysTime();
                    operationDict.Add(Operation.OpenServiceAchievement, operation);
                }
                operation.Reset();
                operation.startDate = ParseOperationDate(package.StartDate);
                operation.endDate = ParseOperationDate(package.EndtDate);
                operation.limitLv = package.LimitLV;
                operation.dayReset = package.IsDayReset == 1;
                operation.resetType = package.ResetType;
                operation.inAdvanceMinute = package.AdvanceMinutes;
                if (operationTimeUpdateEvent != null)
                {
                    operationTimeUpdateEvent(Operation.OpenServiceAchievement);
                }
            }
        }
        void ForceStopOperation(Operation operationType)
        {
            if (operationDict.ContainsKey(operationType))
@@ -791,7 +883,10 @@
        FlashRushToBuy, //限时抢购
        WishingWellInfo, //许愿池
        AccumulateRecharge,//累计充值
        LoginReward,//登录奖励
        NewYearFairyCeremony, //春节仙界盛典
        SpringFestival,//春节巡礼
        OpenServiceAchievement,//七日巡礼
        max,
    }
}
System/WindowBase/ModelCenter.cs
@@ -221,6 +221,7 @@
            RegisterModel<CrossServerBossModel>();
            RegisterModel<OpenServiceAchievementModel>();
            RegisterModel<FashionDressModel>();
            RegisterModel<LoginRewardModel>();
            RegisterModel<JadeDynastyBossModel>();
            RegisterModel<JadeDynastyDecomposeModel>();
            RegisterModel<JadeDynastyTowerModel>();
Utility/EnumHelper.cs
@@ -327,7 +327,7 @@
    GatherSoulDungeon = 30,
    CrossServerPk = 31,
    JadeDynastyBoss = 32,
    JadeDynastyTower=33,
    JadeDynastyTower = 33,
}
public enum ActivityPrepareType
@@ -1261,9 +1261,11 @@
    Def_RewardType_IceLodeStar = 19, //冰晶矿脉星级奖励19
    Def_RewardType_WeekPartyAct = 20, //领取周狂欢活动奖励20
    Def_RewardType_WeekPartyPoint = 21,// 领取周狂欢积分奖励21
    Def_RewardType_ActLoginAwardAct = 22, // 领取登录奖励活动奖励22
    Def_RewardType_ActLoginAwardAct = 22,// 领取登录奖励活动奖励22
    Def_RewardType_NewFairyCRecharge = 23, // 新仙界盛典充值大礼23
    Def_RewardType_NewFairyCParty = 24, // 新仙界盛典全民来嗨24
    Def_RewardType_FeastWeekPartyAct = 25, //领取节日巡礼活动奖励25
    Def_RewardType_FeastWeekPartyPoint = 26, //领取节日巡礼积分奖励26
}
public enum MapType