少年修仙传客户端代码仓库
client_Wu Xijin
2018-10-29 d82561629d51d3863002a3f1bbb32ef6b1b429bb
Merge remote-tracking branch 'origin/master' into leonard

# Conflicts:
# System/Vip/VipInvest/WheelOfFortuneModel.cs
22个文件已修改
433 ■■■■■ 已修改文件
Core/ResModule/AssetBundle/AssetBundleUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungenWHYJ.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonFightWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HappyXB/BestXBWin.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HappyXB/RuneXBWin.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HeavenBattle/HeavenBattleModel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HeavenBattle/HeavenBattleWin.cs 125 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/BattleHint.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/BattleHintWin.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/ImpactRankModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServerActivityWin.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/WishingPoolModel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/WishingPoolWin.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/TalentModel.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/TalentSkillBehaviour.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureComponent.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/UI3DTreasureSelectStage.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipInvest/WheelOfFortuneModel.cs 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/OperationTimeHepler.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/WelfareCenter.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/WelfareWin.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/AssetBundle/AssetBundleUtility.cs
@@ -73,6 +73,7 @@
            var item = keys[i];
            if (item.Contains("builtin"))
            {
                m_AssetBundleDict[item].Unload(false);
                m_AssetBundleDict.Remove(item);
            }
        }
System/Dungeon/DungenWHYJ.cs
@@ -28,10 +28,8 @@
            for (int i = 0; i < congfig.Length; i++)
            {
                ListRating.Add(congfig[i]);
            }
            model.dungeonFightStageChangeEevent -= dungeonFightStageChangeEevent;
            model.dungeonFightStageChangeEevent += dungeonFightStageChangeEevent;
            model.updateMissionEvent -= updateMissionEvent;
            }
            model.dungeonFightStageChangeEevent += dungeonFightStageChangeEevent;
            model.updateMissionEvent += updateMissionEvent;
            if (model.dungeonFightStage == DungeonFightStage.Prepare)
            {
@@ -43,6 +41,12 @@
            }
            SetRatingImage();
            SetTranItemCell();
        }
        public void Unit()
        {
            model.dungeonFightStageChangeEevent -= dungeonFightStageChangeEevent;
            model.updateMissionEvent -= updateMissionEvent;
        }
        private void updateMissionEvent()
@@ -61,7 +65,7 @@
        }
        private void OnDisable()
        {
        }
        private void dungeonFightStageChangeEevent(DungeonFightStage obj)
