| | |
| | | public class GA_NpcSummonFight : GActorNpcFight
|
| | | {
|
| | | private H0408_tagPlayerSummonNPCAppear m_H0408;
|
| | | private HeadUpName m_HeadUpName;
|
| | |
|
| | | // 用于触发点击的组件
|
| | | private NPCInteractProcessor m_NPCInteractProcessor;
|
| | |
|
| | | protected override void OnInit(GameNetPackBasic package)
|
| | | {
|
| | |
| | | AdjustPos(m_H0408.PosX, m_H0408.PosY);
|
| | |
|
| | | base.OnInit(package);
|
| | |
|
| | | // 可选择对象创建碰撞区
|
| | | if (CanBeSelected())
|
| | | {
|
| | | m_NPCInteractProcessor = Root.AddMissingComponent<NPCInteractProcessor>();
|
| | | m_NPCInteractProcessor.npcIntergactEvent -= OnClick;
|
| | | m_NPCInteractProcessor.npcIntergactEvent += OnClick;
|
| | | }
|
| | |
|
| | | GActor _parent = GAMgr.Instance.GetBySID(m_H0408.PlayerID);
|
| | | if (_parent != null)
|
| | |
| | |
|
| | | public sealed override bool CanAtked()
|
| | | {
|
| | | return false;
|
| | | return NpcConfig.NPCType == (int)E_NpcType.PersonalEnemy;
|
| | | }
|
| | |
|
| | | public sealed override bool CanAtkedRotate()
|
| | |
| | |
|
| | | public sealed override bool CanBeSelected()
|
| | | {
|
| | | return false;
|
| | | return NpcConfig.NPCType == (int)E_NpcType.PersonalEnemy;
|
| | | }
|
| | | public sealed override void OnSelect()
|
| | | {
|
| | | if (NpcConfig.NPCType == (int)E_NpcType.PersonalEnemy)
|
| | | {
|
| | | SelectionManager.Request(SelectionManager.E_Type.Red, this, NpcConfig.ModelRadius * 2);
|
| | | }
|
| | | }
|
| | | public sealed override void OnUnSelect()
|
| | | {
|
| | | if (NpcConfig.NPCType == (int)E_NpcType.PersonalEnemy)
|
| | | {
|
| | | SelectionManager.Release(SelectionManager.E_Type.Red);
|
| | | }
|
| | | }
|
| | | public sealed override void OnClick()
|
| | | {
|
| | | if (ActorInfo.serverDie
|
| | | || BossShowModel.Instance.BossShowing
|
| | | || StatusMgr.Instance.IsInvisible(ServerInstID))
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | GA_Hero _hero = PlayerDatas.Instance.hero;
|
| | |
|
| | | // 当前锁定的目标已经是此对象
|
| | | if (_hero.LockTarget == this && CanAtked())
|
| | | {
|
| | | // 开启攻击至死AI
|
| | | _hero.Behaviour.StartKillUntilDieAI();
|
| | | }
|
| | | else
|
| | | {
|
| | | // 设置锁定目标为此对象
|
| | | _hero.LockTarget = this;
|
| | | _hero.SelectTarget = this;
|
| | | GA_Hero.CallLockTargetChanged(ServerInstID);
|
| | | }
|
| | | }
|
| | | }
|