protected void ChangeEnemyLocked(bool right) { List <e_EnemyAI> enemies = new List <e_EnemyAI>(GetEnemiesOnScreen(LockRange, AC.whatIsEnemy)); List <e_EnemyAI> sortedEnemies = new List <e_EnemyAI>(); while (enemies.Count > 0) { float distFromleft = Mathf.Infinity; e_EnemyAI nearest = null; for (int i = 0; i < enemies.Count; i++) { float dist; if ((dist = Cam.WorldToScreenPoint(enemies[i].Body.position).x) < distFromleft) { nearest = enemies[i]; distFromleft = dist; } } sortedEnemies.Add(nearest); enemies.Remove(nearest); } int index = sortedEnemies.IndexOf(EnemyLocked); index = (int)Utilities.AddWithLimit(index, right ? 1 : -1, 0, sortedEnemies.Count - 1, false); EnemyLocked = sortedEnemies[index]; }
public void Unlock() { EnemyLocked = null; IsLocked = false; PostProcess.SetLockPP(false); }
void Lock(e_EnemyAI enemy) { EnemyLocked = enemy; IsLocked = true; PostProcess.SetLockPP(true); }