void OnTriggerEnter2D(Collider2D col) { //we hit a smol rock, destroy it if (col.tag == "Debris") { Destroy(this.gameObject); } //we hit the player, hurt it if (col.tag == "Player") { player.takeDamage(damage); player.ActivatePlayerShield(true); //< true because damage was dealt Destroy(this.gameObject); } if (col.tag == "medium" || col.tag == "large") { Destroy(this.gameObject); } if (col.gameObject.tag == "TetheredPart") { TetheredObject tetherObject = col.gameObject.GetComponent <TetheredObject>(); tetherObject.HandleImpact(); } }
// Use this for initialization void Start() { _triggeredOnce = false; _shipPart = GameObject.FindGameObjectWithTag("TetheredPart"); theTextBox = FindObjectOfType <TextBoxManager>(); _tetheredObjectScript = _shipPart.GetComponent <TetheredObject> (); }
public void setPullPosition(RaycastHit _hit) { amPulling = true; tetheredObject = new TetheredObject() { attachedTo = _hit.collider.gameObject, relativeHitPoint = _hit.point - _hit.collider.gameObject.transform.position }; }
public void setTetherPosition(RaycastHit _hit) { amTethered = true; tetheredObject = new TetheredObject() { attachedTo = _hit.collider.gameObject, relativeHitPoint = _hit.point - _hit.collider.gameObject.transform.position }; tetherLength = Vector3.Distance(tetheredObject.attachedTo.gameObject.transform.position + tetheredObject.relativeHitPoint, transform.position); }
void OnCollisionEnter2D(Collision2D col) { if (splitactivated) { Split(); } //if this is a debris object and its colliding with player if (gameObject.tag == "Debris") { //handle player damage and knockback if (col.gameObject.tag == "Player") { Player playerObject = col.gameObject.GetComponent <Player>(); //calculate damage to deal, knockback is true float damageAmount = CalculateAngularDamageAndKnockback(col, true); playerObject.takeDamage(damageAmount); if (damageAmount > 0) { playerObject.ActivatePlayerShield(true); } //< true since damage was dealt else { playerObject.ActivatePlayerShield(false); } //< false since no damage dealt } //handled enemy damage and knockback if (col.gameObject.tag == "Enemy") { EnemyCollision enemyObject; if (enemyObject = col.gameObject.GetComponent <EnemyCollision>()) { //calculate damage to deal, knockback is true enemyObject.TakeDamage(CalculateAngularDamageAndKnockback(col, false)); } } if (col.gameObject.tag == "TetheredPart") { TetheredObject tetherObject = col.gameObject.GetComponent <TetheredObject>(); //calculate damage to deal, knockback is true float damageAmount = CalculateAngularDamageAndKnockback(col, false); //if the damage is over a limit, cause a hit to the tether object if (damageAmount > 10) { tetherObject.HandleImpact(); } } } }
void OnTriggerEnter2D(Collider2D other) { if (other.tag == "TetheredPart" && other.GetComponent <TetheredObject>().tetherOn&& !_wasTriggered) { //set triggered to true (to prevent multiple calls) _wasTriggered = true; TetheredObject tether = other.GetComponent <TetheredObject>(); tether.tetherOn = false; tether.ShrinkAndDestroy(); //disable collisions _player.GetComponent <CircleCollider2D>().enabled = false; //disable fuel loss _player.GetComponent <Player>().DisableFuelLoss(); //disable camera follow and center camera //StartCoroutine(CenterCamera()); BeginCutscene(); } }