Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
| | |
| | | {
|
| | | AccID = _serverInfo.AccID;
|
| | | PlayerID = _serverInfo.PlayerID;
|
| | | PlayerName = _serverInfo.PlayerName;
|
| | | PlayerName = _serverInfo.PlayerName.Trim();
|
| | | AccState = _serverInfo.AccState;
|
| | | GMLevel = _serverInfo.GMLevel;
|
| | | Sex = _serverInfo.Sex;
|
| | |
| | | ExpPoint = _serverInfo.ExpPoint;
|
| | | TotalExp = _serverInfo.TotalExp;
|
| | | Family = _serverInfo.Family;
|
| | | FamilyName = _serverInfo.FamilyName;
|
| | | FamilyName = _serverInfo.FamilyName.Trim();
|
| | | Gold = _serverInfo.Gold;
|
| | | GoldPaper = _serverInfo.GoldPaper;
|
| | | Silver = _serverInfo.Silver;
|
| | |
| | | public int pkState;//是否在pk中 175 1--进入状态 2--退出状态
|
| | | public int bossState;//Boss状态 176 1--进入状态 2--退出状态
|
| | | public int OnlyFinalHurt;
|
| | | public int NpcHurtAddPer;//对怪物伤害加成 188
|
| | | } |
| | |
| | | case PlayerDataRefresh.OnlyFinalHurt:
|
| | | extersion.OnlyFinalHurt = (int)value;
|
| | | break;
|
| | | case PlayerDataRefresh.CDBPlayerRefresh_NPCHurtAddPer:
|
| | | extersion.NpcHurtAddPer = (int)value;
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | if (_realmCfg != null && _realmCfg.IsBigRealm == 1)
|
| | | {
|
| | | dungeonModel.GroupChallengeDungeon(REALM_DUNGEON_ID, 1);
|
| | | dungeonModel.GroupChallenge(REALM_DUNGEON_ID, 1);
|
| | | }
|
| | | else
|
| | | {
|
| | | dungeonModel.SingleChallengeDungeon(REALM_DUNGEON_ID);
|
| | | dungeonModel.SingleChallenge(REALM_DUNGEON_ID);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | m_Skills.TryGetValue(occupy, out dic);
|
| | | return dic;
|
| | | }
|
| | |
|
| | | //------坐骑技能获取
|
| | | public static SkillConfig GetSkillTypeIDAndSkillLV(int _SkillTypeID, int SkillLV)
|
| | | {
|
| | |
| | | SkillConfig _tagChinSkillModel = null;
|
| | | T_HorseSkill.TryGetValue(_textBuilder.ToString(), out _tagChinSkillModel);
|
| | | return _tagChinSkillModel;
|
| | | }
|
| | |
|
| | | public static int FindSkillByJob(int[] skillIds,int job)
|
| | | {
|
| | | foreach (var skill in skillIds)
|
| | | {
|
| | | var config = Config.Instance.Get<SkillConfig>(skill);
|
| | | if (config != null && (config.UseType == 0 || config.UseType == 1 << job))
|
| | | {
|
| | | return skill;
|
| | | }
|
| | | }
|
| | |
|
| | | return 0;
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | |
| | | // B9 0A 按条件邀请玩家加入队伍 #tagCGInvitePlayerJoinTeamByLV |
| | | |
| | | public class CB90A_tagCGInvitePlayerJoinTeamByLV : GameNetPackBasic { |
| | | public class CB90A_tagCGInvitePlayerJoinTeamByLV : GameNetPackBasic |
| | | { |
| | | public ushort LVLimit; // 目标玩家大于等于此等级 |
| | | public byte InviteCnt; // 邀请玩家个数 |
| | | |
| | | public CB90A_tagCGInvitePlayerJoinTeamByLV () { |
| | | combineCmd = (ushort)0x03FE; |
| | | public CB90A_tagCGInvitePlayerJoinTeamByLV() |
| | | { |
| | | combineCmd = (ushort)0x1801; |
| | | _cmd = (ushort)0xB90A; |
| | | } |
| | | |
| | | public override void WriteToBytes () { |
| | | WriteBytes (LVLimit, NetDataType.WORD); |
| | | WriteBytes (InviteCnt, NetDataType.BYTE); |
| | | public override void WriteToBytes() |
| | | { |
| | | WriteBytes(LVLimit, NetDataType.WORD); |
| | | WriteBytes(InviteCnt, NetDataType.BYTE); |
| | | } |
| | | |
| | | } |
| | |
| | | if (_mapConfig.MapFBType != 0)
|
| | | {
|
| | | DungeonModel _model = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | _realMapDataID = _model.GetDungeonDataIdByMapId(vNetData.MapID);
|
| | | _realMapDataID = _model.GetDataMapIdByMapId(vNetData.MapID);
|
| | |
|
| | | if (vNetData.MapID != 52020 && vNetData.MapID != 52010)
|
| | | {
|
| | |
| | | if (DungeonStage.CurrentMapType != MapType.OpenCountry)
|
| | | {
|
| | | DungeonModel _dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | int _dgDataID = _dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | int _dgDataID = _dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dungeonOpen = Config.Instance.Get<DungeonOpenTimeConfig>(_dgDataID);
|
| | |
|
| | | if (dungeonOpen != null)
|
| | |
| | | base.Done(vNetPack); |
| | | H0319_tagFBHelp vNetData = vNetPack as H0319_tagFBHelp; |
| | | |
| | | model.UpdateDungeonMission(vNetData.Msg); |
| | | model.UpdateMission(vNetData.Msg); |
| | | |
| | | switch (PlayerDatas.Instance.baseData.MapID) |
| | | { |
| | |
| | | H0320_tagFBEnd vNetData = vNetPack as H0320_tagFBEnd; |
| | | |
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>(); |
| | | dungeonModel.ProcessDungeonResult(vNetData.Msg); |
| | | dungeonModel.ProcessResult(vNetData.Msg); |
| | | } |
| | | } |
| | |
| | | {
|
| | | GAMgr.Instance.ServerDie(vNetData.Players[i]);
|
| | | GAMgr.Instance.Release(_actor);
|
| | |
|
| | | // 离线玩家
|
| | | GAMgr.Instance.RemoveOffLinePlayer(vNetData.Players[i]);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | base.Done(vNetPack);
|
| | | H0431_tagTimeTick vNetData = vNetPack as H0431_tagTimeTick;
|
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | dungeonModel.UpdateDungeonCoolDown((DungeonCoolDownType)vNetData.Type,vNetData.Tick);
|
| | | dungeonModel.UpdateCoolDown((DungeonCoolDownType)vNetData.Type,vNetData.Tick);
|
| | | }
|
| | | }
|
| | |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | |
|
| | | //04 34 周围玩家出现合并封包#tagAreaPlayerAppearEx
|
| | |
|
| | | //04 34 周围玩家出现合并封包#tagAreaPlayerAppearEx
|
| | |
|
| | |
|
| | |
|
| | | public class DTC0434_tagAreaPlayerAppearEx : DtcBasic
|
| | | {
|
| | | public override void Done(GameNetPackBasic vNetPack)
|
| | |
| | | if (_player != null)
|
| | | {
|
| | | // 异常
|
| | | }
|
| | |
|
| | | // 离线玩家
|
| | | if (vNetData.State == 1)
|
| | | {
|
| | | GAMgr.Instance.AddOffLinePlayer(vNetData.PlayerID);
|
| | | }
|
| | |
|
| | | _player = GAMgr.Instance.RequestPlayer<GA_Player>(vNetData.PlayerID, E_ActorGroup.Player, vNetData);
|
| | |
| | | StatusMgr.Instance.Request(_h0605);
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | | }
|
| | |
|
| | |
| | | if (_mapConfig.MapFBType != 0) |
| | | { |
| | | DungeonModel _model = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | _realMapDataID = _model.GetDungeonDataIdByMapId(_realMapDataID); |
| | | _realMapDataID = _model.GetDataMapIdByMapId(_realMapDataID); |
| | | |
| | | if (package.MapID != 52020 && package.MapID != 52010)
|
| | | {
|
| | |
| | | if (_mapConfig.MapFBType != 0) |
| | | { |
| | | DungeonModel _model = ModelCenter.Instance.GetModel<DungeonModel>(); |
| | | _realMapDataID = _model.GetDungeonDataIdByMapId(_realMapDataID); |
| | | _realMapDataID = _model.GetDataMapIdByMapId(_realMapDataID); |
| | | } |
| | | |
| | | var _key = _realMapDataID * 1000 + LineID; |
| | |
| | | if (_mapConfig.MapFBType != 0) |
| | | { |
| | | DungeonModel _model = ModelCenter.Instance.GetModel<DungeonModel>(); |
| | | _realMapDataID = _model.GetDungeonDataIdByMapId(_realMapDataID); |
| | | _realMapDataID = _model.GetDataMapIdByMapId(_realMapDataID); |
| | | |
| | | if (package.MapID != 52020 && package.MapID != 52010) |
| | | { |
| | |
| | | case 0: |
| | | break; |
| | | default: |
| | | ModelCenter.Instance.GetModel<DungeonModel>().ResetDungeonBufData(); |
| | | ModelCenter.Instance.GetModel<DungeonModel>().ResetBufData(); |
| | | break; |
| | | } |
| | | |
| | |
| | | base.Done(vNetPack);
|
| | |
|
| | | HA30A_tagMCFBEncourageInfo vNetData = vNetPack as HA30A_tagMCFBEncourageInfo;
|
| | | model.UpdateDugeonInspireLv(vNetData.Cnt1, vNetData.Cnt2);
|
| | | model.UpdateInspireLevel(vNetData.Cnt1, vNetData.Cnt2);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | base.Done(vNetPack);
|
| | |
|
| | | var data = vNetPack as HA320_tagMCPlayerFBInfoData;
|
| | | model.UpdateDungeonRecords(data.FBDataList);
|
| | | model.UpdateRecords(data.FBDataList);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | |
| | | HA3BD_tagMCBuyEnterInfo vNetData = vNetPack as HA3BD_tagMCBuyEnterInfo; |
| | | if (vNetData.FBCount > 0) { |
| | | model.UpdateDungeonRecords(vNetData.FBInfo); |
| | | model.UpdateRecords(vNetData.FBInfo); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | HA703_tagMCFBEnterTickList vNetData = vNetPack as HA703_tagMCFBEnterTickList; |
| | | if (vNetData.Cnt > 0) { |
| | | model.UpdateDungeonEnterTime(vNetData.EnterTickList); |
| | | model.UpdateEnterCD(vNetData.EnterTickList); |
| | | } |
| | | } |
| | | |
| | |
| | | base.Done(vNetPack); |
| | | var package = vNetPack as HB209_tagMCFBCntRegainRemainTime; |
| | | |
| | | ModelCenter.Instance.GetModel<DungeonModel>().UpdateDungeonCountRemaintime(package); |
| | | ModelCenter.Instance.GetModel<DungeonModel>().UpdateCountRemaintime(package); |
| | | } |
| | | |
| | | } |
| | |
| | |
|
| | | if (m_IsDungeon)
|
| | | {
|
| | | int _dgDataID = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | int _dgDataID = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dungeonOpen = Config.Instance.Get<DungeonOpenTimeConfig>(_dgDataID);
|
| | |
|
| | | if (dungeonOpen != null)
|
| | |
| | | private void UpdateMissionEvent()
|
| | | {
|
| | | DungeonModel _dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | int _dataMapID = _dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | int _dataMapID = _dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | |
|
| | | if (_dataMapID == 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | List<DungeonTarget> _targets = _dungeonModel.GetDungeonTargets(_dataMapID, _dungeonModel.mission.lineID, _dungeonModel.mission.step);
|
| | | List<DungeonTarget> _targets = _dungeonModel.GetTargets(_dataMapID, _dungeonModel.mission.lineID, _dungeonModel.mission.step);
|
| | |
|
| | | if (_targets == null)
|
| | | {
|
| | |
| | |
|
| | | // 判断是什么副本类型
|
| | | DungeonModel _dgModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | int _dataMapID = _dgModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | int _dataMapID = _dgModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (_dataMapID != 0)
|
| | | {
|
| | | int _configID = _dataMapID * 10 + _dgModel.mission.lineID;
|
| | |
| | | // 客户端id对应相应角色
|
| | | private Dictionary<uint, GActor> m_Cid2GA;
|
| | |
|
| | | private List<uint> m_OffLineList;
|
| | |
|
| | | // 服务端通知的死亡目标对应的客户端id,
|
| | | // 这里为了处理可能出现的无法死亡现象,对每一只目标进行计时,强制其死亡
|
| | | private List<uint> serverDeadList = new List<uint>();
|
| | |
| | | m_AllList = new List<GActor>();
|
| | | m_Sid2Cid = new Dictionary<uint, uint>();
|
| | | m_Cid2GA = new Dictionary<uint, GActor>();
|
| | | m_OffLineList = new List<uint>();
|
| | | m_Inited = true;
|
| | |
|
| | | SystemSetting.Instance.playerSyncCountChangeEvent += OnPlayerSyncCountChange;
|
| | | SystemSetting.Instance.OnSettingChanged += OnSettingChanged;
|
| | | }
|
| | | }
|
| | |
|
| | | public void AddOffLinePlayer(uint sid)
|
| | | {
|
| | | if (m_OffLineList.Contains(sid))
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | m_OffLineList.Add(sid);
|
| | | }
|
| | |
|
| | | public void RemoveOffLinePlayer(uint sid)
|
| | | {
|
| | | if (m_OffLineList.Contains(sid))
|
| | | {
|
| | | m_OffLineList.Remove(sid);
|
| | | }
|
| | | }
|
| | |
|
| | | public void ClearOffLinePlayer()
|
| | | {
|
| | | m_OffLineList.Clear();
|
| | | }
|
| | |
|
| | | private float m_UpdateOffLineInterval;
|
| | | private List<uint> m_CacheList = new List<uint>();
|
| | | private List<uint> m_ContaintList = new List<uint>();
|
| | |
|
| | | private void UpdateOffLinePlayer()
|
| | | {
|
| | | if (m_OffLineList == null || m_OffLineList.Count == 0)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (Time.realtimeSinceStartup - m_UpdateOffLineInterval > 2)
|
| | | {
|
| | | m_CacheList.Clear();
|
| | | m_ContaintList.Clear();
|
| | |
|
| | | int _count = Mathf.Min(m_OffLineList.Count, 4);
|
| | |
|
| | | //Debug.LogFormat("此次将会有: {0} 个挂机者释放技能", _count);
|
| | |
|
| | | for (int i = 0; i < m_OffLineList.Count; ++i)
|
| | | {
|
| | | m_CacheList.Add(m_OffLineList[i]);
|
| | | }
|
| | |
|
| | | int _time = 0;
|
| | |
|
| | | while (m_ContaintList.Count < _count)
|
| | | {
|
| | | int _index = UnityEngine.Random.Range(0, m_CacheList.Count);
|
| | | m_ContaintList.Add(m_CacheList[_index]);
|
| | | //Debug.LogFormat("添加对象: {0}, 已添加: {1} 个", m_CacheList[_index], m_ContaintList.Count);
|
| | | m_CacheList.RemoveAt(_index);
|
| | | if (_time > _count)
|
| | | {
|
| | | //Debug.LogFormat("共添加了: {0} 个玩家", m_ContaintList.Count);
|
| | | break;
|
| | | }
|
| | | _time++;
|
| | | }
|
| | |
|
| | | GA_Player _player = null;
|
| | | for (int i = 0; i < m_ContaintList.Count; ++i)
|
| | | {
|
| | | _player = GAMgr.Instance.GetBySID(m_ContaintList[i]) as GA_Player;
|
| | | if (_player == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | |
|
| | | _player.UpdateOffLineAction();
|
| | | }
|
| | |
|
| | | m_UpdateOffLineInterval = Time.realtimeSinceStartup;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | m_AllList[i].Update();
|
| | | }
|
| | |
|
| | | UpdateOffLinePlayer();
|
| | | }
|
| | |
|
| | | public void DoLateUpdate()
|
| | |
| | | // 为守护特殊定义的当前是否装备守护id
|
| | | public int serverGuardId;
|
| | |
|
| | | // 简易的脱机挂AI草稿
|
| | | // 步骤 1. 寻点 2. 移动至 3. 放个普攻
|
| | | private byte m_Step;
|
| | | private Vector3 m_DestPos;
|
| | | private Vector3 m_RecordBornPos;
|
| | | private float m_WaitTime;
|
| | |
|
| | | public static UnityAction<uint, bool> s_OnSelected;
|
| | | public static UnityAction<uint, ulong, ulong> s_OnRefreshLife;
|
| | |
|
| | | private H0434_tagAreaPlayerAppearEx m_H0434;
|
| | | protected H0434_tagAreaPlayerAppearEx m_H0434;
|
| | |
|
| | | private CmdManager m_CmdManager;
|
| | | private int m_ComAtkIndex;// 普攻索引
|
| | | private Skill m_CastSkill;// 要释放的技能
|
| | |
|
| | | protected sealed override void OnInit(GameNetPackBasic package)
|
| | | private int m_ComAtkIndex;// 普攻索引
|
| | |
|
| | | protected override void OnInit(GameNetPackBasic package)
|
| | | {
|
| | | m_H0434 = package as H0434_tagAreaPlayerAppearEx;
|
| | |
|
| | |
| | | SwitchWeapon(0);
|
| | | }
|
| | |
|
| | | if (SecondaryID == 0 || SecondaryID == uint.MaxValue)
|
| | | {
|
| | | SwitchSecondary(0);
|
| | | }
|
| | |
|
| | | ActorInfo.LV = m_H0434.LV;
|
| | | ActorInfo.familyName = m_H0434.FamilyName;
|
| | | ActorInfo.ReincarnationLv = m_H0434.ReincarnationLv;
|
| | |
| | | RequestName();
|
| | |
|
| | | m_CmdManager = new CmdManager();
|
| | |
|
| | | if (m_H0434.State == 1)
|
| | | {
|
| | | m_RecordBornPos = Pos;
|
| | | m_Step = 0;
|
| | | }
|
| | | }
|
| | |
|
| | | protected sealed override void OnUnit()
|
| | |
| | | {
|
| | | }
|
| | |
|
| | | protected sealed override void OnUpdate()
|
| | | protected override void OnUpdate()
|
| | | {
|
| | | base.OnUpdate();
|
| | |
|
| | | if (m_CmdManager != null)
|
| | | {
|
| | | m_CmdManager.Update();
|
| | | }
|
| | |
|
| | | // 脱机挂
|
| | | if (m_H0434.State == 1)
|
| | | {
|
| | | switch (m_Step)
|
| | | {
|
| | | case 0:
|
| | |
|
| | | //m_DestPos = m_RecordBornPos + Quaternion.Euler(0, Random.Range(0, 359), 0) * Vector3.forward * Random.Range(1f, 2f);
|
| | | //TryGetValidPos(m_DestPos, ref m_DestPos);
|
| | |
|
| | | if (SelectTarget == null)
|
| | | {
|
| | | SelectTarget = GAMgr.Instance.GetCloserFightNpc(Pos);
|
| | | }
|
| | | if (SelectTarget != null)
|
| | | {
|
| | | destForward = Forward = MathUtility.ForwardXZ(SelectTarget.Pos, Pos);
|
| | | }
|
| | |
|
| | | m_Step = 1;
|
| | |
|
| | | break;
|
| | | case 1:
|
| | |
|
| | | m_CastSkill = null;
|
| | | for (int i = 0; i < JobSetup.HangupSkillList.Length; ++i)
|
| | | {
|
| | | if (SkillMgr.Get(JobSetup.HangupSkillList[i]).IsValid())
|
| | | {
|
| | | m_CastSkill = SkillMgr.Get(JobSetup.HangupSkillList[i]);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | if (m_CastSkill == null)
|
| | | {
|
| | | if (m_ComAtkIndex > JobSetup.ComAtkIdList.Length - 1)
|
| | | {
|
| | | m_ComAtkIndex = 0;
|
| | | }
|
| | | int _comSkillId = JobSetup.ComAtkIdList[m_ComAtkIndex];
|
| | | m_CastSkill = SkillMgr.Get(_comSkillId);
|
| | | m_ComAtkIndex += 1;
|
| | | }
|
| | |
|
| | | m_Step = 2;
|
| | |
|
| | | break;
|
| | | case 2:
|
| | |
|
| | | if (m_CastSkill != null)
|
| | | {
|
| | | SkillMgr.CastSkill(ServerInstID, m_CastSkill.id, true);
|
| | |
|
| | | Vector3 _targetPosition = Pos + Forward * (m_CastSkill.skillInfo.config.AtkDist * .5f);
|
| | | _targetPosition.y = 0;
|
| | | UnityEngine.AI.NavMeshHit _navMeshHit;
|
| | | if (UnityEngine.AI.NavMesh.Raycast(Pos, _targetPosition, out _navMeshHit, -1))
|
| | | {
|
| | | _targetPosition = _navMeshHit.position;
|
| | | }
|
| | | _targetPosition.y = Pos.y;
|
| | | m_CastSkill.targetPosition = _targetPosition;
|
| | |
|
| | | if (m_CastSkill.skillInfo.config.Skillactmark > 0
|
| | | && m_CastSkill.skillInfo.config.Skillactmark < 20)
|
| | | {
|
| | | switch (m_CastSkill.skillInfo.config.Skillactmark)
|
| | | {
|
| | | case 10:
|
| | | Play(GAStaticDefine.State_Attack1Hash, 0);
|
| | | break;
|
| | | case 11:
|
| | | Play(GAStaticDefine.State_Attack2Hash, 0);
|
| | | break;
|
| | | case 12:
|
| | | Play(GAStaticDefine.State_Attack3Hash, 0);
|
| | | break;
|
| | | case 13:
|
| | | Play(GAStaticDefine.State_Attack4Hash, 0);
|
| | | break;
|
| | | }
|
| | |
|
| | | }
|
| | | else
|
| | | {
|
| | | switch (m_CastSkill.skillInfo.config.Skillactmark)
|
| | | {
|
| | | case 21:
|
| | | Play(GAStaticDefine.State_Skill21, 0);
|
| | | break;
|
| | | case 22:
|
| | | Play(GAStaticDefine.State_Skill22, 0);
|
| | | break;
|
| | | case 23:
|
| | | Play(GAStaticDefine.State_Skill23, 0);
|
| | | break;
|
| | | case 24:
|
| | | Play(GAStaticDefine.State_Skill24, 0);
|
| | | break;
|
| | | case 25:
|
| | | Play(GAStaticDefine.State_Skill25, 0);
|
| | | break;
|
| | | case 26:
|
| | | Play(GAStaticDefine.State_Skill26, 0);
|
| | | break;
|
| | | case 27:
|
| | | Play(GAStaticDefine.State_Skill27, 0);
|
| | | break;
|
| | | case 28:
|
| | | Play(GAStaticDefine.State_Skill28, 0);
|
| | | break;
|
| | | case 29:
|
| | | Play(GAStaticDefine.State_Skill29, 0);
|
| | | break;
|
| | | case 99:
|
| | | Play(GAStaticDefine.State_RollHash, 0);
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | m_Step = 3;
|
| | |
|
| | | break;
|
| | |
|
| | | case 3:
|
| | |
|
| | | if (IsIdle())
|
| | | {
|
| | | m_Step = 0;
|
| | | }
|
| | |
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | m_CmdManager.Clear();
|
| | | }
|
| | |
|
| | | public void UpdateOffLineAction()
|
| | | {
|
| | | if (!IsIdle())
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (SelectTarget == null)
|
| | | {
|
| | | SelectTarget = GAMgr.Instance.GetCloserFightNpc(Pos);
|
| | | }
|
| | |
|
| | | if (SelectTarget != null)
|
| | | {
|
| | | destForward = Forward = MathUtility.ForwardXZ(SelectTarget.Pos, Pos);
|
| | | }
|
| | |
|
| | | Skill _castSkill = null;
|
| | | int _skillIndex = UnityEngine.Random.Range(0, JobSetup.HangupSkillList.Length);
|
| | | if (SkillMgr.Get(JobSetup.HangupSkillList[_skillIndex]).IsValid())
|
| | | {
|
| | | _castSkill = SkillMgr.Get(JobSetup.HangupSkillList[_skillIndex]);
|
| | | }
|
| | |
|
| | | if (_castSkill == null)
|
| | | {
|
| | | if (m_ComAtkIndex > JobSetup.ComAtkIdList.Length - 1)
|
| | | {
|
| | | m_ComAtkIndex = 0;
|
| | | }
|
| | | int _comSkillId = JobSetup.ComAtkIdList[m_ComAtkIndex];
|
| | | _castSkill = SkillMgr.Get(_comSkillId);
|
| | | m_ComAtkIndex += 1;
|
| | | }
|
| | |
|
| | | if (_castSkill != null)
|
| | | {
|
| | | SkillMgr.CastSkill(ServerInstID, _castSkill.id, true);
|
| | |
|
| | | Vector3 _targetPosition = Pos + Forward * (_castSkill.skillInfo.config.AtkDist * .5f);
|
| | | _targetPosition.y = 0;
|
| | | UnityEngine.AI.NavMeshHit _navMeshHit;
|
| | | if (UnityEngine.AI.NavMesh.Raycast(Pos, _targetPosition, out _navMeshHit, -1))
|
| | | {
|
| | | _targetPosition = _navMeshHit.position;
|
| | | }
|
| | | _targetPosition.y = Pos.y;
|
| | | _castSkill.targetPosition = _targetPosition;
|
| | |
|
| | | if (_castSkill.skillInfo.config.Skillactmark > 0
|
| | | && _castSkill.skillInfo.config.Skillactmark < 20)
|
| | | {
|
| | | switch (_castSkill.skillInfo.config.Skillactmark)
|
| | | {
|
| | | case 10:
|
| | | Play(GAStaticDefine.State_Attack1Hash, 0);
|
| | | break;
|
| | | case 11:
|
| | | Play(GAStaticDefine.State_Attack2Hash, 0);
|
| | | break;
|
| | | case 12:
|
| | | Play(GAStaticDefine.State_Attack3Hash, 0);
|
| | | break;
|
| | | case 13:
|
| | | Play(GAStaticDefine.State_Attack4Hash, 0);
|
| | | break;
|
| | | }
|
| | |
|
| | | }
|
| | | else
|
| | | {
|
| | | switch (_castSkill.skillInfo.config.Skillactmark)
|
| | | {
|
| | | case 21:
|
| | | Play(GAStaticDefine.State_Skill21, 0);
|
| | | break;
|
| | | case 22:
|
| | | Play(GAStaticDefine.State_Skill22, 0);
|
| | | break;
|
| | | case 23:
|
| | | Play(GAStaticDefine.State_Skill23, 0);
|
| | | break;
|
| | | case 24:
|
| | | Play(GAStaticDefine.State_Skill24, 0);
|
| | | break;
|
| | | case 25:
|
| | | Play(GAStaticDefine.State_Skill25, 0);
|
| | | break;
|
| | | case 26:
|
| | | Play(GAStaticDefine.State_Skill26, 0);
|
| | | break;
|
| | | case 27:
|
| | | Play(GAStaticDefine.State_Skill27, 0);
|
| | | break;
|
| | | case 28:
|
| | | Play(GAStaticDefine.State_Skill28, 0);
|
| | | break;
|
| | | case 29:
|
| | | Play(GAStaticDefine.State_Skill29, 0);
|
| | | break;
|
| | | case 99:
|
| | | Play(GAStaticDefine.State_RollHash, 0);
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | private GameObject m_ClothesModel;
|
| | | private GameObject m_WeaponModel;
|
| | | private GameObject m_SecondaryModel;
|
| | | private GameObject m_HandModel;
|
| | | private GameObject m_WingModel;
|
| | | private GameObject m_HorseModel;
|
| | | private GA_Guard m_Guard;
|
| | |
| | | }
|
| | |
|
| | | int _resID = JobSetup.BaseEquip[2];
|
| | |
|
| | | ItemConfig _clothesItemConfig = Config.Instance.Get<ItemConfig>((int)ClothesItemID);
|
| | | if (_clothesItemConfig != null)
|
| | | if (JobSetup.Job == 1)
|
| | | {
|
| | | _resID = _clothesItemConfig.ChangeOrd + 2900;
|
| | | if (_clothesItemConfig != null)
|
| | | {
|
| | | _resID = _clothesItemConfig.ChangeOrd + 2900;
|
| | | }
|
| | | }
|
| | |
|
| | | ItemConfig _itemConfig = null;
|
| | |
| | | if (SecondaryID == 0)
|
| | | {
|
| | | int _baseHandResId = JobSetup.BaseEquip[2];
|
| | | if (_clothesItemConfig != null)
|
| | |
|
| | | if (JobSetup.Job == 1)
|
| | | {
|
| | | _baseHandResId = _clothesItemConfig.ChangeOrd + 2900;
|
| | | if (_clothesItemConfig != null)
|
| | | {
|
| | | _baseHandResId = _clothesItemConfig.ChangeOrd + 2900;
|
| | | }
|
| | | }
|
| | |
|
| | | if (!TryRelease(_baseHandResId, m_SecondaryModel))
|
| | |
| | | _dungeonModel.dungeonBeginCoolDownEndEvent -= HandleAutoFight;
|
| | | _dungeonModel.updateMissionEvent -= HandleAutoFight;
|
| | |
|
| | | int _dgDataID = _dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | int _dgDataID = _dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dungeonOpen = Config.Instance.Get<DungeonOpenTimeConfig>(_dgDataID);
|
| | |
|
| | | if (dungeonOpen != null)
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonDataIdByMapId(location.mapId);
|
| | | var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(location.mapId);
|
| | | switch (dataMapId)
|
| | | {
|
| | | case DemonJarModel.DEMONJAR_MAPID:
|
| | |
| | | {
|
| | | var config = Config.Instance.Get<SuccessConfig>(_achievementId);
|
| | | var dataMapId = config.Condition[0];
|
| | | var canBuyTimes = dungeonModel.GetDungeonBuyTimesLimit(dataMapId);
|
| | | var boughtTimes = dungeonModel.GetDungeonBoughtTimes(dataMapId);
|
| | | var canBuyTimes = dungeonModel.GetBuyTimesLimit(dataMapId);
|
| | | var boughtTimes = dungeonModel.GetBoughtTimes(dataMapId);
|
| | |
|
| | | if (canBuyTimes > 0 && canBuyTimes > boughtTimes)
|
| | | {
|
| | |
| | | {
|
| | | return this == (AchievementCondition)obj;
|
| | | }
|
| | |
|
| | | public override int GetHashCode()
|
| | | {
|
| | | var _value = type;
|
| | |
| | | }
|
| | | return _value.GetHashCode();
|
| | | }
|
| | |
|
| | | public static bool operator ==(AchievementCondition x, AchievementCondition y)
|
| | | {
|
| | | if (x.type != y.type)
|
| | |
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | public static bool operator !=(AchievementCondition x, AchievementCondition y)
|
| | | {
|
| | | return !(x == y);
|
| | |
| | | {
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var mapConfig = Config.Instance.Get<MapConfig>(mapId);
|
| | |
|
| | | if (mapConfig != null && mapConfig.MapFBType != 0)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("InDungeon_CantGo");
|
| | |
| | | case 4:
|
| | | case 86:
|
| | | WindowCenter.Instance.Close<TreasureLevelUpWin>();
|
| | |
|
| | | var mapModel = ModelCenter.Instance.GetModel<MapModel>();
|
| | | var pointId = mapModel.GetRecommendHangPoint();
|
| | | var mapEventConfig = Config.Instance.Get<MapEventPointConfig>(pointId);
|
| | |
| | | break;
|
| | | case 36:
|
| | | WindowCenter.Instance.Close<TreasureLevelUpWin>();
|
| | |
|
| | | WindowCenter.Instance.Open<MainInterfaceWin>();
|
| | | MapTransferUtility.Instance.MoveToNPC(config.Condition[0]);
|
| | | break;
|
| | | case 37:
|
| | | WindowCenter.Instance.Close<TreasureLevelUpWin>();
|
| | |
|
| | | WindowCenter.Instance.Open<MainInterfaceWin>();
|
| | | MapTransferUtility.Instance.MoveToLocalMapPosition(config.Condition2.Vector3Parse());
|
| | | break;
|
| | |
| | | case 109:
|
| | | WindowCenter.Instance.Close<TreasureLevelUpWin>();
|
| | |
|
| | | var skillId = FindSkillByJob(config.Condition, PlayerDatas.Instance.baseData.Job);
|
| | | var skillId = SkillConfig.FindSkillByJob(config.Condition, PlayerDatas.Instance.baseData.Job);
|
| | | if (skillId != 0)
|
| | | {
|
| | | if (ModelCenter.Instance.GetModel<SkillModel>().GetXpSkillID() == skillId)
|
| | |
| | |
|
| | | private string GetHighestSorceEquipByPlace(List<int> _places)
|
| | | {
|
| | | var package = playerPack.GetSinglePackModel(PackType.rptItem);
|
| | | var allItems = package.GetPackModelIndexDict();
|
| | | var itemPackage = playerPack.GetSinglePackModel(PackType.rptItem);
|
| | | var allItems = itemPackage.GetPackModelIndexDict();
|
| | |
|
| | | var guid = string.Empty;
|
| | | var equips = new List<string>();
|
| | |
| | |
|
| | | private string GetBetterEquipByPlace(List<int> _places)
|
| | | {
|
| | | var package = playerPack.GetSinglePackModel(PackType.rptItem);
|
| | | var allItems = package.GetPackModelIndexDict();
|
| | |
|
| | | var equipPackage = playerPack.GetSinglePackModel(PackType.rptEquip);
|
| | | var itemPackage = playerPack.GetSinglePackModel(PackType.rptItem);
|
| | | var allItems = itemPackage.GetPackModelIndexDict();
|
| | |
|
| | | var guid = string.Empty;
|
| | | var equips = new List<string>();
|
| | | var score = 0;
|
| | | var job = PlayerDatas.Instance.baseData.Job;
|
| | | var equipPackage = playerPack.GetSinglePackModel(PackType.rptEquip);
|
| | | foreach (var item in allItems.Values)
|
| | | {
|
| | | var overdue = packModelInterface.IsOverdue(item.itemInfo.ItemGUID, item.itemId, item.useDataDict);
|
| | |
| | |
|
| | | public string GetBetterEquipByPlace()
|
| | | {
|
| | | var package = playerPack.GetSinglePackModel(PackType.rptItem);
|
| | | var allItems = package.GetPackModelIndexDict();
|
| | |
|
| | | var equipPackage = playerPack.GetSinglePackModel(PackType.rptEquip);
|
| | | var itemPackage = playerPack.GetSinglePackModel(PackType.rptItem);
|
| | | var allItems = itemPackage.GetPackModelIndexDict();
|
| | |
|
| | | var guid = string.Empty;
|
| | | var equips = new List<string>();
|
| | | var score = 0;
|
| | | var job = PlayerDatas.Instance.baseData.Job;
|
| | | var equipPackage = playerPack.GetSinglePackModel(PackType.rptEquip);
|
| | | foreach (var item in allItems.Values)
|
| | | {
|
| | | var config = Config.Instance.Get<ItemConfig>(item.itemId);
|
| | |
| | | }
|
| | |
|
| | | return guid;
|
| | | }
|
| | |
|
| | | public int FindSkillByJob(int[] _skillIds, int _job)
|
| | | {
|
| | | foreach (var skill in _skillIds)
|
| | | {
|
| | | var config = Config.Instance.Get<SkillConfig>(skill);
|
| | |
|
| | | if (config != null && (config.UseType == 0 || config.UseType == 1 << _job))
|
| | | {
|
| | | return skill;
|
| | | }
|
| | | }
|
| | |
|
| | | return 0;
|
| | | }
|
| | |
|
| | | private void ProcessAchievementGotoGuide(int _achievementId)
|
| | |
| | | }
|
| | | break;
|
| | | case DailyQuestType.FairyFeast:
|
| | | dungeonModel.SingleChallengeDungeon(config.RelatedID);
|
| | | dungeonModel.SingleChallenge(config.RelatedID);
|
| | | break;
|
| | | case DailyQuestType.Trial:
|
| | | {
|
| | |
| | | {
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var lineId = PlayerDatas.Instance.baseData.dungeonLineId;
|
| | | var dungeonId = dungeonModel.DungeonMap(dungeonModel.GetDungeonDataIdByMapId(mapId), lineId);
|
| | | var dungeonId = dungeonModel.GetDungeonId(dungeonModel.GetDataMapIdByMapId(mapId), lineId);
|
| | | if (dungeonId == 0)
|
| | | {
|
| | | return true;
|
| | |
| | | {
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var lineId = PlayerDatas.Instance.baseData.dungeonLineId;
|
| | | var dungeonId = dungeonModel.DungeonMap(dungeonModel.GetDungeonDataIdByMapId(mapId), lineId);
|
| | | var dungeonId = dungeonModel.GetDungeonId(dungeonModel.GetDataMapIdByMapId(mapId), lineId);
|
| | | if (dungeonId == 0)
|
| | | {
|
| | | return true;
|
| | |
| | | {
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var lineId = PlayerDatas.Instance.baseData.dungeonLineId;
|
| | | var dungeonId = dungeonModel.DungeonMap(dungeonModel.GetDungeonDataIdByMapId(mapId), lineId);
|
| | | var dungeonId = dungeonModel.GetDungeonId(dungeonModel.GetDataMapIdByMapId(mapId), lineId);
|
| | | if (dungeonId == 0)
|
| | | {
|
| | | return true;
|
| | |
| | | var _hero = PlayerDatas.Instance.hero;
|
| | | if (_handleFight && _hero != null && !_hero.ActorInfo.serverDie)
|
| | | {
|
| | | int _dgDataID = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | int _dgDataID = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dungeonOpen = Config.Instance.Get<DungeonOpenTimeConfig>(_dgDataID);
|
| | | if (dungeonOpen != null)
|
| | | {
|
| | |
| | | if (_dungeonCfg != null && _dungeonCfg.FBType != 1)
|
| | | {
|
| | | var _team = ModelCenter.Instance.GetModel<TeamModel>();
|
| | | if (_team.myTeam.GetOnlineMemberCnt() > 1)
|
| | | if (_team.myTeam.GetOnlineMemberCount() > 1)
|
| | | {
|
| | | SetState((DungeonShowType)_showModel.NpcID);
|
| | | SendGuideComplete((DungeonShowType)_showModel.NpcID);
|
| | |
| | |
|
| | | ChatReport(type, msg, PteChatName);
|
| | |
|
| | | if (!ChatCenter.s_VoiceRegex.IsMatch(msg))
|
| | | if (!ChatCenter.s_VoiceRegex.IsMatch(msg)
|
| | | && !InviteRegex.IsMatch(msg))
|
| | | {
|
| | | _dirty = DirtyWordConfig.IsDirtWord(msg);
|
| | | msg = DirtyWordConfig.IsDirtWord(msg, '*');
|
| | |
| | | return;
|
| | | }
|
| | | ChatCtrl.Inst.presentChatType = ChatInfoType.World;
|
| | | var mapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (mapId == 31230)
|
| | | {
|
| | | ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
|
| | |
| | | return;
|
| | | }
|
| | | ChatCtrl.Inst.presentChatType = data.type;
|
| | | var mapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (mapId == 31230)
|
| | | {
|
| | | ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
|
| | |
| | | {
|
| | | if (dailyQuestConfig.RelatedType == 2 && state == DailyQuestModel.DailyQuestState.Normal)
|
| | | {
|
| | | var cd = dungeonModel.DungeonEnterData(dailyQuestConfig.RelatedID);
|
| | | var cd = dungeonModel.GetEnterCD(dailyQuestConfig.RelatedID);
|
| | | if (cd != null && cd.overdueTime > DateTime.Now)
|
| | | {
|
| | | UpdateGotoTitle((int)(cd.overdueTime - DateTime.Now).TotalSeconds);
|
| | |
| | | return 0;
|
| | | }
|
| | | case 2:
|
| | | return dungeonModel.GetDungeonTotalTimes(config.RelatedID);
|
| | | return dungeonModel.GetTotalTimes(config.RelatedID);
|
| | | }
|
| | |
|
| | | return 0;
|
| | |
| | | }
|
| | | case 2:
|
| | | DungeonRecord dungeonRecord;
|
| | | if (dungeonModel.TryGetDungeonRecord(config.RelatedID, out dungeonRecord))
|
| | | if (dungeonModel.TryGetRecord(config.RelatedID, out dungeonRecord))
|
| | | {
|
| | | return dungeonRecord.enterTimes;
|
| | | }
|
| | |
| | | public int GetDungeonEnterNums(int relatedID)
|
| | | {
|
| | | DungeonRecord dungeonRecord;
|
| | | if (dungeonModel.TryGetDungeonRecord(relatedID, out dungeonRecord))
|
| | | if (dungeonModel.TryGetRecord(relatedID, out dungeonRecord))
|
| | | {
|
| | | return dungeonRecord.enterTimes;
|
| | | }
|
| | |
| | | else
|
| | | {
|
| | | var dailyQuestConfig = Config.Instance.Get<DailyQuestConfig>(_questId);
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dailyQuestConfig.RelatedType == 2 && dataMapId == dailyQuestConfig.RelatedID)
|
| | | {
|
| | | dailyQuest.redpoint.state = RedPointState.None;
|
| | |
| | | case DailyQuestType.BossHome:
|
| | | return ModelCenter.Instance.GetModel<VipModel>().GetVipPrivilegeCnt(VipPrivilegeType.BossHomeAwardLimit) > 0;
|
| | | case DailyQuestType.PersonalBoss:
|
| | | return ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonTotalTimes(PersonalBossModel.PERSONALBOSS_MAPID) > 0;
|
| | | return ModelCenter.Instance.GetModel<DungeonModel>().GetTotalTimes(PersonalBossModel.PERSONALBOSS_MAPID) > 0;
|
| | | default:
|
| | | return true;
|
| | | }
|
| | |
| | | }
|
| | | case 2:
|
| | | DungeonRecord record;
|
| | | dungeonModel.TryGetDungeonRecord(config.RelatedID, out record);
|
| | | dungeonModel.TryGetRecord(config.RelatedID, out record);
|
| | | var buyTimes = record != null ? record.buyTimes : 0;
|
| | | var buyTimesLimit = dungeonModel.GetDungeonBuyTimesLimit(config.RelatedID);
|
| | | var buyTimesLimit = dungeonModel.GetBuyTimesLimit(config.RelatedID);
|
| | | return buyTimes >= buyTimesLimit ? DailyQuestState.Completed : DailyQuestState.CanBuyTimes;
|
| | | }
|
| | | }
|
| | |
| | | break;
|
| | | case DailyQuestType.FairyFeast:
|
| | | var config = Config.Instance.Get<DailyQuestConfig>(_id);
|
| | | dungeonModel.SingleChallengeDungeon(config.RelatedID);
|
| | | dungeonModel.SingleChallenge(config.RelatedID);
|
| | | break;
|
| | | case DailyQuestType.RuneTowerSweep:
|
| | | RuneTowerWin.guideSweep = true;
|
| | |
| | | |
| | | public class DogzDungeonWin : Window |
| | | { |
| | | |
| | | [SerializeField] CyclicScroll m_Bosses; |
| | | [SerializeField] DogzBoxBehaviour m_BoxBehaviour; |
| | | [SerializeField] DogzEliteMonsterBehaviour m_EliteMonsterBehaviour; |
| | |
| | | m_Bosses.Init(bosses); |
| | | m_Bosses.MoveToCenter(bosses.IndexOf(model.selectedBoss)); |
| | | |
| | | // DisplayItemDropTip(model.selectedBoss); |
| | | DisplayItemDropTip(model.selectedBoss); |
| | | DisplayBossBaseInfo(model.selectedBoss); |
| | | DisplayWearyValue(model.selectedBoss); |
| | | } |
| | |
| | | |
| | | private void OnBossSelected(int _bossId) |
| | | { |
| | | //DisplayItemDropTip(_bossId); |
| | | DisplayItemDropTip(_bossId); |
| | | DisplayBossBaseInfo(_bossId); |
| | | DisplayWearyValue(_bossId); |
| | | } |
| | |
| | | break; |
| | | } |
| | | } |
| | | |
| | | private void EnterDogzDungeon() |
| | | { |
| | | var error = 0; |
| | | if (TestEnterDungeon(out error)) |
| | | { |
| | | MapTransferUtility.Instance.MoveToNPC(model.selectedBoss); |
| | | } |
| | | else |
| | | { |
| | | ProcessEnterDungeonError(error); |
| | | } |
| | | } |
| | | |
| | | private bool TestEnterDungeon(out int _error) |
| | | { |
| | | _error = 0; |
| | | return true; |
| | | } |
| | | |
| | | private void ProcessEnterDungeonError(int _error) |
| | | { |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | beginTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.WaitStart); |
| | | beginTime = model.GetCoolDownEndTime(DungeonCoolDownType.WaitStart); |
| | | model.dungeonCoolDownEvent += OnBeginTimeEvent; |
| | | } |
| | | |
| | |
| | | return; |
| | | } |
| | | |
| | | beginTime = model.GetDungeonCoolDownEndTime(_type); |
| | | beginTime = model.GetCoolDownEndTime(_type); |
| | | } |
| | | |
| | | protected override void LateUpdate() |
| | |
| | |
|
| | | private void UpdateDungeonTimes()
|
| | | {
|
| | | var enterTimes = model.GetDungeonEnterTimes(dungeon.mapId);
|
| | | var totalTimes = model.GetDungeonTotalTimes(dungeon.mapId);
|
| | | var enterTimes = model.GetEnterTimes(dungeon.mapId);
|
| | | var totalTimes = model.GetTotalTimes(dungeon.mapId);
|
| | | m_SurplusTimes.text = StringUtility.Contact(totalTimes - enterTimes, "/", totalTimes);
|
| | | m_SurplusTimes.color = (totalTimes - enterTimes) > 0 ? UIHelper.GetUIColor(TextColType.NavyBrown) : UIHelper.GetUIColor(TextColType.Red);
|
| | |
|
| | |
| | | public void SetDungeonInfo(Dungeon _dungeon)
|
| | | {
|
| | | dungeon = _dungeon;
|
| | | var dungeonId = model.DungeonMap(dungeon);
|
| | | var dungeonId = model.GetDungeonId(dungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | DailyQuestOpenTime dungeonOpenTime;
|
| | |
|
| | |
| | | var levelLimitMin = dungeonConfig.LVLimitMin;
|
| | | if (dungeon.mapId == 31160)
|
| | | {
|
| | | var dungeonLevelMin = model.DungeonMap(dungeon.mapId, 0);
|
| | | var dungeonLevelMin = model.GetDungeonId(dungeon.mapId, 0);
|
| | | var dungeonMinConfig = Config.Instance.Get<DungeonConfig>(dungeonLevelMin);
|
| | | if (dungeonMinConfig != null)
|
| | | {
|
| | |
| | | PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
|
| | | vipModel.OnVipTimeEvent += OnVipTimeEvent;
|
| | | model.updateDungeonBuyCnt += UpdateDungeonBuyCnt;
|
| | | if (model.TryGetDungeonRecord(model.currentDungeon.mapId, out dungeonRecord))
|
| | | if (model.TryGetRecord(model.currentDungeon.mapId, out dungeonRecord))
|
| | | {
|
| | | Display();
|
| | | }
|
| | |
| | | void Display()
|
| | | {
|
| | | var openTimeConfig = Config.Instance.Get<DungeonOpenTimeConfig>(model.currentDungeon.mapId);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(model.DungeonMap(model.currentDungeon.mapId, model.currentDungeon.lineId));
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(model.GetDungeonId(model.currentDungeon.mapId, model.currentDungeon.lineId));
|
| | |
|
| | | m_DungeonName.text = dungeonConfig.FBName;
|
| | |
|
| | |
| | | var upTimes = _buyTimes - totalTimes;
|
| | | m_VipUpRemind.text = Language.Get("TimesBuyLanguage2", nextVipLv, upTimes);
|
| | | }
|
| | | if (model.TryGetDungeonBuyCntCost(model.currentDungeon.mapId, out costFormula))
|
| | | if (model.TryGetBuyCountCost(model.currentDungeon.mapId, out costFormula))
|
| | | {
|
| | | Equation.Instance.Clear();
|
| | | Equation.Instance.AddKeyValue("hasBuyCnt", dungeonRecord.buyTimes);
|
| | |
| | | }
|
| | | Equation.Instance.Clear();
|
| | | Equation.Instance.AddKeyValue("hasBuyCnt", dungeonRecord.buyTimes);
|
| | | model.TryGetDungeonBuyCntCost(model.currentDungeon.mapId, out costFormula);
|
| | | model.TryGetBuyCountCost(model.currentDungeon.mapId, out costFormula);
|
| | | int _cost = Equation.Instance.Eval<int>(costFormula);
|
| | | if (PlayerDatas.Instance.baseData.GoldPaper + PlayerDatas.Instance.baseData.Gold >= _cost)
|
| | | {
|
| | |
| | | {
|
| | | if (isOk)
|
| | | {
|
| | | model.SendBuyDungeonEnterCnt(model.currentDungeon.mapId);
|
| | | model.RequestBuyEnterCount(model.currentDungeon.mapId);
|
| | | }
|
| | | });
|
| | | return;
|
| | | }
|
| | | else
|
| | | {
|
| | | model.SendBuyDungeonEnterCnt(model.currentDungeon.mapId);
|
| | | model.RequestBuyEnterCount(model.currentDungeon.mapId);
|
| | | }
|
| | | }
|
| | | else
|
| | |
| | | {
|
| | | if (DemonJarModel.DEMONJAR_MAPID == model.currentDungeon.mapId)
|
| | | {
|
| | | var _totalTimes = model.GetDungeonTotalTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | var _enterTimes = model.GetDungeonEnterTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | var _totalTimes = model.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | var _enterTimes = model.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | if ((_totalTimes - _enterTimes) >= DemonJarModel.TOTALTIME_LIMIT)
|
| | | {
|
| | | MessageWin.Inst.ShowFixedTip(Language.Get("DemonJar18"));
|
| | |
| | | {
|
| | | base.OnActived();
|
| | |
|
| | | var dataMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var config = Config.Instance.Get<DungeonOpenTimeConfig>(dataMapId);
|
| | |
|
| | | StartCoroutine(Co_DelayDisplay(config.DelayTime * 0.001f));
|
| | |
| | | if (timer < 0f)
|
| | | {
|
| | | timer = 1f;
|
| | | var endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var seconds = (endTime - DateTime.Now).TotalSeconds;
|
| | | m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
|
| | | }
|
| | |
| | | {
|
| | | yield return new WaitForSeconds(_delay);
|
| | |
|
| | | var endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var seconds = (endTime - DateTime.Now).TotalSeconds;
|
| | | timer = 0f;
|
| | | m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
|
| | |
| | | base.Display(_data);
|
| | | dungeon = (Dungeon)_data;
|
| | |
|
| | | var config = Config.Instance.Get<DungeonConfig>(model.DungeonMap(dungeon.mapId, dungeon.lineId));
|
| | | var config = Config.Instance.Get<DungeonConfig>(model.GetDungeonId(dungeon.mapId, dungeon.lineId));
|
| | | m_Select.isOn = model.selectedKylinDungeon == dungeon;
|
| | |
|
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | |
| | | protected override void OnPreOpen()
|
| | | {
|
| | | timer = 0f;
|
| | | endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.TowerTake);
|
| | | endTime = model.GetCoolDownEndTime(DungeonCoolDownType.TowerTake);
|
| | | model.dungeonCoolDownEvent += OnEndTimeEvent;
|
| | |
|
| | | var surplusTime = (int)((endTime - DateTime.Now).TotalSeconds);
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | var pickUpEndTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.PickUpTime);
|
| | | var pickUpEndTime = model.GetCoolDownEndTime(DungeonCoolDownType.PickUpTime);
|
| | | if (pickUpEndTime > DateTime.Now)
|
| | | {
|
| | | endTime = DateTime.Now;
|
| | | }
|
| | | else
|
| | | {
|
| | | endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.TowerTake);
|
| | | endTime = model.GetCoolDownEndTime(DungeonCoolDownType.TowerTake);
|
| | | }
|
| | |
|
| | | var surplusTime = (int)((endTime - DateTime.Now).TotalSeconds);
|
| | |
| | | {
|
| | | if (PlayerDatas.Instance.baseData.GoldPaper + PlayerDatas.Instance.baseData.Gold >= dungeonEnter.clearCdCost)
|
| | | {
|
| | | model.SendClearDungeonEnterCD(dungeonEnter.mapId);
|
| | | model.RequestClearEnterCD(dungeonEnter.mapId);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | |
|
| | | private void OnEnable()
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.currentDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.currentDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | dungeonEnter = model.DungeonEnterData(dungeonConfig.DataMapID);
|
| | | dungeonEnter = model.GetEnterCD(dungeonConfig.DataMapID);
|
| | |
|
| | | model.updateDungeonEnterCD += UpdateDungeonEnterCD;
|
| | | }
|
| | |
| | | {
|
| | | timer = 1f;
|
| | | excutedAutoExit = false;
|
| | | existSurplusTime = (float)(model.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap) - DateTime.Now).TotalSeconds;
|
| | | existSurplusTime = (float)(model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap) - DateTime.Now).TotalSeconds;
|
| | |
|
| | | ShowItemCollect();
|
| | | ShowResPoint();
|
| | |
|
| | | m_Inspire.gameObject.SetActive(false);
|
| | | m_Liquid.gameObject.SetActive(false);
|
| | | var dataMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | m_ExitDungeon.gameObject.SetActive(dataMapId != DemonJarModel.DEMONJAR_MAPID);
|
| | | m_ContainerAncient.gameObject.SetActive(dataMapId == 31160);
|
| | | m_BossInfosContainer.gameObject.SetActive(dataMapId == ElderGodAreaModel.ELDERGODAREA_MAPID || dataMapId == BossHomeModel.BOSSHOME_MAPID);
|
| | |
| | |
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | | var dataMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | switch (dataMapId)
|
| | | {
|
| | | case 31080:
|
| | |
| | | }
|
| | |
|
| | | excutedAutoExit = false;
|
| | | existSurplusTime = (float)(model.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap) - DateTime.Now).TotalSeconds;
|
| | | existSurplusTime = (float)(model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap) - DateTime.Now).TotalSeconds;
|
| | | }
|
| | |
|
| | | private void ExitDungeon()
|
| | | {
|
| | | var dataMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var config = Config.Instance.Get<DungeonOpenTimeConfig>(dataMapId);
|
| | | string language = string.Empty;
|
| | | if (dataMapId == GeneralConfig.Instance.ruinsTranscriptMapId)
|
| | |
| | | {
|
| | | var vipLevel = PlayerDatas.Instance.baseData.VIPLv;
|
| | | var vipNeed = bossHomeModel.GetFloorVipRequirement(PlayerDatas.Instance.baseData.dungeonLineId + 1);
|
| | | var dungeonId = model.DungeonMap(dataMapId, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var dungeonId = model.GetDungeonId(dataMapId, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | |
|
| | | if (vipLevel < vipNeed)
|
| | |
| | |
|
| | | private void ProcessDungeonEndCoolDown()
|
| | | {
|
| | | var dataMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | switch (dataMapId)
|
| | | {
|
| | | case RuneTowerModel.RUNETOWER_MAPID:
|
| | |
| | | {
|
| | | var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage;
|
| | | runeTowerStage.PerformChallengeNextLevel();
|
| | | model.UpdateDungeonCoolDown(DungeonCoolDownType.LeaveMap, 0);
|
| | | model.UpdateDungeonCoolDown(DungeonCoolDownType.TowerTake, 0);
|
| | | model.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0);
|
| | | model.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0);
|
| | | WindowCenter.Instance.Close<DungeonRuneTowerVictoryWin>();
|
| | | }
|
| | | else
|
| | |
| | | {
|
| | | timer += Time.deltaTime;
|
| | | existSurplusTime -= Time.deltaTime;
|
| | | var dataMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | |
|
| | | if (timer > 1f)
|
| | | {
|
| | |
| | | SetTween(gradePosTween, gradeScaleTween, 0);
|
| | | SetTween(expPosTween, expScaleTween, 0);
|
| | |
|
| | | dungeonEndTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.TowerTake);
|
| | | endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.FlagTake);
|
| | | dungeonEndTime = model.GetCoolDownEndTime(DungeonCoolDownType.TowerTake);
|
| | | endTime = model.GetCoolDownEndTime(DungeonCoolDownType.FlagTake);
|
| | | expContainer.SetActive(false);
|
| | |
|
| | | isCanContinue = true;
|
| | |
| | | }
|
| | | lastStar = model.mission.grade;
|
| | | ///根据具体副本显示具体数据
|
| | | int _mapid = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | int _mapid = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | int rate = 0;
|
| | | if (model.GetRewardRateWithGrade(_mapid, model.mission.grade, out rate))
|
| | | {
|
| | |
| | | switch (type)
|
| | | {
|
| | | case DungeonCoolDownType.TowerTake:
|
| | | dungeonEndTime = model.GetDungeonCoolDownEndTime(type);
|
| | | dungeonEndTime = model.GetCoolDownEndTime(type);
|
| | | break;
|
| | | case DungeonCoolDownType.FlagTake:
|
| | | endTime = model.GetDungeonCoolDownEndTime(type);
|
| | | endTime = model.GetCoolDownEndTime(type);
|
| | | break;
|
| | | case DungeonCoolDownType.LeaveMap:
|
| | | if (isCanContinue)
|
| | |
| | | {
|
| | | if (timeZeroShow) return;
|
| | | timeZeroShow = true;
|
| | | if (model.DungeonTrialMaps().Contains(PlayerDatas.Instance.baseData.MapID))
|
| | | if (model.GetTrialMaps().Contains(PlayerDatas.Instance.baseData.MapID))
|
| | | {
|
| | | surplusTime.text = Language.Get("DungeonGradeNextStage");
|
| | | return;
|
| | |
| | |
|
| | | private void UpdateDugeonInspireLv()
|
| | | {
|
| | | var mapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var lv = model.dungeonJadeInspireCount + model.dungeonCoinInspireCount;
|
| | | m_Waggle = m_CoinConfig != null && model.dungeonCoinInspireCount < m_CoinConfig.InspireCount
|
| | | && lv < model.GetDungeonInspireMaxCnt(mapId);
|
| | | && lv < model.GetInspireMaxCount(mapId);
|
| | | if (m_InspireProgress != null)
|
| | | {
|
| | | m_InspireProgress.gameObject.SetActive(PlayerDatas.Instance.baseData.MapID == DemonJarModel.DEMONJAR_MAPID);
|
| | |
| | |
|
| | | private void OnInspireBtn()
|
| | | {
|
| | | if ((model.dungeonCoinInspireCount + model.dungeonJadeInspireCount) >= model.GetDungeonInspireMaxCnt(PlayerDatas.Instance.baseData.MapID))
|
| | | if ((model.dungeonCoinInspireCount + model.dungeonJadeInspireCount) >= model.GetInspireMaxCount(PlayerDatas.Instance.baseData.MapID))
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("Xjmj_InspireMaxLevel");
|
| | | return;
|
| | |
| | | private void ShowMission() |
| | | { |
| | | var mission = model.mission; |
| | | var dataMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var hintId = model.DungeonHintMap(dataMapId, mission.lineID); |
| | | var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var hintId = model.GetDungeonHintId(dataMapId, mission.lineID); |
| | | var config = Config.Instance.Get<DungeonHintConfig>(hintId); |
| | | |
| | | if (config != null) |
| | |
| | | } |
| | | else |
| | | { |
| | | var dungeonId = model.DungeonMap(dataMapId, mission.lineID); |
| | | var dungeonId = model.GetDungeonId(dataMapId, mission.lineID); |
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId); |
| | | m_MainLineTask.text = dungeonConfig.FBName; |
| | | } |
| | |
| | | private void UpdateMissions() |
| | | { |
| | | var mission = model.mission; |
| | | var dateMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var hintId = model.DungeonHintMap(dateMapId, mission.lineID); |
| | | var dateMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var hintId = model.GetDungeonHintId(dateMapId, mission.lineID); |
| | | var config = Config.Instance.Get<DungeonHintConfig>(hintId); |
| | | |
| | | if (mission.step != dungeonStep) |
| | |
| | | |
| | | private void UpdateMissionContent(DungeonMissionData _mission, int _targetIndex, MissionBar _missionBar) |
| | | { |
| | | var dateMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var hintId = model.DungeonHintMap(dateMapId, _mission.lineID); |
| | | var dateMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var hintId = model.GetDungeonHintId(dateMapId, _mission.lineID); |
| | | var config = Config.Instance.Get<DungeonHintConfig>(hintId); |
| | | if (config == null) |
| | | { |
| | |
| | | private void ShowMisssionHint() |
| | | { |
| | | var mission = model.mission; |
| | | var hintId = model.DungeonHintMap(model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID), mission.lineID); |
| | | var hintId = model.GetDungeonHintId(model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID), mission.lineID); |
| | | var config = Config.Instance.Get<DungeonHintConfig>(hintId); |
| | | |
| | | if (config == null || string.IsNullOrEmpty(config.mark)) |
| | |
| | | List<Item> sweepResultItems = new List<Item>();
|
| | |
|
| | | int m_SweepDungeonTypeBuf = 0;
|
| | | public int sweepDungeonTypeBuf
|
| | | {
|
| | | public int sweepDungeonTypeBuf {
|
| | | get { return m_SweepDungeonTypeBuf; }
|
| | | }
|
| | |
|
| | | Dungeon m_SelectedTrialDungeon;
|
| | | public Dungeon selectedTrialDungeon
|
| | | {
|
| | | public Dungeon selectedTrialDungeon {
|
| | | get { return m_SelectedTrialDungeon; }
|
| | | set { m_SelectedTrialDungeon = value; }
|
| | | }
|
| | |
|
| | | Dungeon m_CurrentDungeon;
|
| | | public Dungeon currentDungeon
|
| | | {
|
| | | public Dungeon currentDungeon {
|
| | | get { return m_CurrentDungeon; }
|
| | | set { m_CurrentDungeon = value; }
|
| | | }
|
| | |
|
| | | int m_DungeonGrade = 0;
|
| | | public int dungeonGrade
|
| | | {
|
| | | public int dungeonGrade {
|
| | | get { return m_DungeonGrade; }
|
| | | }
|
| | |
|
| | | DungeonMissionData m_Mission;
|
| | | public DungeonMissionData mission
|
| | | {
|
| | | public DungeonMissionData mission {
|
| | | get { return m_Mission; }
|
| | | }
|
| | |
|
| | | DungeonResult m_DungeonResult;
|
| | | public DungeonResult dungeonResult
|
| | | {
|
| | | public DungeonResult dungeonResult {
|
| | | get { return m_DungeonResult; }
|
| | | set { m_DungeonResult = value; }
|
| | | }
|
| | |
|
| | | public int dungeonCoinInspireCount
|
| | | {
|
| | | public int dungeonCoinInspireCount {
|
| | | get; private set;
|
| | | }
|
| | |
|
| | | public int dungeonJadeInspireCount
|
| | | {
|
| | | public int dungeonJadeInspireCount {
|
| | | get; private set;
|
| | | }
|
| | |
|
| | | public int dungeonInspireUper
|
| | | {
|
| | | public int dungeonInspireUper {
|
| | | get; private set;
|
| | | }
|
| | |
|
| | | Dungeon m_SelectedKylinDungeon;
|
| | | public Dungeon selectedKylinDungeon
|
| | | {
|
| | | public Dungeon selectedKylinDungeon {
|
| | | get { return m_SelectedKylinDungeon; }
|
| | | set
|
| | | {
|
| | | set {
|
| | | if (m_SelectedKylinDungeon != value)
|
| | | {
|
| | | m_SelectedKylinDungeon = value;
|
| | |
| | | public bool gradeTween = true;
|
| | |
|
| | | DungeonFightStage m_DungeonFightStage = DungeonFightStage.None;
|
| | | public DungeonFightStage dungeonFightStage
|
| | | {
|
| | | public DungeonFightStage dungeonFightStage {
|
| | | get { return m_DungeonFightStage; }
|
| | | set
|
| | | {
|
| | | set {
|
| | | if (m_DungeonFightStage != value)
|
| | | {
|
| | | m_DungeonFightStage = value;
|
| | |
| | | return dungeonOpenTimes.TryGetValue(_mapId, out _openTime);
|
| | | }
|
| | |
|
| | | public bool TryGetDungeonCountRemainTime(int _dataMapId, out DateTime _remainTime)
|
| | | public bool TryGetCountRemainTime(int _dataMapId, out DateTime _remainTime)
|
| | | {
|
| | | return dungeonCountRemainTimes.TryGetValue(_dataMapId, out _remainTime) && _remainTime > DateTime.Now;
|
| | | }
|
| | |
|
| | | public int GetDungeonGrade(Dungeon _dungeon)
|
| | | public int GetGrade(Dungeon _dungeon)
|
| | | {
|
| | | if (dungeonRecords.ContainsKey(_dungeon.mapId))
|
| | | {
|
| | |
| | | return dungeonRecord.lineGrades[_dungeon.lineId];
|
| | | }
|
| | | else
|
| | | { return 0; }
|
| | | {
|
| | | return 0;
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public bool TryGetDungeonRecord(int _mapId, out DungeonRecord _record)
|
| | | public bool TryGetRecord(int _mapId, out DungeonRecord _record)
|
| | | {
|
| | | return dungeonRecords.TryGetValue(_mapId, out _record);
|
| | | }
|
| | |
|
| | | public int GetDungeonEnterTimes(int _dataMapId)
|
| | | public int GetEnterTimes(int _dataMapId)
|
| | | {
|
| | | DungeonRecord record;
|
| | | if (TryGetDungeonRecord(_dataMapId, out record))
|
| | | if (TryGetRecord(_dataMapId, out record))
|
| | | {
|
| | | return record.enterTimes;
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public int GetDungeonTotalTimes(int _dataMapId)
|
| | | public int GetTotalTimes(int _dataMapId)
|
| | | {
|
| | | var config = Config.Instance.Get<DungeonOpenTimeConfig>(_dataMapId);
|
| | | if (config == null)
|
| | |
| | | var totalTimes = config.DayTimes;
|
| | |
|
| | | DungeonRecord record;
|
| | | TryGetDungeonRecord(_dataMapId, out record);
|
| | | TryGetRecord(_dataMapId, out record);
|
| | | totalTimes += record != null ? record.recoverTimes : 0;
|
| | | totalTimes += record != null ? record.extraTimes : 0;
|
| | |
|
| | |
| | | return totalTimes;
|
| | | }
|
| | |
|
| | | public int GetDungeonBoughtTimes(int _dataMapId)
|
| | | public int GetBoughtTimes(int _dataMapId)
|
| | | {
|
| | | DungeonRecord record;
|
| | | if (TryGetDungeonRecord(_dataMapId, out record))
|
| | | if (TryGetRecord(_dataMapId, out record))
|
| | | {
|
| | | return record.buyTimes;
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public int GetDungeonBuyTimesLimit(int _dataMapId)
|
| | | public int GetBuyTimesLimit(int _dataMapId)
|
| | | {
|
| | | var config = Config.Instance.Get<DungeonOpenTimeConfig>(_dataMapId);
|
| | | var vipPrivilegeId = config.BuyTimesID;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public Item GetDungeonTicketCost(int _mapId, int _lineId = 0)
|
| | | public Item GetTicketCost(int _mapId, int _lineId = 0)
|
| | | {
|
| | | var enterTimes = GetDungeonEnterTimes(_mapId);
|
| | | var config = Config.Instance.Get<DungeonConfig>(DungeonMap(_mapId, _lineId));
|
| | | var enterTimes = GetEnterTimes(_mapId);
|
| | | var config = Config.Instance.Get<DungeonConfig>(GetDungeonId(_mapId, _lineId));
|
| | | if (config.TicketID > 0)
|
| | | {
|
| | | return new Item(config.TicketID, config.TicketCostCnt[Mathf.Clamp(enterTimes, 0, config.TicketCostCnt.Length - 1)]);
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public bool TryGetDungeonBuyCntCost(int _mapId, out string _formula)
|
| | | public bool TryGetBuyCountCost(int _mapId, out string _formula)
|
| | | {
|
| | | return dungeonBuyCntFormulaDic.TryGetValue(_mapId, out _formula);
|
| | | }
|
| | |
| | |
|
| | | public Item GetSweepCost(Dungeon _dungeon)
|
| | | {
|
| | | var dungeonId = DungeonMap(_dungeon);
|
| | | var dungeonId = GetDungeonId(_dungeon);
|
| | | var config = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | if (config == null)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public void SweepDungeon(Dungeon _dungeon)
|
| | | public void RequestSweep(Dungeon _dungeon)
|
| | | {
|
| | | m_CurrentDungeon = _dungeon;
|
| | |
|
| | |
| | | GameNetSystem.Instance.SendInfo(send);
|
| | | }
|
| | |
|
| | | public bool TestChallangeDungeon(Dungeon _dungeon, out int _error)
|
| | | public bool TestChallange(Dungeon _dungeon, out int _error)
|
| | | {
|
| | | //错误码:1.副本CD中;2.等级不足;3.转职等级不足;4.剩余次数不足;5.缺少门票
|
| | | var dungeonId = DungeonMap(_dungeon);
|
| | | var dungeonId = GetDungeonId(_dungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | |
|
| | | if (OnDungeonEnterCD(_dungeon.mapId))
|
| | | if (IsEnterCountDowning(_dungeon.mapId))
|
| | | {
|
| | | _error = 1;
|
| | | return false;
|
| | |
| | | }
|
| | |
|
| | | DungeonRecord record;
|
| | | TryGetDungeonRecord(currentDungeon.mapId, out record);
|
| | | TryGetRecord(currentDungeon.mapId, out record);
|
| | | var openTimeConfig = Config.Instance.Get<DungeonOpenTimeConfig>(_dungeon.mapId);
|
| | | var entertimes = GetDungeonEnterTimes(_dungeon.mapId);
|
| | | var totalTimes = GetDungeonTotalTimes(_dungeon.mapId);
|
| | | var entertimes = GetEnterTimes(_dungeon.mapId);
|
| | | var totalTimes = GetTotalTimes(_dungeon.mapId);
|
| | | var surplusTimes = totalTimes - entertimes;
|
| | | if (surplusTimes <= 0 && openTimeConfig.HelpPoint == 0)
|
| | | {
|
| | |
| | |
|
| | | public void ChallengeNextDungeonLevel()
|
| | | {
|
| | | CA508_tagCMDoFBAction cA508 = new CA508_tagCMDoFBAction();
|
| | | var cA508 = new CA508_tagCMDoFBAction();
|
| | | cA508.ActionType = 1;
|
| | | cA508.ActionInfo = (uint)(dungeonResult.lineID + 1);
|
| | | GameNetSystem.Instance.SendInfo(cA508);
|
| | | }
|
| | |
|
| | | public void SingleChallengeDungeon(int _dungeonId, int _lineId = 0)
|
| | | public void SingleChallenge(int _dungeonId, int _lineId = 0)
|
| | | {
|
| | | SingleChallengeDungeon(new Dungeon(_dungeonId, _lineId));
|
| | | SingleChallenge(new Dungeon(_dungeonId, _lineId));
|
| | | }
|
| | |
|
| | | public void SingleChallengeDungeon(Dungeon _dungeon)
|
| | | public void SingleChallenge(Dungeon _dungeon)
|
| | | {
|
| | | var dungeonId = DungeonMap(_dungeon);
|
| | | var dungeonId = GetDungeonId(_dungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | |
|
| | | var mapId = dungeonConfig.MapID;
|
| | | var mapConfig = Config.Instance.Get<MapConfig>(mapId);
|
| | | var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
|
| | |
|
| | | if ((MapType)mapConfig.MapFBType == MapType.MultipleFB)
|
| | | if ((MapType)mapConfig.MapFBType == MapType.MultipleFB && teamModel.myTeam.inTeam)
|
| | | {
|
| | | var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
|
| | | if (teamModel.myTeam.inTeam)
|
| | | {
|
| | | ConfirmCancel.ShowPopConfirm(
|
| | | Language.Get("Mail101"),
|
| | | Language.Get("PlayerExitTeamSolo"),
|
| | | ConfirmCancel.ShowPopConfirm(
|
| | | Language.Get("Mail101"),
|
| | | Language.Get("PlayerExitTeamSolo"),
|
| | |
|
| | | (bool _ok) =>
|
| | | (bool ok) =>
|
| | | {
|
| | | if (ok)
|
| | | {
|
| | | if (_ok)
|
| | | {
|
| | | teamModel.RequestExitTeam();
|
| | | m_CurrentDungeon = _dungeon;
|
| | |
|
| | | Clock.Create(DateTime.Now + new TimeSpan(1 * TimeSpan.TicksPerSecond),
|
| | | () =>
|
| | | {
|
| | | CheckGroupEnterDungeon(_dungeon);
|
| | | /* ReqeustChallangeDungeon(_dungeon.mapId, _dungeon.lineId);*/
|
| | | }
|
| | | );
|
| | | }
|
| | | teamModel.RequestExitTeam();
|
| | | Clock.Create(DateTime.Now + new TimeSpan(TimeSpan.TicksPerSecond),
|
| | | () =>
|
| | | {
|
| | | m_CurrentDungeon = _dungeon;
|
| | | CheckGroupEnter(_dungeon);
|
| | | }
|
| | | );
|
| | | }
|
| | | );
|
| | |
|
| | | return;
|
| | | }
|
| | | }
|
| | | );
|
| | | }
|
| | |
|
| | | m_CurrentDungeon = _dungeon;
|
| | | CheckGroupEnterDungeon(_dungeon);
|
| | | //ReqeustChallangeDungeon(_dungeon.mapId, _dungeon.lineId);
|
| | | else
|
| | | {
|
| | | m_CurrentDungeon = _dungeon;
|
| | | CheckGroupEnter(_dungeon);
|
| | | }
|
| | | }
|
| | |
|
| | | public void GroupChallengeDungeon(Dungeon _dungeon)
|
| | | public void GroupChallenge(Dungeon _dungeon)
|
| | | {
|
| | | var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
|
| | | if (!teamModel.myTeam.inTeam)
|
| | |
| | | {
|
| | | if (teamModel.myTeam.memberCount == 1)
|
| | | {
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), GroupChallengeOnlyOneTip(_dungeon.mapId), (bool isOk) =>
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), GroupChallengeOnlyOneTip(_dungeon.mapId), (bool ok) =>
|
| | | {
|
| | | if (isOk)
|
| | | if (ok)
|
| | | {
|
| | | CheckGroupEnterDungeon(_dungeon);
|
| | | CheckGroupEnter(_dungeon);
|
| | | }
|
| | | else
|
| | | {
|
| | | GroupCancelEnterDungeon(_dungeon.mapId);
|
| | | CancelGroupEnter(_dungeon.mapId);
|
| | | }
|
| | | });
|
| | | }
|
| | | else if (teamModel.myTeam.memberCount - teamModel.myTeam.GetOnlineMemberCnt() > 0)
|
| | | else if (teamModel.myTeam.memberCount - teamModel.myTeam.GetOnlineMemberCount() > 0)
|
| | | {
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("OfflinePlayerNotice"), (bool isOk) =>
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("OfflinePlayerNotice"), (bool ok) =>
|
| | | {
|
| | | if (isOk)
|
| | | if (ok)
|
| | | {
|
| | | CheckGroupEnterDungeon(_dungeon);
|
| | | CheckGroupEnter(_dungeon);
|
| | | }
|
| | | });
|
| | | }
|
| | | else
|
| | | {
|
| | | CheckGroupEnterDungeon(_dungeon);
|
| | | CheckGroupEnter(_dungeon);
|
| | | }
|
| | | }
|
| | | else
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private void GroupCancelEnterDungeon(int _mapId)
|
| | | private void CancelGroupEnter(int _mapId)
|
| | | {
|
| | | switch (_mapId)
|
| | | {
|
| | |
| | | return Language.Get("FBEnter_OnlyYou");
|
| | | }
|
| | |
|
| | | private void CheckGroupEnterDungeon(Dungeon _dungeon)
|
| | | private int ruinsTranscriptMapId;
|
| | | private void CheckGroupEnter(Dungeon _dungeon)
|
| | | {
|
| | | if (IsEmperorRuins(_dungeon.mapId))
|
| | | if (ruinsTranscriptMapId == _dungeon.mapId)
|
| | | {
|
| | | OpenFloorChooseWin();
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | private int ruinsTranscriptMapId;
|
| | | private bool IsEmperorRuins(int mapID)
|
| | | {
|
| | | if (ruinsTranscriptMapId == mapID)
|
| | | {
|
| | | return true;
|
| | | }
|
| | | else
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|
| | | private void OpenFloorChooseWin()
|
| | | {
|
| | | var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
|
| | | var mainModel = ModelCenter.Instance.GetModel<PlayerMainDate>();
|
| | | if (teamModel.myTeam.GetOnlineMemberCnt() > 0)
|
| | | if (teamModel.myTeam.GetOnlineMemberCount() > 0)
|
| | | {
|
| | | var cB910 = new CB910_tagCGQueryTeamMemFuncData();
|
| | | cB910.TeamMemFuncType = 0;
|
| | |
| | | WindowCenter.Instance.Open<FloorChooseWin>();
|
| | | }
|
| | |
|
| | | public void GroupChallengeDungeon(int _dungeonId, int _lineId = 0)
|
| | | public void GroupChallenge(int _dungeonId, int _lineId = 0)
|
| | | {
|
| | | GroupChallengeDungeon(new Dungeon(_dungeonId, _lineId));
|
| | | GroupChallenge(new Dungeon(_dungeonId, _lineId));
|
| | | }
|
| | |
|
| | | public void ExitCurrentDungeon()
|
| | |
| | | GameNetSystem.Instance.SendInfo(send);
|
| | | }
|
| | |
|
| | | public void ResetDungeonBufData()
|
| | | public void ResetBufData()
|
| | | {
|
| | | dungeonFightStage = DungeonFightStage.None;
|
| | | specialItemCollectRecord = default(Item);
|
| | |
| | | m_Mission = default(DungeonMissionData);
|
| | | }
|
| | |
|
| | | public void UpdateDungeonRecords(HA320_tagMCPlayerFBInfoData.tagMCFBInfo[] _serverInfos)
|
| | | public void UpdateRecords(HA320_tagMCPlayerFBInfoData.tagMCFBInfo[] _serverInfos)
|
| | | {
|
| | | for (int i = 0; i < _serverInfos.Length; i++)
|
| | | {
|
| | |
| | |
|
| | | }
|
| | |
|
| | | public void UpdateDungeonRecords(HA3BD_tagMCBuyEnterInfo.tagMCBuyInfo[] vNetDatas)
|
| | | public void UpdateRecords(HA3BD_tagMCBuyEnterInfo.tagMCBuyInfo[] vNetDatas)
|
| | | {
|
| | | for (int i = 0; i < vNetDatas.Length; i++)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public DungeonEnterCD DungeonEnterData(int _mapID)
|
| | | public DungeonEnterCD GetEnterCD(int _mapID)
|
| | | {
|
| | | if (dungeonEnterDic.ContainsKey(_mapID))
|
| | | {
|
| | |
| | | return null;
|
| | | }
|
| | |
|
| | | public bool HasDungeonEnterCD(int _mapID)
|
| | | public bool HasEnterCD(int _mapID)
|
| | | {
|
| | | return dungeonEnterDic.ContainsKey(_mapID);
|
| | | }
|
| | |
|
| | | public bool OnDungeonEnterCD(int _mapID)
|
| | | public bool IsEnterCountDowning(int _mapID)
|
| | | {
|
| | | DungeonEnterCD dungeonEnter = DungeonEnterData(_mapID);
|
| | | if (dungeonEnter == null)
|
| | | var cd = GetEnterCD(_mapID);
|
| | | if (cd == null)
|
| | | {
|
| | | return false;
|
| | | if (dungeonEnter.dungeonSurplusTime == 0)
|
| | | }
|
| | |
|
| | | if (cd.dungeonSurplusTime == 0)
|
| | | {
|
| | | return false;
|
| | | return (dungeonEnter.overdueTime - DateTime.Now).TotalSeconds > 0;
|
| | | }
|
| | |
|
| | | return (cd.overdueTime - DateTime.Now).TotalSeconds > 0;
|
| | | }
|
| | |
|
| | | public void UpdateDungeonEnterTime(HA703_tagMCFBEnterTickList.tagMCFBEnterTick[] vNetDatas)
|
| | | public void UpdateEnterCD(HA703_tagMCFBEnterTickList.tagMCFBEnterTick[] vNetDatas)
|
| | | {
|
| | | for (int i = 0; i < vNetDatas.Length; i++)
|
| | | {
|
| | |
| | | dungeonEnterDic[(int)data.MapID].SetEnterTime(data.LastEnterTick);
|
| | | }
|
| | | }
|
| | |
|
| | | if (updateDungeonEnterCD != null)
|
| | | {
|
| | | updateDungeonEnterCD();
|
| | | }
|
| | | }
|
| | |
|
| | | public void UpdateDugeonInspireLv(int coinInspireLv, int jadeInpsireLv)
|
| | | public void UpdateInspireLevel(int coinInspireLv, int jadeInpsireLv)
|
| | | {
|
| | | dungeonCoinInspireCount = coinInspireLv;
|
| | | dungeonJadeInspireCount = jadeInpsireLv;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public void SendClearDungeonEnterCD(int _mapID)
|
| | | public void RequestClearEnterCD(int _mapID)
|
| | | {
|
| | | var clearpack = new CA210_tagCMClearFBCD();
|
| | | clearpack.MapID = (uint)_mapID;
|
| | | GameNetSystem.Instance.SendInfo(clearpack);
|
| | | }
|
| | |
|
| | | public void SendBuyDungeonEnterCnt(int _mapID)
|
| | | public void RequestBuyEnterCount(int _mapID)
|
| | | {
|
| | | var buypack = new CA575_tagCMBuyEnterCount();
|
| | | buypack.FBID = (uint)_mapID;
|
| | | GameNetSystem.Instance.SendInfo(buypack);
|
| | | }
|
| | |
|
| | | public void UpdateDungeonCoolDown(DungeonCoolDownType _type, uint _millisecond)
|
| | | public void UpdateCoolDown(DungeonCoolDownType _type, uint _millisecond)
|
| | | {
|
| | | dungeonCoolDowns[_type] = DateTime.Now + new TimeSpan(_millisecond * TimeSpan.TicksPerMillisecond);
|
| | | if (dungeonCoolDownEvent != null)
|
| | |
| | |
|
| | | if (_type == DungeonCoolDownType.WaitStart)
|
| | | {
|
| | | Clock.Create(dungeonCoolDowns[_type], OnDungeonBeginCoolDownEnd);
|
| | | Clock.Create(dungeonCoolDowns[_type], OnBeginCoolDownEnd);
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnDungeonBeginCoolDownEnd()
|
| | | private void OnBeginCoolDownEnd()
|
| | | {
|
| | | var mapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID);
|
| | | if (mapConfig.MapFBType != (int)MapType.OpenCountry)
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public void UpdateDungeonCountRemaintime(HB209_tagMCFBCntRegainRemainTime _serverTimes)
|
| | | public void UpdateCountRemaintime(HB209_tagMCFBCntRegainRemainTime _serverTimes)
|
| | | {
|
| | | for (int i = 0; i < _serverTimes.InfoList.Length; i++)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public DateTime GetDungeonCoolDownEndTime(DungeonCoolDownType _type)
|
| | | public DateTime GetCoolDownEndTime(DungeonCoolDownType _type)
|
| | | {
|
| | | var endTime = DateTime.Now;
|
| | | dungeonCoolDowns.TryGetValue(_type, out endTime);
|
| | |
| | | return endTime;
|
| | | }
|
| | |
|
| | | public void UpdateDungeonMission(string _mission)
|
| | | public void UpdateMission(string _mission)
|
| | | {
|
| | | var mapId = GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | m_Mission = LitJson.JsonMapper.ToObject<DungeonMissionData>(_mission);
|
| | | var lineId = mission.lineID;
|
| | | switch (mapId)
|
| | |
| | | {
|
| | | PlayerDatas.Instance.hero.ShowArrow(false);
|
| | | }
|
| | | if (DungeonHintMap(mapId, lineId) != 0)
|
| | | if (GetDungeonHintId(mapId, lineId) != 0)
|
| | | {
|
| | | if (!WindowCenter.Instance.CheckOpen<DungeonMissionHintWin>())
|
| | | {
|
| | |
| | | case TreasureModel.TREASURE_MAPID:
|
| | | break;
|
| | | case HeavenBattleModel.HEAVEBATTLE_MAPID:
|
| | | if (DungeonHintMap(mapId, lineId) != 0)
|
| | | if (GetDungeonHintId(mapId, lineId) != 0)
|
| | | {
|
| | | if (!WindowCenter.Instance.CheckOpen<DungeonMissionHintWin>())
|
| | | {
|
| | |
| | | }
|
| | | break;
|
| | | default:
|
| | | if (DungeonHintMap(mapId, lineId) != 0)
|
| | | if (GetDungeonHintId(mapId, lineId) != 0)
|
| | | {
|
| | | if (!WindowCenter.Instance.CheckOpen<DungeonMissionHintWin>())
|
| | | {
|
| | |
| | |
|
| | | }
|
| | |
|
| | | public void ProcessDungeonResult(string _msg)
|
| | | public void UpdateFakeDungeonMission(int _dataMapId, DungeonMissionData _missionData)
|
| | | {
|
| | | m_Mission = _missionData;
|
| | | switch (_dataMapId)
|
| | | {
|
| | | case DemonJarModel.DEMONJAR_MAPID:
|
| | | if (!WindowCenter.Instance.CheckOpen<DemonJarDamageRankWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<DemonJarDamageRankWin>();
|
| | | }
|
| | | break;
|
| | | }
|
| | |
|
| | | if (updateMissionEvent != null)
|
| | | {
|
| | | updateMissionEvent();
|
| | | }
|
| | | }
|
| | |
|
| | | public void ProcessResult(string _msg)
|
| | | {
|
| | | m_DungeonResult = LitJson.JsonMapper.ToObject<DungeonResult>(_msg);
|
| | | if (m_DungeonResult.isSweep == 1)
|
| | |
| | | WindowCenter.Instance.Open<DungeonSlayerVictoryWin>();
|
| | | break;
|
| | | case RealmModel.REALM_DUNGEON_ID:
|
| | | RealmConfig presentcfg = Config.Instance.Get<RealmConfig>(realmModel.cacheRealmLv);
|
| | | if (presentcfg != null && presentcfg.IsBigRealm == 1
|
| | | var realmConfig = Config.Instance.Get<RealmConfig>(realmModel.cacheRealmLv);
|
| | | if (realmConfig != null && realmConfig.IsBigRealm == 1
|
| | | && dungeonResult.leaderID == PlayerDatas.Instance.baseData.PlayerID)
|
| | | {
|
| | | RealmBossShow.Instance.Open(realmModel.cacheRealmLv);
|
| | |
| | | WindowCenter.Instance.Open<DungeonRealmVictoryWin>();
|
| | | }
|
| | | break;
|
| | | case RuneTowerModel.RUNETOWER_MAPID:
|
| | | WindowCenter.Instance.Open<DungeonRuneTowerVictoryWin>();
|
| | | break;
|
| | | case 41110:
|
| | | WindowCenter.Instance.Open<DungeonGetTreasureVictoryWin>();
|
| | | WindowCenter.Instance.Open<TreasureDungeonVictoryWin>();
|
| | | break;
|
| | | default:
|
| | | CheckOpenSpecialVictoryWin();
|
| | | WindowCenter.Instance.Open<DungeonVictoryWin>();
|
| | | break;
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public void UpdateFakeDungeonMission(int _dataMapId, DungeonMissionData _missionData)
|
| | | {
|
| | | m_Mission = _missionData;
|
| | | switch (_dataMapId)
|
| | | {
|
| | | case DemonJarModel.DEMONJAR_MAPID:
|
| | | if (!WindowCenter.Instance.CheckOpen<DemonJarDamageRankWin>())
|
| | | {
|
| | | WindowCenter.Instance.Open<DemonJarDamageRankWin>();
|
| | | }
|
| | | break;
|
| | | }
|
| | |
|
| | | if (updateMissionEvent != null)
|
| | | {
|
| | | updateMissionEvent();
|
| | | }
|
| | | }
|
| | |
|
| | | private void CheckOpenSpecialVictoryWin()
|
| | | {
|
| | | if (StageManager.Instance.CurrentStage is RuneTowerDungeonStage)
|
| | | {
|
| | | WindowCenter.Instance.Open<DungeonRuneTowerVictoryWin>();
|
| | | return;
|
| | | }
|
| | |
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var dataMapId = GetDungeonDataIdByMapId(mapId);
|
| | | var lineId = dungeonResult.lineID;
|
| | | var treasureId = ModelCenter.Instance.GetModel<TreasureModel>().GetTreasureIdByMapIdAndLineId(dataMapId, lineId);
|
| | | if (treasureId > 0)
|
| | | {
|
| | | WindowCenter.Instance.Open<DungeonGetTreasureVictoryWin>();
|
| | | WindowCenter.Instance.Open<TreasureDungeonVictoryWin>();
|
| | | return;
|
| | | }
|
| | | WindowCenter.Instance.Open<DungeonVictoryWin>();
|
| | | }
|
| | |
|
| | | public int DungeonHintMap(int _dataMapId, int _lineId)
|
| | | public int GetDungeonHintId(int _dataMapId, int _lineId)
|
| | | {
|
| | | if (dungeonHintMap.ContainsKey(_dataMapId) && dungeonHintMap[_dataMapId].ContainsKey(_lineId))
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public int DungeonMap(int _dataMapId, int _lineId)
|
| | | public int GetDungeonId(int _dataMapId, int _lineId)
|
| | | {
|
| | | if (dungeonMap.ContainsKey(_dataMapId) && dungeonMap[_dataMapId].ContainsKey(_lineId))
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public int DungeonMap(Dungeon _dungeon)
|
| | | public int GetDungeonId(Dungeon _dungeon)
|
| | | {
|
| | | return DungeonMap(_dungeon.mapId, _dungeon.lineId);
|
| | | return GetDungeonId(_dungeon.mapId, _dungeon.lineId);
|
| | | }
|
| | |
|
| | | public List<int> DungeonMapDungeons(int _mapId)
|
| | | public List<int> GetDungeonIds(int _mapId)
|
| | | {
|
| | | if (dungeonMap.ContainsKey(_mapId))
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public List<int> DugeonMapLines(int _dataMapId)
|
| | | public List<int> GetDugeonLines(int _dataMapId)
|
| | | {
|
| | | if (dungeonMap.ContainsKey(_dataMapId))
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public List<int> DungeonTrialMaps()
|
| | | public List<int> GetTrialMaps()
|
| | | {
|
| | | return trialDungeonMapList;
|
| | | }
|
| | |
|
| | | public int GetDungeonDataIdByMapId(int _mapId)
|
| | | public int GetDataMapIdByMapId(int _mapId)
|
| | | {
|
| | | if (_mapId == DemonJarModel.DEMONJAR_SINGLEMAPID)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public List<DungeonTarget> GetDungeonTargets(int _dataMapId, int _lineId, int _step)
|
| | | public List<DungeonTarget> GetTargets(int _dataMapId, int _lineId, int _step)
|
| | | {
|
| | | var hintId = DungeonHintMap(_dataMapId, _lineId);
|
| | | var hintId = GetDungeonHintId(_dataMapId, _lineId);
|
| | | if (hintId == 0)
|
| | | {
|
| | | return null;
|
| | |
| | | public int GetBelongToLine(int _dailyQuestId)
|
| | | {
|
| | | var config = Config.Instance.Get<DailyQuestConfig>(_dailyQuestId);
|
| | | var lineIds = DugeonMapLines(config.RelatedID);
|
| | | var lineIds = GetDugeonLines(config.RelatedID);
|
| | | var _lv = PlayerDatas.Instance.baseData.LV;
|
| | | for (int i = 0; i < lineIds.Count; i++)
|
| | | {
|
| | | var _dungeonId = DungeonMap(config.RelatedID, lineIds[i]);
|
| | | var _dungeonId = GetDungeonId(config.RelatedID, lineIds[i]);
|
| | | DungeonConfig _dungeonCfg = Config.Instance.Get<DungeonConfig>(_dungeonId);
|
| | | if (_lv < _dungeonCfg.LVLimitMin)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public int GetDungeonInspireMaxCnt(int _dataMapId)
|
| | | public int GetInspireMaxCount(int _dataMapId)
|
| | | {
|
| | | List<DungeonInspireConfig> _list = GetDungeonInspire(_dataMapId);
|
| | | int _maxCnt = 0;
|
| | |
| | | switch (lackType)
|
| | | {
|
| | | case DungeonSuppliesLackWin.LackType.PersonalBoss:
|
| | | return GetDungeonTicketCost(PersonalBossModel.PERSONALBOSS_MAPID);
|
| | | return GetTicketCost(PersonalBossModel.PERSONALBOSS_MAPID);
|
| | | case DungeonSuppliesLackWin.LackType.ElderGodArea:
|
| | | return GetDungeonTicketCost(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | return GetTicketCost(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | case DungeonSuppliesLackWin.LackType.Kylin:
|
| | | return GetSweepCost(selectedKylinDungeon);
|
| | | case DungeonSuppliesLackWin.LackType.IceCrystal:
|
| | | return GetSweepCost(new Dungeon(31140, 0));
|
| | | case DungeonSuppliesLackWin.LackType.FairyLand:
|
| | | return GetDungeonTicketCost(31080);
|
| | | return GetTicketCost(31080);
|
| | | case DungeonSuppliesLackWin.LackType.SingleIceCrystal:
|
| | | return GetDungeonTicketCost(31140);
|
| | | return GetTicketCost(31140);
|
| | | default:
|
| | | return default(Item);
|
| | | }
|
| | |
| | |
|
| | | public bool IsElderGodExpel()
|
| | | {
|
| | | var dataMapId = GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | return dataMapId == ElderGodAreaModel.ELDERGODAREA_MAPID && mission.score >= 100;
|
| | | }
|
| | |
|
| | |
| | | var mapConfig = Config.Instance.Get<MapConfig>(mapId);
|
| | | if (mapConfig == null || mapConfig.MapFBType == 0)
|
| | | {
|
| | | UpdateDugeonInspireLv(0, 0);
|
| | | UpdateInspireLevel(0, 0);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | DateTime endNextTime;
|
| | | if (dungeonModel.dungeonResult.grade >= 5 && dungeonModel.dungeonResult.lineID < 7)
|
| | | {
|
| | | endNextTime = dungeonModel.GetDungeonCoolDownEndTime(DungeonCoolDownType.FBAddTime);
|
| | | endNextTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.FBAddTime);
|
| | | }
|
| | | else
|
| | | {
|
| | | endNextTime = dungeonModel.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | endNextTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | }
|
| | |
|
| | | if (endNextTime > DateTime.Now)
|
| | |
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.PickUpTime);
|
| | | endTime = model.GetCoolDownEndTime(DungeonCoolDownType.PickUpTime);
|
| | | DisplaySurplusTime();
|
| | |
|
| | | GlobalTimeEvent.Instance.secondEvent += OnPerSecond;
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.PickUpTime);
|
| | | endTime = model.GetCoolDownEndTime(DungeonCoolDownType.PickUpTime);
|
| | | DisplaySurplusTime();
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | var runeTowerStage = StageManager.Instance.CurrentStage as RuneTowerDungeonStage;
|
| | | runeTowerStage.PerformChallengeNextLevel();
|
| | | dungeonModel.UpdateDungeonCoolDown(DungeonCoolDownType.LeaveMap, 0);
|
| | | dungeonModel.UpdateDungeonCoolDown(DungeonCoolDownType.TowerTake, 0);
|
| | | dungeonModel.UpdateCoolDown(DungeonCoolDownType.LeaveMap, 0);
|
| | | dungeonModel.UpdateCoolDown(DungeonCoolDownType.TowerTake, 0);
|
| | | CloseClick();
|
| | | }
|
| | |
|
| | |
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.StageCoolDown);
|
| | | endTime = model.GetCoolDownEndTime(DungeonCoolDownType.StageCoolDown);
|
| | | m_ContainerStageTime.gameObject.SetActive(false);
|
| | | model.dungeonCoolDownEvent += OnDungeonTimeChange;
|
| | | }
|
| | |
| | | private void OnDungeonTimeChange(DungeonCoolDownType type)
|
| | | {
|
| | | if (type != DungeonCoolDownType.StageCoolDown) return;
|
| | | endTime = model.GetDungeonCoolDownEndTime(type);
|
| | | endTime = model.GetCoolDownEndTime(type);
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | |
| | | switch (_lackType)
|
| | | {
|
| | | case LackType.PersonalBoss:
|
| | | var dungeonId1 = dungeonModel.DungeonMap(PersonalBossModel.PERSONALBOSS_MAPID, 0);
|
| | | var dungeonId1 = dungeonModel.GetDungeonId(PersonalBossModel.PERSONALBOSS_MAPID, 0);
|
| | | var config1 = Config.Instance.Get<DungeonConfig>(dungeonId1);
|
| | | return config1.TicketPrice;
|
| | | case LackType.ElderGodArea:
|
| | | var dungeonId2 = dungeonModel.DungeonMap(ElderGodAreaModel.ELDERGODAREA_MAPID, 0);
|
| | | var dungeonId2 = dungeonModel.GetDungeonId(ElderGodAreaModel.ELDERGODAREA_MAPID, 0);
|
| | | var config2 = Config.Instance.Get<DungeonConfig>(dungeonId2);
|
| | | return config2.TicketPrice;
|
| | | case LackType.Kylin:
|
| | | case LackType.IceCrystal:
|
| | | return GeneralConfig.Instance.autoBuyItemPrices[0];
|
| | | case LackType.FairyLand:
|
| | | var dungeonId3 = dungeonModel.DungeonMap(31080, 0);
|
| | | var dungeonId3 = dungeonModel.GetDungeonId(31080, 0);
|
| | | var config3 = Config.Instance.Get<DungeonConfig>(dungeonId3);
|
| | | return config3.TicketPrice;
|
| | | case LackType.SingleIceCrystal:
|
| | | var dungeonId4 = dungeonModel.DungeonMap(31140, 0);
|
| | | var dungeonId4 = dungeonModel.GetDungeonId(31140, 0);
|
| | | var config4 = Config.Instance.Get<DungeonConfig>(dungeonId4);
|
| | | return config4.TicketPrice;
|
| | | default:
|
| | |
| | | return Language.Get("W_ElderGodTickets");
|
| | | case LackType.Kylin:
|
| | | case LackType.IceCrystal:
|
| | | var dungeonId = dungeonModel.DungeonMap(GetDungeon(_lackType));
|
| | | var dungeonId = dungeonModel.GetDungeonId(GetDungeon(_lackType));
|
| | | var config = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | return Language.Get("MultipleSweep_Text1", config.FBName, config.SweepCostCnt);
|
| | | case LackType.FairyLand:
|
| | |
| | | {
|
| | | case LackType.PersonalBoss:
|
| | | case LackType.ElderGodArea:
|
| | | dungeonModel.SingleChallengeDungeon(GetDungeon(_lackType));
|
| | | dungeonModel.SingleChallenge(GetDungeon(_lackType));
|
| | | break;
|
| | | case LackType.Kylin:
|
| | | case LackType.IceCrystal:
|
| | | dungeonModel.SweepDungeon(GetDungeon(_lackType));
|
| | | dungeonModel.RequestSweep(GetDungeon(_lackType));
|
| | | break;
|
| | | case LackType.FairyLand:
|
| | | dungeonModel.SingleChallengeDungeon(GetDungeon(_lackType));
|
| | | dungeonModel.SingleChallenge(GetDungeon(_lackType));
|
| | | break;
|
| | | case LackType.SingleIceCrystal:
|
| | | dungeonModel.SingleChallengeDungeon(GetDungeon(_lackType));
|
| | | dungeonModel.SingleChallenge(GetDungeon(_lackType));
|
| | | break;
|
| | | default:
|
| | | break;
|
| | |
| | |
|
| | | private void DisplaySweepCost()
|
| | | {
|
| | | var tickets = model.GetDungeonTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | var tickets = model.GetTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | if (tickets.id > 0)
|
| | | {
|
| | | m_DungeonTicket.SetItem(tickets);
|
| | |
| | | var error = 0;
|
| | | if (TestSweep(out error))
|
| | | {
|
| | | model.SweepDungeon(model.currentDungeon);
|
| | | model.RequestSweep(model.currentDungeon);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | SysNotifyMgr.Instance.ShowTip("Multiple_Finish");
|
| | | break;
|
| | | case 3:
|
| | | var tickets = model.GetDungeonTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | var tickets = model.GetTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | getItemPath.SetChinItemModel(tickets.id);
|
| | | break;
|
| | | case 4:
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | model.SweepDungeon(model.currentDungeon);
|
| | | model.RequestSweep(model.currentDungeon);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | private bool TestSweep(out int error)
|
| | | {
|
| | | var dataMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == model.currentDungeon.mapId)
|
| | | {
|
| | | error = 5;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | var tickets = model.GetDungeonTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | var tickets = model.GetTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | var ticketsOwn = playerPack.GetItemCountByID(PackType.rptItem, tickets.id);
|
| | | if (ticketsOwn < tickets.count)
|
| | | {
|
| | |
| | |
|
| | | private void DisplayTicket()
|
| | | {
|
| | | var tickets = model.GetDungeonTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | var tickets = model.GetTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | if (tickets.id > 0)
|
| | | {
|
| | | m_DungeonTicket.SetItem(tickets);
|
| | |
| | | var error = 0;
|
| | | if (TestSweep(out error))
|
| | | {
|
| | | model.SweepDungeon(model.currentDungeon);
|
| | | model.RequestSweep(model.currentDungeon);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | DebugEx.Log("副本评级不足");
|
| | | break;
|
| | | case 2:
|
| | | var tickets = model.GetDungeonTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | var tickets = model.GetTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | getItemPathModel.SetChinItemModel(tickets.id);
|
| | | break;
|
| | | case 3:
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | model.SweepDungeon(model.currentDungeon);
|
| | | model.RequestSweep(model.currentDungeon);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | private bool TestSweep(out int error)
|
| | | {
|
| | | var dataMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == model.currentDungeon.mapId)
|
| | | {
|
| | | error = 5;
|
| | | return false;
|
| | | }
|
| | |
|
| | | var grade = model.GetDungeonGrade(model.currentDungeon);
|
| | | var grade = model.GetGrade(model.currentDungeon);
|
| | | if (grade <= 0)
|
| | | {
|
| | | error = 1;
|
| | | return false;
|
| | | }
|
| | |
|
| | | var tickets = model.GetDungeonTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | var tickets = model.GetTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId);
|
| | | var ticketsOwn = playerPack.GetItemCountByID(PackType.rptItem, tickets.id);
|
| | | if (ticketsOwn < tickets.count)
|
| | | {
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | var enterTimes = model.GetDungeonEnterTimes(model.currentDungeon.mapId);
|
| | | var totalTimes = model.GetDungeonTotalTimes(model.currentDungeon.mapId);
|
| | | var enterTimes = model.GetEnterTimes(model.currentDungeon.mapId);
|
| | | var totalTimes = model.GetTotalTimes(model.currentDungeon.mapId);
|
| | | var surplusTimes = totalTimes - enterTimes;
|
| | | if (surplusTimes <= 0)
|
| | | {
|
| | |
| | | { |
| | | if (currentDungeonId == 0) return; |
| | | |
| | | var dateMapId = model.GetDungeonDataIdByMapId(currentDungeonId); |
| | | var hintId = model.DungeonHintMap(dateMapId, 0); |
| | | var dateMapId = model.GetDataMapIdByMapId(currentDungeonId); |
| | | var hintId = model.GetDungeonHintId(dateMapId, 0); |
| | | var config = Config.Instance.Get<DungeonHintConfig>(hintId); |
| | | |
| | | m_TargetDescs[0].gameObject.SetActive(config.targetNum >= 1); |
| | |
| | | if (timer < 0f)
|
| | | {
|
| | | timer += 0.5f;
|
| | | var endTime = dungeonModel.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var endTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var seconds = (endTime - DateTime.Now).TotalSeconds;
|
| | | DrawExitTimer((int)seconds);
|
| | | }
|
| | |
| | | if (serveritems != null)
|
| | | {
|
| | | m_RewardSorts.AddRange(serveritems);
|
| | | int _mapid = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | int _mapid = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (_mapid == 60010 || _mapid == 31130)
|
| | | {
|
| | | m_RewardSorts.Sort(CompareTrialItemIndex);
|
| | |
| | |
|
| | | protected virtual void DrawSP()
|
| | | {
|
| | | var mapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dungeonModel.dungeonResult.sp > 0)
|
| | | {
|
| | | m_ContainerSP.gameObject.SetActive(true);
|
| | |
| | | {
|
| | | m_Exit.gameObject.SetActive(true);
|
| | | }
|
| | | var endTime = dungeonModel.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var endTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var seconds = (endTime - DateTime.Now).TotalSeconds;
|
| | | timer = (float)seconds - (int)seconds;
|
| | |
|
| | |
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | | for (int i = dungeons.Count - 1; i >= 0; i--)
|
| | | {
|
| | | var config = Config.Instance.Get<DungeonConfig>(model.DungeonMap(dungeons[i]));
|
| | | var config = Config.Instance.Get<DungeonConfig>(model.GetDungeonId(dungeons[i]));
|
| | | if (playerLevel >= config.LVLimitMin)
|
| | | {
|
| | | model.selectedKylinDungeon = dungeons[i];
|
| | |
| | |
|
| | | private void DrawDungeonBaseInfo()
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.selectedKylinDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.selectedKylinDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | |
|
| | | m_DungeonTitle.text = dungeonConfig.FBName;
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.selectedKylinDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.selectedKylinDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | switch (error)
|
| | | {
|
| | |
| | | var error = 0;
|
| | | if (TestChallengeDungeon(out error))
|
| | | {
|
| | | model.SingleChallengeDungeon(model.selectedKylinDungeon);
|
| | | model.SingleChallenge(model.selectedKylinDungeon);
|
| | | }
|
| | | else
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.selectedKylinDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.selectedKylinDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | switch (error)
|
| | | {
|
| | |
| | | break;
|
| | | case 3:
|
| | | var requireLineId = model.selectedKylinDungeon.lineId - 1;
|
| | | var requireGrade = model.GetDungeonGrade(new Dungeon(model.selectedKylinDungeon.mapId, requireLineId));
|
| | | var requireDungeonId = model.DungeonMap(new Dungeon(model.selectedKylinDungeon.mapId, requireLineId));
|
| | | var requireGrade = model.GetGrade(new Dungeon(model.selectedKylinDungeon.mapId, requireLineId));
|
| | | var requireDungeonId = model.GetDungeonId(new Dungeon(model.selectedKylinDungeon.mapId, requireLineId));
|
| | | var requireDungeonConfig = Config.Instance.Get<DungeonConfig>(requireDungeonId);
|
| | | SysNotifyMgr.Instance.ShowTip("NotChallengeMultiple", requireDungeonConfig.LVLimitMin);
|
| | | break;
|
| | |
| | |
|
| | | private bool TestSweepDungeon(out int _error)
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.selectedKylinDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.selectedKylinDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | |
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | var dungeonGrade = model.GetDungeonGrade(model.selectedKylinDungeon);
|
| | | var dungeonGrade = model.GetGrade(model.selectedKylinDungeon);
|
| | | if (dungeonGrade <= 0)
|
| | | {
|
| | | _error = 2;
|
| | |
| | |
|
| | | private bool TestChallengeDungeon(out int _error)
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.selectedKylinDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.selectedKylinDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | |
|
| | |
| | | if (model.selectedKylinDungeon.lineId > 0)
|
| | | {
|
| | | var requireLineId = model.selectedKylinDungeon.lineId - 1;
|
| | | var requireGrade = model.GetDungeonGrade(new Dungeon(model.selectedKylinDungeon.mapId, requireLineId));
|
| | | var requireGrade = model.GetGrade(new Dungeon(model.selectedKylinDungeon.mapId, requireLineId));
|
| | | if (requireGrade <= 0)
|
| | | {
|
| | | _error = 3;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | var enterTimes = model.GetDungeonEnterTimes(model.selectedKylinDungeon.mapId);
|
| | | var totalTimes = model.GetDungeonTotalTimes(model.selectedKylinDungeon.mapId);
|
| | | var enterTimes = model.GetEnterTimes(model.selectedKylinDungeon.mapId);
|
| | | var totalTimes = model.GetTotalTimes(model.selectedKylinDungeon.mapId);
|
| | | var surplusTimes = totalTimes - enterTimes;
|
| | | if (surplusTimes <= 0)
|
| | | {
|
| | |
| | | private void ParseDifficultys()
|
| | | {
|
| | | dungeons.Clear();
|
| | | var lineIds = model.DugeonMapLines(model.currentDungeon.mapId);
|
| | | var lineIds = model.GetDugeonLines(model.currentDungeon.mapId);
|
| | | for (int i = 0; i < lineIds.Count; i++)
|
| | | {
|
| | | dungeons.Add(new Dungeon(model.currentDungeon.mapId, lineIds[i]));
|
| | |
| | | dungeons.Sort(
|
| | | (Dungeon a, Dungeon b) =>
|
| | | {
|
| | | var dungeonConfigA = Config.Instance.Get<DungeonConfig>(model.DungeonMap(a));
|
| | | var dungeonConfigB = Config.Instance.Get<DungeonConfig>(model.DungeonMap(b));
|
| | | var dungeonConfigA = Config.Instance.Get<DungeonConfig>(model.GetDungeonId(a));
|
| | | var dungeonConfigB = Config.Instance.Get<DungeonConfig>(model.GetDungeonId(b));
|
| | | return dungeonConfigA.LVLimitMin < dungeonConfigB.LVLimitMin ? -1 : 1;
|
| | | }
|
| | | );
|
| | |
| | |
|
| | | private void UpdateDungeonEnterCD()
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.currentDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.currentDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | bool _cd = model.HasDungeonEnterCD(dungeonConfig.DataMapID) && model.OnDungeonEnterCD(dungeonConfig.DataMapID);
|
| | | bool _cd = model.HasEnterCD(dungeonConfig.DataMapID) && model.IsEnterCountDowning(dungeonConfig.DataMapID);
|
| | | m_EnterCdContainer.gameObject.SetActive(_cd);
|
| | | m_ContainerBtns.gameObject.SetActive(!_cd);
|
| | | }
|
| | |
|
| | | private void DrawDungeonBaseInfo()
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.currentDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.currentDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | var dungeonOpenTimeConfig = Config.Instance.Get<DungeonOpenTimeConfig>(model.currentDungeon.mapId);
|
| | | var fbType = dungeonOpenTimeConfig.FBType;
|
| | |
| | |
|
| | | private void DrawSweepInfo()
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.currentDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.currentDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | |
|
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | |
| | |
|
| | | private void DrawDungeonTicketInfo()
|
| | | {
|
| | | var config = Config.Instance.Get<DungeonConfig>(model.DungeonMap(model.currentDungeon));
|
| | | var config = Config.Instance.Get<DungeonConfig>(model.GetDungeonId(model.currentDungeon));
|
| | | if (config == null || config.TicketID == 0)
|
| | | {
|
| | | m_TicketContainer.gameObject.SetActive(false);
|
| | |
| | | m_DungeonTicketItem.showCount = true;
|
| | | DungeonRecord record;
|
| | | int _times = 0;
|
| | | if (model.TryGetDungeonRecord(model.currentDungeon.mapId, out record))
|
| | | if (model.TryGetRecord(model.currentDungeon.mapId, out record))
|
| | | {
|
| | | _times = record.enterTimes;
|
| | | }
|
| | | m_DungeonTicketItem.SetItem(model.GetDungeonTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId));
|
| | | m_DungeonTicketItem.SetItem(model.GetTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId));
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | private void ChallengeDungeon()
|
| | | {
|
| | | var error = 0;
|
| | | if (model.TestChallangeDungeon(model.currentDungeon, out error))
|
| | | if (model.TestChallange(model.currentDungeon, out error))
|
| | | {
|
| | | if (GeneralConfig.Instance.dungeonCanUseMoneyIds.Contains(model.currentDungeon.mapId))
|
| | | {
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | model.SingleChallengeDungeon(model.currentDungeon);
|
| | | model.SingleChallenge(model.currentDungeon);
|
| | | }
|
| | | }
|
| | | else
|
| | |
| | | private void AutoGroupChallenge()
|
| | | {
|
| | | var error = 0;
|
| | | if (model.TestChallangeDungeon(model.currentDungeon, out error))
|
| | | if (model.TestChallange(model.currentDungeon, out error))
|
| | | {
|
| | | teamModel.RequestAutoMatchTeam(new TeamMission(model.currentDungeon.mapId, model.currentDungeon.lineId));
|
| | | WindowCenter.Instance.Open<TeamFrameWin>(false, 1);
|
| | |
| | | private void ChallengeDungeonGroup()
|
| | | {
|
| | | var error = 0;
|
| | | if (model.TestChallangeDungeon(model.currentDungeon, out error))
|
| | | if (model.TestChallange(model.currentDungeon, out error))
|
| | | {
|
| | | model.GroupChallengeDungeon(model.currentDungeon);
|
| | | model.GroupChallenge(model.currentDungeon);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | |
|
| | | private void ProcessEnterDungeonError(int _error)
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.currentDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.currentDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | |
|
| | | switch (_error)
|
| | |
| | |
|
| | | private bool TestSweepDungeon(out int _error)
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.currentDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.currentDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | | var dungeonGrade = model.GetDungeonGrade(model.currentDungeon);
|
| | | var dungeonGrade = model.GetGrade(model.currentDungeon);
|
| | |
|
| | | if (dungeonGrade <= 0 && playerLevel < dungeonConfig.SweepLVLimit)
|
| | | {
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | if (model.OnDungeonEnterCD(model.currentDungeon.mapId))
|
| | | if (model.IsEnterCountDowning(model.currentDungeon.mapId))
|
| | | {
|
| | | _error = 4;
|
| | | return false;
|
| | |
| | |
|
| | | private void ProcessSweepDungeonError(int _error)
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.currentDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.currentDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | |
|
| | | switch (_error)
|
| | |
| | |
|
| | | if (_itemId == m_DungeonTicketItem.itemId)
|
| | | {
|
| | | m_DungeonTicketItem.SetItem(model.GetDungeonTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId));
|
| | | m_DungeonTicketItem.SetItem(model.GetTicketCost(model.currentDungeon.mapId, model.currentDungeon.lineId));
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | static void OnShowBossLifeBar(uint _instanceId, int _npcId, bool _show)
|
| | | {
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonDataIdByMapId(mapId);
|
| | | var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(mapId);
|
| | | if (dataMapId == DemonJarModel.DEMONJAR_MAPID)
|
| | | {
|
| | | if (_show)
|
| | |
| | | static void OnRefreshBossLifeBar(uint _instanceId, int _npcId, ulong _hp, ulong _maxHp)
|
| | | {
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonDataIdByMapId(mapId);
|
| | | var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(mapId);
|
| | | if (dataMapId == DemonJarModel.DEMONJAR_MAPID)
|
| | | {
|
| | | DemonJarBossLifeBarWin win;
|
| | |
| | |
|
| | | var config = Config.Instance.Get<TreasureConfig>(treasureId);
|
| | |
|
| | | var dungeonId = dungeonModel.DungeonMap(config.MapId, config.LineId);
|
| | | var dungeonId = dungeonModel.GetDungeonId(config.MapId, config.LineId);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | m_Title.text = dungeonConfig.FBName;
|
| | | m_Description.text = dungeonConfig.Description;
|
| | |
| | |
|
| | | private void DrawDungeonBaseInfo()
|
| | | {
|
| | | var dungeonId = model.DungeonMap(model.selectedTrialDungeon);
|
| | | var dungeonId = model.GetDungeonId(model.selectedTrialDungeon);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | m_Title.text = dungeonConfig.FBName;
|
| | | m_DropItemTxt.text = Language.Get(StringUtility.Contact("TrialDungeon_Drop", dungeonConfig.LineID));
|
| | |
| | | m_LevelLimit.gameObject.SetActive(playerLevel < dungeonConfig.LVLimitMin);
|
| | |
|
| | | DungeonRecord dungeonRecord;
|
| | | model.TryGetDungeonRecord(dungeonConfig.MapID, out dungeonRecord);
|
| | | model.TryGetRecord(dungeonConfig.MapID, out dungeonRecord);
|
| | | int star = 1;
|
| | | if (dungeonConfig.LineID > 0)
|
| | | {
|
| | |
| | | m_GradeLimit.text = Language.Get("TrialDungeonGradeLimit2", UIHelper.GetGrade(GeneralConfig.Instance.munekadolockLimit));
|
| | | }
|
| | |
|
| | | UpdateDungeonTimes(model.DungeonTrialMaps()[0]);
|
| | | UpdateDungeonTimes(model.GetTrialMaps()[0]);
|
| | |
|
| | | if (dungeonConfig.BossActorID != null && dungeonConfig.BossActorID.Length > 0)
|
| | | {
|
| | |
| | |
|
| | | private void UpdateDungeonTimes(int mapID)
|
| | | {
|
| | | int trialMapID = model.DungeonTrialMaps()[0];
|
| | | int trialMapID = model.GetTrialMaps()[0];
|
| | | if (trialMapID != mapID) return;
|
| | | DungeonOpenTimeConfig dungeonOpenTimeModel = Config.Instance.Get<DungeonOpenTimeConfig>(trialMapID);
|
| | | var completedTimes = dailyQuestModel.GetDailyQuestCompletedTimes((int)DailyQuestType.Trial);
|
| | |
| | | private void DrawRewards()
|
| | | {
|
| | | m_RewardScroller.verticalNormalizedPosition = 1;
|
| | | var dongeonId = model.DungeonMap(model.selectedTrialDungeon);
|
| | | var dongeonId = model.GetDungeonId(model.selectedTrialDungeon);
|
| | | var config = Config.Instance.Get<DungeonConfig>(dongeonId);
|
| | | for (int i = 0; i < m_RewardBehaviours.Length; i++)
|
| | | {
|
| | |
| | | private void ChallengeDungeon()
|
| | | {
|
| | | if (!CheckChallenge()) return;
|
| | | model.SingleChallengeDungeon(model.selectedTrialDungeon);
|
| | | model.SingleChallenge(model.selectedTrialDungeon);
|
| | | }
|
| | |
|
| | | private void AutoGroupChallenge()
|
| | |
| | | private void ChallengeDungeonGroup()
|
| | | {
|
| | | if (!CheckChallenge()) return;
|
| | | model.GroupChallengeDungeon(model.selectedTrialDungeon);
|
| | | model.GroupChallenge(model.selectedTrialDungeon);
|
| | | }
|
| | |
|
| | | private bool CheckChallenge()
|
| | | {
|
| | | var dongeonId = model.DungeonMap(model.selectedTrialDungeon);
|
| | | var dongeonId = model.GetDungeonId(model.selectedTrialDungeon);
|
| | | var config = Config.Instance.Get<DungeonConfig>(dongeonId);
|
| | |
|
| | | var playerLevel = PlayerDatas.Instance.baseData.LV;
|
| | |
| | | }
|
| | |
|
| | | DungeonRecord dungeonRecord;
|
| | | model.TryGetDungeonRecord(config.MapID, out dungeonRecord);
|
| | | model.TryGetRecord(config.MapID, out dungeonRecord);
|
| | | int star = 1;
|
| | | if (config.LineID > 0)
|
| | | {
|
| | |
| | | public bool CompleteTrialFloor(int _lineId)
|
| | | {
|
| | | DungeonRecord dungeonRecord;
|
| | | if (dungeonModel.TryGetDungeonRecord(60010, out dungeonRecord))
|
| | | if (dungeonModel.TryGetRecord(60010, out dungeonRecord))
|
| | | {
|
| | | if (dungeonRecord.lineGrades != null
|
| | | && dungeonRecord.lineGrades.ContainsKey(_lineId))
|
| | |
| | | {
|
| | | base.Display(_data);
|
| | | dungeon = (Dungeon)_data;
|
| | | var config = Config.Instance.Get<DungeonConfig>(model.DungeonMap(dungeon));
|
| | | var config = Config.Instance.Get<DungeonConfig>(model.GetDungeonId(dungeon));
|
| | | if (config == null)
|
| | | {
|
| | | return;
|
| | |
| | |
|
| | | private void DrawDungeonInfo(Dungeon _dungeon)
|
| | | {
|
| | | var dungeonId = model.DungeonMap(_dungeon);
|
| | | var dungeonId = model.GetDungeonId(_dungeon);
|
| | | var config = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | m_DungeonName.text = config.FBName;
|
| | |
|
| | |
| | | m_BossLevel.color = PlayerDatas.Instance.baseData.LV >= config.LVLimitMin ?
|
| | | UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true);
|
| | |
|
| | | model.TryGetDungeonRecord(_dungeon.mapId, out dungeonRecord);
|
| | | model.TryGetRecord(_dungeon.mapId, out dungeonRecord);
|
| | | int prestar = 1;
|
| | | int star = 0;
|
| | | dungeonRecord.lineGrades.TryGetValue(config.LineID, out star);
|
| | |
| | | {
|
| | | ParseTrials();
|
| | |
|
| | | var mapID = model.DungeonTrialMaps()[0];
|
| | | var mapID = model.GetTrialMaps()[0];
|
| | | DungeonOpenTimeConfig dungeonOpenTimeModel = Config.Instance.Get<DungeonOpenTimeConfig>(mapID);
|
| | | var completedTimes = dailyQuestModel.GetDailyQuestCompletedTimes((int)DailyQuestType.Trial);
|
| | | var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes((int)DailyQuestType.Trial);
|
| | |
| | |
|
| | | private void ParseTrials()
|
| | | {
|
| | | foreach (var mapID in model.DungeonMapDungeons(model.currentDungeon.mapId)) {
|
| | | foreach (var mapID in model.GetDungeonIds(model.currentDungeon.mapId)) {
|
| | | DungeonConfig _tagDungeonModel = Config.Instance.Get<DungeonConfig>(mapID);
|
| | | dungeons.Add(new Dungeon(model.currentDungeon.mapId, _tagDungeonModel.LineID));
|
| | | }
|
| | |
| | | model.selectEquipClass = 1;
|
| | | m_SelectClassBehaviour.gameObject.SetActive(false);
|
| | | m_SelectClassUp.transform.localEulerAngles = Vector3.zero.SetZ(180);
|
| | | foreach (var mapID in dungeonModel.DungeonMapDungeons(60010))
|
| | | foreach (var mapID in dungeonModel.GetDungeonIds(60010))
|
| | | {
|
| | | DungeonConfig _tagDungeonModel = Config.Instance.Get<DungeonConfig>(mapID);
|
| | | DungeonRecord dungeonRecord;
|
| | | if (dungeonModel.TryGetDungeonRecord(60010, out dungeonRecord))
|
| | | if (dungeonModel.TryGetRecord(60010, out dungeonRecord))
|
| | | {
|
| | | if (dungeonRecord.lineGrades != null && dungeonRecord.lineGrades.ContainsKey(_tagDungeonModel.LineID)
|
| | | && dungeonRecord.lineGrades[_tagDungeonModel.LineID] > 0)
|
| | |
| | | MessageWin.Inst.ShowFixedTip(Language.Get("L1020"));
|
| | | return;
|
| | | }
|
| | | ModelCenter.Instance.GetModel<DungeonModel>().SingleChallengeDungeon(fairyBossModel.MapId);
|
| | | ModelCenter.Instance.GetModel<DungeonModel>().SingleChallenge(fairyBossModel.MapId);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | |
| | | private void GetDungeonContinueTime() |
| | | { |
| | | var _list = dungeonModel.DungeonMapDungeons(MapId); |
| | | var _list = dungeonModel.GetDungeonIds(MapId); |
| | | var _dungeonCfg = Config.Instance.Get<DungeonConfig>(_list[0]); |
| | | var _stepTime = _dungeonCfg.StepTime; |
| | | _stepTime = _stepTime.Replace("[", string.Empty); |
| | |
| | |
|
| | | private void UpdateMissionEvent()
|
| | | {
|
| | | var mapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (mapId == 31230)
|
| | | {
|
| | | Display();
|
| | |
| | |
|
| | | private void Display()
|
| | | {
|
| | | var mapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var collected = dungeonModel.mission.hasCollect;
|
| | | m_GotoFeast.gameObject.SetActive(mapId == 31230 && collected != 1 && !nearNpc);
|
| | | }
|
| | |
| | |
|
| | | private void OnGotoFeast()
|
| | | {
|
| | | var mapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (mapId == 31230)
|
| | | {
|
| | | SnxxzGame.Instance.StartCoroutine(Co_HeroMoveToActor(model.fairyFeastDeskNpc));
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(mapId);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(mapId);
|
| | | if (dataMapId == BossHomeModel.BOSSHOME_MAPID || dataMapId == ElderGodAreaModel.ELDERGODAREA_MAPID)
|
| | | {
|
| | | _error = 4;
|
| | |
| | | FuncOpen.Instance.ProcessorFuncErrorTip(139);
|
| | | break;
|
| | | case 4:
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var config = Config.Instance.Get<DungeonOpenTimeConfig>(dataMapId);
|
| | | var tip = string.Empty;
|
| | |
|
| | |
| | | if (vipLevel < vipNeed)
|
| | | {
|
| | | var moneyNeed = bossHomeModel.GetVipLackCost(PlayerDatas.Instance.baseData.dungeonLineId + 1);
|
| | | var dungeonId = dungeonModel.DungeonMap(BossHomeModel.BOSSHOME_MAPID, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var dungeonId = dungeonModel.GetDungeonId(BossHomeModel.BOSSHOME_MAPID, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | tip = Language.Get("QuitRemindBossHome", dungeonConfig.FBName, vipNeed, moneyNeed);
|
| | | }
|
| | |
| | | model.DisplayErrorTip(_error);
|
| | | return;
|
| | | }
|
| | | ModelCenter.Instance.GetModel<DungeonModel>().SingleChallengeDungeon(FairyLeagueModel.FAIRY_LEAGUE_DUNGEON);
|
| | | ModelCenter.Instance.GetModel<DungeonModel>().SingleChallenge(FairyLeagueModel.FAIRY_LEAGUE_DUNGEON);
|
| | | }
|
| | |
|
| | | private void OnRuneBtn()
|
| | |
| | | {
|
| | | if (StageManager.Instance.CurrentStage is DungeonStage)
|
| | | {
|
| | | var mapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (mapId == FairyLeagueModel.FAIRY_LEAGUE_DUNGEON)
|
| | | {
|
| | | return true;
|
| | |
| | | {
|
| | | if (InFairyLeagueDungeon)
|
| | | {
|
| | | fairyLeagueBeginTime = dungeonModel.GetDungeonCoolDownEndTime(DungeonCoolDownType.WaitStart);
|
| | | fairyLeagueBeginTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.WaitStart);
|
| | | if (DateTime.Now < fairyLeagueBeginTime)
|
| | | {
|
| | | fairyLeagueDugeonCoolDown = true;
|
| | |
| | | {
|
| | | if (InFairyLeagueDungeon)
|
| | | {
|
| | | fairyLeagueBeginTime = dungeonModel.GetDungeonCoolDownEndTime(DungeonCoolDownType.WaitStart);
|
| | | fairyLeagueBeginTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.WaitStart);
|
| | | if (DateTime.Now < fairyLeagueBeginTime)
|
| | | {
|
| | | fairyLeagueDugeonCoolDown = true;
|
| | |
| | |
|
| | | public void OnMapInitOk()
|
| | | {
|
| | | var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == BOSSHOME_MAPID)
|
| | | {
|
| | | MapTransferUtility.Instance.MoveToNPC(selectedBoss);
|
| | |
| | |
|
| | | private void GotoKillBoss()
|
| | | {
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == BossHomeModel.BOSSHOME_MAPID)
|
| | | {
|
| | | var vipLevel = PlayerDatas.Instance.baseData.VIPLv;
|
| | |
| | | if (vipLevel < vipNeed)
|
| | | {
|
| | | var moneyNeed = model.GetVipLackCost(PlayerDatas.Instance.baseData.dungeonLineId + 1);
|
| | | var dungeonId = dungeonModel.DungeonMap(BossHomeModel.BOSSHOME_MAPID, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var dungeonId = dungeonModel.GetDungeonId(BossHomeModel.BOSSHOME_MAPID, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var config = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | ConfirmCancel.ShowPopConfirm(
|
| | | Language.Get("Mail101"),
|
| | |
| | | var error = 0;
|
| | | if (TestEnterDungeon(out error))
|
| | | {
|
| | | dungeonModel.SingleChallengeDungeon(BossHomeModel.BOSSHOME_MAPID, model.selectedFloor - 1);
|
| | | dungeonModel.SingleChallenge(BossHomeModel.BOSSHOME_MAPID, model.selectedFloor - 1);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == BossHomeModel.BOSSHOME_MAPID
|
| | | && PlayerDatas.Instance.baseData.dungeonLineId == model.selectedFloor - 1)
|
| | | {
|
| | |
| | | else
|
| | | {
|
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | dungeonModel.SingleChallengeDungeon(BossHomeModel.BOSSHOME_MAPID, model.selectedFloor - 1);
|
| | | dungeonModel.SingleChallenge(BossHomeModel.BOSSHOME_MAPID, model.selectedFloor - 1);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | protected override void OnPreOpen() |
| | | { |
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>(); |
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | m_RankBehaviour.Init(dataMapId); |
| | | } |
| | | |
| | |
| | | var bossId = sortedBossIds[i];
|
| | | var config = Config.Instance.Get<DemonJarConfig>(bossId);
|
| | |
|
| | | var grade = dungeonModel.GetDungeonGrade(new Dungeon(DEMONJAR_MAPID, config.LineID));
|
| | | var grade = dungeonModel.GetGrade(new Dungeon(DEMONJAR_MAPID, config.LineID));
|
| | | if (config.CanEnterTimes > 0 && grade > 0)
|
| | | {
|
| | | continue;
|
| | |
| | |
|
| | | public int GetSurplusTimes()
|
| | | {
|
| | | var totalTimes = dungeonModel.GetDungeonTotalTimes(DEMONJAR_MAPID);
|
| | | var enterTimes = dungeonModel.GetDungeonEnterTimes(DEMONJAR_MAPID);
|
| | | var totalTimes = dungeonModel.GetTotalTimes(DEMONJAR_MAPID);
|
| | | var enterTimes = dungeonModel.GetEnterTimes(DEMONJAR_MAPID);
|
| | |
|
| | | return totalTimes - enterTimes;
|
| | | }
|
| | |
| | |
|
| | | if (PlayerDatas.Instance.baseData.LV == GeneralConfig.Instance.demonJarRedPoint)
|
| | | {
|
| | | var count = dungeonModel.GetDungeonTotalTimes(DEMONJAR_MAPID) - dungeonModel.GetDungeonEnterTimes(DEMONJAR_MAPID);
|
| | | var count = dungeonModel.GetTotalTimes(DEMONJAR_MAPID) - dungeonModel.GetEnterTimes(DEMONJAR_MAPID);
|
| | | redpoint.state = count > 0 ? RedPointState.Quantity : RedPointState.None;
|
| | | redpoint.count = count;
|
| | | }
|
| | |
| | | {
|
| | | if (DEMONJAR_MAPID == _dataMapId && PlayerDatas.Instance.baseData.LV >= GeneralConfig.Instance.demonJarRedPoint)
|
| | | {
|
| | | var count = dungeonModel.GetDungeonTotalTimes(_dataMapId) - dungeonModel.GetDungeonEnterTimes(_dataMapId);
|
| | | var count = dungeonModel.GetTotalTimes(_dataMapId) - dungeonModel.GetEnterTimes(_dataMapId);
|
| | | redpoint.state = count > 0 ? RedPointState.Quantity : RedPointState.None;
|
| | | redpoint.count = count;
|
| | | }
|
| | |
| | | {
|
| | | if (PlayerDatas.Instance.baseData.LV >= GeneralConfig.Instance.demonJarRedPoint)
|
| | | {
|
| | | var count = dungeonModel.GetDungeonTotalTimes(DEMONJAR_MAPID) - dungeonModel.GetDungeonEnterTimes(DEMONJAR_MAPID);
|
| | | var count = dungeonModel.GetTotalTimes(DEMONJAR_MAPID) - dungeonModel.GetEnterTimes(DEMONJAR_MAPID);
|
| | | redpoint.state = count > 0 ? RedPointState.Quantity : RedPointState.None;
|
| | | redpoint.count = count;
|
| | | }
|
| | |
| | | {
|
| | | this.findPreciousModel.RequestSubscribeBoss((int)_bossId, true);
|
| | | var model = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | var grade = model.GetDungeonGrade(new Dungeon(DEMONJAR_MAPID, config.LineID));
|
| | | var grade = model.GetGrade(new Dungeon(DEMONJAR_MAPID, config.LineID));
|
| | | if ((config.CanEnterTimes == 0 || grade == 0) && this.findPreciousModel.IsBossAlive((int)_bossId))
|
| | | {
|
| | | this.findPreciousModel.AddOneBossRebornNotify((int)_bossId);
|
| | |
| | | {
|
| | | base.LateUpdate();
|
| | |
|
| | | var endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | if (endTime > DateTime.Now)
|
| | | {
|
| | | timer -= Time.deltaTime;
|
| | |
| | | {
|
| | | yield return new WaitForSeconds(_delay);
|
| | |
|
| | | var endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap);
|
| | | var seconds = (endTime - DateTime.Now).TotalSeconds;
|
| | | timer = 0f;
|
| | | m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
|
| | |
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | totalTimes = dungeonModel.GetDungeonTotalTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | enterTimes = dungeonModel.GetDungeonEnterTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", DemonJarModel.TOTALTIME_LIMIT);
|
| | |
|
| | | OnRemaintimeUpdate(DemonJarModel.DEMONJAR_MAPID);
|
| | |
| | | var privilege = vipModel.GetVipPrivilegeCnt(VipPrivilegeType.DemonJarDouble) == 1;
|
| | | if (privilege)
|
| | | {
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == DemonJarModel.DEMONJAR_MAPID)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("CantChangeInDemon");
|
| | |
| | | var config = Config.Instance.Get<DemonJarConfig>(model.selectedBoss);
|
| | | if (config.LineID == GeneralConfig.Instance.demonJarHintLineId && PlayerDatas.Instance.baseData.LV < GeneralConfig.Instance.demonJarHintLevelLimit)
|
| | | {
|
| | | var grade = dungeonModel.GetDungeonGrade(new Dungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID));
|
| | | var grade = dungeonModel.GetGrade(new Dungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID));
|
| | | if (grade <= 0)
|
| | | {
|
| | | ConfirmCancel.ShowPopConfirm(
|
| | |
| | | {
|
| | | if (ok)
|
| | | {
|
| | | dungeonModel.SingleChallengeDungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID);
|
| | | dungeonModel.SingleChallenge(DemonJarModel.DEMONJAR_MAPID, config.LineID);
|
| | | }
|
| | | }
|
| | | );
|
| | | }
|
| | | else
|
| | | {
|
| | | dungeonModel.SingleChallengeDungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID);
|
| | | dungeonModel.SingleChallenge(DemonJarModel.DEMONJAR_MAPID, config.LineID);
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | dungeonModel.SingleChallengeDungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID);
|
| | | dungeonModel.SingleChallenge(DemonJarModel.DEMONJAR_MAPID, config.LineID);
|
| | | }
|
| | | }
|
| | | else
|
| | |
| | | if (_ok)
|
| | | {
|
| | | var config = Config.Instance.Get<DemonJarConfig>(model.selectedBoss);
|
| | | dungeonModel.SingleChallengeDungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID);
|
| | | dungeonModel.SingleChallenge(DemonJarModel.DEMONJAR_MAPID, config.LineID);
|
| | | }
|
| | |
|
| | | if (_toggle)
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | totalTimes = dungeonModel.GetDungeonTotalTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | enterTimes = dungeonModel.GetDungeonEnterTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | |
|
| | | m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", DemonJarModel.TOTALTIME_LIMIT);
|
| | |
|
| | | if ((totalTimes - enterTimes) < DemonJarModel.TOTALTIME_LIMIT)
|
| | | {
|
| | | DateTime endTime;
|
| | | if (dungeonModel.TryGetDungeonCountRemainTime(DemonJarModel.DEMONJAR_MAPID, out endTime))
|
| | | if (dungeonModel.TryGetCountRemainTime(DemonJarModel.DEMONJAR_MAPID, out endTime))
|
| | | {
|
| | | m_CountRemainTime.gameObject.SetActive(true);
|
| | | m_CountRemainTime.Begin(endTime);
|
| | |
| | |
|
| | | private void OnBuyTimesOk()
|
| | | {
|
| | | totalTimes = dungeonModel.GetDungeonTotalTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | enterTimes = dungeonModel.GetDungeonEnterTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | |
|
| | | m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", DemonJarModel.TOTALTIME_LIMIT);
|
| | | if (totalTimes - enterTimes >= DemonJarModel.TOTALTIME_LIMIT)
|
| | |
| | | |
| | | private void UpdateExpelCoolDown() |
| | | { |
| | | var endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.ElderGodAreaDeadTime); |
| | | var endTime = model.GetCoolDownEndTime(DungeonCoolDownType.ElderGodAreaDeadTime); |
| | | var seconds = (endTime - DateTime.Now).TotalSeconds; |
| | | m_ElderGodBBContent.text = Language.Get("ElderGodBB5", Mathf.Clamp((int)seconds, 0, int.MaxValue)); |
| | | } |
| | |
| | | { |
| | | base.LateUpdate(); |
| | | |
| | | var endTime = dungeonModel.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap); |
| | | var endTime = dungeonModel.GetCoolDownEndTime(DungeonCoolDownType.LeaveMap); |
| | | if (endTime > DateTime.Now) |
| | | { |
| | | timer -= Time.deltaTime; |
| | |
| | |
|
| | | public void OnMapInitOk()
|
| | | {
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == ELDERGODAREA_MAPID)
|
| | | {
|
| | | MapTransferUtility.Instance.MoveToNPC(selectedBoss);
|
| | |
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | var enterTimes = dungeonModel.GetDungeonEnterTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var totalTimes = dungeonModel.GetDungeonTotalTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var enterTimes = dungeonModel.GetEnterTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var totalTimes = dungeonModel.GetTotalTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | m_Times.text = Language.Get("Dungeon_LeavingTimes", totalTimes - enterTimes);
|
| | | }
|
| | |
|
| | |
| | |
|
| | | private bool TestEnterDungeon(out int _error)
|
| | | {
|
| | | var enterTimes = dungeonModel.GetDungeonEnterTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var totalTimes = dungeonModel.GetDungeonTotalTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var enterTimes = dungeonModel.GetEnterTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var totalTimes = dungeonModel.GetTotalTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | if (enterTimes >= totalTimes)
|
| | | {
|
| | | _error = 1;
|
| | | return false;
|
| | | }
|
| | |
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == ElderGodAreaModel.ELDERGODAREA_MAPID)
|
| | | {
|
| | | _error = 2;
|
| | |
| | | {
|
| | | if (model.currentBossNotify != 0)
|
| | | {
|
| | | var type = model.GetBossFindPreciousType(model.currentBossNotify);
|
| | | if (type == FindPreciousType.DemonJar)
|
| | | {
|
| | | if (demonJarModel.GetSurplusTimes() <= 0)
|
| | | {
|
| | | m_ContainerBossReborn.gameObject.SetActive(false);
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | m_ContainerBossReborn.gameObject.SetActive(true);
|
| | |
|
| | | var bossId = model.currentBossNotify;
|
| | | var config = Config.Instance.Get<NPCConfig>(bossId);
|
| | |
|
| | | if (config != null)
|
| | | {
|
| | | m_BossIcon.SetSprite(config.HeadPortrait);
|
| | |
| | | private void GotoKillBossHomeBoss(int _bossId)
|
| | | {
|
| | | var config = Config.Instance.Get<BossHomeConfig>(_bossId);
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | |
|
| | | if (dataMapId == BossHomeModel.BOSSHOME_MAPID)
|
| | | {
|
| | |
| | | if (vipLevel < vipNeed)
|
| | | {
|
| | | var moneyNeed = bossHomeModel.GetVipLackCost(PlayerDatas.Instance.baseData.dungeonLineId + 1);
|
| | | var dungeonId = dungeonModel.DungeonMap(dataMapId, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var dungeonId = dungeonModel.GetDungeonId(dataMapId, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | ConfirmCancel.ShowPopConfirm(
|
| | | Language.Get("Mail101"),
|
| | |
| | |
|
| | | private void GotoKillElderGodAreaBoss(int _bossId)
|
| | | {
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (dataMapId == ElderGodAreaModel.ELDERGODAREA_MAPID)
|
| | | {
|
| | | MapTransferUtility.Instance.MoveToNPC(_bossId);
|
| | |
| | | {
|
| | | bossHomeModel.selectedFloor = _floor;
|
| | | bossHomeModel.selectedBoss = _bossId;
|
| | | dungeonModel.SingleChallengeDungeon(BossHomeModel.BOSSHOME_MAPID, bossHomeModel.selectedFloor - 1);
|
| | | dungeonModel.SingleChallenge(BossHomeModel.BOSSHOME_MAPID, bossHomeModel.selectedFloor - 1);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | else
|
| | | {
|
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | dungeonModel.SingleChallengeDungeon(BossHomeModel.BOSSHOME_MAPID, _floor - 1);
|
| | | dungeonModel.SingleChallenge(BossHomeModel.BOSSHOME_MAPID, _floor - 1);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | private bool TestEnterElderGodAreaDungeon(out int _error)
|
| | | {
|
| | | var enterTimes = dungeonModel.GetDungeonEnterTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var totalTimes = dungeonModel.GetDungeonTotalTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var enterTimes = dungeonModel.GetEnterTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var totalTimes = dungeonModel.GetTotalTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | if (enterTimes >= totalTimes)
|
| | | {
|
| | | _error = 1;
|
| | |
| | | if (Config.Instance.ContainKey<DemonJarConfig>(bossId))
|
| | | {
|
| | | var config = Config.Instance.Get<DemonJarConfig>(bossId);
|
| | | var grade = dungeonModel.GetDungeonGrade(new Dungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID));
|
| | | var grade = dungeonModel.GetGrade(new Dungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID));
|
| | | if ((config.CanEnterTimes == 0 || grade == 0))
|
| | | {
|
| | | AddOneBossRebornNotify(bossId);
|
| | |
| | | if (IsBossAlive(bossId))
|
| | | {
|
| | | var config = Config.Instance.Get<DemonJarConfig>(bossId);
|
| | | var grade = dungeonModel.GetDungeonGrade(new Dungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID));
|
| | | var grade = dungeonModel.GetGrade(new Dungeon(DemonJarModel.DEMONJAR_MAPID, config.LineID));
|
| | | if ((config.CanEnterTimes == 0 || grade == 0))
|
| | | {
|
| | | AddOneBossRebornNotify(bossId);
|
| | |
| | | }
|
| | |
|
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | var enterTimes = dungeonModel.GetDungeonEnterTimes(PERSONALBOSS_MAPID);
|
| | | var totalTimes = dungeonModel.GetDungeonTotalTimes(PERSONALBOSS_MAPID);
|
| | | var enterTimes = dungeonModel.GetEnterTimes(PERSONALBOSS_MAPID);
|
| | | var totalTimes = dungeonModel.GetTotalTimes(PERSONALBOSS_MAPID);
|
| | |
|
| | | if (enterTimes >= totalTimes)
|
| | | {
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | var ticketItem = dungeonModel.GetDungeonTicketCost(PERSONALBOSS_MAPID);
|
| | | var ticketItem = dungeonModel.GetTicketCost(PERSONALBOSS_MAPID);
|
| | | var own = playerPack.GetItemCountByID(PackType.rptItem, ticketItem.id);
|
| | |
|
| | | if (own < ticketItem.count)
|
| | |
| | | return PersonalBossData.ChallengableLevelCompare(data1, data2);
|
| | | });
|
| | |
|
| | | var dungeonId = dungeonModel.DungeonMap(PERSONALBOSS_MAPID, 0);
|
| | | var dungeonId = dungeonModel.GetDungeonId(PERSONALBOSS_MAPID, 0);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | dungeonTicket = dungeonConfig == null ? 0 : dungeonConfig.TicketID;
|
| | |
|
| | |
| | | public void OnMapInitOk()
|
| | | {
|
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | |
|
| | | switch (dataMapId)
|
| | | {
|
| | |
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | totalTimes = dungeonModel.GetDungeonTotalTimes(PersonalBossModel.PERSONALBOSS_MAPID);
|
| | | enterTimes = dungeonModel.GetDungeonEnterTimes(PersonalBossModel.PERSONALBOSS_MAPID);
|
| | | totalTimes = dungeonModel.GetTotalTimes(PersonalBossModel.PERSONALBOSS_MAPID);
|
| | | enterTimes = dungeonModel.GetEnterTimes(PersonalBossModel.PERSONALBOSS_MAPID);
|
| | | m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", totalTimes);
|
| | |
|
| | | m_Times.color = UIHelper.GetUIColor((totalTimes - enterTimes) > 0 ? TextColType.Green : TextColType.Red, true);
|
| | |
| | | private bool TestGotoKillBoss(out int _error)
|
| | | {
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(mapId);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(mapId);
|
| | |
|
| | | if (dataMapId == BossHomeModel.BOSSHOME_MAPID || dataMapId == ElderGodAreaModel.ELDERGODAREA_MAPID)
|
| | | {
|
| | |
| | | switch (_error)
|
| | | {
|
| | | case 1:
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var config = Config.Instance.Get<DungeonOpenTimeConfig>(dataMapId);
|
| | | var tip = string.Empty;
|
| | |
|
| | |
| | | if (vipLevel < vipNeed)
|
| | | {
|
| | | var moneyNeed = bossHomeModel.GetVipLackCost(PlayerDatas.Instance.baseData.dungeonLineId + 1);
|
| | | var dungeonId = dungeonModel.DungeonMap(BossHomeModel.BOSSHOME_MAPID, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var dungeonId = dungeonModel.GetDungeonId(BossHomeModel.BOSSHOME_MAPID, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | tip = Language.Get("QuitRemindBossHome", dungeonConfig.FBName, vipNeed, moneyNeed);
|
| | | }
|
| | |
| | |
|
| | | private void OnStageLoadFinish()
|
| | | {
|
| | | var _mapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var _mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (_mapId == 31080)
|
| | | {
|
| | | SnxxzGame.Instance.StartCoroutine(Co_DungeonDuardCheck());
|
| | |
| | |
|
| | | private void ClickMatchBtn()
|
| | | {
|
| | | dungeonModel.SingleChallengeDungeon(dungeonModel.currentDungeon);
|
| | | dungeonModel.SingleChallenge(dungeonModel.currentDungeon);
|
| | | CloseWin();
|
| | | }
|
| | |
|
| | |
| | | private void ShowMission()
|
| | | {
|
| | | var mission = model.mission;
|
| | | var dataMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var hintId = model.DungeonHintMap(dataMapId, mission.lineID);
|
| | | var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var hintId = model.GetDungeonHintId(dataMapId, mission.lineID);
|
| | | var config = Config.Instance.Get<DungeonHintConfig>(hintId);
|
| | |
|
| | | if (config != null)
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | var dungeonId = model.DungeonMap(dataMapId, mission.lineID);
|
| | | var dungeonId = model.GetDungeonId(dataMapId, mission.lineID);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | m_MainLineTask.text = dungeonConfig.FBName;
|
| | | }
|
| | |
| | | private void UpdateMissions()
|
| | | {
|
| | | var mission = model.mission;
|
| | | var dateMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var hintId = model.DungeonHintMap(dateMapId, mission.lineID);
|
| | | var dateMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var hintId = model.GetDungeonHintId(dateMapId, mission.lineID);
|
| | | var config = Config.Instance.Get<DungeonHintConfig>(hintId);
|
| | |
|
| | | if (mission.step != dungeonStep)
|
| | |
| | |
|
| | | private void UpdateMissionContent(DungeonMissionData _mission, int _targetIndex, MissionBar _missionBar)
|
| | | {
|
| | | var dateMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var hintId = model.DungeonHintMap(dateMapId, _mission.lineID);
|
| | | var dateMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var hintId = model.GetDungeonHintId(dateMapId, _mission.lineID);
|
| | | var config = Config.Instance.Get<DungeonHintConfig>(hintId);
|
| | | if (config == null)
|
| | | {
|
| | |
| | | bool ok = false;
|
| | | string message = string.Empty;
|
| | |
|
| | | static HttpBehaviour()
|
| | | {
|
| | | ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidationCallback;
|
| | | }
|
| | |
|
| | | public static void Create(string _url, string _method, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)
|
| | | {
|
| | | var carrier = new GameObject();
|
| | |
| | | behaviour.Begin(_url, _method, _content, _contentType, _retry, _result);
|
| | | }
|
| | |
|
| | | public void Begin(string _url, string _method, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)
|
| | | void Begin(string _url, string _method, string _content, string _contentType, int _retry = 3, Action<bool, string> _result = null)
|
| | | {
|
| | | this.url = _url;
|
| | | this.method = _method;
|
| | |
| | | request.ReadWriteTimeout = 2000;
|
| | | request.Proxy = null;
|
| | | request.KeepAlive = false;
|
| | | ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidationCallback;
|
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | |
| | | private static bool RemoteCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
|
| | | {
|
| | | if (sslPolicyErrors == SslPolicyErrors.None)
|
| | | return true;
|
| | |
|
| | | var _acceptCertificate = true;
|
| | |
|
| | | if ((sslPolicyErrors &
|
| | | SslPolicyErrors.RemoteCertificateNotAvailable) == SslPolicyErrors.RemoteCertificateNotAvailable)
|
| | | {
|
| | | _acceptCertificate = false;
|
| | | return true;
|
| | | }
|
| | |
|
| | | var acceptCertificate = true;
|
| | | if ((sslPolicyErrors & SslPolicyErrors.RemoteCertificateNotAvailable) == SslPolicyErrors.RemoteCertificateNotAvailable)
|
| | | {
|
| | | acceptCertificate = false;
|
| | | }
|
| | | else
|
| | | {
|
| | | if ((sslPolicyErrors &
|
| | | SslPolicyErrors.RemoteCertificateNameMismatch) == SslPolicyErrors.RemoteCertificateNameMismatch)
|
| | | if ((sslPolicyErrors & SslPolicyErrors.RemoteCertificateNameMismatch) == SslPolicyErrors.RemoteCertificateNameMismatch)
|
| | | {
|
| | | _acceptCertificate = false;
|
| | | acceptCertificate = false;
|
| | | }
|
| | |
|
| | | if ((sslPolicyErrors &
|
| | | SslPolicyErrors.RemoteCertificateChainErrors) == SslPolicyErrors.RemoteCertificateChainErrors)
|
| | | if ((sslPolicyErrors & SslPolicyErrors.RemoteCertificateChainErrors) == SslPolicyErrors.RemoteCertificateChainErrors)
|
| | | {
|
| | | foreach (X509ChainStatus item in chain.ChainStatus)
|
| | | {
|
| | | if (item.Status != X509ChainStatusFlags.RevocationStatusUnknown &&
|
| | | item.Status != X509ChainStatusFlags.OfflineRevocation)
|
| | | {
|
| | | break;
|
| | | }
|
| | |
|
| | | if (item.Status != X509ChainStatusFlags.NoError)
|
| | | {
|
| | | _acceptCertificate = false;
|
| | | acceptCertificate = false;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | if (_acceptCertificate == false)
|
| | | if (acceptCertificate == false)
|
| | | {
|
| | | _acceptCertificate = true;
|
| | | acceptCertificate = true;
|
| | | }
|
| | |
|
| | | return _acceptCertificate;
|
| | | return acceptCertificate;
|
| | | }
|
| | |
|
| | | void Update()
|
| | | {
|
| | | if (Time.time > timeOut && !getResult)
|
| | |
| | | {
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | var lineId = PlayerDatas.Instance.baseData.dungeonLineId;
|
| | | var dungeonId = dungeonModel.DungeonMap(dungeonModel.GetDungeonDataIdByMapId(mapId), lineId);
|
| | | var dungeonId = dungeonModel.GetDungeonId(dungeonModel.GetDataMapIdByMapId(mapId), lineId);
|
| | | if (dungeonId == 0)
|
| | | {
|
| | | return true;
|
| | |
| | | [SerializeField] RectTransform m_ContainerEnterGame;
|
| | | [SerializeField] RectTransform m_ContainerAccount;
|
| | | [SerializeField] Image m_ServerState;
|
| | | [SerializeField] Text m_ServerStateDescription;
|
| | | [SerializeField] Text m_ServerName;
|
| | | [SerializeField] protected InputField m_Account;
|
| | | [SerializeField] Button m_EnterGame;
|
| | |
| | | case ServerState.Maintain:
|
| | | case ServerState.Predicted:
|
| | | m_ServerState.SetSprite("XT_FWQ_TB4");
|
| | | m_ServerStateDescription.text = Language.Get("ServerStatus4");
|
| | | break;
|
| | | case ServerState.Normal:
|
| | | m_ServerState.SetSprite("XT_FWQ_TB2");
|
| | | m_ServerStateDescription.text = Language.Get("ServerStatus3");
|
| | | break;
|
| | | case ServerState.Busy:
|
| | | m_ServerState.SetSprite("XT_FWQ_TB3");
|
| | | m_ServerStateDescription.text = Language.Get("ServerStatus2");
|
| | | break;
|
| | | case ServerState.Hot:
|
| | | m_ServerState.SetSprite("XT_FWQ_TB1");
|
| | | m_ServerStateDescription.text = Language.Get("ServerStatus1");
|
| | | break;
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | if (OneKeyList.Contains(PlayerDatas.Instance.baseData.MapID))
|
| | | {
|
| | | var dataMapId = modelD.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var dataMapId = modelD.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var config = Config.Instance.Get<DungeonOpenTimeConfig>(dataMapId);
|
| | | string language = string.Empty;
|
| | | if (dataMapId == GeneralConfig.Instance.ruinsTranscriptMapId)
|
| | |
| | | {
|
| | | var vipLevel = PlayerDatas.Instance.baseData.VIPLv;
|
| | | var vipNeed = bossHomeModel.GetFloorVipRequirement(PlayerDatas.Instance.baseData.dungeonLineId + 1);
|
| | | var dungeonId = modelD.DungeonMap(dataMapId, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var dungeonId = modelD.GetDungeonId(dataMapId, PlayerDatas.Instance.baseData.dungeonLineId);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | |
|
| | | if (vipLevel < vipNeed)
|
| | |
| | | Content.gameObject.SetActive(true);
|
| | |
|
| | | DungeonRecord dungeonRecord;
|
| | | dungeonModel.TryGetDungeonRecord(31080, out dungeonRecord);
|
| | | dungeonModel.TryGetRecord(31080, out dungeonRecord);
|
| | | var times = dungeonRecord == null ? 0 : dungeonRecord.enterTimes;
|
| | | if (FuncOpen.Instance.IsFuncOpen(86) && dungeonModel.GetDungeonTotalTimes(31080) > times)//仙界秘境
|
| | | if (FuncOpen.Instance.IsFuncOpen(86) && dungeonModel.GetTotalTimes(31080) > times)//仙界秘境
|
| | | {
|
| | | FairyLandButton.gameObject.SetActive(true);
|
| | | }
|
| | |
| | | show = !GeneralConfig.Instance.bossHomeNoRebornRemindMaps.Contains(mapId);
|
| | | break;
|
| | | case FindPreciousType.ElderGodArea:
|
| | | var elderGodEnterTimes = dungeonModel.GetDungeonEnterTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var elderGodTotalTimes = dungeonModel.GetDungeonTotalTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var elderGodEnterTimes = dungeonModel.GetEnterTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | var elderGodTotalTimes = dungeonModel.GetTotalTimes(ElderGodAreaModel.ELDERGODAREA_MAPID);
|
| | | killable = elderGodTotalTimes > elderGodEnterTimes;
|
| | | show = !GeneralConfig.Instance.elderGodNoRebornRemindMaps.Contains(mapId);
|
| | | break;
|
| | | case FindPreciousType.DemonJar:
|
| | | var totalTimes = dungeonModel.GetDungeonTotalTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | var enterTimes = dungeonModel.GetDungeonEnterTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | var totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | var enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DEMONJAR_MAPID);
|
| | | killable = totalTimes > enterTimes;
|
| | | show = !GeneralConfig.Instance.demonJarNoRebornRemindMaps.Contains(mapId);
|
| | | break;
|
| | |
| | | m_CollectNPCID = npcID;
|
| | | m_CollectNPCSID = sid;
|
| | | m_CollectBtn.gameObject.SetActive(true);
|
| | | var mapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | m_CollectIcon.SetSprite(mapId == 31230 ? "TY_UI_8" : "TY_UI_6");
|
| | | m_CollectIcon.SetNativeSize();
|
| | | m_CollectBtnText.text = mapId == 31230 ? Language.Get("Collect_FairyFeast") : Language.Get("Collect_Normal");
|
| | |
| | | ShowCastSkill();//显示技能组隐藏按钮组(强制切换)
|
| | | }
|
| | | var _cfg = Config.Instance.Get<SuccessConfig>(AchievementGoto.guideAchievementId);
|
| | | var _skillId = ModelCenter.Instance.GetModel<AchievementModel>().FindSkillByJob(_cfg.Condition, PlayerDatas.Instance.baseData.Job);
|
| | | var _skillId = SkillConfig.FindSkillByJob(_cfg.Condition, PlayerDatas.Instance.baseData.Job);
|
| | | if (_skillId != 0)
|
| | | {
|
| | | if (ModelCenter.Instance.GetModel<SkillModel>().GetXpSkillID() != _skillId)
|
| | |
| | | if (AchievementGoto.achievementType == AchievementGoto.ExcuteSkill) |
| | | { |
| | | var _cfg = Config.Instance.Get<SuccessConfig>(AchievementGoto.guideAchievementId); |
| | | var _skillId = ModelCenter.Instance.GetModel<AchievementModel>().FindSkillByJob(_cfg.Condition, PlayerDatas.Instance.baseData.Job); |
| | | var _skillId = SkillConfig.FindSkillByJob(_cfg.Condition, PlayerDatas.Instance.baseData.Job); |
| | | if (_skillId != 0) |
| | | { |
| | | if (ModelCenter.Instance.GetModel<SkillModel>().GetXpSkillID() == _skillId) |
| | |
| | | case RichTextEventEnum.ENTERFB: { |
| | | int id = 0; |
| | | if(int.TryParse(href.mSplits["enterfb"],out id)) { |
| | | ModelCenter.Instance.GetModel<DungeonModel>().SingleChallengeDungeon(id); |
| | | ModelCenter.Instance.GetModel<DungeonModel>().SingleChallenge(id); |
| | | } |
| | | } |
| | | break; |
| | |
| | | }
|
| | | else
|
| | | {
|
| | | _dungeonOpenTimeModel = Config.Instance.Get<DungeonOpenTimeConfig>(dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID));
|
| | | _dungeonOpenTimeModel = Config.Instance.Get<DungeonOpenTimeConfig>(dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID));
|
| | | if (_dungeonOpenTimeModel == null)
|
| | | return;
|
| | |
|
| | |
| | |
|
| | | endTime = TimeUtility.ServerNow.AddMilliseconds(PlayerDatas.Instance.realm.CollectTime);
|
| | |
|
| | | var mapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | m_FairyFeastTip.gameObject.SetActive(mapId == 31230);
|
| | | }
|
| | |
|
| | |
| | | var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
|
| | | if (teamModel.myTeam.inTeam && teamModel.myTeam.iamCaptainer)
|
| | | {
|
| | | ModelCenter.Instance.GetModel<DungeonModel>().GroupChallengeDungeon(RealmModel.REALM_DUNGEON_ID, 1);
|
| | | ModelCenter.Instance.GetModel<DungeonModel>().GroupChallenge(RealmModel.REALM_DUNGEON_ID, 1);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | ModelCenter.Instance.GetModel<DungeonModel>().SingleChallengeDungeon(RealmModel.REALM_DUNGEON_ID);
|
| | | ModelCenter.Instance.GetModel<DungeonModel>().SingleChallenge(RealmModel.REALM_DUNGEON_ID);
|
| | | }
|
| | | }
|
| | | else
|
| | |
| | | public void RequestChallengeTower()
|
| | | {
|
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | dungeonModel.SingleChallengeDungeon(RUNETOWER_MAPID, 0);
|
| | | dungeonModel.SingleChallenge(RUNETOWER_MAPID, 0);
|
| | | }
|
| | |
|
| | | public void RequestSetDungeonAction()
|
| | |
| | | if (TestBuyTime(out error))
|
| | | {
|
| | | CloseClick();
|
| | | dungeonModel.SweepDungeon(new Dungeon(RuneTowerModel.RUNETOWER_MAPID, 0));
|
| | | dungeonModel.RequestSweep(new Dungeon(RuneTowerModel.RUNETOWER_MAPID, 0));
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | if (_ok)
|
| | | {
|
| | | CloseClick();
|
| | | dungeonModel.SweepDungeon(new Dungeon(RuneTowerModel.RUNETOWER_MAPID, 0));
|
| | | dungeonModel.RequestSweep(new Dungeon(RuneTowerModel.RUNETOWER_MAPID, 0));
|
| | | }
|
| | | }
|
| | | );
|
| | |
| | | yield return null;
|
| | | }
|
| | |
|
| | | yield return null;
|
| | |
|
| | | m_ResultScrollRect.content.anchoredPosition = m_ResultScrollRect.content.anchoredPosition.SetY(end);
|
| | | foreach (var behaviour in resultBehavioursBuf)
|
| | | {
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | dungeonModel.SweepDungeon(new Dungeon(RuneTowerModel.RUNETOWER_MAPID, 0));
|
| | | dungeonModel.RequestSweep(new Dungeon(RuneTowerModel.RUNETOWER_MAPID, 0));
|
| | | }
|
| | | }
|
| | | else
|
| | |
| | | if (AchievementGoto.achievementType == AchievementGoto.ExcuteSkill)
|
| | | {
|
| | | var _cfg = Config.Instance.Get<SuccessConfig>(AchievementGoto.guideAchievementId);
|
| | | var _skillId = ModelCenter.Instance.GetModel<AchievementModel>().FindSkillByJob(_cfg.Condition, PlayerDatas.Instance.baseData.Job);
|
| | | var _skillId = SkillConfig.FindSkillByJob(_cfg.Condition, PlayerDatas.Instance.baseData.Job);
|
| | | if (_skillId != 0)
|
| | | {
|
| | | m_AchieveSkillId = _skillId;
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | MessageWin.Inst.ShowFixedTip(Language.Get("L1020"));
|
| | | SysNotifyMgr.Instance.ShowTip("Join_Space_Lost");
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | npcDesText.text = Language.Get("Wytj0");
|
| | | break;
|
| | | case 1:
|
| | | SoundPlayer.Instance.PlayUIAudio(733);
|
| | | npcDesText.text = Language.Get("Wytj1");
|
| | | break;
|
| | | case 2:
|
| | | SoundPlayer.Instance.PlayUIAudio(734);
|
| | | npcDesText.text = Language.Get("Wytj2");
|
| | | break;
|
| | | case 3:
|
| | | SoundPlayer.Instance.PlayUIAudio(735);
|
| | | npcDesText.text = Language.Get("Wytj3");
|
| | | break;
|
| | | case 4:
|
| | | SoundPlayer.Instance.PlayUIAudio(736);
|
| | | npcDesText.text = Language.Get("Wytj4");
|
| | | break;
|
| | | case 5:
|
| | | SoundPlayer.Instance.PlayUIAudio(737);
|
| | | npcDesText.text = Language.Get("Wytj5");
|
| | | break;
|
| | | case 6:
|
| | | SoundPlayer.Instance.PlayUIAudio(738);
|
| | | npcDesText.text = Language.Get("Wytj6");
|
| | | break;
|
| | | }
|
| | |
| | | case Stand_1_Key:
|
| | | break;
|
| | | case Star1_Key:
|
| | | SoundPlayer.Instance.PlayUIAudio(57);
|
| | | break;
|
| | | case Star3_Key:
|
| | | StartPlayDiceAni();
|
| | | taiChiModel.SendQuest(1);
|
| | | SoundPlayer.Instance.PlayUIAudio(57);
|
| | | break;
|
| | | case Rock_Key:
|
| | | break;
|
| | |
| | | default:
|
| | | int error = 0;
|
| | | var dungeon = new Dungeon(_mapId, _lineId);
|
| | | if (dungeonModel.TestChallangeDungeon(dungeon, out error))
|
| | | if (dungeonModel.TestChallange(dungeon, out error))
|
| | | {
|
| | | dungeonModel.GroupChallengeDungeon(dungeon);
|
| | | dungeonModel.GroupChallenge(dungeon);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | private void ProcessEnterDungeonError(int _error)
|
| | | {
|
| | |
|
| | | var dungeonId = dungeonModel.DungeonMap(mapId, lineId);
|
| | | var dungeonId = dungeonModel.GetDungeonId(mapId, lineId);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | |
|
| | | switch (_error)
|
| | |
| | | if (_isAutoMatch)
|
| | | {
|
| | | var dungeon = new Dungeon(GeneralConfig.Instance.ruinsTranscriptMapId, main.LayerNumberNow);
|
| | | dungeonModel.GroupChallengeDungeon(dungeon);
|
| | | dungeonModel.GroupChallenge(dungeon);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | var targetConfig = Config.Instance.Get<TeamTargetConfig>(mission.mapId);
|
| | | if (targetConfig != null)
|
| | | {
|
| | | var dungeonId = dungeonModel.DungeonMap(mission.mapId, mission.mapEx);
|
| | | var dungeonId = dungeonModel.GetDungeonId(mission.mapId, mission.mapEx);
|
| | | var config = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | m_Mission.text = config.FBName;
|
| | | }
|
| | |
| | | {
|
| | | if (model.myTeam.inTeam)
|
| | | {
|
| | | var dungeonId = dungeonModel.DungeonMap(model.myTeam.mission.mapId, model.myTeam.mission.mapEx);
|
| | | var dungeonId = dungeonModel.GetDungeonId(model.myTeam.mission.mapId, model.myTeam.mission.mapEx);
|
| | | if (dungeonId == 0)
|
| | | {
|
| | | m_ChallengeDungeon.gameObject.SetActive(false);
|
| | |
| | | private void UpdateAutoPrepareButton()
|
| | | {
|
| | | var multipleFB = false;
|
| | | var dungeonId = dungeonModel.DungeonMap(model.myTeam.mission.mapId, model.myTeam.mission.mapEx);
|
| | | var dungeonId = dungeonModel.GetDungeonId(model.myTeam.mission.mapId, model.myTeam.mission.mapEx);
|
| | | if (dungeonId != 0)
|
| | | {
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | |
| | | for (int i = 0; i < members.Count; i++)
|
| | | {
|
| | | var member = members[i];
|
| | | if (member.id != PlayerDatas.Instance.baseData.PlayerID && member.mapId == PlayerDatas.Instance.baseData.MapID)
|
| | | if (member.id != PlayerDatas.Instance.baseData.PlayerID |
| | | && member.mapId == PlayerDatas.Instance.baseData.MapID)
|
| | | {
|
| | | count++;
|
| | | }
|
| | |
| | | if (memberCount > 0)
|
| | | {
|
| | | Teammate mate;
|
| | | if (TryGetMemberByPlayerId((int)PlayerDatas.Instance.baseData.PlayerID, out mate))
|
| | | var playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
|
| | | if (TryGetMemberByPlayerId(playerId, out mate))
|
| | | {
|
| | | return mate.isCaptainer;
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public int GetOnlineMemberCnt()
|
| | | public int GetOnlineMemberCount()
|
| | | {
|
| | | var onlineCount = 0;
|
| | | for (int i = 0; i < members.Count; i++)
|
| | |
| | | {
|
| | | public class TeamInvitationBehaviour : ScrollItem
|
| | | {
|
| | | [SerializeField]
|
| | | Image m_Realm;
|
| | | [SerializeField]
|
| | | Text m_PlayerName;
|
| | |
|
| | | [SerializeField]
|
| | | Text m_Job;
|
| | | [SerializeField]
|
| | | Image m_LevelSign;
|
| | | [SerializeField]
|
| | | Text m_Level;
|
| | | [SerializeField] Image m_Realm;
|
| | | [SerializeField] Text m_PlayerName;
|
| | | [SerializeField] Text m_Job;
|
| | | [SerializeField] Text m_Mission;
|
| | | [SerializeField] Image m_LevelSign;
|
| | | [SerializeField] Text m_Level;
|
| | | [SerializeField] Button m_Select;
|
| | | [SerializeField] Image m_Selected;
|
| | |
|
| | | [SerializeField]
|
| | | Button m_Select;
|
| | |
|
| | | [SerializeField]
|
| | | Image m_Selected;
|
| | |
|
| | | TeamModel m_Model;
|
| | | TeamModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TeamModel>()); } }
|
| | | TeamModel model { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
|
| | | DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
| | |
|
| | | TeamInvitation invitation;
|
| | | public override void Display(object _data)
|
| | |
| | | m_LevelSign.gameObject.SetActive(isNirvanaLevel);
|
| | | m_Level.text = isNirvanaLevel ? (invitation.level - GeneralConfig.Instance.greatMasterStartLV).ToString() : invitation.level.ToString();
|
| | |
|
| | | var mission = invitation.mission;
|
| | | var targetConfig = Config.Instance.Get<TeamTargetConfig>(mission.mapId);
|
| | | if (targetConfig != null)
|
| | | {
|
| | | var dungeonId = dungeonModel.GetDungeonId(mission.mapId, mission.mapEx);
|
| | | var config = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | m_Mission.text = config.FBName;
|
| | | }
|
| | | else
|
| | | {
|
| | | m_Mission.text = Language.Get("RightHereMap");
|
| | | }
|
| | |
|
| | | m_Selected.gameObject.SetActive(invitation.playerId == model.currentSelectedInvitation);
|
| | |
|
| | | m_Select.RemoveAllListeners();
|
| | |
| | | |
| | | public class TeamInvitationWin : Window |
| | | { |
| | | [SerializeField] |
| | | CyclicScroll m_InvitationScroll; |
| | | [SerializeField] |
| | | Button m_Close; |
| | | [SerializeField] |
| | | Button m_Confirm; |
| | | |
| | | TeamModel m_Model; |
| | | TeamModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TeamModel>()); } } |
| | | [SerializeField] CyclicScroll m_InvitationScroll; |
| | | [SerializeField] Button m_Close; |
| | | [SerializeField] Button m_Confirm; |
| | | |
| | | TeamModel model { get { return ModelCenter.Instance.GetModel<TeamModel>(); } } |
| | | |
| | | #region Built-in |
| | | protected override void BindController() |
| | |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | private void ShowInvitations() |
| | | { |
| | |
| | |
|
| | | var mapId = _mapId == NONE_MISSION ? 0 : _mapId == CURRENTMAP_MISSION ? PlayerDatas.Instance.baseData.MapID : _mapId;
|
| | | var mapEx = _lineId <= 0 ? 0 : _lineId;
|
| | | var dungeonId = dungeonModel.DungeonMap(mapId, mapEx);
|
| | | var dungeonId = dungeonModel.GetDungeonId(mapId, mapEx);
|
| | |
|
| | | var limitLevelMin = 0;
|
| | | var limitLevelMax = 0;
|
| | |
| | | lineId = myTeam.mission.mapEx;
|
| | | }
|
| | |
|
| | | var dungeonId = dungeonModel.DungeonMap(mapId, lineId);
|
| | | var dungeonId = dungeonModel.GetDungeonId(mapId, lineId);
|
| | | var missionName = string.Empty;
|
| | | if (dungeonId == 0)
|
| | | {
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | var dungeonId = ModelCenter.Instance.GetModel<DungeonModel>().DungeonMap(_mission.mapId, _mission.mapEx);
|
| | | var dungeonId = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonId(_mission.mapId, _mission.mapEx);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | minLevel = dungeonConfig.LVLimitMin;
|
| | | maxLevel = dungeonConfig.LVLimitMax;
|
| | |
| | |
|
| | | if (!oldInTeam && myTeam.inTeam)
|
| | | {
|
| | | var dungeonId = dungeonModel.DungeonMap(myTeam.mission.mapId, myTeam.mission.mapEx);
|
| | | var dungeonId = dungeonModel.GetDungeonId(myTeam.mission.mapId, myTeam.mission.mapEx);
|
| | | if (dungeonId == 311101)
|
| | | {
|
| | | var bigRealmIndex = GetBigRealmIndex();
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | var dungeonId = dungeonModel.DungeonMap(_mapId, _mapEx);
|
| | | var dungeonId = dungeonModel.GetDungeonId(_mapId, _mapEx);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | return PlayerDatas.Instance.baseData.LV >= dungeonConfig.LVLimitMin;
|
| | | }
|
| | |
| | |
|
| | | alreadyAutoPrepare = false;
|
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | var dungeonId = dungeonModel.DungeonMap(model.teamPrepare.mapId, model.teamPrepare.mapEx);
|
| | | var dungeonId = dungeonModel.GetDungeonId(model.teamPrepare.mapId, model.teamPrepare.mapEx);
|
| | | var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
|
| | | m_DungeonName.text = dungeonConfig.FBName;
|
| | |
|
| | |
| | | } |
| | | else |
| | | { |
| | | var dungeonId = dungeonModel.DungeonMap(_mapId, _lineId); |
| | | var dungeonId = dungeonModel.GetDungeonId(_mapId, _lineId); |
| | | var config = Config.Instance.Get<DungeonConfig>(dungeonId); |
| | | m_Mission.text = config.FBName; |
| | | } |
| | |
| | |
|
| | | var mapId = _mapId == TeamModel.NONE_MISSION ? 0 : _mapId == TeamModel.CURRENTMAP_MISSION ? PlayerDatas.Instance.baseData.MapID : _mapId;
|
| | | var mapEx = _mapEx <= 0 ? 0 : _mapEx;
|
| | | var dungeonId = dungeonModel.DungeonMap(mapId, mapEx);
|
| | | var dungeonId = dungeonModel.GetDungeonId(mapId, mapEx);
|
| | |
|
| | | if (mapId == 0)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | var key = dungeonModel.DungeonMap(mapId, mapEx);
|
| | | var key = dungeonModel.GetDungeonId(mapId, mapEx);
|
| | |
|
| | | if (key == 0)
|
| | | {
|
| | |
| | | if (_ok) |
| | | { |
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>(); |
| | | dungeonModel.SingleChallengeDungeon(treasureConfig.MapId, treasureConfig.LineId); |
| | | dungeonModel.SingleChallenge(treasureConfig.MapId, treasureConfig.LineId); |
| | | } |
| | | } |
| | | ); |
| | |
| | | else |
| | | { |
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>(); |
| | | dungeonModel.SingleChallengeDungeon(treasureConfig.MapId, treasureConfig.LineId); |
| | | dungeonModel.SingleChallenge(treasureConfig.MapId, treasureConfig.LineId); |
| | | } |
| | | } |
| | | |
| | |
| | | }
|
| | |
|
| | | #region const
|
| | | const int POTENTIALUNLOCKSFX = 5190;
|
| | | public const int SPIRALSFX = 5126;
|
| | | const int CONVERGESFX = 5127;
|
| | | public const float LINE_NORMAL_LENGTH = 187f;
|
| | |
| | | public event Action OnAchievementTweenComplete;
|
| | | public event Action<int> OnUnlockPotentialComplete;
|
| | | public event Action<int> OnPotentialLevelUpComplete;
|
| | | public event Action<int> OnPotentialLineAnimComplete;
|
| | |
|
| | | TreasureShowStep m_Step = TreasureShowStep.None;
|
| | | TreasureShowStep m_BeforeStep = TreasureShowStep.None;
|
| | |
| | |
|
| | | IEnumerator Co_PotentialLevelUp(int _index, int level)
|
| | | {
|
| | | yield return StartCoroutine(Co_PotentialSpiral(_index));
|
| | | yield return StartCoroutine(Co_PotentialSpiral(_index, SPIRALSFX));
|
| | | if (displayTreasure != model.selectedTreasure)
|
| | | {
|
| | | stepComplete = true;
|
| | | yield break;
|
| | | }
|
| | | UIEffect effect = null;
|
| | | if (level == 1)
|
| | | {
|
| | | effect = EffectMgr.Instance.PlayUIEffect(POTENTIAL_LINESFX, 2100, transform, false);
|
| | | if (effect == null)
|
| | | {
|
| | | stepComplete = true;
|
| | | yield break;
|
| | | }
|
| | | effect.keep = true;
|
| | | effect.maskArea = m_PotentialLineMasks[_index];
|
| | | effect.SetMask();
|
| | | yield return StartCoroutine(Co_DisplayPotentialLine(_index,effect));
|
| | | }
|
| | | //UIEffect effect = null;
|
| | | //if (level == 1)
|
| | | //{
|
| | | // effect = EffectMgr.Instance.PlayUIEffect(POTENTIAL_LINESFX, 2100, transform, false);
|
| | | // if (effect == null)
|
| | | // {
|
| | | // stepComplete = true;
|
| | | // yield break;
|
| | | // }
|
| | | // effect.keep = true;
|
| | | // effect.maskArea = m_PotentialLineMasks[_index];
|
| | | // effect.SetMask();
|
| | | // yield return StartCoroutine(Co_DisplayPotentialLine(_index,effect));
|
| | | //}
|
| | | if (displayTreasure != model.selectedTreasure)
|
| | | {
|
| | | StopPotentialLineEffect(effect);
|
| | | //StopPotentialLineEffect(effect);
|
| | | stepComplete = true;
|
| | | yield break;
|
| | | }
|
| | |
| | | OnPotentialLevelUpComplete(_index);
|
| | | }
|
| | | stepComplete = true;
|
| | | yield return null;
|
| | | //yield return null;
|
| | | //StopPotentialLineEffect(effect);
|
| | | }
|
| | |
|
| | | public void DisplayPotentialLine(int _index)
|
| | | {
|
| | | stepComplete = false;
|
| | | StartCoroutine(Co_PotentialLineAnim(_index));
|
| | | }
|
| | |
|
| | | IEnumerator Co_PotentialLineAnim(int _index)
|
| | | {
|
| | | UIEffect effect = EffectMgr.Instance.PlayUIEffect(POTENTIAL_LINESFX, 2100, transform, false);
|
| | | if (effect == null)
|
| | | {
|
| | | stepComplete = true;
|
| | | yield break;
|
| | | }
|
| | | effect.keep = true;
|
| | | effect.maskArea = m_PotentialLineMasks[_index];
|
| | | effect.SetMask();
|
| | | yield return StartCoroutine(Co_DisplayPotentialLine(_index, effect));
|
| | | stepComplete = true;
|
| | | StopPotentialLineEffect(effect);
|
| | | if (OnPotentialLineAnimComplete != null)
|
| | | {
|
| | | OnPotentialLineAnimComplete(_index);
|
| | | }
|
| | | }
|
| | |
|
| | | private void StopPotentialLineEffect(UIEffect _effect)
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | IEnumerator Co_PotentialSpiral(int _index)
|
| | | IEnumerator Co_PotentialSpiral(int _index, int effectId)
|
| | | {
|
| | | var effect = EffectMgr.Instance.PlayUIEffect(SPIRALSFX, 2700, m_TreasurePotentials[_index].transform, false);
|
| | | var effect = EffectMgr.Instance.PlayUIEffect(effectId, 2700, m_TreasurePotentials[_index].transform, false);
|
| | | var duration = effect.duration;
|
| | | var _time = 0f;
|
| | | while (_time < duration)
|
| | |
| | |
|
| | | IEnumerator Co_UnlockTreasurePotential(int _index)
|
| | | {
|
| | | yield return StartCoroutine(Co_PotentialSpiral(_index));
|
| | | StartCoroutine(Co_PotentialSpiral(_index, POTENTIALUNLOCKSFX));
|
| | | yield return WaitingForSecondConst.WaitMS600;
|
| | | if (displayTreasure != model.selectedTreasure)
|
| | | {
|
| | | stepComplete = true;
|
| | |
| | | m_PotentialPointSclTweens[_index].Play();
|
| | | m_PotentialPointSclTweens[_index].SetEndState();
|
| | | }
|
| | | stepComplete = true;
|
| | | if (OnStepComplete != null)
|
| | | {
|
| | | OnStepComplete(TreasureShowStep.FirstPotential);
|
| | | }
|
| | | stepComplete = true;
|
| | | }
|
| | |
|
| | | private void OnEnterPotential()
|
| | |
| | | private SkinnedMeshRenderer treasureSkin;
|
| | | private Transform bottom;
|
| | | private Transform name;
|
| | | private TextMesh condition;
|
| | |
|
| | | #region 红点
|
| | | private Transform potentialRed;
|
| | |
| | |
|
| | | static Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool> m_BottomPoolDict = new Dictionary<TreasureCategory, GameObjectPoolManager.GameObjectPool>();
|
| | | static Dictionary<TreasureState, GameObjectPoolManager.GameObjectPool> m_StatePoolDict = new Dictionary<TreasureState, GameObjectPoolManager.GameObjectPool>();
|
| | | static GameObjectPoolManager.GameObjectPool m_ConditionPool;
|
| | | static Vector3 m_CacheBottomScale = Vector3.zero;
|
| | |
|
| | | TreasureModel m_Model;
|
| | |
| | | return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>());
|
| | | }
|
| | | }
|
| | |
|
| | | AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } }
|
| | |
|
| | | public void SetActive(bool _active)
|
| | | {
|
| | |
| | | RecycleLockEffect();
|
| | | RecycleCollectingSfx();
|
| | | RecycleRedpoint();
|
| | | RecycleCondition();
|
| | | RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
|
| | | }
|
| | | interactProcessor.SetActive(_active);
|
| | |
| | | RecycleCollectingSfx();
|
| | | RequestTreasureEffect();
|
| | | RecycleLockEffect();
|
| | | RecycleCondition();
|
| | | break;
|
| | | case TreasureState.Collecting:
|
| | | RequestTreasureEffect();
|
| | | RequestCollectingSfx();
|
| | | RecycleLockEffect();
|
| | | RecycleCondition();
|
| | | break;
|
| | | case TreasureState.Locked:
|
| | | RecycleCollectingSfx();
|
| | | RecycleTreasureEffect();
|
| | | RequestLockEffect();
|
| | | RequestCondition();
|
| | | break;
|
| | | }
|
| | | if (model.GetTreasureUnlockShow(UI3DTreasureSelectStage.Instance.currentCategory) == _treasure.id)
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | void RequestCondition()
|
| | | {
|
| | | RecycleCondition();
|
| | |
|
| | | if (category != TreasureCategory.Human)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | string displayStr = string.Empty;
|
| | | if (model.IsVersionUnOpenTreasure(treasureId))
|
| | | {
|
| | | displayStr = "=";
|
| | | }
|
| | | else
|
| | | {
|
| | | Achievement achievement = null;
|
| | | var achievementId = 0;
|
| | | var unlock = false;
|
| | | if (model.TryGetTreasureUnlockAchievement(treasureId, out achievementId))
|
| | | {
|
| | | if (achievementModel.TryGetAchievement(achievementId, out achievement))
|
| | | {
|
| | | unlock = true;
|
| | | }
|
| | | }
|
| | | if (unlock && !achievement.completed)
|
| | | {
|
| | | var _achievementConfig = Config.Instance.Get<SuccessConfig>(achievementId);
|
| | | var _missionId = _achievementConfig.Condition[0];
|
| | | var _taskConfig = Config.Instance.Get<PyTaskConfig>(_missionId);
|
| | | if (_taskConfig == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | if (_achievementConfig.Type == 3)
|
| | | {
|
| | | displayStr = StringUtility.Contact(_taskConfig.lv, "+");
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | if (string.IsNullOrEmpty(displayStr))
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (m_ConditionPool == null)
|
| | | {
|
| | | var _prefab = UILoader.LoadPrefab("TreasureCondition");
|
| | | m_ConditionPool = GameObjectPoolManager.Instance.RequestPool(_prefab);
|
| | | }
|
| | | condition = m_ConditionPool.Request().GetComponent<TextMesh>();
|
| | | condition.gameObject.SetActive(true);
|
| | | condition.transform.SetParent(root);
|
| | | condition.transform.localPosition = Vector3.zero;
|
| | | condition.transform.LookAt(UI3DTreasureSelectStage.Instance.center);
|
| | | condition.transform.localPosition = new Vector3(0, -1.75f, 0f);
|
| | | condition.transform.localScale = new Vector3(-1, 1, 1);
|
| | | condition.text = displayStr;
|
| | | LayerUtility.SetLayer(condition.gameObject, LayerUtility.UILayer, true);
|
| | | }
|
| | |
|
| | | void RecycleCondition()
|
| | | {
|
| | | if (m_ConditionPool != null && condition != null)
|
| | | {
|
| | | m_ConditionPool.Release(condition.gameObject);
|
| | | condition = null;
|
| | | }
|
| | | }
|
| | |
|
| | | public Vector3 GetAdaptiveDistance(Vector3 _distance)
|
| | | {
|
| | | var normal = Constants.DESIGN_RESOLUTION.x / Constants.DESIGN_RESOLUTION.y;
|
| | |
| | | RecycleBackLight();
|
| | | RecycleLockEffect();
|
| | | RecycleRedpoint();
|
| | | RecycleCondition();
|
| | | RequestSpecialEffect();
|
| | |
|
| | | Treasure _treasure;
|
| | |
| | | public void PlayUnlockShow()
|
| | | {
|
| | | RecycleLockEffect();
|
| | | RecycleCondition();
|
| | | try
|
| | | {
|
| | | var _effect = SFXPlayUtility.Instance.Play(category == TreasureCategory.Demon ? 5157 : 5132, treasureRoot);
|
| | |
| | | if (_cfg != null)
|
| | | {
|
| | | model.collectingDemon = model.selectedTreasure;
|
| | | ModelCenter.Instance.GetModel<DungeonModel>().SingleChallengeDungeon(TreasureModel.TREASURE_DATAMAPID, _cfg.LineId);
|
| | | ModelCenter.Instance.GetModel<DungeonModel>().SingleChallenge(TreasureModel.TREASURE_DATAMAPID, _cfg.LineId);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | { |
| | | base.OnActived(); |
| | | |
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var config = Config.Instance.Get<DungeonOpenTimeConfig>(dataMapId); |
| | | |
| | | StartCoroutine(Co_DelayDisplay(config.DelayTime * 0.001f)); |
| | |
| | | if (PlayerDatas.Instance.baseData.LV >= _cfg.ChallengeLevel)
|
| | | {
|
| | | model.collectingHuman = model.selectedTreasure;
|
| | | dungeonModel.SingleChallengeDungeon(TreasureModel.TREASURE_DATAMAPID, _cfg.LineId);
|
| | | dungeonModel.SingleChallenge(TreasureModel.TREASURE_DATAMAPID, _cfg.LineId);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | public int GetTreasureIdByMapIdAndLineId(int _mapId, int _lineId)
|
| | | {
|
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(_mapId);
|
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(_mapId);
|
| | | var allConfigs = Config.Instance.GetAllValues<TreasureConfig>();
|
| | | foreach (var config in allConfigs)
|
| | | {
|
| | |
| | | return;
|
| | | }
|
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
| | | var mapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | var mapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (mapId == 41110)
|
| | | {
|
| | | return;
|
| | |
| | | [SerializeField] Button m_Button;
|
| | | [SerializeField] UIEffect m_PotentialSfx;
|
| | | [SerializeField] Image m_Select;
|
| | | [SerializeField] Image m_Icon;
|
| | | //[SerializeField] ScaleTween m_SelectScale;
|
| | |
|
| | | public TreasurePotential potential { get; private set; }
|
| | |
| | | }
|
| | | m_Level.text = _unlock ? StringUtility.Contact(_potential.level, "/", maxLevel) : string.Empty;
|
| | | m_Level.transform.localScale = Vector3.one;
|
| | | m_PotentialName.text = config.SkillName;// _unlock ? config.SkillName : string.Empty;
|
| | |
|
| | | DisplayName(_unlock, config);
|
| | |
|
| | | model.potentialLevelChangeEvent -= OnPotentialLevelUp;
|
| | | model.potentialLevelChangeEvent += OnPotentialLevelUp;
|
| | |
| | | bool _unlock = potential != null && model.IsPotentialUnlock(model.selectedTreasure, potential.id);
|
| | | m_Level.text = _unlock ? StringUtility.Contact(potential.level, "/", maxLevel) : string.Empty;
|
| | | m_Level.transform.localScale = Vector3.one;
|
| | | m_PotentialName.text = config.SkillName;// _unlock ? config.SkillName : string.Empty;
|
| | | DisplayName(_unlock, config);
|
| | | }
|
| | |
|
| | | void DisplayName(bool unlock, SkillConfig config)
|
| | | {
|
| | | m_PotentialName.text = config.SkillName;
|
| | | m_PotentialName.color = UIHelper.GetUIColor(TextColType.LightYellow);
|
| | | if (!unlock)
|
| | | {
|
| | | var requirement = string.Empty;
|
| | | if (config.LearnSkillReq > 0 && config.LearnSkillLV > 0)
|
| | | {
|
| | | var preskillConfig = Config.Instance.Get<SkillConfig>(config.LearnSkillReq);
|
| | | requirement = Language.Get("Hallows_NeedSkillLVStart", preskillConfig.SkillName, config.LearnSkillLV);
|
| | | m_PotentialName.text = requirement;
|
| | | m_PotentialName.color = UIHelper.GetUIColor(TextColType.Red);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public void OnPotentialSelected(int _potentialId)
|
| | | {
|
| | | //m_SelectScale.SetEndState();
|
| | | m_Select.gameObject.SetActive(_potentialId == potential.id);
|
| | | }
|
| | |
|
| | | //public void DisplaySelectSfxScale()
|
| | | //{
|
| | | // m_SelectScale.Play();
|
| | | //}
|
| | |
|
| | | private void OnPotentialLevelUp(int _treasureId, int _potential)
|
| | | {
|
| | |
| | | m_PotentialSfx.loop = true;
|
| | | m_DeadPotentailTween.enabled = false;
|
| | | m_DeadPotentailTween.SetStartState();
|
| | | m_Icon.material = MaterialUtility.GetUIDefaultGraphicMaterial();
|
| | | switch (_state)
|
| | | {
|
| | | case 0:
|
| | | m_DeadPotentailTween.enabled = true;
|
| | | m_Icon.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
|
| | | break;
|
| | | case 1:
|
| | | m_PotentialSfx.effect = 5128;
|
| | |
| | | / TreasureAnimation.LINE_NORMAL_LENGTH * TreasureAnimation.LINE_NORMAL_SCALE);
|
| | | animator.Play(TreasureAnimation.POTENTIAL_LINE_STATE_2, 0, 0);
|
| | | }
|
| | |
|
| | | public void Dispose()
|
| | | {
|
| | | for (int i = 0; i < m_Lines.Length; i++)
|
| | | {
|
| | | m_Lines[i].StopImediatly();
|
| | | }
|
| | | }
|
| | | }
|
| | | } |
| | | |
| | |
| | | behaviour.gameObject.SetActive(true);
|
| | | behaviour.treasurePotential = this;
|
| | | behaviour.DisplayBaseInfo(m_Treasure.potentials[i], _state);
|
| | | m_PotentialLine.Display(i, m_Treasure.potentials[i].level >= 1);
|
| | | if (_state != 2 && m_TreasureAnimation.step == TreasureAnimation.TreasureShowStep.UnLock)
|
| | | {
|
| | | m_PotentialLine.Display(i, model.IsPotentialUnlock(m_Treasure.id, m_Treasure.potentials[i].id));
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | m_TreasureAnimation.OnPotentialLevelUpComplete -= OnPotentialLevelUpComplete;
|
| | | m_TreasureAnimation.OnPotentialLevelUpComplete += OnPotentialLevelUpComplete;
|
| | |
|
| | | m_TreasureAnimation.OnPotentialLineAnimComplete -= OnPotentialLineAnimComplete;
|
| | | m_TreasureAnimation.OnPotentialLineAnimComplete += OnPotentialLineAnimComplete;
|
| | |
|
| | | model.potentialBookSelectEvent -= DisplayPotentialBook;
|
| | | model.potentialBookSelectEvent += DisplayPotentialBook;
|
| | |
|
| | |
| | | behaviour.Dispose();
|
| | | }
|
| | |
|
| | | m_PotentialLine.Dispose();
|
| | |
|
| | | model.potentialBookSelectEvent -= DisplayPotentialBook;
|
| | | model.onPotentialLevelUpResultEvent -= OnPotentialLevelUp;
|
| | | model.potentialLevelUpdate -= PotentialLevelUpdate;
|
| | |
| | | m_TreasureAnimation.OnUnlockPotentialComplete -= OnUnlockPotentialComplete;
|
| | | m_TreasureAnimation.OnPotentialLevelUpComplete -= OnPotentialLevelUpComplete;
|
| | | RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
|
| | | m_TreasureAnimation.OnPotentialLineAnimComplete -= OnPotentialLineAnimComplete;
|
| | |
|
| | | m_SelectedPotential = 0;
|
| | | }
|
| | |
| | | private void OnPotentialLevelUpComplete(int _index)
|
| | | {
|
| | | var potential = m_Treasure.potentials[_index];
|
| | | m_PotentialLine.Display(_index, true);
|
| | | potentialBriefInfos[_index].DisplayStateSfx();
|
| | | potentialBriefInfos[_index].StartLevelTween();
|
| | | var _nextPotential = GetNextPotential(potential.id);
|
| | |
| | | private void OnUnlockPotentialComplete(int _index)
|
| | | {
|
| | | selectedPotential = m_Treasure.potentials[_index].id;
|
| | | m_TreasureAnimation.DisplayPotentialLine(_index);
|
| | | }
|
| | |
|
| | | private void OnPotentialLineAnimComplete(int _index)
|
| | | {
|
| | | if (_index < potentialBriefInfos.Length)
|
| | | {
|
| | | m_PotentialLine.Display(_index, true);
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnStepComplete(TreasureAnimation.TreasureShowStep _step)
|
| | |
| | | m_TreasureAnimation.UnlockTreasurePotential(0);
|
| | | model.SetPotentialUnlockShow(model.selectedTreasure);
|
| | | }
|
| | | DisplayLines();
|
| | | break;
|
| | | case TreasureAnimation.TreasureShowStep.FirstPotential:
|
| | | if (FuncOpen.Instance.IsFuncOpen(82))
|
| | |
| | | model.SetPotentialUnlockShow(model.selectedTreasure);
|
| | | }
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | void DisplayLines()
|
| | | {
|
| | | if (m_Treasure == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | for (int i = 0; i < potentialBriefInfos.Length; i++)
|
| | | {
|
| | | if (i < m_Treasure.potentials.Count)
|
| | | {
|
| | | m_PotentialLine.Display(i, model.IsPotentialUnlock(m_Treasure.id, m_Treasure.potentials[i].id));
|
| | | }
|
| | | else
|
| | | {
|
| | | m_PotentialLine.Display(i, false);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | if (potentialBriefInfos[i].potential.id == id)
|
| | | {
|
| | | if (level == 1)
|
| | | {
|
| | | m_PotentialLine.Display(i, false);
|
| | | }
|
| | | m_TreasureAnimation.DisplayPotentialLevelUp(i, level);
|
| | | break;
|
| | | }
|
| | |
| | | if (!model.IsCompleteLockAchievement(model.selectSoul))
|
| | | {
|
| | | m_Active.gameObject.SetActive(false);
|
| | | m_GotoRealm.gameObject.SetActive(true);
|
| | | m_GotoRealm.gameObject.SetActive(false);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | } |
| | | |
| | | var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>(); |
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | |
| | | if (dataMapId != 0) |
| | | { |
| | |
| | |
|
| | | if (itemID == 0)
|
| | | {
|
| | | // 这里不再读取默认的副手装备,而是根据套装读取默认的手臂装备
|
| | | newSecondary = clothesId + 2900;
|
| | | if (job == 1)
|
| | | {
|
| | | // 这里不再读取默认的副手装备,而是根据套装读取默认的手臂装备
|
| | | newSecondary = clothesId + 2900;
|
| | | }
|
| | | else
|
| | | {
|
| | | newSecondary = config.BaseEquip[2];
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | |
| | | public static DialogueBubble TimingShow(int _npcId, Transform _target, Camera _camera) |
| | | { |
| | | var dataMapId = dungeonModel.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var dataMapId = dungeonModel.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | var dialogue = GetDialogue(_npcId, dataMapId); |
| | | if (dialogue == null) |
| | | { |
| | |
| | | CDBPlayerRefresh_FuncDef = 185, // 功能层防御 185
|
| | | CDBPlayerRefresh_TreasureScore = 186, //寻宝商店积分
|
| | | CDBPlayerRefresh_Danjing = 187, // 丹精 187
|
| | | CDBPlayerRefresh_NPCHurtAddPer,//对怪物伤害加成 188
|
| | | };
|
| | |
|
| | | /** 物品加成类型 */
|
| | |
| | | StoneBasePer = 83, //宝石基础属性
|
| | | RealmBasePer = 84, //境界基础属性
|
| | | PetSkillAtkRate = 85, //宠物技能伤害
|
| | |
|
| | | NpcHurtAddPer = 89,//对怪物伤害加成
|
| | | }
|
| | | //UI图标类型
|
| | | public enum SpriteFileType
|
| | |
| | |
|
| | | var account = ModelCenter.Instance.GetModel<LoginModel>().sdkLoginResult.account;
|
| | | var playerId = PlayerDatas.Instance.baseData.PlayerID;
|
| | | var playerName = PlayerDatas.Instance.baseData.PlayerName;
|
| | | var playerName = UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName);
|
| | |
|
| | | var tables = new Dictionary<string, string>();
|
| | | tables["game_code"] = "snxxz";
|
| | |
| | |
|
| | | tables["edit_uid"] = account;
|
| | | tables["edit_rid"] = playerId.ToString();
|
| | | tables["edit_name"] = UIHelper.ServerStringTrim(playerName);
|
| | | tables["edit_name"] = playerName;
|
| | |
|
| | | tables["notice"] = op_type == 2 ? string.Empty : verifyContent;
|
| | | var ts = System.DateTime.UtcNow - new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
|
| | |
| | | tables["AccountID"] = ModelCenter.Instance.GetModel<LoginModel>().sdkLoginResult.account;
|
| | | tables["RoleID"] = StringUtility.Contact(isFairy ? UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.FamilyName) : string.Empty,
|
| | | isFairy ? "-" : string.Empty, UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName));
|
| | | tables["ToRoleID"] = toPlayer;
|
| | | tables["ToRoleID"] = UIHelper.ServerStringTrim(toPlayer);
|
| | | tables["Level"] = PlayerDatas.Instance.baseData.LV.ToString();
|
| | | tables["VIPLevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString();
|
| | | tables["Content"] = WWW.EscapeURL(UIHelper.TrimContentToServer(content));
|
| | |
| | | return PlayerDatas.Instance.extersion.ComboDamPer;
|
| | | case AttrEnum.SkillHurtPrecent:
|
| | | return PlayerDatas.Instance.extersion.skillAtkRateReduce;
|
| | | case AttrEnum.NpcHurtAddPer:
|
| | | return PlayerDatas.Instance.extersion.NpcHurtAddPer;
|
| | | }
|
| | | return 0;
|
| | | }
|