From 9c23c8f5511d033a99993e84a682c478de6ec995 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Fri, 20 Jul 2018 15:58:03 +0300 Subject: [PATCH] Civs start at least 3 tiles away from edge of board --- core/src/com/unciv/GameStarter.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/GameStarter.kt b/core/src/com/unciv/GameStarter.kt index be36540e01..ecdcc8b4b3 100644 --- a/core/src/com/unciv/GameStarter.kt +++ b/core/src/com/unciv/GameStarter.kt @@ -1,5 +1,6 @@ package com.unciv +import com.badlogic.gdx.math.Vector2 import com.unciv.logic.GameInfo import com.unciv.logic.civilization.CivilizationInfo import com.unciv.logic.map.TileMap @@ -14,8 +15,15 @@ class GameStarter(){ gameInfo.tileMap.gameInfo = gameInfo // need to set this transient before placing units in the map - val freeTiles = gameInfo.tileMap.values.toMutableList() - val playerPosition = freeTiles.toList().getRandom().position + fun vectorIsWithinNTilesOfEdge(vector: Vector2,n:Int): Boolean { + return vector.x < mapRadius-n + && vector.x > n-mapRadius + && vector.y < mapRadius-n + && vector.y > n-mapRadius + } + + val freeTiles = gameInfo.tileMap.values.toMutableList().filter { vectorIsWithinNTilesOfEdge(it.position,3)}.toMutableList() + val playerPosition = freeTiles.getRandom().position gameInfo.civilizations.add(CivilizationInfo(civilization, playerPosition, gameInfo)) // first one is player civ freeTiles.removeAll(gameInfo.tileMap.getTilesInDistance(playerPosition,6))