private void OnTriggerEnter(Collider collider) { Debug.Log("boost collider"); if (collider.gameObject.tag == "Player") { Debug.Log("boost collider with player"); if (collider.transform != m_parentTransform) { //basically switch to the playerBigHitState; Debug.Log("boost collider with player other than themselves"); //Set hitlastby if (collider.transform.GetComponent <PlayerStats>().Invincible == false) { collider.gameObject.GetComponent <PlayerStats>().m_HitLastBy = m_stats; if (collider.transform.GetComponent <PlayerStats>().GetShieldState() == false) { Debug.Log("boost collider without shield"); // SFX FindObjectOfType <AudioManager>().Play("Crit"); //get the colliders BigHitState m_tempState = collider.transform.GetComponentInParent <PLayerBigHitState>(); //calculate the force acting on the hit player //var Force = collider.transform.position - m_stats.transform.position; var Force = m_offset; m_state.Direction = Force; m_tempState.Direction = -Force; Force.Normalize(); //Adds the force to the player we collided with Force = (Force * m_stats.m_boost.MaxForce * m_stats.m_boost.boostCriticalHit); collider.GetComponent <StateManager>().ChangeState(m_stats.PlayerBigHitState); Physics.IgnoreCollision(m_stats.GetComponent <Collider>(), collider, true); collider.GetComponent <PlayerStateManager>().SetCollider(m_stats.GetComponent <Collider>(), collider); m_tempState.Force = Force; m_state.GetComponent <StateManager>().ChangeState(m_stats.PlayerBigHitState); m_state.isTarget = false; m_BoxCollider.enabled = false; m_MeshRender.enabled = false; } } } else { Debug.Log("Collision with ourselves"); Debug.Log(collider.transform.GetInstanceID()); Debug.Log(m_parentTransform.GetInstanceID()); } } }
void Awake() { m_roundStart = true; m_renableCollisions = true; movementStates = gameObject.AddComponent <StateManager>(); driftState = gameObject.AddComponent <PlayerDriftState>(); jumpState = gameObject.AddComponent <PlayerJumpState>(); onPlanetState = gameObject.AddComponent <PlayerOnPlanetState>(); boostChargeState = gameObject.AddComponent <PlayerBoostChargeState>(); boostActiveState = gameObject.AddComponent <PlayerBoostActiveState>(); bigHitState = gameObject.AddComponent <PLayerBigHitState>(); respawnState = gameObject.AddComponent <RespawnState>(); }
public void PlayerLink(PlayerStats p_player) { m_stats = p_player; m_state = p_player.GetComponent <PLayerBigHitState>(); m_parentTransform = p_player.GetComponent <Transform>(); }