public static bool canMoveAndDash(this Unit unit, double x, double y) { var distance = Solver.distance(x - unit.X, y - unit.Y); return(unit.Energy > unit.dashCost(distance - unit.Moves - Solver.ERROR2)); }
public static double distance(this Body body, Unit unit) { return(Solver.distance(body.X - unit.X, body.Y - unit.Y)); }
public static int dashCost(this Unit unit, double x, double y) { return(unit.dashCost(Solver.distance(x - unit.X, y - unit.Y))); }
public static double distance(this Unit unit, Unit unit2) { return(Solver.distance(unit.X - unit2.X, unit.Y - unit2.Y)); }
public static double distance(this Body body, Body body2) { return(Solver.distance(body.X - body2.X, body.Y - body2.Y)); }
public static double distance(this Unit unit, Body body) { return(Solver.distance(unit.X - body.X, unit.Y - body.Y)); }
public static bool canTransferThisTurn(this Unit transport, Unit miner) { return(transport.remainingCapacity() > 0 && Solver.inRangeE2(transport.distance(miner), transport.Job.Range + transport.Moves)); }
public static bool inMiningRangeThisTurn(this Unit unit, Body body) { return(Solver.inRangeE2(unit.distance(body), unit.Job.Range + body.Radius + unit.Moves)); }
public double lengthSquared() { return(Solver.distanceSquared(x, y)); }
public double length() { return(Solver.distance(x, y)); }