Beispiel #1
0
 public void ResetTarget()
 {
     if (target == null && targets.Count != 0)
     {
         target = targets [0];
     }
     try{
         foreach (IPDTarget t in pdTargets)
         {
             if (t == null || t.GetGameObject() == null)
             {
                 RemoveTargetT(t);
             }
         }
     }
     catch {
         pdTargets.Remove(pdTargets [0]);
         Debug.Log("<color=red>Avoiding Target Lockup Error</color> This warning can be safely ignored.");
     }
     if (pdTargets.Count != 0)
     {
         pdTargets.OrderBy(
             targ => Vector3.Distance(this.transform.position, targ.GetGameObject().transform.position)).ToList();
         pdtarget = pdTargets [0];
     }
 }
Beispiel #2
0
 public void AssignTarget(ICAPTarget s)
 {
     if (targets.Contains(s))
     {
         target = s;
     }
 }
Beispiel #3
0
 public virtual void OnTriggerEnter(Collider col)
 {
     if (tType == TurretType.CAPITAL)
     {
         ICAPTarget s = col.GetComponent <ICAPTarget> ();
         if (s != null)
         {
             if (s.isHostile(self.faction))
             {
                 targets.Add(s);
             }
         }
     }
     else if (tType == TurretType.PD)
     {
         IPDTarget s = col.GetComponent <IPDTarget> ();
         if (s != null)
         {
             if (s.isHostile(self.faction))
             {
                 pdTargets.Add(s);
             }
             SortList();
         }
     }
 }
Beispiel #4
0
 public void Launch(GameObject Source, ICAPTarget target)
 {
     Target = target.GetGameObject();
     Agent.Warp(CalculateClosest(Source.GetComponent <Collider>(), target.GetGameObject().transform));
     transform.LookAt(Target.transform.position);
     Agent.SetDestination(Target.transform.position);
     Agent.angularSpeed = .01f;
     Agent.speed        = 14f;
 }
    public void FireMissile(GameObject source, ICAPTarget cap)
    {
        GameObject     G = GameObject.Instantiate(Missile.MissilePrefab);
        MissileControl M = G.AddComponent <MissileControl> ();

        //	M.MissileEngine = LoadedMissile.MissileEngine;
        M.MissileFuelTank = LoadedMissile.MissileFuel;
        M.MissileWarhead  = LoadedMissile.MissileWarhead;
        M.Launch(source, cap);
    }
Beispiel #6
0
 public void RemoveTargetS(ICAPTarget s)
 {
     if (targets.Contains(s))
     {
         targets.Remove(s);
     }
     if (target == s)
     {
         //	ResetTarget ();
         target = null;
     }
 }
Beispiel #7
0
    public void ResetTarget()
    {
        if (target == null && targets.Count != 0)
        {
            target = targets [0];
        }

        if (pdTargets.Count != 0)
        {
            pdTarget = pdTargets [0];
        }
    }
Beispiel #8
0
    bool TargetLocked()
    {
        RaycastHit hit;

        Debug.DrawRay(transform.position, transform.forward * MaxRange, Color.cyan);
        if (Physics.Raycast(transform.position, transform.forward * MaxRange, out hit))
        {
            Debug.DrawRay(transform.position, transform.forward * MaxRange, Color.red);
            if (hit.collider.GetComponent <ICAPTarget> () != null)
            {
                ICAPTarget i = hit.collider.GetComponent <ICAPTarget> ();
                if (i.isHostile(Faction))
                {
                    return(true);
                }
            }
        }
        return(false);
    }
Beispiel #9
0
    public void OnTriggerExit(Collider col)
    {
        Ship s = col.GetComponent <Ship> ();

        if (s)
        {
            if (targets.Contains(s))
            {
                targets.Remove(s);
            }
            if (target == s)
            {
                target = null;
            }
            if (targets.Count != 0)
            {
                target = targets [0];
            }
        }

        IPDTarget t = col.GetComponent <IPDTarget> ();

        if (t != null)
        {
            if (pdTargets.Contains(t))
            {
                pdTargets.Remove(t);
            }
            if (pdtarget == t)
            {
                pdtarget = null;
            }
            if (pdTargets.Count != 0)
            {
                pdtarget = pdTargets [0];
            }
        }
    }
Beispiel #10
0
    public void OnTriggerEnter(Collider col)
    {
        IPDTarget t = col.GetComponent <IPDTarget> ();

        if (t != null)
        {
            if (t.isHostile(self.faction))
            {
                pdTargets.Add(t);
                //	ResetTarget ();
            }
        }
        ICAPTarget s = col.GetComponent <ICAPTarget> ();

        if (s != null)
        {
            if (s.isHostile(self.faction))
            {
                targets.Add(s);
                //	ResetTarget ();
            }
        }
    }
Beispiel #11
0
    public virtual void OnTriggerExit(Collider col)
    {
        ICAPTarget s = col.GetComponent <ICAPTarget> ();
        IPDTarget  t = col.GetComponent <IPDTarget> ();

        if (s != null)
        {
            if (targets.Contains(s))
            {
                targets.Remove(s);
            }
            if (target == s)
            {
                target = null;
            }
            if (targets.Count != 0)
            {
                target = targets [0];
            }
        }
        else if (t != null)
        {
            if (pdTargets.Contains(t))
            {
                pdTargets.Remove(t);
            }
            if (pdTarget == t)
            {
                pdTarget = null;
            }
            if (pdTargets.Count != 0)
            {
                pdTarget = pdTargets [0];
            }
        }
    }
Beispiel #12
0
 public void Detonate(ICAPTarget targ)
 {
     targ.DealDamage(12f - (2f * Vector3.Distance(targ.GetGameObject().transform.position, transform.position)), transform.position, transform, MissileWarhead.Pattern);
     MissileWarhead.armed = false;
     StartCoroutine("Destroy");
 }