Beispiel #1
0
    public void OnHit(int damage, int direction)
    {
        if ((m_playercontroller.Currentstate == PlayerController.PlayerState.Active ||
             m_playercontroller.Currentstate == PlayerController.PlayerState.InHitAnimation ||
             m_playercontroller.Currentstate == PlayerController.PlayerState.InJumpAnimation ||
             m_playercontroller.Currentstate == PlayerController.PlayerState.Stunned)
            &&
            !m_playercontroller.isInvulnerable)

        {
            Health -= damage;
            Charge += 10;
            m_characterController.Animation_GetHit();
            Move(0f);
            m_characterController.Launch(direction, stunLaunchPower);



            if (Health <= 0)
            {
                KillCharacter();
            }
        }
        else if (m_playercontroller.Currentstate == PlayerController.PlayerState.Blocking && !m_playercontroller.IsBlockingSameDirectionAsHit(direction))
        {
            Health -= damage;
            Charge += 10;

            m_characterController.Animation_GetHit();
            Move(0f);
            m_characterController.Launch(direction, stunLaunchPower);
            Block(false);


            if (Health <= 0)
            {
                KillCharacter();
            }
        }

        else if (m_playercontroller.Currentstate == PlayerController.PlayerState.Blocking && m_playercontroller.IsBlockingSameDirectionAsHit(direction))
        {
            m_characterController.Launch(direction, hitLaunchPower);
            Charge += 5;
        }
    }