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); } } } }
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); } } } }