Example #1
0
        protected override void ExecuteImp(BaseGame game, long tick)
        {
            if (!m_isSent)
            {
                m_isSent = true;
                game.SendLivingMoveTo(m_living, m_living.X, m_living.Y, m_path[m_path.Count - 1].X, m_path[m_path.Count - 1].Y, m_action, m_speed);
            }
            m_index++;
            if (m_index >= m_path.Count)
            {
                if (m_path[m_index - 1].X > m_living.X)
                {
                    m_living.Direction = 1;
                }
                else
                {
                    m_living.Direction = -1;
                }

                m_living.SetXY(m_path[m_index - 1].X, m_path[m_index - 1].Y);

                if (m_callback != null)
                {
                    m_living.CallFuction(m_callback, 0);
                }
                Finish(tick);
            }
        }
Example #2
0
        protected override void ExecuteImp(BaseGame game, long tick)
        {
            if (!m_isSent)
            {
                m_isSent = true;
                game.SendLivingFall(m_living, m_toX, m_toY, m_fallSpeed, m_action, m_type);
            }

            if (m_toY > m_living.Y + m_fallSpeed)
            {
                m_living.SetXY(m_toX, m_living.Y + m_fallSpeed);
            }
            else
            {
                m_living.SetXY(m_toX, m_toY);
                if (game.Map.IsOutMap(m_toX, m_toY))
                {
                    m_living.SyncAtTime = false;
                    m_living.Die();
                    Console.WriteLine("掉落Fall" + m_living.IsLiving.ToString());
                }
                if (m_callback != null)
                {
                    //m_living.RunLuaFunction(m_callback);
                    m_living.CallFuction(m_callback, 0);
                }
                Finish(tick);
            }
        }
Example #3
0
        protected override void ExecuteImp(BaseGame game, long tick)
        {
            if (!m_isSent)
            {
                m_isSent = true;
                game.SendLivingJump(m_living, m_toX, m_toY, m_speed, m_action, m_type);
            }

            if (m_toY < m_living.Y - m_speed)
            {
                m_living.SetXY(m_toX, m_living.Y - m_speed);
            }
            else
            {
                m_living.SetXY(m_toX, m_toY);
                if (m_callback != null)
                {
                    m_living.CallFuction(m_callback, 0);
                }

                Finish(tick);
            }
        }