public override void WeaponCollide(Collider other)
    {
        BaseCharacterController EnemyController = other.gameObject.GetComponentInParent<BaseCharacterController>();

        if (m_NextState == this)
        {
            if (other.gameObject.layer == LayerMask.NameToLayer("CharacterWeapon") && m_Character != other.transform.parent.parent.gameObject.GetComponent<BaseCharacterController>())
            {

                if (m_Character.m_Opponent.m_CurrentState is AIBattleParryDown)
                {
                    m_NextState = new BattleCounterAttacked(m_Character);
                    m_Character.m_Opponent.m_CurrentState.m_NextState = new AIBattleCounterAttackDown(m_Character.m_Opponent);
                }

                if (m_Character.m_Opponent.m_CurrentState is AIBattleBlockDown)
                {
                    m_NextState = new BattleBlocked(m_Character);
                }

                if (m_Character.m_Opponent.m_CurrentState is IAttackState)
                {
                    m_Character.m_CurrentState = new BattleAttackDeflected(m_Character);
                }
            }
            else if (other.gameObject.layer == LayerMask.NameToLayer("CharacterBody") && m_Character != EnemyController)
            {
                if (m_Character.m_Opponent.m_CurrentState is AIBattleParryDown)
                {
                    m_NextState = new BattleCounterAttacked(m_Character);
                    m_Character.m_Opponent.m_CurrentState.m_NextState = new AIBattleCounterAttackDown(m_Character.m_Opponent);
                }

                else if (m_Character.m_Opponent.m_CurrentState is AIBattleBlockDown)
                {
                    m_NextState = new BattleBlocked(m_Character);
                }

                else
                {
                    m_NextState = new BattleSuccessfulAttack(m_Character);
                    m_Character.m_Opponent.GetHit(10);
                }

            }
        }
    }
Example #2
0
    public override void WeaponCollide(Collider other)
    {
        BaseCharacterController EnemyController = other.gameObject.GetComponentInParent <BaseCharacterController>();

        if (m_NextState == this)
        {
            if (other.gameObject.layer == LayerMask.NameToLayer("CharacterWeapon") && m_Character != other.transform.parent.parent.gameObject.GetComponent <BaseCharacterController>())
            {
                if (m_Character.m_Opponent.m_CurrentState is AIBattleParryDown)
                {
                    m_NextState = new BattleCounterAttacked(m_Character);
                    m_Character.m_Opponent.m_CurrentState.m_NextState = new AIBattleCounterAttackDown(m_Character.m_Opponent);
                }

                if (m_Character.m_Opponent.m_CurrentState is AIBattleBlockDown)
                {
                    m_NextState = new BattleBlocked(m_Character);
                }

                if (m_Character.m_Opponent.m_CurrentState is IAttackState)
                {
                    m_Character.m_CurrentState = new BattleAttackDeflected(m_Character);
                }
            }
            else if (other.gameObject.layer == LayerMask.NameToLayer("CharacterBody") && m_Character != EnemyController)
            {
                if (m_Character.m_Opponent.m_CurrentState is AIBattleParryDown)
                {
                    m_NextState = new BattleCounterAttacked(m_Character);
                    m_Character.m_Opponent.m_CurrentState.m_NextState = new AIBattleCounterAttackDown(m_Character.m_Opponent);
                }

                else if (m_Character.m_Opponent.m_CurrentState is AIBattleBlockDown)
                {
                    m_NextState = new BattleBlocked(m_Character);
                }

                else
                {
                    m_NextState = new BattleSuccessfulAttack(m_Character);
                    m_Character.m_Opponent.GetHit(10);
                }
            }
        }
    }