/// <returns> /// True if the packed arrived /// </returns> public bool Step() { if (_Tail == null) { return true; } if (_Tail.Step (_Receiver.PositionX, _Receiver.PositionY)) { _Tail = _Tail._Next; } if (_Tail == null) { _Receiver.AddPiece (_PieceId); return true; } return false; }
public Packet(Node sender, Node receiver, int pieceId) { _Sender = sender; _Receiver = receiver; _PieceId = pieceId; var x = _Sender.PositionX; var y = _Sender.PositionY; for (int i = 0; i < PartsPerPiece; i++) { _Tail = new PacketTail ( this, 0.3 + 0.3 * _R.NextDouble (), _Tail); } }
public PacketTail(Packet packet, double size, PacketTail next) { _Packet = packet; _Size = size; _Next = next; _Delay = _R.Next (1, 4); }