function terrainGen($mapDoc, $terrainDoc) { $terrainArr = json_decode($terrainDoc->hexStr->hexEncodedStr); $map = $mapDoc->map; $this->terrain->mapUrl = $mapUrl = $map->mapUrl; $this->terrain->maxCol = $maxCol = $map->numX; $this->terrain->maxRow = $maxRow = $map->numY; $this->terrain->mapWidth = $map->mapWidth; // $this->mapData->setData($maxCol, $maxRow, $mapUrl); \Wargame\Hexagon::setMinMax(); // $this->terrain->setMaxHex(); $a = $map->a; $b = $map->b; $c = $map->c; $this->terrain->a = $a; $this->terrain->b = $b; $this->terrain->c = $c; $this->terrain->originY = $b * 3 - $map->y; $xOff = ($a + $c) * 2 - ($c / 2 + $a); $this->terrain->originX = $xOff - $map->x; // $this->terrain->addTerrainFeature("town", "town", "t", 0, 0, 1, false); }
function terrainGen($mapDoc, $terrainDoc) { $terrainArr = json_decode($terrainDoc->hexStr->hexEncodedStr); $map = $mapDoc->map; $this->terrain->mapUrl = $mapUrl = $map->mapUrl; $this->terrain->maxCol = $maxCol = $map->numX; $this->terrain->maxRow = $maxRow = $map->numY; $this->terrain->mapWidth = $map->mapWidth; $this->mapData->setData($maxCol, $maxRow, $mapUrl); Hexagon::setMinMax(); $this->terrain->setMaxHex(); $a = $map->a; $b = $map->b; $c = $map->c; $this->terrain->a = $a; $this->terrain->b = $b; $this->terrain->c = $c; $this->terrain->originY = $b * 3 - $map->y; $xOff = ($a + $c) * 2 - ($c / 2 + $a); $this->terrain->originX = $xOff - $map->x; // code, name, displayName, letter, entranceCost, traverseCost, combatEffect, is Exclusive $this->terrain->addTerrainFeature("offmap", "offmap", "o", 1, 0, 0, true); $this->terrain->addTerrainFeature("clear", "", "c", 1, 0, 0, true); $this->terrain->addTerrainFeature("road", "road", "r", 0.5, 0, 0, false); $this->terrain->addTerrainFeature("town", "town", "t", 0.5, 0, 0, true, true); $this->terrain->addTerrainFeature("forest", "forest", "f", 2, 0, 1, true, true); $this->terrain->addTerrainFeature("hill", "hill", "h", 2, 0, 0, true, true); $this->terrain->addTerrainFeature("river", "river", "v", 0, 1, 0, false); $this->terrain->addTerrainFeature("trail", "trail", "r", 1, 0, 0, false); $this->terrain->addTerrainFeature("blocked", "blocked", "b", 1, 0, 0, true); $this->terrain->addTerrainFeature("blocksnonroad", "blocksnonroad", "b", 1, 0, 0, false); $this->terrain->addTerrainFeature("slope", "slope", "s", 0, 1, 0, false); $this->terrain->addTerrainFeature("elevation", "elevation", "e", 0, 0, 0, false); $this->terrain->addTerrainFeature("elevation2", "elevation2", "e", 0, 0, 0, false); $this->terrain->addTerrainFeature("crest", "crest", "c", 0, 1, 0, false, true); for ($col = 100; $col <= $maxCol * 100; $col += 100) { for ($row = 1; $row <= $maxRow; $row++) { $this->terrain->addTerrain($row + $col, LOWER_LEFT_HEXSIDE, "clear"); $this->terrain->addTerrain($row + $col, UPPER_LEFT_HEXSIDE, "clear"); $this->terrain->addTerrain($row + $col, BOTTOM_HEXSIDE, "clear"); $this->terrain->addTerrain($row + $col, HEXAGON_CENTER, "clear"); } } foreach ($terrainArr as $terrain) { foreach ($terrain->type as $terrainType) { $name = $terrainType->name; $matches = []; if (preg_match("/SpecialHex/", $name)) { $this->terrain->addSpecialHex($terrain->number, $name); } else { if (preg_match("/^ReinforceZone(.*)\$/", $name, $matches)) { $this->terrain->addReinforceZone($terrain->number, $matches[1]); } else { $tNum = sprintf("%04d", $terrain->number); $this->terrain->addTerrain($tNum, $terrain->hexpartType, strtolower($name)); } } } } }