public void UnStacker(List <RemoteMine> bombs) { var closest = bombs.Where( x => !x.Equals(this) && x.Stacker.IsActive && x.Position.Distance2D(Position) <= 200) .OrderBy(y => y.Position.Distance2D(Position)) .FirstOrDefault(); if (closest != null) { closest.Stacker.Counter--; StackerMain = null; } else if (Stacker.IsActive) { Stacker.Counter--; if (Stacker.IsActive) { closest = bombs.Where( x => !x.Equals(this) && !x.Stacker.IsActive && x.Position.Distance2D(Position) <= 200) .OrderBy(y => y.Position.Distance2D(Position)) .FirstOrDefault(); if (closest != null) { RefreshStacker(bombs); } } } }
public void InitNewStacker(RemoteMine target, List <RemoteMine> bombs) { var closest = bombs.Where( x => !x.Equals(this) && x.Stacker.IsActive && x.Position.Distance2D(target.Position) <= 200) .OrderBy(y => y.Position.Distance2D(target.Position)) .FirstOrDefault(); if (closest != null) { closest.Stacker.Counter++; } else { Stacker.Counter++; } }
public RemoteMine UpdateStacker(IEnumerable <RemoteMine> bombs) { var closest = bombs.Where( x => !x.Equals(this) && x.Stacker.IsActive && x.Position.Distance2D(Position) <= 200) .OrderBy(y => y.Position.Distance2D(Position)) .FirstOrDefault(); if (closest != null) { closest.Stacker.Counter++; StackerMain = closest; } else { Stacker.Counter++; } return(this); }