Exemplo n.º 1
0
    public void EnterState(IState oldState, StatePatternBase statePatternBase)
    {
        manager = statePatternBase as FishAIStateManager;
        Vector3 goal;
        float   moveTime;

        if (manager.fishAI.moveGoal.HasValue)
        {
            goal = manager.fishAI.moveGoal.Value;
            manager.fishAI.moveGoal = null;
            moveTime = manager.fishAI.moveTime;
        }
        else
        {
            goal     = FishMoveState.GetPlayerFrontPosition(manager);
            moveTime = 3;
        }

        manager.GetTransform().DOMove(goal, moveTime).SetEase(Ease.InOutQuad).OnComplete(_moveDone);
        manager.GetTransform().DOLookAt((goal - manager.GetTransform().position).normalized, 2);

        int moveAni = Random.Range((int)FishAIStateManager.FishAni.Move1, (int)FishAIStateManager.FishAni.MoveEnd);

        manager.WaitToTriggerAnimation((FishAIStateManager.FishAni)moveAni);

        manager.PlaySound("MovingSound", Random.Range(0.1f, 1.5f));
        manager.PlaySound("MovingSound", Random.Range(1.5f, 2.5f));

        manager.fishAI.StartShakeFishPosScale();
    }
Exemplo n.º 2
0
    public void EnterState(IState oldState, StatePatternBase statePatternBase)
    {
        manager = statePatternBase as FishAIStateManager;

        manager.WaitToSwitchState(FishAIStateManager.FishState.move, 2);
        Vector3 goal = FishMoveState.GetPlayerFrontPosition(manager);

        manager.fishAI.moveGoal      = goal;
        manager.fishAI.moveTime      = 1.5f;
        manager.fishAI.moveDoneState = FishAIStateManager.FishState.angry;

        int punchAni = Random.Range(0, 3);

        if (punchAni == 0)
        {
            manager.WaitToTriggerAnimation(FishAIStateManager.FishAni.Angry);
        }
        else if (punchAni == 1)
        {
            manager.WaitToTriggerAnimation(FishAIStateManager.FishAni.WryFace);
        }
        else if (punchAni == 2)
        {
            manager.WaitToTriggerAnimation(FishAIStateManager.FishAni.Scared);
        }

        manager.fishAI.countFishHit++;
    }
    void _moveInDone()
    {
        WryFaceTime--;
        if (WryFaceTime <= 0)
        {
            Vector3 goal = FishMoveState.GetPlayerFrontPosition(manager);
            manager.fishAI.moveGoal      = goal;
            manager.fishAI.moveTime      = 3;
            manager.fishAI.moveDoneState = FishAIStateManager.FishState.idle;
            manager.WaitToSwitchState(FishAIStateManager.FishState.move);
            GameManager.Instance.SetHandTouchMode();
            GameManager.Instance.ShowHitFishInfo();
            manager.fishAI.ResetFishData();
            GameManager.Instance.CloseFishHidingDoor(0.0f, false);
            GameManager.Instance.RecoverFishToDefaultLayer();
            return;
        }

        manager.WaitToTriggerAnimation(FishAIStateManager.FishAni.Angry);
        manager.StartCoroutine(_startWryFace());
    }