forked from 0ad/0ad
Rename TeamPlacement -> PlayerPlacement
This commit is contained in:
parent
bcf97b608b
commit
fc17b7d55d
@ -1,4 +1,4 @@
|
||||
GameSettings.prototype.Attributes.TeamPlacement = class TeamPlacement extends GameSetting
|
||||
GameSettings.prototype.Attributes.PlayerPlacement = class PlayerPlacement extends GameSetting
|
||||
{
|
||||
init()
|
||||
{
|
||||
@ -10,25 +10,25 @@ GameSettings.prototype.Attributes.TeamPlacement = class TeamPlacement extends Ga
|
||||
toInitAttributes(attribs)
|
||||
{
|
||||
if (this.value !== undefined)
|
||||
attribs.settings.TeamPlacement = this.value;
|
||||
attribs.settings.PlayerPlacement = this.value;
|
||||
}
|
||||
|
||||
fromInitAttributes(attribs)
|
||||
{
|
||||
if (!!this.getLegacySetting(attribs, "TeamPlacement"))
|
||||
this.value = this.getLegacySetting(attribs, "TeamPlacement");
|
||||
if (!!this.getLegacySetting(attribs, "PlayerPlacement"))
|
||||
this.value = this.getLegacySetting(attribs, "PlayerPlacement");
|
||||
}
|
||||
|
||||
onMapChange()
|
||||
{
|
||||
if (!this.getMapSetting("TeamPlacements"))
|
||||
if (!this.getMapSetting("PlayerPlacements"))
|
||||
{
|
||||
this.value = undefined;
|
||||
this.available = undefined;
|
||||
return;
|
||||
}
|
||||
// TODO: should probably validate that they fit one of the known schemes.
|
||||
this.available = this.getMapSetting("TeamPlacements");
|
||||
this.available = this.getMapSetting("PlayerPlacements");
|
||||
this.value = "random";
|
||||
}
|
||||
|
||||
@ -49,25 +49,25 @@ GameSettings.prototype.Attributes.TeamPlacement = class TeamPlacement extends Ga
|
||||
};
|
||||
|
||||
|
||||
GameSettings.prototype.Attributes.TeamPlacement.prototype.StartingPositions = [
|
||||
GameSettings.prototype.Attributes.PlayerPlacement.prototype.StartingPositions = [
|
||||
{
|
||||
"Id": "radial",
|
||||
"Name": translateWithContext("team placement", "Circle"),
|
||||
"Name": translateWithContext("player placement", "Circle"),
|
||||
"Description": translate("Allied players are grouped and placed with opposing players on one circle spanning the map.")
|
||||
},
|
||||
{
|
||||
"Id": "line",
|
||||
"Name": translateWithContext("team placement", "Line"),
|
||||
"Name": translateWithContext("player placement", "Line"),
|
||||
"Description": translate("Allied players are placed in a linear pattern."),
|
||||
},
|
||||
{
|
||||
"Id": "randomGroup",
|
||||
"Name": translateWithContext("team placement", "Random Group"),
|
||||
"Name": translateWithContext("player placement", "Random Group"),
|
||||
"Description": translate("Allied players are grouped, but otherwise placed randomly on the map."),
|
||||
},
|
||||
{
|
||||
"Id": "stronghold",
|
||||
"Name": translateWithContext("team placement", "Stronghold"),
|
||||
"Name": translateWithContext("player placement", "Stronghold"),
|
||||
"Description": translate("Allied players are grouped in one random place of the map."),
|
||||
}
|
||||
];
|
@ -11,7 +11,7 @@ var g_GameSettingsLayout = [
|
||||
"MapSelection",
|
||||
"MapBrowser",
|
||||
"MapSize",
|
||||
"TeamPlacement",
|
||||
"PlayerPlacement",
|
||||
"Landscape",
|
||||
"Biome",
|
||||
"WaterLevel",
|
||||
|
@ -0,0 +1,64 @@
|
||||
GameSettingControls.PlayerPlacement = class PlayerPlacement extends GameSettingControlDropdown
|
||||
{
|
||||
constructor(...args)
|
||||
{
|
||||
super(...args);
|
||||
this.values = undefined;
|
||||
|
||||
g_GameSettings.playerPlacement.watch(() => this.render(), ["value", "available"]);
|
||||
this.render();
|
||||
}
|
||||
|
||||
onHoverChange()
|
||||
{
|
||||
this.dropdown.tooltip = this.values.Description[this.dropdown.hovered] || this.Tooltip;
|
||||
}
|
||||
|
||||
render()
|
||||
{
|
||||
this.setHidden(!g_GameSettings.playerPlacement.value);
|
||||
if (!g_GameSettings.playerPlacement.value)
|
||||
return;
|
||||
|
||||
let randomItem = clone(this.RandomItem);
|
||||
randomItem.Name = setStringTags(randomItem.Name, this.RandomItemTags);
|
||||
|
||||
let patterns = [randomItem];
|
||||
|
||||
for (let pattern of g_GameSettings.playerPlacement.available)
|
||||
patterns.push(g_GameSettings.playerPlacement.StartingPositions
|
||||
.find(pObj => pObj.Id == pattern));
|
||||
|
||||
this.values = prepareForDropdown(patterns);
|
||||
|
||||
this.dropdown.list = this.values.Name;
|
||||
this.dropdown.list_data = this.values.Id;
|
||||
|
||||
this.setSelectedValue(g_GameSettings.playerPlacement.value);
|
||||
}
|
||||
|
||||
getAutocompleteEntries()
|
||||
{
|
||||
return this.values && this.values.Name.slice(1);
|
||||
}
|
||||
|
||||
onSelectionChange(itemIdx)
|
||||
{
|
||||
g_GameSettings.playerPlacement.setValue(this.values.Id[itemIdx]);
|
||||
this.gameSettingsController.setNetworkInitAttributes();
|
||||
}
|
||||
};
|
||||
|
||||
GameSettingControls.PlayerPlacement.prototype.TitleCaption =
|
||||
translate("Player Placement");
|
||||
|
||||
GameSettingControls.PlayerPlacement.prototype.Tooltip =
|
||||
translate("Select one of the starting position patterns for this map.");
|
||||
|
||||
GameSettingControls.PlayerPlacement.prototype.RandomItem = {
|
||||
"Id": "random",
|
||||
"Name": translateWithContext("player placement", "Random"),
|
||||
"Description": translateWithContext("player placement", "Select a random player placement pattern when starting the game.")
|
||||
};
|
||||
|
||||
GameSettingControls.PlayerPlacement.prototype.AutocompleteOrder = 0;
|
@ -1,64 +0,0 @@
|
||||
GameSettingControls.TeamPlacement = class TeamPlacement extends GameSettingControlDropdown
|
||||
{
|
||||
constructor(...args)
|
||||
{
|
||||
super(...args);
|
||||
this.values = undefined;
|
||||
|
||||
g_GameSettings.teamPlacement.watch(() => this.render(), ["value", "available"]);
|
||||
this.render();
|
||||
}
|
||||
|
||||
onHoverChange()
|
||||
{
|
||||
this.dropdown.tooltip = this.values.Description[this.dropdown.hovered] || this.Tooltip;
|
||||
}
|
||||
|
||||
render()
|
||||
{
|
||||
this.setHidden(!g_GameSettings.teamPlacement.value);
|
||||
if (!g_GameSettings.teamPlacement.value)
|
||||
return;
|
||||
|
||||
let randomItem = clone(this.RandomItem);
|
||||
randomItem.Name = setStringTags(randomItem.Name, this.RandomItemTags);
|
||||
|
||||
let patterns = [randomItem];
|
||||
|
||||
for (let pattern of g_GameSettings.teamPlacement.available)
|
||||
patterns.push(g_GameSettings.teamPlacement.StartingPositions
|
||||
.find(pObj => pObj.Id == pattern));
|
||||
|
||||
this.values = prepareForDropdown(patterns);
|
||||
|
||||
this.dropdown.list = this.values.Name;
|
||||
this.dropdown.list_data = this.values.Id;
|
||||
|
||||
this.setSelectedValue(g_GameSettings.teamPlacement.value);
|
||||
}
|
||||
|
||||
getAutocompleteEntries()
|
||||
{
|
||||
return this.values && this.values.Name.slice(1);
|
||||
}
|
||||
|
||||
onSelectionChange(itemIdx)
|
||||
{
|
||||
g_GameSettings.teamPlacement.setValue(this.values.Id[itemIdx]);
|
||||
this.gameSettingsController.setNetworkInitAttributes();
|
||||
}
|
||||
};
|
||||
|
||||
GameSettingControls.TeamPlacement.prototype.TitleCaption =
|
||||
translate("Team Placement");
|
||||
|
||||
GameSettingControls.TeamPlacement.prototype.Tooltip =
|
||||
translate("Select one of the starting position patterns of this map.");
|
||||
|
||||
GameSettingControls.TeamPlacement.prototype.RandomItem = {
|
||||
"Id": "random",
|
||||
"Name": translateWithContext("team placement", "Random"),
|
||||
"Description": translateWithContext("team placement", "Select a random team placement pattern when starting the game.")
|
||||
};
|
||||
|
||||
GameSettingControls.TeamPlacement.prototype.AutocompleteOrder = 0;
|
@ -20,7 +20,7 @@ function* GenerateMap(mapSettings)
|
||||
|
||||
yield 10;
|
||||
|
||||
const pattern = mapSettings.TeamPlacement ||
|
||||
const pattern = mapSettings.PlayerPlacement ||
|
||||
pickRandom(["line", "radial", "randomGroup", "stronghold"]);
|
||||
const [playerIDs, playerPosition] =
|
||||
createBases(
|
||||
|
@ -6,6 +6,6 @@
|
||||
"Preview" : "ambush.png",
|
||||
"SupportedBiomes": "generic/",
|
||||
"CircularMap" : true,
|
||||
"TeamPlacements": ["radial", "line", "randomGroup", "stronghold"]
|
||||
"PlayerPlacements": ["radial", "line", "randomGroup", "stronghold"]
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ function* GenerateMap(mapSettings)
|
||||
if (!isNomad())
|
||||
{
|
||||
// Note: `|| pickRandom(...)` is needed for atlas.
|
||||
const pattern = mapSettings.TeamPlacement ||
|
||||
const pattern = mapSettings.PlayerPlacement ||
|
||||
pickRandom(["line", "radial", "randomGroup", "stronghold"]);
|
||||
createBases(
|
||||
...playerPlacementByPattern(
|
||||
|
@ -6,6 +6,6 @@
|
||||
"Preview" : "frontier.png",
|
||||
"SupportedBiomes": "generic/",
|
||||
"CircularMap" : true,
|
||||
"TeamPlacements": ["radial", "line", "randomGroup", "stronghold"]
|
||||
"PlayerPlacements": ["radial", "line", "randomGroup", "stronghold"]
|
||||
}
|
||||
}
|
||||
|
@ -610,7 +610,7 @@ function getTeamsArray()
|
||||
function playerPlacementByPattern(patternName, distance = undefined, groupedDistance = undefined, angle = undefined, center = undefined)
|
||||
{
|
||||
if (patternName === undefined)
|
||||
patternName = g_MapSettings.TeamPlacement;
|
||||
patternName = g_MapSettings.PlayerPlacement;
|
||||
|
||||
switch (patternName)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user