public TileViewModel(List <UnitAPI> tileUnits, GameViewModel gameView, int x, int y, TileAPI tile) { this.tile = tile; this.gameView = gameView; this.tileUnits = tileUnits; if (tile is Plain) { Type = "Terre"; //Color = "Wheat"; ImageSource = "plain.png"; } if (tile is Forest) { Type = "Forêt"; //Color = "ForestGreen ImageSource = "forest.png"; } if (tile is Water) { Type = "Water"; //Color = "DarkBlue"; ImageSource = "water.png"; } if (tile is Mountain) { Type = "Moutain"; //Color = "Brown"; ImageSource = "mountain.png"; } X = x; Y = y; }
private void _On_MapboxTileAPI_tile_ready() { _LoadTerrainData(); RemoveChild(api); api.QueueFree(); api = null; }
private void _LoadTerrainData() { var file = new File(); if (file.FileExists($"user://addons/terranova/{WorldPos.z}.{WorldPos.x}.{WorldPos.y}.png")) { _LoadTerrainFromImage(); } else { if (api == null) { api = new TileAPI(); api.Connect("tile_ready", this, "_On_MapboxTileAPI_tile_ready"); } AddChild(api); api.RequestTile(WorldPos); } }
public TileViewModel(int row, int column, TileAPI tile) { this.tile = tile; if (tile is Plain) { Type = "Terre"; Color = "Brown"; } if (tile is Forest) { Type = "Forêt"; Color = "DarkGreen"; } if (tile is Water) { Type = "Mer"; Color = "SlateBlue"; } Row = row; Column = column; }
public void canMoveTest() { GameBuilder builder = new GameBuilder(); builder.setPlayer1("john", Race.Human); builder.setPlayer2("john", Race.Orc); TileFlyweight tilesFly = new TileFlyweight(); TileAPI M = tilesFly.getTile(TileType.Mountain); TileAPI F = tilesFly.getTile(TileType.Forest); TileAPI P = tilesFly.getTile(TileType.Plain); TileAPI W = tilesFly.getTile(TileType.Water); TileAPI[,] tiles = { // 0 1 2 { P, P, P }, //0 { M, P, W }, //1 { P, F, P }, //2 }; builder.game.map = new Map(tiles); builder.game.player1.units = new List <UnitAPI>(); builder.game.player2.units = new List <UnitAPI>(); Game.INSTANCE = builder.game; builder.game.map.getTile(0, 1); Human h1 = new Human(1, 1); builder.game.player1.units.Add(h1); Assert.IsTrue(h1.canMove(0, 1)); Assert.IsTrue(h1.canMove(1, 0)); Assert.IsTrue(h1.canMove(2, 1)); Assert.IsTrue(h1.canMove(1, 2)); Assert.IsFalse(h1.canMove(0, 0)); Assert.IsFalse(h1.canMove(0, 2)); Assert.IsFalse(h1.canMove(2, 0)); Assert.IsFalse(h1.canMove(2, 2)); h1.move(0, 1); Assert.AreEqual(0, h1.x); Assert.AreEqual(1, h1.y); Assert.AreEqual(1, h1.movePoints); h1.move(1, 1); Assert.AreEqual(1, h1.x); Assert.AreEqual(1, h1.y); Assert.AreEqual(0, h1.movePoints); // Not enough move points Assert.IsFalse(h1.canMove(0, 1)); builder.game.player2.units = new List <UnitAPI>(); Orc o1 = new Orc(1, 1); builder.game.player1.units.Add(o1); Assert.IsTrue(o1.canMove(0, 1)); Assert.IsTrue(o1.canMove(1, 0)); Assert.IsTrue(o1.canMove(2, 1)); Assert.IsFalse(o1.canMove(1, 2)); Assert.IsFalse(o1.canMove(0, 0)); Assert.IsFalse(o1.canMove(0, 2)); Assert.IsFalse(o1.canMove(2, 0)); Assert.IsFalse(o1.canMove(2, 2)); }