Index: ps/trunk/binaries/data/mods/public/gui/civinfo/civinfo.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/civinfo/civinfo.js
+++ ps/trunk/binaries/data/mods/public/gui/civinfo/civinfo.js
@@ -117,21 +117,21 @@
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);
Index: ps/trunk/binaries/data/mods/public/gui/manual/intro.txt
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/manual/intro.txt
+++ ps/trunk/binaries/data/mods/public/gui/manual/intro.txt
@@ -63,8 +63,8 @@
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 @@
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 @@
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 @@
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 @@
- (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
Index: ps/trunk/binaries/data/mods/public/gui/options/options.json
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/options/options.json
+++ ps/trunk/binaries/data/mods/public/gui/options/options.json
@@ -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"
},
{
Index: ps/trunk/binaries/data/mods/public/gui/reference/structree/structree.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/reference/structree/structree.js
+++ ps/trunk/binaries/data/mods/public/gui/reference/structree/structree.js
@@ -105,8 +105,8 @@
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;
Index: ps/trunk/binaries/data/mods/public/gui/reference/viewer/viewer.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/reference/viewer/viewer.js
+++ ps/trunk/binaries/data/mods/public/gui/reference/viewer/viewer.js
@@ -156,7 +156,7 @@
}
/**
- * @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 @@
}
/**
- * @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)
{
Index: ps/trunk/binaries/data/mods/public/gui/session/input.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/session/input.js
+++ ps/trunk/binaries/data/mods/public/gui/session/input.js
@@ -163,8 +163,8 @@
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 @@
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 @@
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 @@
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 @@
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 @@
{
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 @@
}
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 @@
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 @@
{
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 @@
"count": batchedSize
});
- // Train remainer in one more building
+ // Train remainer in one more structure.
let remainer = g_BatchTrainingEntityAllowedCount % batchedSize;
if (remainer)
Engine.PostNetworkCommand({
Index: ps/trunk/binaries/data/mods/public/gui/session/lobby/LobbyRatingReport/Buildings.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/session/lobby/LobbyRatingReport/Buildings.js
+++ ps/trunk/binaries/data/mods/public/gui/session/lobby/LobbyRatingReport/Buildings.js
@@ -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
{
Index: ps/trunk/binaries/data/mods/public/gui/session/messages.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/session/messages.js
+++ ps/trunk/binaries/data/mods/public/gui/session/messages.js
@@ -235,7 +235,7 @@
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);
Index: ps/trunk/binaries/data/mods/public/gui/session/placement.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/session/placement.js
+++ ps/trunk/binaries/data/mods/public/gui/session/placement.js
@@ -6,14 +6,14 @@
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
Index: ps/trunk/binaries/data/mods/public/gui/session/selection_panels.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/session/selection_panels.js
+++ ps/trunk/binaries/data/mods/public/gui/session/selection_panels.js
@@ -387,7 +387,7 @@
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;
Index: ps/trunk/binaries/data/mods/public/gui/session/selection_panels_helpers.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/session/selection_panels_helpers.js
+++ ps/trunk/binaries/data/mods/public/gui/session/selection_panels_helpers.js
@@ -144,7 +144,7 @@
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 ||
Index: ps/trunk/binaries/data/mods/public/gui/session/session.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/session/session.js
+++ ps/trunk/binaries/data/mods/public/gui/session/session.js
@@ -598,7 +598,7 @@
updateGUIObjects();
- // Display rally points for selected buildings
+ // Display rally points for selected structures.
if (Engine.GetPlayerID() != -1)
Engine.GuiInterfaceCall("DisplayRallyPoint", { "entities": g_Selection.toList() });
}
Index: ps/trunk/binaries/data/mods/public/gui/session/session.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/session/session.xml
+++ ps/trunk/binaries/data/mods/public/gui/session/session.xml
@@ -64,7 +64,7 @@
-
+
Index: ps/trunk/binaries/data/mods/public/gui/session/unit_actions.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/session/unit_actions.js
+++ ps/trunk/binaries/data/mods/public/gui/session/unit_actions.js
@@ -904,7 +904,7 @@
(!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 @@
{
"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 @@
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 @@
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 @@
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 @@
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"
};
},
Index: ps/trunk/binaries/data/mods/public/gui/summary/layout.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/summary/layout.js
+++ ps/trunk/binaries/data/mods/public/gui/summary/layout.js
@@ -18,7 +18,7 @@
"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 @@
],
"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 @@
],
"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"),
Index: ps/trunk/binaries/data/mods/public/gui/summary/summary.js
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/summary/summary.js
+++ ps/trunk/binaries/data/mods/public/gui/summary/summary.js
@@ -17,7 +17,7 @@
};
/**
- * Colors, captions and format used for units, buildings, etc. types
+ * Colors, captions and format used for units, structures, etc. types
*/
var g_SummaryTypes = {
"percent": {
Index: ps/trunk/binaries/data/mods/public/gui/summary/summary.xml
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/summary/summary.xml
+++ ps/trunk/binaries/data/mods/public/gui/summary/summary.xml
@@ -78,7 +78,7 @@
Index: ps/trunk/binaries/data/mods/public/gui/text/tips/catapults.txt
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/text/tips/catapults.txt
+++ ps/trunk/binaries/data/mods/public/gui/text/tips/catapults.txt
@@ -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!
Index: ps/trunk/binaries/data/mods/public/gui/text/tips/fortress.txt
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/text/tips/fortress.txt
+++ ps/trunk/binaries/data/mods/public/gui/text/tips/fortress.txt
@@ -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.
Index: ps/trunk/binaries/data/mods/public/gui/text/tips/pericles.txt
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/text/tips/pericles.txt
+++ ps/trunk/binaries/data/mods/public/gui/text/tips/pericles.txt
@@ -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.
Index: ps/trunk/binaries/data/mods/public/gui/text/tips/persian_architecture.txt
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/text/tips/persian_architecture.txt
+++ ps/trunk/binaries/data/mods/public/gui/text/tips/persian_architecture.txt
@@ -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.
Index: ps/trunk/binaries/data/mods/public/gui/text/tips/territory_decay.txt
===================================================================
--- ps/trunk/binaries/data/mods/public/gui/text/tips/territory_decay.txt
+++ ps/trunk/binaries/data/mods/public/gui/text/tips/territory_decay.txt
@@ -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.