return false;
}
@Override
protected void CheckMessages() {
WarbotMessage msg = null;
TreeMap<KnightCandidate, Mission> boss = new TreeMap<KnightCandidate, Mission>();
ArrayList<KnightCandidate> candidatesAttack = new ArrayList<KnightCandidate>();
ArrayList<KnightCandidate> candidatesHelp = new ArrayList<KnightCandidate>();
ArrayList<KnightCandidate> candidatesFood = new ArrayList<KnightCandidate>();
// TODO: Check Message
while (!isMessageBoxEmpty()) {
msg = readMessage();
if (msg.getSender() == msg.getReceiver())
continue;
if (!MessageRefPos(msg) && !CommonMessages(msg))
if (msg.getAct().equals(Cst.Msg.goalRep)) {
AgentAddress k_aa = msg.getSender();
double k_x = msg.getFromX();
double k_y = msg.getFromY();
double k_score = DefinePriority(k_x, k_y, 1);
KnightCandidate k = new KnightCandidate(k_aa, k_score + 100
* Double.parseDouble(msg.getArg1()));
boss.put(k, new Mission(msg.getArg1(), msg.getSender(),
msg.getArg2(), toWBPoint(msg)));
Say("RLauncher receive goal response");
} else if (msg.getAct().equals(Cst.Msg.Goal.help)) {
if (missions.isEmpty()
|| Cst.Priority.compareTo(missions.first().getPriority(),
msg.getArg1()) > 0) {
WBPoint pos = msg.getLength() > 1 ? new WBPoint(
Double.parseDouble(msg.getArgN(2)), Double.parseDouble(msg
.getArgN(3))) : toWBPoint(msg);
Mission mission = new Mission(msg.getArg1(), msg.getSender(),
Cst.Msg.Goal.help, pos);
if (!missions.add(mission))
Say("Didn't add mission.");
else
send(msg.getSender(), Cst.Msg.helpRT,
new String[] { Integer.toString(getEnergyLevel()) });
} else if (msg.getSender() == missions.first().getNakamaAddress())
send(msg.getSender(), Cst.Msg.helpRT,
new String[] { Integer.toString(getEnergyLevel()) });
} else if (msg.getAct().equals(Cst.Msg.pong)) {
double radius = msg.getArg1().equals("Mobile") ? 22 : 32;
allies.put(msg.getSender(), new Ally(toWBPoint(msg), radius));
} else if (msg.getAct().equals(Cst.Msg.refreshMission)) {
if (msg.getArg1().equals(Cst.Msg.Goal.attack)
&& !missions.first().getMissionType()
.equals(Mission.MissionType.ATTACK))
send(msg.getSender(), Cst.Msg.cancel, Cst.Msg.Goal.attack);
} else if (msg.getAct().equals(Cst.Msg.attackRT)) {
double k_score = DefinePriority(msg.getFromX(), msg.getFromY(), 1);
KnightCandidate k = new KnightCandidate(msg.getSender(), k_score);
candidatesAttack.add(k);
} else if (msg.getAct().equals(Cst.Msg.helpRT)) {
int k_hp = Integer.parseInt(msg.getArg1());
double k_score = DefinePriority(msg.getFromX(), msg.getFromY(), k_hp);
KnightCandidate k = new KnightCandidate(msg.getSender(), k_score);
candidatesHelp.add(k);
} else if (msg.getAct().equals(Cst.Msg.helpRT)) {
double k_score = Integer.parseInt(msg.getArg1());
KnightCandidate k = new KnightCandidate(msg.getSender(), k_score);
candidatesFood.add(k);
} else if (msg.getAct().equals(Cst.Msg.Goal.explore))
explore = true;
}
if (candidatesAttack.size() > 0) {
Collections.sort(candidatesAttack);