package org.pixelgaffer.turnierserver.gamelogic.interfaces;
import java.io.IOException;
import org.pixelgaffer.turnierserver.Airbrake;
import org.pixelgaffer.turnierserver.Logger;
import org.pixelgaffer.turnierserver.gamelogic.GameLogic;
import org.pixelgaffer.turnierserver.gamelogic.messages.LostMessage;
import lombok.Setter;
public class AiObject {
static final Logger logger = new Logger();
/**
* True, wenn die AI schon verloren hat (z.B. wenn sie aufgegeben hat)
*/
public boolean lost = false;
/**
* Die übrigen Rechenpunkte dieser AI
*/
public int mikrosLeft;
/**
* Der score der AI, der am Ende in die Datenbank gespeichert wird (z.B. +1 für den Sieger, -1 für den Verlierer)
*/
public int score = 0;
@Setter
private GameLogic<?, ?> logic;
@Setter
private Ai ai;
public boolean subtractMikros(int mikros) {
mikrosLeft -= mikros;
if(mikrosLeft <= 0 && !lost) {
loose("Die Ki hatte keine Zeit mehr");
}
return mikrosLeft < 0;
}
public void loose(String reason) {
try {
ai.disconnect();
} catch (IOException e) {
Airbrake.log(e).printStackTrace();
}
logic.sendToFronted(new LostMessage(reason, ai.getId(), logic.getGame().getFrontend().getRequestId(), logic.getGame().getUuid()));
lost = true;
logic.lost(ai);
}
}