少年修仙传客户端代码仓库
client_linchunjie
2019-01-18 9652722a6d30e9502266e8b9dac704de8ed4f9ec
StrangleGodBoss
7个文件已修改
162 ■■■■■ 已修改文件
System/FindPrecious/FindPreciousBossRebornBehaviour.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousModel.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/InGamePushContainer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/StrangleGodBoss/StrangleGodBossBehaviour.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/StrangleGodBoss/StrangleGodBossModel.cs 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/ModelCenter.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/EnumHelper.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousBossRebornBehaviour.cs
@@ -130,6 +130,9 @@
                case FindPreciousType.CrossServerBoss:
                    GotoKillCrossServerBoss(bossId);
                    break;
                case FindPreciousType.StrangleGodBoss:
                    GotoKillStrangleGodBoss(bossId);
                    break;
            }
            ReportConfirmBossRebornNotify();
@@ -334,6 +337,24 @@
            }
        }
        private void GotoKillStrangleGodBoss(int _bossId)
        {
            var mapId = PlayerDatas.Instance.baseData.MapID;
            var mapConfig = Config.Instance.Get<MapConfig>(mapId);
            if (mapConfig.MapFBType == (int)MapType.OpenCountry)
            {
                WindowCenter.Instance.Close<MainInterfaceWin>();
                var strangleGodBossModel = ModelCenter.Instance.GetModel<StrangleGodBossModel>();
                strangleGodBossModel.assginSelectBossId = _bossId;
                WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 3);
            }
            else
            {
                SysNotifyMgr.Instance.ShowTip("InDungeon_CantGo");
            }
        }
        private void EnterBossHome(int _floor, int _bossId)
        {
            var error = 0;
System/FindPrecious/FindPreciousModel.cs
@@ -56,6 +56,7 @@
        BossHomeModel bossHomeModel { get { return ModelCenter.Instance.GetModel<BossHomeModel>(); } }
        PersonalBossModel personalBossModel { get { return ModelCenter.Instance.GetModel<PersonalBossModel>(); } }
        DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
        StrangleGodBossModel strangleGodBossModel { get { return ModelCenter.Instance.GetModel<StrangleGodBossModel>(); } }
        public override void Init()
        {
@@ -472,7 +473,10 @@
            {
                return FindPreciousType.CrossServerBoss;
            }
            else if (strangleGodBossModel.IsStrangleGodBoss(_bossId))
            {
                return FindPreciousType.StrangleGodBoss;
            }
            return FindPreciousType.None;
        }
System/MainInterfacePanel/InGamePushContainer.cs
@@ -35,6 +35,7 @@
        DemonJarModel demonJarModel { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } }
        DogzDungeonModel dogzDungeonModel { get { return ModelCenter.Instance.GetModel<DogzDungeonModel>(); } }
        CrossServerBossModel crossServerBossModel { get { return ModelCenter.Instance.GetModel<CrossServerBossModel>(); } }
        StrangleGodBossModel strangleGodBossModel { get { return ModelCenter.Instance.GetModel<StrangleGodBossModel>(); } }
        VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
@@ -282,6 +283,9 @@
                        killable = crossServerBossModel.wearyValue < GeneralDefine.bossWearyValues[2];
                        show = !GeneralDefine.dogzNoRebornRemindMaps.Contains(mapId);
                        break;
                    case FindPreciousType.StrangleGodBoss:
                        break;
                }
                if (!killable)
