private void ProcessUnitWithUnitsCollision(Unit unit) { List <Unit> neighbours = grid.GetUnitNeighbours(unit); for (int i = 0; i < neighbours.Count; i++) { if (unit == neighbours[i]) { continue; } if (!neighbours[i].IsAlive) { continue; } if (!MathHelper.AreUnitsCollide(unit, neighbours[i])) { continue; } if (AreUnitsInOneTeam(unit, neighbours[i])) { MakeUnitsBounce(unit, neighbours[i]); } else { MakeUnitsFight(unit, neighbours[i]); } } }
private bool IsUnitCollideWithOthers(Unit unit) { foreach (Unit anotherUnit in units) { if (unit == anotherUnit) { break; } if (MathHelper.AreUnitsCollide(unit, anotherUnit)) { return(true); } } return(false); }