public void OnSelectShip(ShipBase ship) { ClearTargetData(); _selectedObject = ship.transform; if (_currentSelectMarker != null) { //remove current marker GameObject.Destroy(_currentSelectMarker.gameObject); } GameObject o = GameObject.Instantiate(Resources.Load("SelectedShipMarkerHostile")) as GameObject; _currentSelectMarker = o.GetComponent <SelectedObjMarker>(); o.transform.parent = transform; o.transform.localScale = new Vector3(1, 1, 1); _currentSelectMarker.Initialize(100f, ship.name); ShipReference shipRef = ship.ShipModel.GetComponent <ShipReference>(); TargetShieldValue.text = "SHLD " + (int)ship.Shield.Amount; TargetHullValue.text = "HULL " + (int)ship.HullAmount; GameObject hologram = GameObject.Instantiate(Resources.Load(ship.ShipModelID + "Hologram")) as GameObject; TargetHologram = hologram; hologram.transform.parent = HologramHolder3D; hologram.transform.localPosition = Vector3.zero; hologram.transform.localEulerAngles = Vector3.zero; float scale = shipRef.HologramScale; hologram.transform.localScale = new Vector3(scale, scale, scale); TargetDescLabel.text = shipRef.Name + " - " + "New Dawn"; TargetRepLabel.color = new Color(1, 0.3f, 0.3f); TargetRepLabel.text = "HOSTILE"; }
/* * public override void OnTriggerEnter(Collider other) * { * //Explode(); * //base.OnTriggerEnter(other); * //GameObject.Destroy(gameObject); * } */ public override void OnCollisionEnter(Collision collision) { Debug.Log(collision.collider.name); ShipReference hitShip = collision.collider.GetComponent <ShipReference>(); if (hitShip != null) { if (hitShip.ParentShip != Attacker) { //Debug.Log("Sending damage " + Damage.ShieldAmount + " to " + hitShip.ParentShip.name); Damage.HitLocation = collision.contacts[0].point; Damage = hitShip.ParentShip.Shield.ProcessDamage(Damage); if (Damage.HullAmount <= 1f) { Explode(); return; } //Debug.Log("Hull amount " + Damage.HullAmount); hitShip.ParentShip.ProcessHullDamage(Damage, Attacker); Explode(); } } else { Explode(); } }
void OnTriggerEnter(Collider other) { ShipReference shipRef = other.GetComponent <ShipReference>(); if (shipRef != null) { ParentStation.OnDetectDocking(ID, shipRef.ParentShip); } }
public virtual void OnCollisionEnter(Collision collision) { //Debug.Log("Hit something " + collision.collider.name); ShipReference hitShip = null; //Debug.Log(collision.collider.name); hitShip = collision.collider.GetComponent <ShipReference>(); if (hitShip != null) { if (hitShip.ParentShip == Attacker) { return; } else { //Debug.Log("Hit shield"); ShieldBase shield = hitShip.Shield.GetComponent <ShieldBase>(); if (shield.ParentShip == Attacker) { return; } if (Damage.DamageType != DamageType.Shock) { Damage.ShieldAmount *= DamageMultiplier; Damage.HullAmount *= DamageMultiplier; } if (Attacker == GameManager.Inst.PlayerControl.PlayerShip) { GameManager.Inst.SoundManager.PlayUISoundRateLimited("HitMarkerSoft", 0.1f); } Damage.HitLocation = collision.contacts[0].point; Damage = shield.ProcessDamage(Damage); if (Damage.HullAmount <= 1f) { GameObject.Destroy(this.gameObject); return; } hitShip.ParentShip.ProcessHullDamage(Damage, Attacker); GameObject.Destroy(this.gameObject); } } else { GameObject.Destroy(this.gameObject); } }