[gui] building → structure
This patch corrects occurrences of “building” into “structure”. Whilst “constructing a building” is proper English, it is important to refer to one and the same thing with a single term, to avoid potential misunderstandings (see https://trac.wildfiregames.com/wiki/EnglishStyleGuide ), thence “building a structure”, because the unit action is “build” and the entity is a “structure” (see `simulation/templates/`). Patch By: Nescio Reviewed By: Gallaecio Differential Revision: https://code.wildfiregames.com/D2429 This was SVN commit r23366.
This commit is contained in:
parent
bbcd9b34cc
commit
9b9410c923
@ -117,21 +117,21 @@ function selectCiv(code)
|
||||
for (let bonus of civInfo.CivBonuses)
|
||||
bonusCaption += subHeading(bonus);
|
||||
|
||||
// Team Bonuses
|
||||
// Team bonuses
|
||||
bonusCaption += heading(translatePlural("Team Bonus", "Team Bonuses", civInfo.TeamBonuses.length), 12) + '\n';
|
||||
for (let bonus of civInfo.TeamBonuses)
|
||||
bonusCaption += subHeading(bonus);
|
||||
|
||||
Engine.GetGUIObjectByName("civBonuses").caption = bonusCaption;
|
||||
|
||||
// Special techs
|
||||
// Special technologies
|
||||
var techCaption = heading(translate("Special Technologies"), 12) + '\n';
|
||||
for (let faction of civInfo.Factions)
|
||||
for (let technology of faction.Technologies)
|
||||
techCaption += subHeading(technology);
|
||||
|
||||
// Special buildings
|
||||
techCaption += heading(translatePlural("Special Building", "Special Buildings", civInfo.Structures.length), 12) + '\n';
|
||||
// Special structures
|
||||
techCaption += heading(translatePlural("Special Structure", "Special Structures", civInfo.Structures.length), 12) + '\n';
|
||||
for (let structure of civInfo.Structures)
|
||||
techCaption += subHeading(structure);
|
||||
|
||||
|
@ -63,8 +63,8 @@ When you are ready to start, click the "Start game" button.
|
||||
T – Send team chat
|
||||
L – Chat with the previously selected private chat partner
|
||||
Pause – Pause/resume the game
|
||||
Delete – Delete currently selected unit(s)/building(s), ask for confirmation
|
||||
Shift + Delete – Immediately delete currently selected unit(s)/building(s), without asking for confirmation
|
||||
Delete – Delete currently selected unit(s)/structure(s), ask for confirmation
|
||||
Shift + Delete – Immediately delete currently selected unit(s)/structure(s), without asking for confirmation
|
||||
/ (Slash) – Select idle fighter
|
||||
Shift + / (Slash) – Add idle fighter to selection
|
||||
Alt + / (Slash) – Select all idle fighters
|
||||
@ -76,15 +76,15 @@ When you are ready to start, click the "Start game" button.
|
||||
Alt + \\ (Backslash) – Select all idle units
|
||||
H – Stop (halt) the currently selected units
|
||||
Y – The unit will go back to work
|
||||
U – Unload the garrisoned units of the selected buildings
|
||||
Ctrl + 1 (and so on up to Ctrl + 0) – Create control group 1 (to 0) from the selected unit(s)/building(s)
|
||||
1 (and so on up to 0) – Select the units/buildings in control group 1 (to 0)
|
||||
Shift + 1 (to 0) – Add control group 1 (to 0) to the selected units/buildings
|
||||
U – Unload the garrisoned units of the selected structure(s)
|
||||
Ctrl + 1 (and so on up to Ctrl + 0) – Create control group 1 (to 0) from the selected unit(s)/structure(s)
|
||||
1 (and so on up to 0) – Select the unit(s)/structure(s) in control group 1 (to 0)
|
||||
Shift + 1 (to 0) – Add control group 1 (to 0) to the selected unit(s)/structure(s)
|
||||
Ctrl + F5 (and so on up to F8) – Mark the current camera position, for jumping back to later
|
||||
F5, F6, F7, and F8 – Move the camera to a marked position. Jump back to the last location if the camera is already over the marked position
|
||||
Z, X, C, V, B, N, M – With training buildings selected. Add the 1st, 2nd, … unit shown to the training queue for all the selected buildings
|
||||
PageUp with units selected – Highlights the units/buildings guarded by the selection
|
||||
PageDown with units/buildings selected – Highlights the units guarding the selection
|
||||
Z, X, C, V, B, N, M – With training structure selected. Add the 1st, 2nd, … unit shown to the training queue for all the selected structures
|
||||
PageUp with unit(s) selected – Highlights the unit(s)/structure(s) guarded by the selection
|
||||
PageDown with unit(s)/structure(s) selected – Highlights the unit(s) guarding the selection
|
||||
Tab – See all status bars (which would also show the building progress)
|
||||
Ctrl + Tab – Toggle summary window
|
||||
Alt + L – Show the multiplayer lobby in a dialog window
|
||||
@ -96,8 +96,8 @@ When you are ready to start, click the "Start game" button.
|
||||
Alt + Shift + H – Toggle civilization info panel
|
||||
|
||||
[font="sans-bold-14"]Modify mouse action[font="sans-14"]
|
||||
Ctrl + Right Click on building – Garrison
|
||||
J + Right Click on building – Repair
|
||||
Ctrl + Right Click on structure – Garrison
|
||||
J + Right Click on structure – Repair
|
||||
P + Right Click – Patrol
|
||||
Shift + Right Click – Queue the move/build/gather/etc order
|
||||
Alt + Right Click – Order one unit from the current selection to move/build/gather/etc and unselect it. Used to quickly dispatch units with specific tasks
|
||||
@ -109,10 +109,10 @@ When you are ready to start, click the "Start game" button.
|
||||
I + Left Drag over units on map – Only select idle units
|
||||
O + Left Drag over units on map – Only select wounded units
|
||||
Ctrl + Left Click on unit/group icon with multiple units selected – Deselect
|
||||
Right Click with a building(s) selected – sets a rally point for units created/ungarrisoned from that building
|
||||
Right Click with a structure(s) selected – sets a rally point for units created/ungarrisoned from that structure
|
||||
Ctrl + Right Click with unit(s) selected:
|
||||
• If the cursor is over an own or allied structure – Garrison
|
||||
• If the cursor is over an enemy unit or building – Attack (instead of capture or gather)
|
||||
• If the cursor is over an enemy unit/structure – Attack (instead of capture or gather)
|
||||
• Otherwise – Attack move (by default all enemy units and structures along the way are targeted)
|
||||
Ctrl + Q + Right Click with unit(s) selected – Attack move, only units along the way are targeted
|
||||
Ctrl + Mouse Move near structures – Align the new structure with an existing nearby structure
|
||||
@ -147,10 +147,10 @@ When you are ready to start, click the "Start game" button.
|
||||
- (Hyphen) or − (Minus) – Zoom out (keep pressed for continuous zoom)
|
||||
Middle Mouse Button – Keep pressed and move the mouse to pan
|
||||
|
||||
[font="sans-bold-14"]During Building Placement[font="sans-14"]
|
||||
\[ (Left Bracket) – Rotate building 15 degrees counter-clockwise
|
||||
] (Right Bracket) – Rotate building 15 degrees clockwise
|
||||
Left Drag – Rotate building using mouse (foundation will be placed on mouse release)
|
||||
[font="sans-bold-14"]During Structure Placement[font="sans-14"]
|
||||
\[ (Left Bracket) – Rotate structure 15 degrees counter-clockwise
|
||||
] (Right Bracket) – Rotate structure 15 degrees clockwise
|
||||
Left Drag – Rotate structure using mouse (foundation will be placed on mouse release)
|
||||
|
||||
[font="sans-bold-14"]When loading a saved game[font="sans-14"]
|
||||
Esc – Cancel
|
||||
|
@ -158,7 +158,7 @@
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Unit Silhouettes",
|
||||
"tooltip": "Show outlines of units behind buildings.",
|
||||
"tooltip": "Show outlines of units behind structures.",
|
||||
"config": "silhouettes",
|
||||
"function": "Renderer_SetSilhouettesEnabled"
|
||||
},
|
||||
@ -495,7 +495,7 @@
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Detailed Tooltips",
|
||||
"tooltip": "Show detailed tooltips for trainable units in unit-producing buildings.",
|
||||
"tooltip": "Show detailed tooltips for trainable units in unit-producing structures.",
|
||||
"config": "showdetailedtooltips"
|
||||
},
|
||||
{
|
||||
|
@ -105,8 +105,8 @@ function selectCiv(civCode)
|
||||
structInfo.phase = getPhaseOfTemplate(structInfo);
|
||||
let structPhaseIdx = g_ParsedData.phaseList.indexOf(structInfo.phase);
|
||||
|
||||
// If this building is shared with another civ,
|
||||
// it may have already gone through the grouping process already
|
||||
// If this structure is shared with another civ,
|
||||
// it may have already gone through the grouping process already.
|
||||
if (!Array.isArray(structInfo.production.techs))
|
||||
continue;
|
||||
|
||||
|
@ -156,7 +156,7 @@ function getResearchedByText(template)
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {string} List of the names of the buildings the selected unit can build.
|
||||
* @return {string} List of the names of the structures the selected unit can build.
|
||||
*/
|
||||
function getBuildText(template)
|
||||
{
|
||||
@ -202,7 +202,7 @@ function getTrainText(template)
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {string} List of the names of the buildings/units the selected structure/unit can upgrade to.
|
||||
* @return {string} List of the names of the structures/units the selected structure/unit can upgrade to.
|
||||
*/
|
||||
function getUpgradeText(template)
|
||||
{
|
||||
|
@ -163,8 +163,8 @@ function updateBuildingPlacementPreview()
|
||||
|
||||
if (placementSupport.attack && placementSupport.attack.Ranged)
|
||||
{
|
||||
// building can be placed here, and has an attack
|
||||
// show the range advantage in the tooltip
|
||||
// Structure can be placed here, and has an attack.
|
||||
// Show the range advantage in the tooltip.
|
||||
var cmd = {
|
||||
"x": placementSupport.position.x,
|
||||
"z": placementSupport.position.z,
|
||||
@ -643,7 +643,7 @@ function handleInputBeforeGui(ev, hoveredObject)
|
||||
case "mousemotion":
|
||||
placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|
||||
|
||||
// Update the building placement preview, and by extension, the list of snapping candidate entities for both (!)
|
||||
// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|
||||
// the ending point and the starting point to snap to.
|
||||
//
|
||||
// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|
||||
@ -744,7 +744,7 @@ function handleInputBeforeGui(ev, hoveredObject)
|
||||
case "mousebuttonup":
|
||||
if (ev.button == SDL_BUTTON_LEFT)
|
||||
{
|
||||
// If shift is down, let the player continue placing another of the same building
|
||||
// If shift is down, let the player continue placing another of the same structure.
|
||||
var queued = Engine.HotkeyIsPressed("session.queue");
|
||||
if (tryPlaceBuilding(queued))
|
||||
{
|
||||
@ -1289,8 +1289,8 @@ function startBuildingPlacement(buildTemplate, playerState)
|
||||
return;
|
||||
|
||||
// TODO: we should clear any highlight selection rings here. If the mouse was over an entity before going onto the GUI
|
||||
// to start building a structure, then the highlight selection rings are kept during the construction of the building.
|
||||
// Gives the impression that somehow the hovered-over entity has something to do with the building you're constructing.
|
||||
// to start building a structure, then the highlight selection rings are kept during the construction of the structure.
|
||||
// Gives the impression that somehow the hovered-over entity has something to do with the structure you're building.
|
||||
|
||||
placementSupport.Reset();
|
||||
|
||||
@ -1384,7 +1384,7 @@ function addTrainingByPosition(position)
|
||||
let trainableEnts = getAllTrainableEntitiesFromSelection();
|
||||
|
||||
let entToTrain = trainableEnts[position];
|
||||
// When we have no building to train or the position is invalid
|
||||
// When we have no structure to train units or the position is invalid
|
||||
if (!entToTrain)
|
||||
return;
|
||||
|
||||
@ -1409,10 +1409,10 @@ function addTrainingToQueue(selection, trainEntType, playerState)
|
||||
{
|
||||
if (inputState == INPUT_BATCHTRAINING)
|
||||
{
|
||||
// Check if we are training in the same building(s) as the last batch
|
||||
// Check if we are training in the same structure(s) as the last batch
|
||||
// NOTE: We just check if the arrays are the same and if the order is the same
|
||||
// If the order changed, we have a new selection and we should create a new batch.
|
||||
// If we're already creating a batch of this unit (in the same building(s)), then just extend it
|
||||
// If we're already creating a batch of this unit (in the same structure(s)), then just extend it
|
||||
// (if training limits allow)
|
||||
if (g_BatchTrainingEntities.length == selection.length &&
|
||||
g_BatchTrainingEntities.every((ent, i) => ent == selection[i]) &&
|
||||
@ -1456,7 +1456,7 @@ function addTrainingToQueue(selection, trainEntType, playerState)
|
||||
}
|
||||
else
|
||||
{
|
||||
// Non-batched - just create a single entity in each building
|
||||
// Non-batched - just create a single entity in each structure
|
||||
// (but no more than entity limit allows)
|
||||
let buildingsForTraining = appropriateBuildings;
|
||||
if (canBeAddedCount !== undefined)
|
||||
@ -1488,15 +1488,15 @@ function getTrainingStatus(selection, trainEntType, playerState)
|
||||
else
|
||||
canBeAddedCount = getEntityLimitAndCount(playerState, trainEntType).canBeAddedCount;
|
||||
|
||||
// We need to calculate count after the next increment if it's possible
|
||||
// We need to calculate count after the next increment if possible.
|
||||
if ((canBeAddedCount == undefined || canBeAddedCount > nextBatchTrainingCount * appropriateBuildings.length) &&
|
||||
Engine.HotkeyIsPressed("session.batchtrain"))
|
||||
nextBatchTrainingCount += getBatchTrainingSize();
|
||||
|
||||
nextBatchTrainingCount = Math.max(nextBatchTrainingCount, 1);
|
||||
|
||||
// If training limits don't allow us to train batchTrainingCount in each appropriate building
|
||||
// train as many full batches as we can and remainer in one more building.
|
||||
// If training limits don't allow us to train batchedSize in each appropriate structure,
|
||||
// train as many full batches as we can and the remainder in one more structure.
|
||||
let buildingsCountToTrainFullBatch = appropriateBuildings.length;
|
||||
let remainderToTrain = 0;
|
||||
if (canBeAddedCount !== undefined &&
|
||||
@ -1513,11 +1513,11 @@ function flushTrainingBatch()
|
||||
{
|
||||
let batchedSize = g_NumberOfBatches * getBatchTrainingSize();
|
||||
let appropriateBuildings = getBuildingsWhichCanTrainEntity(g_BatchTrainingEntities, g_BatchTrainingType);
|
||||
// If training limits don't allow us to train batchedSize in each appropriate building
|
||||
// If training limits don't allow us to train batchedSize in each appropriate structure.
|
||||
if (g_BatchTrainingEntityAllowedCount !== undefined &&
|
||||
g_BatchTrainingEntityAllowedCount < batchedSize * appropriateBuildings.length)
|
||||
{
|
||||
// Train as many full batches as we can
|
||||
// Train as many full batches as we can.
|
||||
let buildingsCountToTrainFullBatch = Math.floor(g_BatchTrainingEntityAllowedCount / batchedSize);
|
||||
Engine.PostNetworkCommand({
|
||||
"type": "train",
|
||||
@ -1526,7 +1526,7 @@ function flushTrainingBatch()
|
||||
"count": batchedSize
|
||||
});
|
||||
|
||||
// Train remainer in one more building
|
||||
// Train remainer in one more structure.
|
||||
let remainer = g_BatchTrainingEntityAllowedCount % batchedSize;
|
||||
if (remainer)
|
||||
Engine.PostNetworkCommand({
|
||||
|
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* This class reports the buildings built, lost and destroyed of some selected structure classes.
|
||||
* This class reports the structures built, lost, and destroyed of some selected structure classes.
|
||||
*/
|
||||
LobbyRatingReport.prototype.Buildings = class
|
||||
{
|
||||
|
@ -235,7 +235,7 @@ var g_NotificationsTypes =
|
||||
entState.identity.classes.indexOf("Animal") != -1)
|
||||
return;
|
||||
|
||||
// Focus the building to construct
|
||||
// Focus the structure to build.
|
||||
if (cmd.type == "repair")
|
||||
{
|
||||
let targetState = GetEntityState(cmd.target);
|
||||
|
@ -6,14 +6,14 @@ function PlacementSupport()
|
||||
PlacementSupport.DEFAULT_ANGLE = Math.PI * 3 / 4;
|
||||
|
||||
/**
|
||||
* Resets the building placement support state. Use this to cancel construction of an entity.
|
||||
* Reset the structure placement support state. Use this to cancel construction of an entity.
|
||||
*/
|
||||
PlacementSupport.prototype.Reset = function()
|
||||
{
|
||||
this.mode = null;
|
||||
this.position = null;
|
||||
this.template = null;
|
||||
this.tooltipMessage = ""; // tooltip text to show while the user is placing a building
|
||||
this.tooltipMessage = ""; // tooltip text to show while the user is placing a structure
|
||||
this.tooltipError = false;
|
||||
this.wallSet = null; // maps types of wall pieces ("tower", "long", "short", ...) to template names
|
||||
this.wallSnapEntities = null; // list of candidate entities to snap the starting and (!) ending positions to when building walls
|
||||
|
@ -387,7 +387,7 @@ g_SelectionPanels.Garrison = {
|
||||
data.button.sprite_disabled = data.button.sprite;
|
||||
|
||||
// Selection panel buttons only appear disabled if they
|
||||
// also appear disabled to the owner of the building.
|
||||
// also appear disabled to the owner of the structure.
|
||||
data.icon.sprite =
|
||||
(canUngarrison || g_IsObserver ? "" : "grayscale:") +
|
||||
"stretched:session/portraits/" + template.icon;
|
||||
|
@ -144,7 +144,7 @@ function formatBatchTrainingString(buildingsCountToTrainFullBatch, fullBatchSize
|
||||
fullBatchesString = fullBatchSize;
|
||||
|
||||
// We need to display the batch details part if there is either more than
|
||||
// one building with full batch or one building with the full batch and
|
||||
// one structure with full batch or one structure with the full batch and
|
||||
// another with a partial batch
|
||||
let batchString;
|
||||
if (buildingsCountToTrainFullBatch > 1 ||
|
||||
|
@ -598,7 +598,7 @@ function onTick()
|
||||
|
||||
updateGUIObjects();
|
||||
|
||||
// Display rally points for selected buildings
|
||||
// Display rally points for selected structures.
|
||||
if (Engine.GetPlayerID() != -1)
|
||||
Engine.GuiInterfaceCall("DisplayRallyPoint", { "entities": g_Selection.toList() });
|
||||
}
|
||||
|
@ -64,7 +64,7 @@
|
||||
<!-- Follows the mouse around if 'independent' is set to 'true'. -->
|
||||
<object name="informationTooltip" type="tooltip" independent="true" style="informationTooltip"/>
|
||||
|
||||
<!-- Building placement info tooltip -->
|
||||
<!-- Structure placement info tooltip -->
|
||||
<object name="placementTooltip" type="tooltip" independent="true" style="informationTooltip"/>
|
||||
|
||||
<!-- START of BOTTOM PANEL -->
|
||||
|
@ -904,7 +904,7 @@ var g_UnitActions =
|
||||
(!entState.market.naval || targetState.market.naval) &&
|
||||
!playerCheck(entState, targetState, ["Enemy"]))
|
||||
{
|
||||
// Find a trader (if any) that this building can produce.
|
||||
// Find a trader (if any) that this structure can train.
|
||||
let trader;
|
||||
if (entState.production && entState.production.entities.length)
|
||||
for (let i = 0; i < entState.production.entities.length; ++i)
|
||||
@ -1086,7 +1086,7 @@ var g_EntityCommands =
|
||||
{
|
||||
"tooltip":
|
||||
colorizeHotkey("%(hotkey)s" + " ", "session.kill") +
|
||||
translate("Destroy the selected units or buildings.") + "\n" +
|
||||
translate("Destroy the selected units or structures.") + "\n" +
|
||||
colorizeHotkey(
|
||||
translate("Use %(hotkey)s to avoid the confirmation dialog."),
|
||||
"session.noconfirmation"
|
||||
@ -1154,7 +1154,7 @@ var g_EntityCommands =
|
||||
|
||||
return {
|
||||
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.garrison") +
|
||||
translate("Order the selected units to garrison in a building or unit."),
|
||||
translate("Order the selected units to garrison in a structure or unit."),
|
||||
"icon": "garrison.png"
|
||||
};
|
||||
},
|
||||
@ -1195,7 +1195,7 @@ var g_EntityCommands =
|
||||
|
||||
return {
|
||||
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.repair") +
|
||||
translate("Order the selected units to repair a building or mechanical unit."),
|
||||
translate("Order the selected units to repair a structure, ship, or siege engine."),
|
||||
"icon": "repair.png"
|
||||
};
|
||||
},
|
||||
@ -1268,7 +1268,7 @@ var g_EntityCommands =
|
||||
|
||||
return {
|
||||
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.guard") +
|
||||
translate("Order the selected units to guard a building or unit."),
|
||||
translate("Order the selected units to guard a structure or unit."),
|
||||
"icon": "add-guard.png"
|
||||
};
|
||||
},
|
||||
@ -1322,7 +1322,7 @@ var g_EntityCommands =
|
||||
return {
|
||||
"tooltip": colorizeHotkey("%(hotkey)s" + " ", "session.patrol") +
|
||||
translate("Patrol") + "\n" +
|
||||
translate("Attack all encountered enemy units while avoiding buildings."),
|
||||
translate("Attack all encountered enemy units while avoiding structures."),
|
||||
"icon": "patrol.png"
|
||||
};
|
||||
},
|
||||
|
@ -18,7 +18,7 @@ var getScorePanelsData = () => ({
|
||||
"teamCounterFn": calculateScoreTeam
|
||||
},
|
||||
"buildings": {
|
||||
"caption": translate("Buildings"),
|
||||
"caption": translate("Structures"),
|
||||
"headings": [
|
||||
{ "identifier": "playername", "caption": translate("Player name"), "yStart": 26, "width": 200 },
|
||||
{ "identifier": "total", "caption": translate("Total"), "yStart": 34, "width": 105 },
|
||||
@ -32,7 +32,7 @@ var getScorePanelsData = () => ({
|
||||
],
|
||||
"titleHeadings": [
|
||||
{
|
||||
"caption": sprintf(translate("Buildings Statistics (%(constructed)s / %(destroyed)s / %(captured)s / %(lost)s)"),
|
||||
"caption": sprintf(translate("Structure Statistics (%(constructed)s / %(destroyed)s / %(captured)s / %(lost)s)"),
|
||||
{
|
||||
"constructed": getColoredTypeTranslation("constructed"),
|
||||
"destroyed": getColoredTypeTranslation("destroyed"),
|
||||
@ -71,7 +71,7 @@ var getScorePanelsData = () => ({
|
||||
],
|
||||
"titleHeadings": [
|
||||
{
|
||||
"caption": sprintf(translate("Units Statistics (%(trained)s / %(killed)s / %(captured)s / %(lost)s)"),
|
||||
"caption": sprintf(translate("Unit Statistics (%(trained)s / %(killed)s / %(captured)s / %(lost)s)"),
|
||||
{
|
||||
"trained": getColoredTypeTranslation("trained"),
|
||||
"killed": getColoredTypeTranslation("killed"),
|
||||
|
@ -17,7 +17,7 @@ var g_TypeColors = {
|
||||
};
|
||||
|
||||
/**
|
||||
* Colors, captions and format used for units, buildings, etc. types
|
||||
* Colors, captions and format used for units, structures, etc. types
|
||||
*/
|
||||
var g_SummaryTypes = {
|
||||
"percent": {
|
||||
|
@ -78,7 +78,7 @@
|
||||
<object name="buildingsPanelButton" type="button" style="ModernTabButtonHorizontal" size="142 92 260 120">
|
||||
<action on="Press">selectPanel(this);</action>
|
||||
<object type="text" style="ModernLabelText" ghost="true">
|
||||
<translatableAttribute id="caption">Buildings</translatableAttribute>
|
||||
<translatableAttribute id="caption">Structures</translatableAttribute>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
CATAPULTS
|
||||
Ranged siege engines that are good against buildings.
|
||||
Ranged siege engines that are good against structures.
|
||||
Expensive and slow.
|
||||
Pack up into carts for movement, and unpack into stationary engines for attack!
|
||||
|
@ -1,5 +1,5 @@
|
||||
FORTRESS
|
||||
The Fortress is usually each faction's strongest building.
|
||||
The Fortress is usually each faction's strongest structure.
|
||||
Trains Champions, Heroes, and Siege Weapons.
|
||||
Gives a population boost.
|
||||
Garrison soldiers inside to add more firepower to its defense.
|
||||
|
@ -1,4 +1,4 @@
|
||||
PERICLES
|
||||
The foremost Athenian politician of the 5th century BC.
|
||||
Buildings construct faster within his range.
|
||||
Structures are built faster within his range.
|
||||
Temples are cheaper while he lives.
|
||||
|
@ -1,5 +1,5 @@
|
||||
PERSIAN ARCHITECTURE
|
||||
Special technology for the Persians.
|
||||
All Persian buildings +25% stronger.
|
||||
Structures +25% health.
|
||||
Build time lengthened by +20% as a consequence.
|
||||
Persians also have access to a great number of structural and defensive technologies.
|
||||
|
@ -1,4 +1,4 @@
|
||||
TERRITORY DECAY
|
||||
Decay happens when buildings are not connected to an allied Civil Center.
|
||||
Decay happens when structures are not connected to an allied Civil Center.
|
||||
The decay process can be slowed down or reversed by garrisoning some units in the structure.
|
||||
When the decay is completed, the building will be given to the most influential neighbor.
|
||||
When the decay is completed, the structure will be given to the most influential neighbor.
|
||||
|
Loading…
Reference in New Issue
Block a user