protected override void Read(NReader rdr) { TickId = rdr.ReadInt32(); Time = rdr.ReadInt32(); Position = Position.Read(rdr); Records = new TimedPosition[rdr.ReadInt16()]; for (var i = 0; i < Records.Length; i++) Records[i] = TimedPosition.Read(rdr); }
protected override void Read(NReader rdr) { TickId = rdr.ReadInt32(); Time = rdr.ReadInt32(); Position = Position.Read(rdr); Records = new TimedPosition[rdr.ReadInt16()]; for (int i = 0; i < Records.Length; i++) { Records[i] = TimedPosition.Read(rdr); } }
protected override void Read(ClientProcessor psr, NReader rdr) { TickId = rdr.ReadInt32(); Time = rdr.ReadInt32(); Position = Position.Read(rdr); Records = new TimedPosition[rdr.ReadInt16()]; for (var i = 0; i < Records.Length; i++) { Records[i] = TimedPosition.Read(rdr); } }
public Vector GetRecommendedPosition() { float minDistance = float.MaxValue; Vector minPosition = null; //TimedPosition debugPosition = null; long turnNow = VirtualSpaceTime.CurrentTurn; lock (_events) { IEnumerable <TimedEvent> potentialEventsEnumerable = _events.Where(potentialEvent => (potentialEvent.Type == IncentiveType.Recommended || potentialEvent.Type == IncentiveType.Required) && potentialEvent.TurnStart <= turnNow && turnNow <= potentialEvent.TurnEnd); foreach (TimedEvent event_ in potentialEventsEnumerable) { if (event_ is TimedPosition) { TimedPosition position = (TimedPosition)event_; float distance = position.Position.Distance(CurrentPosition); if (distance <= minDistance) { minDistance = distance; minPosition = position.Position; } } else if (event_ is Transition) { Transition transition = (Transition)event_; foreach (TransitionFrame frame in transition.GetActiveFrames(turnNow)) { TimedPosition position = frame.Position; float distance = position.Position.Distance(CurrentPosition); if (distance <= minDistance) { minDistance = distance; minPosition = position.Position; } } } } } //Logger.Debug("Moving bot towards " + minPosition); //if (debugPosition != null) //Logger.Debug("debugPosition: " + debugPosition.Type + ", start: " + debugPosition.TurnStart + ", end: " + debugPosition.TurnEnd + ", strategy id: " + debugPosition.StrategyId); return(minPosition); }