Request Create(EReqType type) { switch (type) { case EReqType.Idle: return(new RQIdle()); case EReqType.Animation: return(new RQAnimation()); case EReqType.MoveToPoint: return(new RQMoveToPoint()); case EReqType.TalkMove: return(new RQTalkMove()); case EReqType.FollowPath: return(new RQFollowPath()); case EReqType.FollowTarget: return(new RQFollowTarget()); case EReqType.Salvation: return(new RQSalvation()); case EReqType.Dialogue: return(new RQDialogue()); case EReqType.Translate: return(new RQTranslate()); case EReqType.Rotate: return(new RQRotate()); case EReqType.Attack: return(new RQAttack()); case EReqType.PauseAll: return(new RQPauseAll()); case EReqType.UseSkill: return(new RQUseSkill()); case EReqType.MAX: return(null); default: return(null); } }
public void RemoveRelation(EReqType type) { if (m_Relations.ContainsKey(type)) { m_Relations.Remove(type); } }
bool GetRelation(EReqType type, out EReqRelation relation) { if (m_Relations.ContainsKey(type)) { relation = m_Relations[type]; return(true); } relation = EReqRelation.None; return(false); }
public void AddRelation(EReqType type, EReqRelation relation) { if (m_Relations.ContainsKey(type)) { m_Relations[type] = relation; } else { m_Relations.Add(type, relation); } }
public static void RemoveNpoReq(PeEntity npc, EReqType type) { NpcCmpt npccmpt = npc.NpcCmpt; if (npccmpt != null) { npccmpt.Req_Remove(type); } else { // TODO: 移除 Monster 当前状态 } }
//public void AddRequestMul(Request request) //{ // if (m_Request[(int)request.Type] == null) // m_Request[(int)request.Type] = request; // if (Entity.BehaveCmpt != null && HasRequest()) // Entity.BehaveCmpt.Excute(); //} public void RemoveRequest(EReqType type) { if (type == EReqType.MoveToPoint && StroyManager.Instance != null) { RQMoveToPoint R_move = m_Request[(int)type] as RQMoveToPoint; if (R_move != null) { bool isreached = PETools.PEUtil.MagnitudeH(Entity.position, R_move.position) < R_move.stopRadius; StroyManager.Instance.EntityReach(Entity, isreached); } } if (PeGameMgr.IsMulti && Entity != null && Entity.netCmpt != null && type == EReqType.FollowPath) { if (Entity.netCmpt.network.hasOwnerAuth) { Entity.netCmpt.network.RPCServer(EPacketType.PT_NPC_RequestAiOp, (int)EReqType.Remove, (int)EReqType.FollowPath, (m_Request[(int)type] as RQFollowPath).VerifPos); } } if (PeGameMgr.IsMulti && Entity != null && Entity.netCmpt != null && type == EReqType.FollowTarget && !PeGameMgr.IsStory) { if (Entity.netCmpt.network.hasOwnerAuth) { Entity.netCmpt.network.RPCServer(EPacketType.PT_NPC_RequestAiOp, (int)EReqType.Remove, (int)EReqType.FollowTarget); } } m_Request[(int)type] = null; if (PeGameMgr.IsSingle && Entity.BehaveCmpt != null && m_View != null && !m_View.hasView && !HasRequest()) { Entity.BehaveCmpt.Stopbehave(); } }
public Request Register(EReqType type, params object[] objs) { Request request = null; switch (type) { case EReqType.Dialogue: request = new RQDialogue(objs); break; case EReqType.Idle: request = new RQIdle(objs); break; case EReqType.Animation: request = new RQAnimation(objs); break; case EReqType.MoveToPoint: request = new RQMoveToPoint(objs); break; case EReqType.TalkMove: request = new RQTalkMove(objs); break; case EReqType.FollowPath: request = new RQFollowPath(objs); break; case EReqType.FollowTarget: request = new RQFollowTarget(objs); break; case EReqType.Salvation: request = new RQSalvation(objs); break; case EReqType.Translate: request = new RQTranslate(objs); break; case EReqType.Rotate: request = new RQRotate(objs); break; case EReqType.Attack: request = new RQAttack(); break; case EReqType.PauseAll: request = new RQPauseAll(); break; case EReqType.UseSkill: request = new RQUseSkill(); break; } if (!CalculateRelation(request)) { return(null); } AddRequest(request); return(request); }
public bool Contains(EReqType type) { return(m_Request[(int)type] != null); }
public Request GetRequest(EReqType type) { return(m_Request [(int)type]); }