public void getClosestEnemy() { targetingDistance = float.MaxValue; float lastEnemy = float.MaxValue; Enemy enemy = null; foreach (Enemy m in enemies) { Vector3 mPos = m.getComponent<Spatial>().position; Vector3 pPos = ((Game1)Game).getPlayerSpatial().position; Vector3 pFoc = Vector3.Normalize(((Game1)Game).getPlayerSpatial().focus - pPos); float checkDistance = (mPos - (pPos + (Vector3.Dot(mPos - pPos, pFoc) * pFoc))).Length(); float ship = checkDistance; if (ship < lastEnemy && Vector3.Dot(Vector3.Normalize(mPos - pPos), pFoc) >= 0) { targetingDistance = ship; lastEnemy = ship; enemy = m; } } closestEnemy = enemy; }
public void removeEnemy(Enemy enemy) { for (int i = 0; i < enemies.Count; i++) { if (enemies[i] == enemy) { enemies.Remove(enemy); break; } } }
public void add(Enemy enemy) { enemies.Add(enemy); }