@@ -140,6 +144,10 @@
        }
        private void SetRatingImage()
        {
            if (model.mission.Equals(default(DungeonMissionData)))
            {
                return;
            }
            switch (model.mission.grade)
            {
                case 1:
System/Dungeon/DungeonFightWin.cs
@@ -154,6 +154,7 @@
        protected override void OnAfterClose()
        {
            m_DungenWHYJ.Unit();
        }
        protected override void LateUpdate()
System/HappyXB/BestXBWin.cs
@@ -516,12 +516,14 @@
          
            if(isEndXB)
            {
                if(targetIndexs.Count > 1)
                if (targetIndexs.Count > 1)
                {
                    ShowXBResultCtrl(targetIndexs.Count - 1);
                }
                else
                {
                    XBGetItem xbItem = targetIndexs[targetIndexs.Count - 1];
                    XBModel.GetNotifyResult(xbItem.itemId, xbItem.count);
                    ResetXBItemState();
                    WindowCenter.Instance.Open<HappyXBGetItemWin>();
                }
System/HappyXB/RuneXBWin.cs
@@ -531,6 +531,8 @@
                }
                else
                {
                    XBGetItem xbItem = targetIndexs[targetIndexs.Count - 1];
                    XBModel.GetNotifyResult(xbItem.itemId, xbItem.count);
                    ResetXBItemState();
                    WindowCenter.Instance.Open<HappyXBGetItemWin>();
                }
System/HeavenBattle/HeavenBattleModel.cs
@@ -300,6 +300,7 @@
    private void SetBatterInfoList(HA003_tagUniversalGameRecInfo info)
    {
        GameRecInfoDict.Clear();
        if (!GameRecInfoDict.ContainsKey(info.Type))
        {
            List<GameRecInfo> list = new List<GameRecInfo>();
System/HeavenBattle/HeavenBattleWin.cs
@@ -29,12 +29,7 @@
        [SerializeField] Text matchCntText;
        [SerializeField] Button ruleBtn;
        [SerializeField] GameObject bettingTip;
        [SerializeField] List<Text> rewardlist = new List<Text>();
        [SerializeField] List<Image> rewardIconlist = new List<Image>();
        [SerializeField] List<Image> rewardBglist = new List<Image>();
        [SerializeField] List<Button> rewardBtnlist = new List<Button>();
        [SerializeField] List<Text> rewardItemCntlist = new List<Text>();
        [SerializeField] List<string> batterInfolist = new List<string>();
        [SerializeField] List<VictoryReward> victoryRewards = new List<VictoryReward>();
        [SerializeField] Button achieveBtn;
        #endregion
@@ -65,6 +60,8 @@
        private readonly int BATTLEINFO_TYPE = 0;
        private float refreshBetTime = 2;
        Color32 receiveColor = new Color32(200, 200, 200, 128);
        Color32 unReceiveColor = new Color32(255, 255, 255, 255);
        protected override void BindController()
        {
@@ -137,28 +134,7 @@
            victoryCntlist = heavenModel.heavenAwardDict.Keys.ToList();
            rewardSlider.minValue = victoryCntlist[0];
            rewardSlider.maxValue = victoryCntlist[victoryCntlist.Count - 1];
            for (int i = victoryCntlist.Count - 1; i > -1; i--)
            {
                XMZZVictoryRewardInfo rewardInfo = heavenModel.heavenAwardDict[victoryCntlist[i]][0];
                int index = i;
                rewardlist[i].text = Language.Get("XMZZ115", victoryCntlist[i]);
                if(rewardInfo.itemCnt > 1)
                {
                    rewardItemCntlist[i].gameObject.SetActive(true);
                    rewardItemCntlist[i].text = rewardInfo.itemCnt.ToString();
                }
                else
                {
                    rewardItemCntlist[i].gameObject.SetActive(false);
                }
                ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(rewardInfo.itemId);
                rewardIconlist[i].SetSprite(itemConfig.IconKey);
                rewardBglist[i].SetItemBackGround(itemConfig.ItemColor);
                rewardBtnlist[i].RemoveAllListeners();
                rewardBtnlist[i].AddListener(() => { ClickRewardIcon(rewardInfo, index); });
            }
            DisplayVictoryReward();
        }
        private void RefreshRemainTimeText(float time)
@@ -169,7 +145,6 @@
                CloseImmediately();
            }
        }
        private void RefreshEnterTimes(int id)
        {
@@ -252,7 +227,7 @@
        {
            if (victoryCntlist == null) return;
            RefreshRewardIconState();
            UpdateVictoryReward();
            if (victoryCnt >= victoryCntlist[0])
            {
@@ -262,44 +237,66 @@
            {
                rewardSlider.value = victoryCntlist[0];
            }
            //StartCoroutine(SetSliderValue(getValue,1));
        }
        private void RefreshRewardIconState()
        private void DisplayVictoryReward()
        {
            for(int i = 0; i < victoryCntlist.Count; i++)
            for (int i = victoryCntlist.Count - 1; i > -1; i--)
            {
                Image btnColor = rewardBtnlist[i].GetComponent<Image>();
                GameObject completeIcon = rewardBtnlist[i].transform.Find("completeIcon").gameObject;
                UIEffect effect = rewardBtnlist[i].transform.Find("UIEffect").GetComponent<UIEffect>();
                if (HeavenBattleInfo.Instance.IsGetAwardByIndex(i))
                int index = i;
                int victoryNum = victoryCntlist[i];
                XMZZVictoryRewardInfo rewardInfo = heavenModel.heavenAwardDict[victoryNum][0];
                var victoryReward = victoryRewards[index];
                victoryReward.victoryNum.text = Language.Get("XMZZ115", victoryCntlist[i]);
                victoryReward.rewardCount.text = rewardInfo.itemCnt.ToString();
                ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(rewardInfo.itemId);
                victoryReward.rewardImg.SetSprite(itemConfig.IconKey);
                victoryReward.bgImg.SetItemBackGround(itemConfig.ItemColor);
                if (rewardInfo.itemCnt > 1)
                {
                    completeIcon.SetActive(true);
                    effect.Stop();
                    btnColor.color = new Color32(200,200,200,128);
                    btnColor.transform.localRotation = Quaternion.Euler(0,0,0);
                    victoryReward.rewardCount.gameObject.SetActive(true);
                }
                else
                {
                    completeIcon.SetActive(false);
                    btnColor.color = new Color32(255, 255, 255, 255);
                    if(victoryCntlist[i] <= HeavenBattleInfo.Instance.WinCnt)
                    victoryReward.rewardCount.gameObject.SetActive(false);
                }
                victoryReward.rewardBtn.RemoveAllListeners();
                victoryReward.rewardBtn.AddListener(() => { ClickRewardIcon(rewardInfo, index); });
            }
        }
        private void UpdateVictoryReward()
        {
            for(int i = 0; i < victoryCntlist.Count; i++)
            {
                int victoryNum = victoryCntlist[i];
                var victoryReward = victoryRewards[i];
                if (HeavenBattleInfo.Instance.IsGetAwardByIndex(i))
                {
                    victoryReward.completeObj.SetActive(true);
                    victoryReward.effect.Stop();
                    victoryReward.bgImg.color = receiveColor;
                }
                else
                {
                    victoryReward.completeObj.SetActive(false);
                    victoryReward.bgImg.color = unReceiveColor;
                    if (victoryNum <= HeavenBattleInfo.Instance.WinCnt)
                    {
                        effect.Play();
                        victoryReward.effect.Play();
                    }
                    else
                    {
                        effect.Stop();
                        btnColor.transform.localRotation = Quaternion.Euler(0, 0, 0);
                        victoryReward.effect.Stop();
                    }
                }
            }
        }
        private void ClickRewardIcon(XMZZVictoryRewardInfo info,int index)
        {
            if(victoryCntlist[index] <= HeavenBattleInfo.Instance.WinCnt
            int victoryNum = victoryCntlist[index];
            if (victoryNum <= HeavenBattleInfo.Instance.WinCnt
                && !HeavenBattleInfo.Instance.IsGetAwardByIndex(index))
            {
                heavenModel.SendGetAwardQuest(victoryCntlist[index]);
@@ -322,25 +319,6 @@
            CloseWin();
        }
        IEnumerator SetSliderValue(float value,float delayTime)
        {
            bool isChange = true;
            float speed = (value - rewardSlider.value) / delayTime;
            float sliderValue = rewardSlider.value;
            float time = 0;
            while (isChange)
            {
                time += Time.deltaTime;
                rewardSlider.value = sliderValue + speed * time;
                DebugEx.Log("进度:" + rewardSlider.value);
                if(rewardSlider.value >= value)
                {
                    isChange = false;
                }
                yield return new WaitForEndOfFrame();
            }
        }
        private void ClickAchieveBtn()
        {
            WindowCenter.Instance.Open<XMZZAchieveWin>();
@@ -351,5 +329,16 @@
            Close();
        }
        [Serializable]
        public class VictoryReward
        {
            public Image bgImg;
            public Image rewardImg;
            public Button rewardBtn;
            public GameObject completeObj;
            public UIEffect effect;
            public Text rewardCount;
            public Text victoryNum;
        }
    }
}
System/Message/BattleHint.cs
@@ -32,7 +32,7 @@
        public event Action battleHintUpdate;
        public event Action evenKillUpdate;
        Queue<int> battleHints = new Queue<int>();
        List<int> battleHints = new List<int>();
        Queue<string> evenKills = new Queue<string>();
        int ancientKing = 0;
@@ -79,7 +79,11 @@
        public void Receive(int ancientType)
        {
            battleHints.Enqueue(ancientType);
            if (battleHints.Contains(ancientType))
            {
                return;
            }
            battleHints.Add(ancientType);
            if (!WindowCenter.Instance.IsOpen<BattleHintWin>())
            {
                WindowCenter.Instance.Open<BattleHintWin>();
@@ -130,7 +134,8 @@
            ancientType = 0;
            if (battleHints.Count > 0)
            {
                ancientType = battleHints.Dequeue();
                ancientType = battleHints[0];
                battleHints.RemoveAt(0);
                return true;
            }
            return false;
System/Message/BattleHintWin.cs
@@ -88,21 +88,25 @@
                m_ContainerKing.gameObject.SetActive(false);
                m_ContainerEnemy.gameObject.SetActive(false);
                m_ContainerAncientRemind.gameObject.SetActive(false);
                m_ContainerBattleHint.gameObject.SetActive(true);
                switch (ancientType)
                {
                    case 1:
                        m_ContainerKing.gameObject.SetActive(true);
                        m_BattleHintTween.SetEndState();
                        OnBattleHintTweenComplete();
                        break;
                    case 2:
                        m_ContainerEnemy.gameObject.SetActive(true);
                        m_BattleHintTween.SetEndState();
                        OnBattleHintTweenComplete();
                        break;
                    case 3:
                        m_ContainerAncientRemind.gameObject.SetActive(true);
                        m_BattleHintTween.SetStartState();
                        m_BattleHintTween.Play(OnBattleHintTweenComplete);
                        break;
                }
                m_ContainerBattleHint.gameObject.SetActive(true);
                m_BattleHintTween.SetStartState();
                m_BattleHintTween.Play(OnBattleHintTweenComplete);
            }
        }
System/OpenServerActivity/ImpactRankModel.cs
@@ -792,6 +792,8 @@
            FlashRushToBuy,
            [Header("许愿池")]
            WishingPool,
            [Header("绑玉转盘")]
            WheelOfrtune,
        }
    }
System/OpenServerActivity/OpenServerActivityWin.cs
@@ -558,6 +558,9 @@
                case 15:
                    WindowCenter.Instance.Open<WishingPoolWin>(true);
                    break;
                case 16:
                    WindowCenter.Instance.Open<WheelOfFortuneWin>(true);
                    break;
            }
        }
