コード例 #1
0
    public virtual void Active(slSnake snake, hwmConstants.ButtonIndex buttonIndex)
    {
        m_Snake       = snake;
        m_ButtonIndex = buttonIndex;

        m_InputButton.EnableButton(m_ButtonIndex);
    }
コード例 #2
0
        public override void Active(slSnake owner)
        {
            base.Active(owner);

            Extent = new Vector2(Radius * slConstants.SNAKE_PREDICT_SIZE_X
                                 , slConstants.SNAKE_NODE_TO_NODE_DISTANCE * slConstants.SNAKE_PREDICT_SIZE_Y) * 0.5f;
            Offset = new Vector2(0, Extent.y + Radius);
        }
コード例 #3
0
        public override void Active(slSnake owner)
        {
            base.Active(owner);
            Node.name = owner.GetGuidStr();
            Node.SetActive(true);

            Radius = owner.GetProperties().BodyColliderRadius;
        }
コード例 #4
0
        public override void Active(slSnake owner)
        {
            base.Active(owner);

            Radius = owner.GetProperties().HeadColliderRadius;

            PredictNode.Active(owner);
        }
コード例 #5
0
    public void UnControllerSnake()
    {
        hwmDebug.Assert(m_Snake != null, "m_Snake != null");

        HandleUnControllerSnake();

        m_Snake = null;
    }
コード例 #6
0
    public override void Active(slSnake snake, hwmConstants.ButtonIndex buttonIndex)
    {
        base.Active(snake, buttonIndex);

        m_CD          = MyProperties.CD;
        m_EnableSkill = false;
        CDText.color  = Color.white;
    }
コード例 #7
0
    public void SetControllerSnake(slSnake snake)
    {
        hwmDebug.Assert(m_Snake == null, "m_Snake == null");

        m_Snake = snake;

        HandleSetControllerSnake();
    }
コード例 #8
0
 private void OnActorDestroy(hwmActor actor)
 {
     if (actor is slSnake)
     {
         slSnake snake = actor as slSnake;
         m_Snakes.Remove(snake);
     }
 }
コード例 #9
0
 private void OnActorCreate(hwmActor actor)
 {
     if (actor is slSnake)
     {
         slSnake snake = actor as slSnake;
         m_Snakes.Add(snake);
     }
 }
コード例 #10
0
 public virtual void Active(slSnake owner)
 {
     Owner  = owner.GetGuid();
     Radius = owner.GetProperties().BodyColliderRadius;
 }
コード例 #11
0
        public override void Active(slSnake owner)
        {
            base.Active(owner);

            Radius = owner.GetProperties().ClothesColliderRadius;
        }
コード例 #12
0
    public virtual void Deactive()
    {
        m_InputButton.DisableButton();

        m_Snake = null;
    }
コード例 #13
0
    public override void Active(slSnake snake, hwmConstants.ButtonIndex buttonIndex)
    {
        base.Active(snake, buttonIndex);

        m_CD = MyProperties.CD;
    }
コード例 #14
0
    public void Dispose()
    {
        HandleDispose();

        m_Snake = null;
    }
コード例 #15
0
    private IEnumerator DoUpdate()
    {
        while (true)
        {
            if (m_UpdateSnakeMovementTime >= slConstants.UPDATE_SNAKE_MOVEMENT_TIEM_INTERVAL)
            {
                // update snake movement
                m_UpdateSnakeMovementTime -= slConstants.UPDATE_SNAKE_MOVEMENT_TIEM_INTERVAL;
                hwmDebug.Assert(m_UpdateSnakeMovementTime < slConstants.UPDATE_SNAKE_MOVEMENT_TIEM_INTERVAL
                                , "m_UpdateSnakeMovementTime < slConstants.UPDATE_SNAKE_MOVEMENT_TIEM_INTERVAL");

                for (int iSnake = 0; iSnake < m_Snakes.Count; iSnake++)
                {
                    slSnake snake = m_Snakes[iSnake];
                    snake.DoUpdateMovement(slConstants.UPDATE_SNAKE_MOVEMENT_TIEM_INTERVAL);
                }
                slWorld.GetInstance().GetSnakeSystem().GetQuadtree().MergeAndSplitAllNode();
                yield return(UpdateType.SnakeMovement);

                // update snake collide
                m_DeadSnakes.Clear();
                for (int iSnake = 0; iSnake < m_Snakes.Count; iSnake++)
                {
                    slSnake iterSnake = m_Snakes[iSnake];
                    iterSnake.DoUpdateCollide();
                    if (!iterSnake.IsAlive())
                    {
                        m_DeadSnakes.Add(iterSnake);
                    }
                }
                for (int iSnake = 0; iSnake < m_DeadSnakes.Count; iSnake++)
                {
                    slSnake iterSnake = m_DeadSnakes[iSnake];
                    iterSnake.Dead();
                }
                yield return(UpdateType.SnakeCollide);

                // update snake eat food
                for (int iSnake = 0; iSnake < m_Snakes.Count; iSnake++)
                {
                    slSnake iterSnake = m_Snakes[iSnake];
                    iterSnake.DoUpdateEatFood();
                }
                yield return(UpdateType.SnakeEatFood);

                // update foods
                slWorld.GetInstance().GetFoodSystem().DoUpdateFoods(m_Time - m_LastUpdateFoodsTime);
                m_LastUpdateFoodsTime = m_Time;
                yield return(UpdateType.Foods);

                // update food system
                slWorld.GetInstance().GetFoodSystem().DoUpdateFoodSystem();
                yield return(UpdateType.FoodSystem);

                // update snake ai
                for (int iSnake = 0; iSnake < m_Snakes.Count; iSnake++)
                {
                    slSnake iterSnake = m_Snakes[iSnake];
                    if (iterSnake.GetController() != null &&
                        iterSnake.GetController().IsAI())
                    {
                        (iterSnake.GetController() as slAIController).DoAIUpdate();
                    }
                }
                yield return(UpdateType.SnakeAI);

                // update respawn player

                if (++m_UpdateRespawnPlayerFrame >= slConstants.UPDATE_RESPAWN_FRAME_INTERVAL)
                {
                    m_UpdateRespawnPlayerFrame -= slConstants.UPDATE_RESPAWN_FRAME_INTERVAL;
                    slWorld.GetInstance().GetGameMode().DoUpdateRespawnPlayer();
                }
                yield return(UpdateType.RespawnPlayer);
            }
            else
            {
                yield return(UpdateType.Empty);
            }
        }
    }
コード例 #16
0
ファイル: slSpeedUpSkill.cs プロジェクト: huangwwmm/SnakeLoli
    public override void Active(slSnake snake, hwmConstants.ButtonIndex buttonIndex)
    {
        base.Active(snake, buttonIndex);

        snake.OnSpeedUpMovement += OnSpeedUpMovement;
    }