public void processMagnitude(IMagnitude magnitude) { var newCoordinates = currentGame.currentPlayer.currentCoordinate; var magnitudeCoordinates = magnitude.returnValues(); newCoordinates.coordinateX += magnitudeCoordinates.coordinateX; newCoordinates.coordinateY += magnitudeCoordinates.coordinateY; if (newCoordinates.coordinateX > currentGame.map.mapArray.GetUpperBound(0)) { newCoordinates.coordinateX = newCoordinates.coordinateX - currentGame.map.mapArray.GetUpperBound(0); } if (newCoordinates.coordinateX < currentGame.map.mapArray.GetLowerBound(0)) { newCoordinates.coordinateX = currentGame.map.mapArray.GetUpperBound(0) - newCoordinates.coordinateX; } if (newCoordinates.coordinateY > currentGame.map.mapArray.GetUpperBound(1)) { newCoordinates.coordinateY = newCoordinates.coordinateY - currentGame.map.mapArray.GetUpperBound(1); } if (newCoordinates.coordinateY < currentGame.map.mapArray.GetLowerBound(1)) { newCoordinates.coordinateY = currentGame.map.mapArray.GetUpperBound(1) - newCoordinates.coordinateY; } if (!checkLosingConditions(newCoordinates)) { currentGame.currentPlayer.updateCoordinate(newCoordinates); } else { removeLosingPlayer(); if (checkWinningConditions()) { currentGame.hasGameEnded = true; } } }
public void removeMagnitude(IMagnitude magnitude) { magnitudes.Remove(magnitude); }
public void addMagnitude(IMagnitude magnitude) { magnitudes.Add(magnitude); }