Example #1
0
    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";
    }
Example #2
0
    /*
     * 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();
        }
    }
Example #3
0
    void OnTriggerEnter(Collider other)
    {
        ShipReference shipRef = other.GetComponent <ShipReference>();

        if (shipRef != null)
        {
            ParentStation.OnDetectDocking(ID, shipRef.ParentShip);
        }
    }
Example #4
0
    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);
        }
    }