Esempio n. 1
0
    public void Hit(IAIFightingMoves attack)
    {
        Debug.Log(this.gameObject.name + " is HIT");

        if (attack == IAIFightingMoves.Slash && m_canbehitbyslash != false)
        {
            Debug.Log(this.gameObject.name + " dead by Slash");
            Die();
        }
        else if (attack == IAIFightingMoves.Stab && m_canbehitbystab != false)
        {
            Debug.Log(this.gameObject.name + " dead by Stab");
            Die();
        }
    }
Esempio n. 2
0
    void Update()
    {
        if (m_inbattlemode == true)
        {
            if (m_fightingmovetouse != IAIFightingMoves.SlashBlock)
            {
                m_canbehitbyslash = true;
            }
            else
            {
                m_canbehitbyslash = false;
            }

            if (m_fightingmovetouse != IAIFightingMoves.StabBlock)
            {
                m_canbehitbystab = true;
            }
            else
            {
                m_canbehitbystab = false;
            }

            m_fightbehaviour = CalculateFightBehaviour(m_nearbynode, m_mediumnode, m_farnode, m_anywherenode);

            m_fightcounter += Time.deltaTime;
            if (m_onground == true)
            {
                if (m_fightcounter > m_fightdelay)
                {
                    m_fightingmovetouse = CalculateFightMove(m_fightbehaviour);

                    //Debug.Log("Distance till player: " + DistanceCheck(m_player));
                    //Debug.Log("AI Fight distance: " + m_fightbehaviour);
                    //Debug.Log("AI Fighting move: " + m_fightingmovetouse);

                    m_fightcounter = 0;
                }
            }

            switch (m_fightingmovetouse)
            {
            case IAIFightingMoves.Slash:
                StopMoving();
                ChangeAnimationState(IEntityAnimationState.SlashAttack);
                break;

            case IAIFightingMoves.Stab:
                StopMoving();
                ChangeAnimationState(IEntityAnimationState.StabAttack);
                break;

            case IAIFightingMoves.SlashBlock:
                StopMoving();
                ChangeAnimationState(IEntityAnimationState.SlashBlock);
                break;

            case IAIFightingMoves.StabBlock:
                StopMoving();
                ChangeAnimationState(IEntityAnimationState.StabBlock);
                break;

            case IAIFightingMoves.DashTowards:
                StopMoving();
                DashTowards(m_fastestmovespeed);
                ChangeAnimationState(IEntityAnimationState.Dashing);
                break;

            case IAIFightingMoves.DashAway:
                StopMoving();
                DashAway(m_fastestmovespeed);
                ChangeAnimationState(IEntityAnimationState.Dashing);
                break;

            case IAIFightingMoves.Jump:
                //StopMoving();
                if (m_onground != false)
                {
                    Jump(m_jumpspeed);
                    m_onground = false;
                }
                ChangeAnimationState(IEntityAnimationState.Jumping);
                break;

            //case IAIFightingMoves.JumpAttack:
            //StopMoving();
            //ChangeAnimationState(IEntityAnimationState.JumpAttack);
            //break;

            case IAIFightingMoves.WalkTowards:
                WalkTowardsTarget(m_slowestmovespeed);
                ChangeAnimationState(IEntityAnimationState.Walking);
                break;

            //case IAIFightingMoves.RunTowards:
            //RunTowardsTarget(m_fastestmovespeed);
            //ChangeAnimationState(IEntityAnimationState.Running);
            //break;

            case IAIFightingMoves.WalkAway:
                WalkAwayFromTarget(m_slowestmovespeed);
                ChangeAnimationState(IEntityAnimationState.Walking);
                break;

                //case IAIFightingMoves.RunAway:
                //RunAwayFromTarget(m_fastestmovespeed);
                //ChangeAnimationState(IEntityAnimationState.Running);
                //break;
            }
        }
    }