System/StrangleGodBoss/StrangleGodBossBehaviour.cs
@@ -3,7 +3,7 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TableConfig;
namespace Snxxz.UI
{
    public class StrangleGodBossBehaviour : ScrollItem
@@ -12,15 +12,23 @@
        [SerializeField] SmoothMask m_SmoothMask;
        [SerializeField] Text m_BossLevel;
        [SerializeField] Text m_BossName;
        [SerializeField] Text m_BossIcon;
        [SerializeField] Image m_BossPortrait;
        [SerializeField] Transform m_ContainerSelect;
        [SerializeField] Transform m_ContainerUnChanllgeable;
        [SerializeField] Text m_ChallengeCondition;
        [SerializeField] Transform m_ContainerChallengeable;
        [SerializeField] Text m_FightPeopleCount;
        [SerializeField] Image m_Realm;
        [SerializeField] Transform m_ContainerReborn;
        [SerializeField] Transform m_ContainerFighting;
        [SerializeField] Text m_FightPeopleCount;
        [SerializeField] Transform m_ContainerBossDead;
        [SerializeField] Text m_RebornTime;
        [SerializeField] Transform m_ContainerAttention;
        [SerializeField] Button m_Select;
        StrangleGodBossModel model
        {
            get { return ModelCenter.Instance.GetModel<StrangleGodBossModel>(); }
        }
        public int bossNpcId { get; private set; }
@@ -33,11 +41,24 @@
        {
            base.Display(_data);
            bossNpcId = (int)_data;
            DisplayBase();
        }
        public override void Dispose()
        {
            base.Dispose();
        }
        public void DisplayBase()
        {
            var config = Config.Instance.Get<NPCConfig>(bossNpcId);
            if (config != null)
            {
                m_BossLevel.text = config.NPCLV.ToString();
                m_BossName.text = config.charName;
                m_BossPortrait.SetSprite(config.HeadPortrait);
            }
        }
        private void Select()
System/StrangleGodBoss/StrangleGodBossModel.cs
@@ -1,25 +1,121 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TableConfig;
using System;
namespace Snxxz.UI
{
    public class StrangleGodBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        List<StrangleGodBossData> strangleGodBosses = new List<StrangleGodBossData>();
        public event Action<int> selectBossRefresh;
        int m_SelectBossId = 0;
        public int selectBossId
        {
            get { return m_SelectBossId; }
            set
            {
                if (m_SelectBossId != value)
                {
                    m_SelectBossId = value;
                    if (selectBossRefresh != null)
                    {
                        selectBossRefresh(value);
                    }
                }
            }
        }
        public int assginSelectBossId { get; set; }
        public override void Init()
        {
            InitFakeData();
        }
        public void OnBeforePlayerDataInitialize()
        {
        }
        public void OnPlayerLoginOk()
        {
        }
        public override void UnInit()
        {
        }
        public bool IsStrangleGodBoss(int bossNpcId)
        {
            var index = strangleGodBosses.FindIndex((x) =>
            {
                return x.bossNpcId == bossNpcId;
            });
            return index >= 0;
        }
        #region 山寨数据
        void InitFakeData()
        {
            AddFakeData(60203001, 100, 0);
            AddFakeData(60203002, 130, 0);
            AddFakeData(60203003, 150, 0);
            AddFakeData(60203004, 160, 0);
            AddFakeData(60203005, 180, 0);
            AddFakeData(60203006, 190, 0);
        }
        void AddFakeData(int bossNpcId, int level, int score)
        {
            var config = Config.Instance.Get<NPCConfig>(bossNpcId);
            strangleGodBosses.Add(new StrangleGodBossData()
            {
                bossNpcId = bossNpcId,
                challengeCondition = new StrangleGodBossCondition()
                {
                    level = level,
                    realmLevel = config.Realm,
                    score = score,
                },
            });
        }
        #endregion
        public static int SortCompare(StrangleGodBossData lhs, StrangleGodBossData rhs)
        {
            if (lhs.challengeCondition.level != rhs.challengeCondition.level)
            {
                return lhs.challengeCondition.level.CompareTo(rhs.challengeCondition.level);
            }
            if (lhs.challengeCondition.realmLevel != rhs.challengeCondition.realmLevel)
            {
                return lhs.challengeCondition.realmLevel.CompareTo(rhs.challengeCondition.realmLevel);
            }
            if (lhs.challengeCondition.score != rhs.challengeCondition.score)
            {
                return lhs.challengeCondition.score.CompareTo(rhs.challengeCondition.score);
            }
            return 0;
        }
    }
    public struct StrangleGodBossData
    {
        public int bossNpcId;
        public StrangleGodBossCondition challengeCondition;
    }
    public struct StrangleGodBossCondition
    {
        public int level;
        public int realmLevel;
        public int score;
    }
}
System/WindowBase/ModelCenter.cs
@@ -221,6 +221,7 @@
            RegisterModel<CrossServerBossModel>();
            RegisterModel<OpenServiceAchievementModel>();
            RegisterModel<FashionDressModel>();
            RegisterModel<StrangleGodBossModel>();
            inited = true;
        }
Utility/EnumHelper.cs
@@ -1178,7 +1178,8 @@
    ElderGodArea = 3,
    DemonJar = 4,
    DogzDungeon = 5,
    CrossServerBoss=6,
    CrossServerBoss = 6,
    StrangleGodBoss = 7,
    None = 99,
}