Esempio n. 1
0
 public override void update()
 {
     if (!m_isRunning)
     {
         run();
     }
     if (m_target == null || m_target.state == ActorState.DEAD || m_actor.state == ActorState.DEAD)
     {
         StopMoveEvtArg arg = new StopMoveEvtArg();
         arg.ac = m_actor;
         m_actor.FireEvent(m_actor, EventType.EVT_STOP_MOVE, arg);
         m_bFinished = true;
         return;
     }
     if (Vector3.Distance(m_target.transform.position, m_actor.transform.position) > m_actor.attackRange)
     {
         BeginMoveEvtArg arg = new BeginMoveEvtArg();
         arg.ac       = m_actor;
         arg.position = m_target.transform.position;
         m_actor.FireEvent(m_actor, EventType.EVT_BEGIN_MOVE, arg);
     }
     else
     {
         //Debug.Log("AttackCommand : BeginAttackEvent");
         BeginAttackEvtArg arg = new BeginAttackEvtArg();
         arg.attackerID = m_actor.transform.GetInstanceID();
         arg.targetID   = m_target.transform.GetInstanceID();
         arg.ac         = m_actor;
         arg.target     = m_target;
         m_actor.FireEvent(this, EventType.EVT_BEGIN_ATTACK, arg);
     }
 }
Esempio n. 2
0
        public override void run()
        {
            BeginMoveEvtArg arg = new BeginMoveEvtArg();

            arg.ac       = m_actor;
            arg.position = m_target.transform.position;
            m_actor.FireEvent(m_actor, EventType.EVT_BEGIN_MOVE, arg);
        }
Esempio n. 3
0
        public override void run()
        {
            BeginMoveEvtArg arg = new BeginMoveEvtArg();

            arg.ac       = m_actor;
            arg.position = m_position;
            m_actor.FireEvent(m_actor, EventType.EVT_BEGIN_MOVE, arg);
            this.m_isRunning = true;
        }
Esempio n. 4
0
        void OnBeginMove(object sender, EventArgs arg)
        {
            BeginMoveEvtArg e = arg as BeginMoveEvtArg;

            if (e.ac == this && state != ActorState.DEAD)
            {
                transform.LookAt(new Vector3(e.position.x, transform.position.y, e.position.z));
                order      = ActorOrder.MOVETO_ORDER;
                targetUnit = null;
                agent.SetDestination(e.position);
                SetState(new MovingActorState(this));
            }
        }