@@ -595,6 +598,7 @@
            WindowCenter.Instance.CloseImmediately<FairyGrabBossNoticeWin>();
            WindowCenter.Instance.CloseImmediately<FlashRushToBuyWin>();
            WindowCenter.Instance.CloseImmediately<WishingPoolWin>();
            WindowCenter.Instance.CloseImmediately<WheelOfFortuneWin>();
        }
        private int Compare(int order_x, int order_y)
System/OpenServerActivity/WishingPoolModel.cs
@@ -66,7 +66,7 @@
        private void OperationEndEvent(Operation type, int state)
        {
            if (type == Operation.WishingWellInfo && state == 1)
            if (type == Operation.WishingWellInfo && state == 0)
            {
                UpdateRedpoint();
                if (onStateUpate != null)
@@ -89,7 +89,7 @@
        private void OperationStartEvent(Operation type, int state)
        {
            if (type == Operation.WishingWellInfo && state == 1)
            if (type == Operation.WishingWellInfo && state == 0)
            {
                UpdateRedpoint();
                if (onStateUpate != null)
System/OpenServerActivity/WishingPoolWin.cs
@@ -27,6 +27,8 @@
        [SerializeField] UIAlphaTween alphaTween;
        [SerializeField] List<Vector2> startPos = new List<Vector2>();
        [SerializeField] List<Vector2> endPos = new List<Vector2>();
        [Header("最小时间间隔")] [SerializeField] int minDuration = 3;
        [Header("最大时间间隔")] [SerializeField] int maxDuration = 6;
        ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
        WishingPoolModel wishingModel { get { return ModelCenter.Instance.GetModel<WishingPoolModel>(); } }
@@ -105,8 +107,16 @@
            alphaTween.to = 1;
            alphaTween.SetStartState();
            handImg.gameObject.SetActive(true);
            int offset = wishingModel.handStartIndex % 4 - wishingModel.handEndIndex;
            positionTween.duration = Mathf.Max(2, Mathf.Abs(offset));
            int offset = Mathf.Abs(wishingModel.handStartIndex % 4 - wishingModel.handEndIndex);
            if(offset < minDuration)
            {
                offset = minDuration;
            }
            else if(offset > maxDuration)
            {
                offset = maxDuration;
            }
            positionTween.duration = offset;
            alphaTween.Play();
            positionTween.Play(() =>
            {
@@ -235,7 +245,7 @@
        #region 活动逻辑
        private void OperationEndEvent(Operation type, int state)
        {
            if(type == Operation.WishingWellInfo && state == 1)
            if(type == Operation.WishingWellInfo && state == 0)
            {
                UpdateActivityState();
            }
System/Skill/TalentModel.cs
@@ -63,6 +63,7 @@
        public event Action selectSkillEvent;
        public event Action talentPointUpdate;
        public event Action<int> talentSkillUpdate;
        public event Action<int> talentSkillLevelUp;
        public override void Init()
        {
@@ -336,10 +337,18 @@
            if (talentSkills.ContainsKey(config.SkillTypeID))
            {
                var talentSkill = talentSkills[config.SkillTypeID];
                bool levelUp = talentSkill.level < config.SkillLV;
                talentSkill.level = config.SkillLV;
                if (talentSkillUpdate != null)
                {
                    talentSkillUpdate(config.SkillTypeID);
                }
                if (levelUp && serverInited)
                {
                    if (talentSkillLevelUp != null)
                    {
                        talentSkillLevelUp(config.SkillTypeID);
                    }
                }
            }
        }
@@ -406,14 +415,7 @@
        public TalentConfig GetTalentConfig(int level = 0)
        {
            if (level > 0)
            {
                return Config.Instance.Get<TalentConfig>(skillId + level - 1);
            }
            else
            {
                return Config.Instance.Get<TalentConfig>(skillId + level);
            }
            return Config.Instance.Get<TalentConfig>(skillId);
        }
    }
System/Skill/TalentSkillBehaviour.cs
@@ -30,6 +30,10 @@
            model.talentSkillUpdate += TalentSkillUpdate;
            model.selectSkillEvent -= OnSelectSkillEvent;
            model.selectSkillEvent += OnSelectSkillEvent;
            model.talentPointUpdate -= TalentPointUpdate;
            model.talentPointUpdate += TalentPointUpdate;
            model.talentSkillLevelUp -= TalentSkillLevelUp;
            model.talentSkillLevelUp += TalentSkillLevelUp;
            Display();
        }
@@ -44,8 +48,19 @@
                    m_Icon.SetSprite(config.IconName);
                }
                m_Level.text = StringUtility.Contact(talent.level, "/", talent.maxLevel);
                m_Icon.material = talent.level > 0 ? MaterialUtility.GetUIDefaultGraphicMaterial() : MaterialUtility.GetDefaultSpriteGrayMaterial();
                DisplayState();
                m_ContainerSelect.gameObject.SetActive(skillId == model.selectSkill);
            }
        }
        private void DisplayState()
        {
            TalentSkill talent;
            if (model.TryGetTalent(skillId, out talent))
            {
                var error = 0;
                m_Icon.material = talent.level > 0 || model.SatisfyLevelUp(talent.skillId, out error) ?
                    MaterialUtility.GetUIDefaultGraphicMaterial() : MaterialUtility.GetDefaultSpriteGrayMaterial();
            }
        }
@@ -54,6 +69,10 @@
            if (skillId == _skillid)
            {
                Display();
            }
            else if (skillId != 0)
            {
                DisplayState();
            }
        }
@@ -66,6 +85,24 @@
        {
            model.talentSkillUpdate -= TalentSkillUpdate;
            model.selectSkillEvent -= OnSelectSkillEvent;
            model.talentPointUpdate -= TalentPointUpdate;
            model.talentSkillLevelUp -= TalentSkillLevelUp;
        }
        private void TalentSkillLevelUp(int _skillId)
        {
            if (skillId != 0 && skillId == _skillId)
            {
                EffectMgr.Instance.PlayUIEffect(3069, 2500, transform, false);
            }
        }
        private void TalentPointUpdate()
        {
            if (skillId != 0)
            {
                DisplayState();
            }
        }
        private void SelectSkill()
System/Treasure/TreasureComponent.cs
@@ -720,7 +720,7 @@
            Treasure _treasure;
            if (category == TreasureCategory.Human &&
                model.TryGetTreasure(treasureId, out _treasure) && _treasure.IsHighestStage
                && !model.GetTreasureFinishAnim(treasureId))
                && !model.GetTreasureFinishAnim(treasureId) && model.GetTreasureUnlockShow(TreasureCategory.Human) != treasureId)
            {
                highestSfx = SFXPlayUtility.Instance.Play(5197, root);
                if (highestSfx != null)
@@ -728,7 +728,7 @@
                    var animator = highestSfx.GetComponentInChildren<Animator>(true);
                    if (animator != null)
                    {
                        animator.Play(HUMAN_HIGHEST_STAGE_1, 0, 0);
                        animator.Play(HUMAN_HIGHEST_STAGE_1, 0, UI3DTreasureSelectStage.sync_normalizedTime);
                    }
                    highestSfx.duration = 0;
                    LayerUtility.SetLayer(highestSfx.gameObject, LayerUtility.UILayer, true);
System/Treasure/UI3DTreasureSelectStage.cs
@@ -220,6 +220,10 @@
        private Dictionary<TreasureCategory, bool> m_PreloadDict = new Dictionary<TreasureCategory, bool>();
        Coroutine preloadCoroutine = null;
        public static float sync_normalizedTime = 0f;
        const float effect_duration = 4f;
        float sync_timer = 0f;
        private void InitTreasure()
        {
            Load(TreasureCategory.Human);
@@ -752,6 +756,7 @@
        private void LateUpdate()
        {
            Tick();
            if (!IsOpen || Preloading)
            {
                return;
@@ -788,6 +793,19 @@
            }
        }
        private void Tick()
        {
            sync_normalizedTime = Mathf.Clamp01(sync_timer / effect_duration);
            if (sync_timer >= effect_duration)
            {
                sync_timer = 0f;
            }
            else
            {
                sync_timer += Time.deltaTime;
            }
        }
        #region 滑动
        private void CheckDisplay()
        {
System/Vip/VipInvest/WheelOfFortuneModel.cs
@@ -13,7 +13,7 @@
{
    [XLua.LuaCallCSharp]
    public class WheelOfFortuneModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    public class WheelOfFortuneModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        public class AngleClass
        {
@@ -28,29 +28,63 @@
        public Dictionary<int, AngleClass> AngleDic = new Dictionary<int, AngleClass>();
        private double[][] AngleList;
        public event Action<float> WheelOfFortuneUpdate;
        public event Action<int> onStateUpate;
        private string StrKey = string.Empty;
        private bool IsOk = false;
        private const int Redpoint_key1 = 20106;//幸运转盘红点
        public Redpoint redPointStre1 = new Redpoint(201, Redpoint_key1);
        private const int Redpoint_key1 = 20916;//幸运转盘红点
        public Redpoint redPointStre1 = new Redpoint(209, Redpoint_key1);
        VipModel m_Vipmodel;
        VipModel vipmodel { get { return m_Vipmodel ?? (m_Vipmodel = ModelCenter.Instance.GetModel<VipModel>()); } }
        public bool IsOpen
        {
            get
            {
                return FuncOpen.Instance.IsFuncOpen(144);
            }
        }
        public bool IsAdvance
        {
            get
            {
                return false;
            }
        }
        public bool priorityOpen
        {
            get
            {
                if (redPointStre1.state == RedPointState.Simple)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        public override void Init()
        {
            OpenServerActivityCenter.Instance.Register(16, this);
            var BindJadewheel = Config.Instance.Get<FuncConfigConfig>("BindJadeWheelCfg");
            NeedJade = int.Parse(BindJadewheel.Numerical1);
            AngleList = JsonMapper.ToObject<double[][]>(BindJadewheel.Numerical5);
            if (AngleDic.Count <= 0)
            {
                for (int i = 0; i < AngleList.Length; i++)
                {
                    int Type = i + 1;
                    AngleClass angleClass = new AngleClass();
                    angleClass.AngleStart = (float)AngleList[i][0];
                    angleClass.AngleEnd = (float)AngleList[i][1];
                    AngleDic.Add(Type, angleClass);
                }
            }
            if (AngleDic.Count <= 0)
            {
                for (int i = 0; i < AngleList.Length; i++)
                {
                    int Type = i + 1;
                    AngleClass angleClass = new AngleClass();
                    angleClass.AngleStart = (float)AngleList[i][0];
                    angleClass.AngleEnd = (float)AngleList[i][1];
                    AngleDic.Add(Type, angleClass);
                }
            }
        }
        public override void UnInit()
@@ -60,8 +94,8 @@
        public void OnBeforePlayerDataInitialize()
        {
            IsOk = false;
            IsOk = false;
        }
        public void OnPlayerLoginOk()
@@ -74,14 +108,18 @@
            StrKey = "IsOpenFiaryJadeRedPoint" + PlayerDatas.Instance.baseData.PlayerID;
            AngleSave = LocalSave.GetFloat(StrKey);
            RedPoint();
        }
        }
        private void OnFuncStateChangeEvent(int obj)
        {
            if (obj == 144)
            {
                if (onStateUpate != null)
                {
                    onStateUpate(16);
                }
                RedPoint();
            }
        }
@@ -94,22 +132,22 @@
            {
                if (AngleDic.ContainsKey(Lattice))
                {
                    float flo = UnityEngine.Random.Range(AngleDic[Lattice].AngleStart + 1f, AngleDic[Lattice].AngleEnd - 1f);
                    float flo = UnityEngine.Random.Range(AngleDic[Lattice].AngleStart + 1f, AngleDic[Lattice].AngleEnd - 1f);
                    flo = (float)Math.Round((double)flo, 2);
                    if (flo > 360f)
                    {
                        flo = flo - 360f;
                    }
                    if (Math.Abs(flo- AngleSave)<=0.2)
                    {
                        if ((flo + 1f )> (AngleDic[Lattice].AngleStart + 1f) && (flo + 1f) < (AngleDic[Lattice].AngleEnd - 1f))
                        {
                            flo += 1;
                        }
                        else if ((flo - 1f) > (AngleDic[Lattice].AngleStart + 1f) && (flo - 1f) < (AngleDic[Lattice].AngleEnd - 1f))
                        {
                            flo -= 1;
                        }
                    if (Math.Abs(flo- AngleSave)<=0.2)
                    {
                        if ((flo + 1f )> (AngleDic[Lattice].AngleStart + 1f) && (flo + 1f) < (AngleDic[Lattice].AngleEnd - 1f))
                        {
                            flo += 1;
                        }
                        else if ((flo - 1f) > (AngleDic[Lattice].AngleStart + 1f) && (flo - 1f) < (AngleDic[Lattice].AngleEnd - 1f))
                        {
                            flo -= 1;
                        }
                    }
                    LocalSave.SetFloat(StrKey, flo);
                    AngleSave = LocalSave.GetFloat(StrKey);
@@ -119,7 +157,7 @@
                    WheelOfFortuneUpdate(AngleSave);
                }
                RedPoint();
            }
            }
        }
        public void StartTheDraw()//开始抽奖
        {
System/Welfare/OperationTimeHepler.cs
@@ -287,6 +287,7 @@
                operation.startDate = ParseOperationDate(package.StartDate);
                operation.endDate = ParseOperationDate(package.EndtDate);
                operation.dayReset = package.IsDayReset == 1;
                operation.resetType = package.ResetType;
                operation.ParsePackage(package);
                if (operationTimeUpdateEvent != null)
                {
System/Welfare/WelfareCenter.cs
@@ -15,8 +15,6 @@
        InSevenDayModel sevenDayModel { get { return ModelCenter.Instance.GetModel<InSevenDayModel>(); } }
        WheelOfFortuneModel m_WheelOfFortuneModel;
        WheelOfFortuneModel wheelOfFortuneModel { get { return m_WheelOfFortuneModel ?? (m_WheelOfFortuneModel = ModelCenter.Instance.GetModel<WheelOfFortuneModel>()); } }
        /// <summary>
        /// 点击主界面福利按钮打开
        /// </summary>
@@ -64,13 +62,6 @@
                WindowCenter.Instance.Open<WelfareWin>(false, 3);
                return;
            }
            if (wheelOfFortuneModel.redPointStre1.state == RedPointState.Simple)//绑玉转盘
            {
                WindowCenter.Instance.Close<MainInterfaceWin>();
                WindowCenter.Instance.Open<WelfareWin>(false, 5);
                return;
            }
            WindowCenter.Instance.Close<MainInterfaceWin>();
            WindowCenter.Instance.Open<WelfareWin>(false, functionOrder);
        }
@@ -110,11 +101,6 @@
            if (levelGiftModel.redpoint.state == RedPointState.GetReward)
            {
                return 3;
            }
            if (wheelOfFortuneModel.redPointStre1.state == RedPointState.Simple)
            {
                return 5;
            }
            return functionOrder;
        }
System/Welfare/WelfareWin.cs
@@ -19,7 +19,6 @@
        [SerializeField] FunctionButton Btn_InSeven;
        [SerializeField] FunctionButton m_LevelGiftBtn;
        [SerializeField] FunctionButton m_ExchangeBtn;
        [SerializeField] FunctionButton m_TurntableBtn;
        [SerializeField] FunctionButtonGroup buttonGroup;
        [SerializeField] Button closeBtn;
@@ -40,7 +39,6 @@
            Btn_InSeven.AddListener(InSeven);
            m_LevelGiftBtn.onClick.AddListener(OnLevelGift);
            m_ExchangeBtn.onClick.AddListener(OnExchange);
            m_TurntableBtn.onClick.AddListener(OnTurntableBtn);
            closeBtn.onClick.AddListener(CloseClick);
        }
@@ -98,20 +96,6 @@
            }
            functionOrder = 4;
        }
        private void OnTurntableBtn()
        {
            CloseChildWin();
            if (windowState == WindowState.Opened)
            {
                WindowCenter.Instance.OpenWithoutAnimation<WheelOfFortuneWin>();
            }
            else
            {
                WindowCenter.Instance.Open<WheelOfFortuneWin>();
            }
            functionOrder = 5;
        }
        private void OnSignIn()
        {
            CloseChildWin();
@@ -137,14 +121,6 @@
            else
            {
                Btn_InSeven.gameObject.SetActive(true);
            }
            if (FuncOpen.Instance.IsFuncOpen(144))
            {
                m_TurntableBtn.gameObject.SetActive(true);
            }
            else
            {
                m_TurntableBtn.gameObject.SetActive(false);
            }
            CheckOperationOpen();
@@ -203,10 +179,6 @@
            if (WindowCenter.Instance.IsOpen<AwardExchangeWin>())
            {
                WindowCenter.Instance.CloseImmediately<AwardExchangeWin>();
            }
            if (WindowCenter.Instance.IsOpen<WheelOfFortuneWin>())
            {
                WindowCenter.Instance.CloseImmediately<WheelOfFortuneWin>();
            }
        }
System/WindowJump/WindowJumpMgr.cs
@@ -342,7 +342,6 @@
            case JumpUIType.WelfareFunc2:
            case JumpUIType.WelfareFunc3:
            case JumpUIType.WelfareFunc2Type2:
            case JumpUIType.BindGoldWheel:
                SetJumpLogic<WelfareWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.SystemSettingFunc1:
@@ -486,6 +485,7 @@
            case JumpUIType.OpenServerRank:
            case JumpUIType.VipRechargeFunc5:
            case JumpUIType.FlashRushToBuy:
            case JumpUIType.BindGoldWheel:
                SetJumpLogic<OpenServerActivityWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.OpenServerMountRank:
@@ -788,6 +788,14 @@
                    }
                }
                break;
            case JumpUIType.BindGoldWheel:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                    {
                        return false;
                    }
                }
                break;
            case JumpUIType.ConsumreRebate:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))