| | |
| | | namespace Snxxz.UI
|
| | | {
|
| | | [XLua.LuaCallCSharp]
|
| | | public class BossHomeModel : Model, IMapInitOk
|
| | | public class BossHomeModel : Model, IMapInitOk
|
| | | {
|
| | | public const int BOSSHOME_MAPID = 31020;
|
| | | public const int BOSSHOME_REDPOINT = 76002;
|
| | |
|
| | | int m_SelectedFloor = 0;
|
| | | public int selectedFloor {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | int m_WearyValue = 0;
|
| | | public int wearyValue {
|
| | | get { return m_WearyValue; }
|
| | | set {
|
| | | m_WearyValue = value;
|
| | | UpdateRedpoint();
|
| | | if (bossWearyValueChangeEvent != null)
|
| | | {
|
| | | bossWearyValueChangeEvent();
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public event Action<int> bossHomeFloorSelectedEvent;
|
| | | public event Action<int> bossSelectedEvent;
|
| | | public event Action bossWearyValueChangeEvent;
|
| | |
|
| | | public Redpoint bossHomeRedpoint = new Redpoint(FindPreciousModel.FINDPRECIOUS_REDPOINTID, BOSSHOME_REDPOINT);
|
| | | Dictionary<int, BossHomeData> bossHomes = new Dictionary<int, BossHomeData>();
|
| | | Dictionary<int, int> vipLackFloorCost = new Dictionary<int, int>();
|
| | | List<int> sortedBosses = new List<int>();
|
| | |
| | | public override void Init()
|
| | | {
|
| | | ParseConfig();
|
| | | PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataChange;
|
| | | }
|
| | |
|
| | | public override void UnInit()
|
| | | {
|
| | | PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataChange;
|
| | | }
|
| | |
|
| | | public bool TryGetBossHomeData(int _layer, out BossHomeData _data)
|
| | |
| | | {
|
| | | return 0;
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnPlayerDataChange(PlayerDataType _type)
|
| | | {
|
| | | if (_type == PlayerDataType.VIPLv)
|
| | | {
|
| | | UpdateRedpoint();
|
| | | }
|
| | | }
|
| | |
|
| | | private void UpdateRedpoint()
|
| | | {
|
| | | var count = vipModel.GetVipPrivilegeCnt(VipPrivilegeType.BossHomeAwardLimit) - m_WearyValue;
|
| | | bossHomeRedpoint.count = count;
|
| | | bossHomeRedpoint.state = count > 0 ? RedPointState.Quantity : RedPointState.None;
|
| | | }
|
| | |
|
| | | private void ParseConfig()
|
| | |
| | |
|
| | | public void OnMapInitOk()
|
| | | {
|
| | | var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = MapUtility.GetDataMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == BOSSHOME_MAPID)
|
| | | {
|
| | | MapTransferUtility.Instance.MoveToNPC(selectedBoss);
|
| | |
| | | public int id { get; private set; }
|
| | | public List<int> bossIds = new List<int>();
|
| | |
|
| | | FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
|
| | |
|
| | | public BossHomeData(int _id)
|
| | | {
|
| | | this.id = _id;
|
| | | }
|
| | |
|
| | | public List<int> GetShowBosses()
|
| | | {
|
| | | var bosses = new List<int>();
|
| | | for (var i = 0; i < bossIds.Count; i++)
|
| | | {
|
| | | var bossId = bossIds[i];
|
| | | if (findPreciousModel.IsBossUnlockOrUnlockSoon(bossId))
|
| | | {
|
| | | bosses.Add(bossId);
|
| | | }
|
| | | }
|
| | |
|
| | | if (bosses.Count == 0)
|
| | | {
|
| | | bosses.Add(bossIds[0]);
|
| | | }
|
| | |
|
| | | return bosses;
|
| | | }
|
| | |
|
| | | public int GetRecommendNpc()
|
| | | {
|
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | | var recommendNpc = bossIds[bossIds.Count - 1];
|
| | |
|
| | | for (int i = 0; i < bossIds.Count; i++)
|
| | | var recommendNpc = bossIds[0];
|
| | | for (var i = bossIds.Count - 1; i >= 0; i--)
|
| | | {
|
| | | var bossHomeConfig = BossHomeConfig.Get(bossIds[i]);
|
| | | var npcConfig = NPCConfig.Get(bossIds[i]);
|
| | | if (bossHomeConfig.MonsterType == 2 && playerLevel < npcConfig.NPCLV)
|
| | | var bossId = bossIds[i];
|
| | | var bossHomeConfig = BossHomeConfig.Get(bossId);
|
| | | if (bossHomeConfig.MonsterType == 2 && findPreciousModel.IsBossUnlock(bossId))
|
| | | {
|
| | | recommendNpc = bossIds[i];
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | return recommendNpc;
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|