protected void SendMessage(Agent senderAgent, Agent currentSenderAgent, Agent receiverAgent, string receiverId, BroadcastType messageType, MessagesContent messageContent, Ruler rulerAgent) { var message = new Message { CurrentSenderAgent = currentSenderAgent, CurrentSenderAgentId = currentSenderAgent.AgentId, SenderAgentId = senderAgent.AgentId, SenderAgent = senderAgent, ReceiverAgent = receiverAgent, ReceiverAgentId = receiverId, MessageContent = messageContent, MessageType = messageType }; if (Position.Position.CalculateDistance(message.ReceiverAgent.Position.Position) <= RadioRange) { message.CurrentReceiverAgent = message.ReceiverAgent; message.CurrentReceiverAgentId = message.ReceiverAgentId; } else { var temp = FindNearestMessenger(Position, receiverAgent.Position, message); message.RulerPingReply = rulerAgent; message.CurrentReceiverAgent = temp; message.CurrentReceiverAgentId = temp.AgentId; } Container.ContainerMedia.SendMessage(message.Copy()); }
protected void SendBroadcastMessage(Agent senderAgent, Agent currentSenderAgent, BroadcastType messageType, MessagesContent messageContent, int iBroadcastNum) { var message = new Message { CurrentSenderAgent = currentSenderAgent, CurrentSenderAgentId = currentSenderAgent.AgentId, SenderAgentId = senderAgent.AgentId, SenderAgent = senderAgent, ReceiverAgent = null, ReceiverAgentId = "-1", MessageContent = messageContent, MessageType = messageType, NumOfBroadcastSteps = iBroadcastNum, CurrentReceiverAgentId = "-1", CurrentReceiverAgent = null }; Container.ContainerMedia.SendMessage(message.Copy()); }
private void SendBroadcastMessage(Agent senderAgent, Agent currentSenderAgent, BroadcastType messageType, MessagesContent messageContent, int iBroadcastNum) { if (Status == State.Failed) { return; } var message = new Message { CurrentSenderAgent = currentSenderAgent, CurrentSenderAgentId = currentSenderAgent.AgentId, SenderAgentId = senderAgent.AgentId, SenderAgent = senderAgent, ReceiverAgent = null, ReceiverAgentId = "-1", MessageContent = messageContent, MessageType = messageType, NumOfBroadcastSteps = iBroadcastNum }; var messengerAgent = FindNearestMessenger(Position); if (messengerAgent == null) { RadioRange += 50; SendBroadcastMessage(senderAgent, currentSenderAgent, messageType, messageContent, iBroadcastNum); return; } message.CurrentReceiverAgent = messengerAgent; message.CurrentReceiverAgentId = messengerAgent.AgentId; Container.ContainerMedia.SendMessage(message.Copy()); }