Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
| | |
| | | var _nextForawrd = Random.rotation * m_Owner.Forward; |
| | | var _randomDis = Random.Range(0, m_Owner.NpcConfig.Sight * .5f); |
| | | m_Dest = m_Owner.BornPos + _nextForawrd * _randomDis; |
| | | GActor.TryGetValidPos(m_Dest, ref m_Dest); |
| | | m_RunAwayStep = 1; |
| | | break; |
| | | case 1: |
| | |
| | |
|
| | | if (_target.ActorInfo.RealHp <= _hurtValue)
|
| | | {
|
| | | if (_clientNpc.NpcConfig.AIType != 198)
|
| | | {
|
| | | _target.KillerServerInstID = m_Hero.ServerInstID;
|
| | | _target.ActorInfo.serverDie = true;
|
| | | GAMgr.Instance.ServerDie(_target.ServerInstID);
|
| | |
| | | {
|
| | | ClientSceneManager.Instance.NpcDead(_clientNpc.belongEventID, _clientNpc, _clientNpc.NpcConfig.NPCID);
|
| | | }
|
| | | }
|
| | | // 前期战斗只发送石头人的
|
| | | //if (1000 == _target.NpcConfig.NPCID)
|
| | | //{
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | bool _doReduceHp = true;
|
| | |
|
| | | if (attacker is GA_NpcClientFightNorm)
|
| | | {
|
| | | if (target.ActorInfo.RealHp <= (target.ActorInfo.RealMaxHp * .5f))
|
| | |
| | | hurtValue = 0;
|
| | | }
|
| | | }
|
| | | else if (target is GA_NpcClientFightNorm)
|
| | | {
|
| | | if ((target as GA_NpcClientFightNorm).NpcConfig.AIType == 198)
|
| | | {
|
| | | _doReduceHp = false;
|
| | | }
|
| | | }
|
| | |
|
| | | if (_doReduceHp)
|
| | | {
|
| | | target.ActorInfo.ReduceHp((uint)hurtValue);
|
| | | }
|
| | |
|
| | | if (target.ServerInstID == PlayerDatas.Instance.baseData.PlayerID)
|
| | | {
|
| | |
| | | case 31140:
|
| | | case JadeDynastyBossModel.JADEDYNASTY_MAP:
|
| | | case HazyDemonKingModel.Client_MapID:
|
| | | case HazyDemonKingModel.DEMONKINGMAPID1:
|
| | | case HazyDemonKingModel.DEMONKINGMAPID2:
|
| | | WindowCenter.Instance.Open<DungeonPickUpItemCoolDownWin>();
|
| | | break;
|
| | | case FairyLeagueModel.FAIRY_LEAGUE_DUNGEON:
|
| | |
| | | using System;
|
| | | using Snxxz.UI;
|
| | | using System;
|
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | namespace Snxxz.UI
|
| | | {
|
| | | public class ClientHazyGrassStage : DungeonStage
|
| | | {
|
| | | static readonly Vector3 PlayerBornPosition = new Vector3(17.25f, 5.12f, 3.70f);
|
| | | static readonly Vector3 PlayerBornPosition1 = new Vector3(17.25f, 5.12f, 3.70f);
|
| | | static readonly Vector3 PlayerBornPosition2 = new Vector3(17.25f, 5.12f, 3.70f);
|
| | |
|
| | | static List<HazyMapNpcScriptableObject.NpcInfo> s_NpcInfos = new List<HazyMapNpcScriptableObject.NpcInfo>();
|
| | | static Dictionary<Vector3, GA_NpcClientCollect> s_CollectNpcs = new Dictionary<Vector3, GA_NpcClientCollect>();
|
| | | static Dictionary<uint, Vector3> s_Sid2NpcPos = new Dictionary<uint, Vector3>();
|
| | | static Dictionary<uint, int> s_Sid2NpcIds = new Dictionary<uint, int>();
|
| | | static List<GA_NpcClientFightNorm> s_ClientFightNpcs = new List<GA_NpcClientFightNorm>();
|
| | |
|
| | | static int grassRefreshCount = 0;
|
| | |
|
| | | bool mapLoadFinish = false;
|
| | | bool initedFightNpc = false;
|
| | |
|
| | | HazyRegionIncidentType incidentType;
|
| | |
|
| | | HazyGrassModel model { get { return ModelCenter.Instance.GetModel<HazyGrassModel>(); } }
|
| | | HazyRegionModel hazyRegionModel { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
|
| | |
|
| | | public override void Initialize()
|
| | | {
|
| | |
| | | s_Sid2NpcPos.Clear();
|
| | |
|
| | | mapLoadFinish = false;
|
| | | initedFightNpc = false;
|
| | |
|
| | | grassRefreshCount = 0;
|
| | |
|
| | | var config = HazyRegionConfig.Get(hazyRegionModel.processingIncidentId);
|
| | | if (config != null)
|
| | | {
|
| | | incidentType = (HazyRegionIncidentType)config.incidentType;
|
| | | }
|
| | |
|
| | | UnloadAllNpc();
|
| | |
|
| | |
| | |
|
| | | InitialPlayer();
|
| | | InitializeNpc();
|
| | |
|
| | | initedFightNpc = true;
|
| | | }
|
| | |
|
| | | protected override void OnUpdate()
|
| | |
| | | void InitialPlayer()
|
| | | {
|
| | | var hero = PlayerDatas.Instance.hero;
|
| | | hero.Pos = PlayerBornPosition;
|
| | | if (incidentType == HazyRegionIncidentType.ReikiGrass)
|
| | | {
|
| | | hero.Pos = PlayerBornPosition1;
|
| | | }
|
| | | else if (incidentType == HazyRegionIncidentType.FairyGrass)
|
| | | {
|
| | | hero.Pos = PlayerBornPosition2;
|
| | | }
|
| | | CameraController.Instance.Apply();
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | | break;
|
| | | case E_NpcType.Fight:
|
| | | if (!initedFightNpc)
|
| | | {
|
| | | var fightNpc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>((uint)npcInfo.npcId,
|
| | | E_ActorGroup.Enemy);
|
| | | if (fightNpc != null)
|
| | | {
|
| | | fightNpc.Pos = npcInfo.position;
|
| | | fightNpc.OnAttacked -= OnAttackNpc;
|
| | | fightNpc.OnAttacked += OnAttackNpc;
|
| | | }
|
| | | s_ClientFightNpcs.Add(fightNpc);
|
| | | }
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnAttackNpc()
|
| | | {
|
| | | Debug.Log("攻击了宝箱怪");
|
| | | }
|
| | |
|
| | | void UnloadAllNpc()
|
| | |
| | | GAMgr.Instance.Release(_npc);
|
| | | }
|
| | | }
|
| | |
|
| | | foreach (var _npc in s_ClientFightNpcs)
|
| | | {
|
| | | if (_npc != null)
|
| | | {
|
| | | _npc.OnAttacked -= OnAttackNpc;
|
| | | _npc.ActorInfo.serverDie = true;
|
| | | GAMgr.Instance.ServerDie(_npc.ServerInstID);
|
| | | GAMgr.Instance.Release(_npc);
|
| | | }
|
| | | }
|
| | |
|
| | | s_ClientFightNpcs.Clear();
|
| | | s_CollectNpcs.Clear();
|
| | | }
|
| | |
|
| | |
| | | }
|
| | | }
|
| | | #endif
|
| | | }
|
| | | } |
| | | |
| | |
| | | if (config != null)
|
| | | {
|
| | | var npcConfig = NPCConfig.Get(config.npcId);
|
| | | m_AdventureName.text = string.Format("与{0}对话:", npcConfig.charName);
|
| | | m_AdventureName.text = Language.Get("AdventureDialogue", npcConfig.charName);
|
| | | }
|
| | |
|
| | | HazyRegionModel.Incident incident;
|
| | |
| | |
|
| | | public const int Client_MapID = 2000;
|
| | |
|
| | | public const int DEMONKINGMAPID1 = 22030;
|
| | | public const int DEMONKINGMAPID2 = 32030;
|
| | |
|
| | | public event Action onPlayerInfoRefresh;
|
| | |
|
| | | HazyRegionModel hazyRegionModel { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
|
| | |
| | | var configs = HazyRegionConfig.GetValues();
|
| | | foreach (var config in configs)
|
| | | {
|
| | | if (config.incidentType == (int)HazyRegionIncidentType.Boss
|
| | | if (config.incidentType == (int)HazyRegionIncidentType.DemonKing
|
| | | && config.dungeonId == mapId)
|
| | | {
|
| | | return true;
|
| | |
| | | switch (atkState)
|
| | | {
|
| | | case 0:
|
| | | m_FightSign.SetSprite("HazyFightState_Red");
|
| | | m_AtkState.text = "战斗中";
|
| | | m_AtkState.text = Language.Get("DemonKingFightState_0");
|
| | | m_AtkState.color = UIHelper.GetUIColor(TextColType.Red, true);
|
| | | break;
|
| | | case 1:
|
| | | m_FightSign.SetSprite("HazyFightState_White");
|
| | | m_AtkState.text = "反击";
|
| | | m_AtkState.text = Language.Get("DemonKingFightState_1");
|
| | | m_AtkState.color = UIHelper.GetUIColor(TextColType.Red, true);
|
| | | break;
|
| | | case 2:
|
| | | m_FightSign.SetSprite("HazyFightState_White");
|
| | | m_AtkState.text = "攻击";
|
| | | m_AtkState.text = Language.Get("DemonKingFightState_2");
|
| | | m_AtkState.color = UIHelper.GetUIColor(TextColType.NavyBrown, true);
|
| | | break;
|
| | | }
|
| | |
| | | [SerializeField] ScrollRect m_RewardsScroll;
|
| | | [SerializeField] Text m_ExitTimer;
|
| | | [SerializeField] HorizontalLayoutGroup m_RewardLayout;
|
| | | [SerializeField] Transform m_ContainerFirst;
|
| | | [SerializeField] Transform m_ContainerOther;
|
| | | [SerializeField] ButtonEx m_Exit;
|
| | |
|
| | | List<DemonJarRewardBehaviour> m_Items = new List<DemonJarRewardBehaviour>();
|
| | |
| | | timer = 0f;
|
| | | m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue));
|
| | | m_ExitTimer.gameObject.SetActive(true);
|
| | |
|
| | | bool isFirst = model.dungeonResult.ownerID == PlayerDatas.Instance.PlayerId;
|
| | | m_ContainerFirst.gameObject.SetActive(isFirst);
|
| | | m_ContainerOther.gameObject.SetActive(!isFirst);
|
| | |
|
| | | m_ContainerPoivt.gameObject.SetActive(true);
|
| | |
|
| | | DisplayRewards();
|
| | |
| | | [SerializeField] Text m_BasicGrassRefreshTime;
|
| | | [SerializeField] Text m_FairyGrassRefreshTime;
|
| | |
|
| | | [SerializeField] Transform m_ContainerCollectSucc;
|
| | | [SerializeField] Text m_GainRemind;
|
| | |
|
| | | DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
| | | HazyRegionModel hazyRegionModel { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
|
| | | HazyGrassModel hazyGrassModel { get { return ModelCenter.Instance.GetModel<HazyGrassModel>(); } }
|
| | |
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | m_ContainerCollectSucc.gameObject.SetActive(false);
|
| | |
|
| | | Display();
|
| | |
|
| | | GlobalTimeEvent.Instance.secondEvent += PerSecond;
|
| | |
| | | {
|
| | | var used = Mathf.Max(0, (int)(TimeUtility.ServerNow - hazyGrassModel.grassBornTime).TotalSeconds);
|
| | | var refreshSeconds = hazyGrassModel.grassRefreshSeconds - used % hazyGrassModel.grassRefreshSeconds;
|
| | | m_BasicGrassRefreshTime.text = string.Format("基础草丛{0}后刷新", TimeUtility.SecondsToMS(refreshSeconds));
|
| | | m_FairyGrassRefreshTime.text = string.Format("灵草丛{0}后刷新", TimeUtility.SecondsToMS(refreshSeconds));
|
| | | m_BasicGrassRefreshTime.text = Language.Get("HazyBasicGrassRefresh", TimeUtility.SecondsToMS(refreshSeconds));
|
| | | m_FairyGrassRefreshTime.text = Language.Get("HazyFairyGrassRefresh", TimeUtility.SecondsToMS(refreshSeconds));
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | hourMinute.minuteBegin.ToString("D2"), hourMinute.hourEnd.ToString("D2"),
|
| | | hourMinute.minuteEnd.ToString("D2"));
|
| | | timeLabel = UIHelper.AppendColor(TextColType.Green, timeLabel);
|
| | | m_OpenTime.text = string.Format("每日{0}可进行寻访", timeLabel);
|
| | | m_OpenTime.text = Language.Get("HazyRegionEntranceTime", timeLabel);
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | void DisplayBase()
|
| | | {
|
| | | var config = HazyRegionConfig.Get(incidentId);
|
| | | m_DepletionPoint.text = string.Format("消耗体力: ", config.point);
|
| | | m_DepletionPoint.text = Language.Get("HazyRegionPoint", config.point);
|
| | | m_IncidentTitle.text = config.name;
|
| | | m_Icon.SetSprite(config.PortraitID);
|
| | | m_Icon.SetNativeSize();
|
| | |
| | |
|
| | | void DisplayBoss()
|
| | | {
|
| | | m_ContainerBoss.gameObject.SetActive(incidentType == HazyRegionIncidentType.Boss);
|
| | | m_ContainerBoss.gameObject.SetActive(incidentType == HazyRegionIncidentType.DemonKing);
|
| | | var config = HazyRegionConfig.Get(incidentId);
|
| | | if (incidentType == HazyRegionIncidentType.Boss)
|
| | | if (incidentType == HazyRegionIncidentType.DemonKing)
|
| | | {
|
| | | var npcConfig = NPCConfig.Get(config.npcId);
|
| | | m_BossName.text = npcConfig.charName;
|
| | | }
|
| | |
|
| | | DisplayBossState();
|
| | | }
|
| | |
|
| | | void DisplayBossState()
|
| | | {
|
| | | if (incidentType == HazyRegionIncidentType.DemonKing)
|
| | | {
|
| | | if (model.InFakeHazyRegion)
|
| | | {
|
| | | var fighting = ClientDungeonStageUtility.isClientDungeon;
|
| | | m_PlayerCount.gameObject.SetActive(true);
|
| | | m_RebornTime.gameObject.SetActive(false);
|
| | | m_PlayerCount.text = Language.Get("HazyDemonKingPlayerCount", fighting ? 1 : 0);
|
| | | }
|
| | | else
|
| | | {
|
| | | m_PlayerCount.gameObject.SetActive(false);
|
| | | m_RebornTime.gameObject.SetActive(false);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | void DisplayState()
|
| | |
| | | switch (state)
|
| | | {
|
| | | case 1:
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get(""), (bool isOk) =>
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HazyRegionBackRemind_1"), (bool isOk) =>
|
| | | {
|
| | | if (isOk)
|
| | | {
|
| | |
| | | });
|
| | | break;
|
| | | case 2:
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get(""), (bool isOk) =>
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HazyRegionBackRemind_2"), (bool isOk) =>
|
| | | {
|
| | | if (isOk)
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | | break;
|
| | | case HazyRegionIncidentType.Boss:
|
| | | case HazyRegionIncidentType.DemonKing:
|
| | | if (InFakeHazyRegion)
|
| | | {
|
| | | hazyDemonKingModel.RequestEnterClientDungeon();
|
| | |
| | | Adventure,
|
| | | Precious,
|
| | | FairyGrass,
|
| | | Boss,
|
| | | DemonKing,
|
| | | ReikiGrass,
|
| | | }
|
| | | } |