package fireDetection;
import colisionDetection.BotPosition;
import colisionDetection.BotPositionsMessage;
import colisionDetection.ScoreEventHandler;
import colisionDetection.Coordinates;
import java.util.List;
public class FireDetectionService {
private List<BotPosition> botPositionList;
private final ScoreEventHandler scoreEventHandler;
public FireDetectionService(ScoreEventHandler scoreEventHandler) {
this.scoreEventHandler = scoreEventHandler;
}
public void updateState(BotPositionsMessage botPositionMessage) {
botPositionList = botPositionMessage.getPositions();
System.out.println("state updated");
}
public void fire(String playerId) {
System.out.println("---"+playerId + " - shot!");
Coordinates playerCoordinates = null;
for (BotPosition botPosition : botPositionList) {
if (botPosition.getId().equals(playerId)) {
playerCoordinates = new Coordinates(botPosition.getCoordinates());
}
}
if (playerCoordinates == null) {
return;
}
for (BotPosition botPosition : botPositionList) {
if (botPosition.getCoordinates()[0] == playerCoordinates.getX()
&& botPosition.getCoordinates()[1] > playerCoordinates.getY()) {
System.out.println("player "+botPosition.getId()+" hit");
scoreEventHandler.handleScoreEvent(botPosition.getId());
}
}
}
}