Ejemplo n.º 1
0
 public void EnergyStoreInput(int mouseType)
 {
     if (playerAnimator.playerCam != null)
     {
         playerMotor.OnCharacterAlignWithCamera();
     }
     if (mouseType == 0)
     {
         playerAnimator.EnergyStoreInput(0);
         if (playerInfo.GetVital((int)VitalName.Energy).CurValue < playerInfo.MaxEnergy)
         {
             playerInfo.GetVital((int)VitalName.Energy).BaseValue += 1;
         }
     }
     else
     {
         playerAnimator.EnergyStoreInput(1);
     }
 }
Ejemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        CheckCanMove();

        CheckSkillState();

        TP_Animator.CharacterState lastState = playerAnimator.State;

        playerHealth = playerInfo.GetVital((int)VitalName.Health);

        aiRig.AI.WorkingMemory.SetItem("DyingHealth", (int)(playerHealth.MaxValue * 0.1f));
        aiRig.AI.WorkingMemory.SetItem("health", playerHealth.CurValue);
        if (playerInfo.Level != _level)
        {
            aiRig.AI.WorkingMemory.SetItem("level", playerInfo.Level);
        }
        if (_speed != playerInfo.GetAbility((int)(AbilityName.MoveSpeed)).CurValue)
        {
            _speed = playerInfo.GetAbility((int)(AbilityName.MoveSpeed)).CurValue;
            aiRig.AI.WorkingMemory.SetItem("forwardSpeed", _speed);
        }

        rayCastTest();

        _state  = aiRig.AI.WorkingMemory.GetItem <string>("state");
        _attack = aiRig.AI.WorkingMemory.GetItem <string>("attackWay");

        if (_canShopping != playerInfo.CanShopping)
        {
            _canShopping = playerInfo.CanShopping;
            aiRig.AI.WorkingMemory.SetItem("canShopping", _canShopping);
        }

        if (_atHome != aiRig.AI.WorkingMemory.GetItem <bool>("atHome"))
        {
            aiRig.AI.WorkingMemory.SetItem("atHome", _atHome);
        }
        if (_atEnemyHome != aiRig.AI.WorkingMemory.GetItem <bool>("atEnemy"))
        {
            aiRig.AI.WorkingMemory.SetItem("atEnemy", _atEnemyHome);
        }

        if (_state == "runningForward")
        {
            if (lastState != TP_Animator.CharacterState.KnockingDown && lastState != TP_Animator.CharacterState.StandingUp && playerAnimator.CanMove())
            {
                if (playerAnimator.MoveDirection != TP_Animator.Direction.Forward)
                {
                    playerAnimator.MoveDirection = TP_Animator.Direction.Forward;
                    playerAnimator.State         = TP_Animator.CharacterState.Running;
                }
            }
        }

        if (_state == "runningBack")
        {
            if (lastState != TP_Animator.CharacterState.KnockingDown && lastState != TP_Animator.CharacterState.StandingUp && playerAnimator.CanMove())
            {
                playerAnimator.MoveDirection = TP_Animator.Direction.Backward;
                playerAnimator.State         = TP_Animator.CharacterState.Running;
            }
        }

        if (_state == "StoreEnergy")
        {
            if (!aiRig.AI.WorkingMemory.ItemExists("storeEnergyTimer"))
            {
                aiRig.AI.WorkingMemory.SetItem("storeEnergyTimer", 0);
            }
            float SETimer = aiRig.AI.WorkingMemory.GetItem <float>("storeEnergyTimer");
            if (SETimer < 5)
            {
                SETimer += Time.deltaTime;
                aiRig.AI.WorkingMemory.SetItem("storeEnergyTimer", SETimer);
                playerController.EnergyStoreInput(0);
            }
            else
            {
                _state = "Idle";
                aiRig.AI.WorkingMemory.SetItem("Task", 0);
                aiRig.AI.WorkingMemory.RemoveItem("storeEnergyTimer");
                playerAnimator.EnergyStoreInput(1);
            }
        }

        if (_state != playerAnimator.State.ToString())
        {
            if (_state == "Dead")
            {
                playerAnimator.Die();
            }
            if (lastState == TP_Animator.CharacterState.KnockingDown && !playerAnimator.LockAnimating)
            {
                playerAnimator.StandUp();
            }

            if (lastState != TP_Animator.CharacterState.KnockingDown && lastState != TP_Animator.CharacterState.StandingUp && lastState != TP_Animator.CharacterState.EnergyStoring && playerAnimator.Mode != TP_Animator.CharacterMode.Skilling)
            {
                switch (_state)
                {
                case "Idle":
                    playerAnimator.MoveDirection = TP_Animator.Direction.Stationary;
                    playerAnimator.State         = TP_Animator.CharacterState.Idle;
                    break;
                }
            }
        }

        if (_attack == "MagicAttack")
        {
            if (!playerAnimator.LockAttacking && !playerAnimator.LockAnimating)
            {
                if (lastState != TP_Animator.CharacterState.KnockingDown && lastState != TP_Animator.CharacterState.StandingUp && lastState != TP_Animator.CharacterState.EnergyStoring)
                {
                    playerAnimator.LockAttacking = true;
                    playerController.MagicAttackInput(0);
                }
            }
        }
    }