-------------------------------------------------------------------------------
--functions that Civ needs
-------------------------------------------------------------------------------
function GetMapScriptInfo()
local world_age, temperature, rainfall, sea_level, resources = GetCoreMapOptions()
return {
Name = "PerfectWorld 3 (v5b) Fantasy",
Description = "Fantasy customization of PerfectWorld3 (v5b)",
IsAdvancedMap = 0,
SupportsMultiplayer = true,
IconIndex = 1,
SortIndex = 1,
CustomOptions = {
{
Name = "Orientation",
Values = {
"Square",
"Horizontal",
"Vertical"
},
DefaultValue = 1,
SortPriority = 1,
},
resources},
};
end
-------------------------------------------------------------------------------------------
function GetMapInitData(worldSize)
-- Square maps for the fantasy style maps
local worldsizes = {
[GameInfo.Worlds.WORLDSIZE_DUEL.ID] = {33, 33},
[GameInfo.Worlds.WORLDSIZE_TINY.ID] = {41, 41},
[GameInfo.Worlds.WORLDSIZE_SMALL.ID] = {51, 51},
[GameInfo.Worlds.WORLDSIZE_STANDARD.ID] = {66, 66},
[GameInfo.Worlds.WORLDSIZE_LARGE.ID] = {82, 82},
[GameInfo.Worlds.WORLDSIZE_HUGE.ID] = {101, 101}
}
if Map.GetCustomOption(6) == 2 then
-- Standard east-west orientation maps
worldsizes = {
[GameInfo.Worlds.WORLDSIZE_DUEL.ID] = {42, 26},
[GameInfo.Worlds.WORLDSIZE_TINY.ID] = {52, 32},
[GameInfo.Worlds.WORLDSIZE_SMALL.ID] = {64, 40},
[GameInfo.Worlds.WORLDSIZE_STANDARD.ID] = {84, 52},
[GameInfo.Worlds.WORLDSIZE_LARGE.ID] = {104, 64},
[GameInfo.Worlds.WORLDSIZE_HUGE.ID] = {128, 80}
}
elseif Map.GetCustomOption(6) == 3 then
-- Custom North-South maps for the fantasy style maps
worldsizes = {
[GameInfo.Worlds.WORLDSIZE_DUEL.ID] = {26, 42},
[GameInfo.Worlds.WORLDSIZE_TINY.ID] = {32, 52},
[GameInfo.Worlds.WORLDSIZE_SMALL.ID] = {40, 64},
[GameInfo.Worlds.WORLDSIZE_STANDARD.ID] = {52, 84},
[GameInfo.Worlds.WORLDSIZE_LARGE.ID] = {64, 104},
[GameInfo.Worlds.WORLDSIZE_HUGE.ID] = {80, 128}
}
end
local grid_size = worldsizes[worldSize];
--
local world = GameInfo.Worlds[worldSize];
if(world ~= nil) then
return {
Width = grid_size[1],
Height = grid_size[2],
WrapX = false, -- Altered for fantasy mapstyle
};
end
end
-------------------------------------------------------------------------------------------
--ShiftMap Class
-------------------------------------------------------------------------------------------
function ShiftMaps()
--local stripRadius = self.stripRadius;
local shift_x = 0
local shift_y = 0
-- shift_x = DetermineXShift() -- Breaks when WrapX disabled
ShiftMapsBy(shift_x, shift_y)
end
-------------------------------------------------------------------------------------------