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]; } }
public void AssignTarget(ICAPTarget s) { if (targets.Contains(s)) { target = s; } }
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(); } } }
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); }
public void RemoveTargetS(ICAPTarget s) { if (targets.Contains(s)) { targets.Remove(s); } if (target == s) { // ResetTarget (); target = null; } }
public void ResetTarget() { if (target == null && targets.Count != 0) { target = targets [0]; } if (pdTargets.Count != 0) { pdTarget = pdTargets [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); }
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]; } } }
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 (); } } }
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]; } } }
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"); }