Ticket #3904: tooltip.3.diff
File tooltip.3.diff, 27.6 KB (added by , 8 years ago) |
---|
-
binaries/data/mods/public/globalscripts/Templates.js
function GetTemplateDataHelper(template, 130 130 "description": aura.auraDescription || null 131 131 }; 132 132 } 133 133 } 134 134 135 if (template.BuildingAI) 136 { 137 ret.buildingAI = {}; 138 if (template.BuildingAI.DefaultArrowCount) 139 ret.buildingAI.defaultArrowCount = func("BuildingAI/DefaultArrowCount", +template.BuildingAI.DefaultArrowCount, player, template); 140 if (template.BuildingAI.GarrisonArrowMultiplier) 141 ret.buildingAI.garrisonArrowMultiplier = func("BuildingAI/GarrisonArrowMultiplier", +template.BuildingAI.GarrisonArrowMultiplier, player, template); 142 if (template.BuildingAI.MaxArrowCount) 143 ret.buildingAI.maxArrowCount = func("BuildingAI/MaxArrowCount", +template.BuildingAI.MaxArrowCount, player, template); 144 } 145 135 146 if (template.BuildRestrictions) 136 147 { 137 148 // required properties 138 149 ret.buildRestrictions = { 139 150 "placementType": template.BuildRestrictions.PlacementType, … … function GetTemplateDataHelper(template, 181 192 ret.footprint.circle = {"radius": +template.Footprint.Circle["@radius"]}; 182 193 else 183 194 warn("GetTemplateDataHelper(): Unrecognized Footprint type"); 184 195 } 185 196 197 if (template.GarrisonHolder) 198 { 199 ret.garrisonHolder = {}; 200 if (template.GarrisonHolder.Max) 201 ret.garrisonHolder.max = func("GarrisonHolder/Max", +template.GarrisonHolder.Max, player, template); 202 } 203 186 204 if (template.Obstruction) 187 205 { 188 206 ret.obstruction = { 189 207 "active": ("" + template.Obstruction.Active == "true"), 190 208 "blockMovement": ("" + template.Obstruction.BlockMovement == "true"), -
binaries/data/mods/public/gui/common/tooltips.js
function attackRateDetails(entState, typ 57 57 "time": time, 58 58 "second": g_TooltipTextFormats.unit[0] + translatePlural("second", "seconds", time) + g_TooltipTextFormats.unit[1] 59 59 }); 60 60 61 61 // or multiple arrows shot by BuildingAI 62 if (!entState.buildingAI )62 if (!entState.buildingAI || type != "Ranged") 63 63 return timeString; 64 64 65 let arrows = entState.buildingAI.arrowCount ;65 let arrows = entState.buildingAI.arrowCount || entState.buildingAI.defaultArrowCount; 66 66 let arrowString = sprintf(translatePlural("%(arrowcount)s %(arrow)s", "%(arrowcount)s %(arrow)s", arrows), { 67 67 "arrowcount": arrows, 68 68 "arrow": g_TooltipTextFormats.unit[0] + translatePlural("arrow", "arrows", arrows) + g_TooltipTextFormats.unit[1] 69 69 }); 70 70 … … function getAttackTooltip(template) 160 160 { 161 161 let attacks = []; 162 162 if (!template.attack) 163 163 return ""; 164 164 165 let rateLabel = g_TooltipTextFormats.header[0] + (template.buildingAI ? translate("Interval:") : translate("Rate:")) + g_TooltipTextFormats.header[1];166 167 165 for (let type in template.attack) 168 166 { 169 167 if (type == "Slaughter") 170 168 continue; // Slaughter is not a real attack, so do not show it. 171 169 if (type == "Charge") 172 170 continue; // Charging isn't implemented yet and shouldn't be displayed. 173 171 172 let rateLabel = template.buildingAI && type == "Ranged" ? translate("Interval:") : translate("Rate:"); 173 174 174 let rate = sprintf(translate("%(label)s %(details)s"), { 175 "label": rateLabel,175 "label": g_TooltipTextFormats.header[0] + rateLabel + g_TooltipTextFormats.header[1], 176 176 "details": attackRateDetails(template, type) 177 177 }); 178 178 179 179 let attackLabel = g_TooltipTextFormats.header[0] + getAttackTypeLabel(type) + g_TooltipTextFormats.header[1]; 180 180 if (type == "Capture") … … function getEntityCostTooltip(template, 392 392 393 393 return ""; 394 394 } 395 395 396 396 /** 397 * Returns the garrison information to display in the specified entity's construction and training button tooltip. 398 */ 399 function getGarrisonTooltip(template) 400 { 401 let garrison = ""; 402 if (template.garrisonHolder && template.garrisonHolder.max) 403 garrison = "\n" + sprintf(translate("%(label)s %(max)s"), { 404 "label": translate("Garrison Limit:"), 405 "max": template.garrisonHolder.max 406 }); 407 return garrison; 408 } 409 410 /** 411 * Returns the information about building arrows to display in the specified entity's construction and training button tooltip. 412 */ 413 function getGarrisonedArrowsTooltip(template) 414 { 415 let arrow = ""; 416 if (!template.buildingAI) 417 return arrow; 418 if (template.buildingAI.maxArrowCount) 419 arrow += "\n" + sprintf(translate("%(label)s %(arrowLimit)s"), { 420 "label": translate("Projectiles limit:"), 421 "arrowLimit": template.buildingAI.maxArrowCount 422 }); 423 if (template.buildingAI.garrisonArrowMultiplier) 424 arrow += "\n" + sprintf(translate("%(label)s %(arrowMultiplier)s"), { 425 "label": translate("Projectiles per garrisoned unit:"), 426 "arrowMultiplier": template.buildingAI.garrisonArrowMultiplier 427 }); 428 return arrow; 429 } 430 431 /** 397 432 * Returns the population bonus information to display in the specified entity's construction button tooltip. 398 433 */ 399 434 function getPopulationBonusTooltip(template) 400 435 { 401 436 let popBonus = ""; -
binaries/data/mods/public/gui/session/selection_panels.js
g_SelectionPanels.Construction = { 309 309 310 310 let tooltip = getEntityNamesFormatted(template); 311 311 tooltip += getVisibleEntityClassesFormatted(template); 312 312 tooltip += getAurasTooltip(template); 313 313 314 tooltip += "[font=\"sans-13\"]" 314 315 if (template.tooltip) 315 tooltip += "\n [font=\"sans-13\"]" + template.tooltip + "[/font]";316 316 tooltip += "\n" + template.tooltip; 317 tooltip += getGarrisonTooltip(template) + getGarrisonedArrowsTooltip(template) + "[/font]"; 317 318 tooltip += "\n" + getEntityCostTooltip(template); 318 319 tooltip += getPopulationBonusTooltip(template); 319 320 320 321 tooltip += formatLimitString(limits.entLimit, limits.entCount, limits.entLimitChangers); 321 322 … … g_SelectionPanels.Training = { 993 994 994 995 tooltip += getEntityNamesFormatted(template); 995 996 tooltip += getVisibleEntityClassesFormatted(template); 996 997 tooltip += getAurasTooltip(template); 997 998 999 tooltip += "[font=\"sans-13\"]" 998 1000 if (template.tooltip) 999 tooltip += "\n [font=\"sans-13\"]" + template.tooltip + "[/font]";1000 1001 tooltip += "\n" + template.tooltip; 1002 tooltip += getGarrisonTooltip(template) + getGarrisonedArrowsTooltip(template) + "[/font]"; 1001 1003 tooltip += "\n" + getEntityCostTooltip(template, trainNum, data.unitEntState.id); 1002 1004 1003 1005 let limits = getEntityLimitAndCount(data.playerState, data.item); 1004 1006 1005 1007 tooltip += formatLimitString(limits.entLimit, limits.entCount, limits.entLimitChangers); -
binaries/data/mods/public/simulation/templates/other/hellenic_epic_temple.xml
27 27 <Identity> 28 28 <Civ>gaia</Civ> 29 29 <GenericName>Epic Temple</GenericName> 30 30 <SpecificName>Naos Parthenos</SpecificName> 31 31 <History>The Hellenes built marvelous temples in order to honour their polytheistic pantheon. While all gods were venerated, a specific patron deity was supposed to watch over each polis.</History> 32 <Tooltip>Garrison u p to 30 units to heal them at a quick rate.</Tooltip>32 <Tooltip>Garrison units to heal them at a quick rate.</Tooltip> 33 33 </Identity> 34 34 <Loot> 35 35 <xp>50</xp> 36 36 <food>0</food> 37 37 <wood>0</wood> -
binaries/data/mods/public/simulation/templates/structures/athen_fortress.xml
5 5 <Height>8.0</Height> 6 6 </Footprint> 7 7 <Identity> 8 8 <Civ>athen</Civ> 9 9 <SpecificName>Epiteíkhisma</SpecificName> 10 <Tooltip>Build siege engines. Garrison up to 20soldiers inside for stout defense.</Tooltip>10 <Tooltip>Build siege engines. Garrison soldiers inside for stout defense.</Tooltip> 11 11 <History>Fortresses (also called "Phroúria") were built to guard passes and atop hills in order to command plains and valleys below. One such Athenian fortress, Gyphtokastro, guarded the pass from Attica into Boeotia.</History> 12 12 </Identity> 13 13 <Obstruction> 14 14 <Static width="24.0" depth="26.0"/> 15 15 </Obstruction> -
binaries/data/mods/public/simulation/templates/structures/athen_wonder.xml
12 12 </GarrisonHolder> 13 13 <Identity> 14 14 <Civ>athen</Civ> 15 15 <SpecificName>Naós Parthenṓn</SpecificName> 16 16 <History>The Hellenes built marvelous temples in order to honour their polytheistic pantheon. While all gods were venerated, a specific patron deity was supposed to watch over each polis.</History> 17 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison u p to 30 units to heal them at an extremely quick rate.</Tooltip>17 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison units to heal them at an extremely quick rate.</Tooltip> 18 18 </Identity> 19 19 <Obstruction> 20 20 <Static width="27.0" depth="57.0"/> 21 21 </Obstruction> 22 22 <VisualActor> -
binaries/data/mods/public/simulation/templates/structures/cart_temple.xml
11 11 </Footprint> 12 12 <Identity> 13 13 <Civ>cart</Civ> 14 14 <SpecificName>Maqdaš</SpecificName> 15 15 <History>What little we know of the Carthaginian religion has be pieced together from scattered sources. Tanit, a fertility goddess, was one of two principle gods in the Carthaginian pantheon, the other being her consort Ba'al, a deity of Phoenician origin.</History> 16 <Tooltip>Train priestesses to heal your troops. Train Sacred Band pikemen. Garrison u p to 20 units to heal them at a quick rate.</Tooltip>16 <Tooltip>Train priestesses to heal your troops. Train Sacred Band pikemen. Garrison units to heal them at a quick rate.</Tooltip> 17 17 </Identity> 18 18 <Obstruction> 19 19 <Static width="17.0" depth="30.0"/> 20 20 </Obstruction> 21 21 <ProductionQueue> -
binaries/data/mods/public/simulation/templates/structures/cart_wonder.xml
12 12 </GarrisonHolder> 13 13 <Identity> 14 14 <Civ>cart</Civ> 15 15 <SpecificName>Temple of Ba'al Hammon</SpecificName> 16 16 <History>Dating from the 2nd Century BC, the Mausoleum of Atban in northern Tunisia is over twenty metres high and was built by the inhabitants of Dougga for a Numidian prince.</History> 17 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison u p to 30 units to heal them at an extremely quick rate.</Tooltip>17 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison units to heal them at an extremely quick rate.</Tooltip> 18 18 </Identity> 19 19 <Obstruction> 20 20 <Static width="27.0" depth="57.0"/> 21 21 </Obstruction> 22 22 <VisualActor> -
binaries/data/mods/public/simulation/templates/structures/mace_fortress.xml
11 11 <Height>8.0</Height> 12 12 </Footprint> 13 13 <Identity> 14 14 <Civ>mace</Civ> 15 15 <SpecificName>Teíchisma</SpecificName> 16 <Tooltip>Train Champions and Heroes. Garrison up to 20soldiers inside for stout defense.</Tooltip>16 <Tooltip>Train Champions and Heroes. Garrison soldiers inside for stout defense.</Tooltip> 17 17 <History>The Akropolis was usually a fortified citadel in the upper part of the city. The Athenian Akropolis was renowned for its marvelous temples, among which was the Parthenon, while the Acro-Corinthus was highly prized by the Macedonians for its strategic location and good defenses. Fortresses (also called a "phrourion") were also built to guard passes and atop hills in order to command plains and valleys below.</History> 18 18 </Identity> 19 19 <Obstruction> 20 20 <Static width="24.0" depth="26.0"/> 21 21 </Obstruction> -
binaries/data/mods/public/simulation/templates/structures/mace_wonder.xml
12 12 </GarrisonHolder> 13 13 <Identity> 14 14 <Civ>mace</Civ> 15 15 <SpecificName>Naós Parthenṓn</SpecificName> 16 16 <History>The Hellenes built marvelous temples in order to honour their polytheistic pantheon. While all gods were venerated, a specific patron deity was supposed to watch over each polis.</History> 17 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison u p to 30 units to heal them at an extremely quick rate.</Tooltip>17 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison units to heal them at an extremely quick rate.</Tooltip> 18 18 </Identity> 19 19 <Obstruction> 20 20 <Static width="27.0" depth="57.0"/> 21 21 </Obstruction> 22 22 <VisualActor> -
binaries/data/mods/public/simulation/templates/structures/ptol_barracks.xml
13 13 <SpawnEntityOnDeath>rubble/rubble_stone_5x5</SpawnEntityOnDeath> 14 14 </Health> 15 15 <Identity> 16 16 <Civ>ptol</Civ> 17 17 <SpecificName>ḥwt-n-mš'</SpecificName> 18 <Tooltip>Train Egyptian and Middle-Eastern citizen-soldiers. Research training improvements. Garrison: 10.</Tooltip>18 <Tooltip>Train Egyptian and Middle-Eastern citizen-soldiers. Research training improvements.</Tooltip> 19 19 </Identity> 20 20 <Obstruction> 21 21 <Static width="20.0" depth="20.0"/> 22 22 </Obstruction> 23 23 <VisualActor> -
binaries/data/mods/public/simulation/templates/structures/ptol_wonder.xml
12 12 </GarrisonHolder> 13 13 <Identity> 14 14 <Civ>ptol</Civ> 15 15 <SpecificName>Temple of Edfu</SpecificName> 16 16 <History>The Temple of Edfu is an ancient Egyptian temple located on the west bank of the Nile in the city of Edfu which was known in Greco-Roman times as Apollonopolis Magna, after the chief god Horus-Apollo.The temple, dedicated to the falcon god Horus, was built in the Ptolemaic period between 237 and 57 BCE. In modern times, it is one of the best preserved temples of Egypt.</History> 17 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison u p to 30 units to heal them at an extremely quick rate.</Tooltip>17 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison units to heal them at an extremely quick rate.</Tooltip> 18 18 </Identity> 19 19 <Obstruction> 20 20 <Static width="44.0" depth="60.0"/> 21 21 </Obstruction> 22 22 <VisualActor> -
binaries/data/mods/public/simulation/templates/structures/rome_temple_mars.xml
10 10 <Identity> 11 11 <Civ>rome</Civ> 12 12 <GenericName>Temple of Mars</GenericName> 13 13 <SpecificName>Aedes Martis</SpecificName> 14 14 <History>Roman temples in general were not meant for congregational worship. Instead the temple housed a statue of whatever deity the temple was dedicated to and what was needed to carry out the ceremonial and cultic practice necessary for worship. Any actual worship activity was performed outside.</History> 15 <Tooltip>Train healers. Garrison u p to 30 units to heal them at a quick rate.</Tooltip>15 <Tooltip>Train healers. Garrison units to heal them at a quick rate.</Tooltip> 16 16 </Identity> 17 17 <Obstruction> 18 18 <Static width="20.0" depth="40.0"/> 19 19 </Obstruction> 20 20 <TerritoryInfluence> -
binaries/data/mods/public/simulation/templates/structures/rome_wonder.xml
11 11 <BuffHeal>8</BuffHeal> 12 12 </GarrisonHolder> 13 13 <Identity> 14 14 <Civ>rome</Civ> 15 15 <SpecificName>Aedes Iovis Optimi Maximi</SpecificName> 16 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison u p to 30 units to heal them at an extremely quick rate.</Tooltip>16 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison units to heal them at an extremely quick rate.</Tooltip> 17 17 </Identity> 18 18 <Obstruction> 19 19 <Static width="20.0" depth="40.0"/> 20 20 </Obstruction> 21 21 <VisualActor> -
binaries/data/mods/public/simulation/templates/structures/sele_fortress.xml
5 5 <Height>8.0</Height> 6 6 </Footprint> 7 7 <Identity> 8 8 <Civ>sele</Civ> 9 9 <SpecificName>Phrourion</SpecificName> 10 <Tooltip>Build siege engines and train Champions. Garrison up to 20soldiers inside for stout defense.</Tooltip>10 <Tooltip>Build siege engines and train Champions. Garrison soldiers inside for stout defense.</Tooltip> 11 11 <History>Fortresses were built to guard passes and atop hills in order to command plains and valleys below.</History> 12 12 </Identity> 13 13 <Obstruction> 14 14 <Static width="24.0" depth="26.0"/> 15 15 </Obstruction> -
binaries/data/mods/public/simulation/templates/structures/spart_wonder.xml
12 12 </GarrisonHolder> 13 13 <Identity> 14 14 <Civ>spart</Civ> 15 15 <SpecificName>Naós Parthenṓn</SpecificName> 16 16 <History>The Hellenes built marvelous temples in order to honour their polytheistic pantheon. While all gods were venerated, a specific patron deity was supposed to watch over each polis.</History> 17 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison u p to 30 units to heal them at a quick rate.</Tooltip>17 <Tooltip>Bring glory to your civilization and add large tracts of land to your empire. Garrison units to heal them at a quick rate.</Tooltip> 18 18 </Identity> 19 19 <Obstruction> 20 20 <Static width="27.0" depth="57.0"/> 21 21 </Obstruction> 22 22 <VisualActor> -
binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
64 64 <Max>3000</Max> 65 65 <SpawnEntityOnDeath>rubble/rubble_stone_6x6</SpawnEntityOnDeath> 66 66 </Health> 67 67 <Identity> 68 68 <GenericName>Civic Center</GenericName> 69 <Tooltip>Build to acquire large tracts of territory. Train citizens. Garrison: 20.</Tooltip>69 <Tooltip>Build to acquire large tracts of territory. Train citizens.</Tooltip> 70 70 <Classes datatype="tokens">Defensive CivCentre</Classes> 71 71 <VisibleClasses datatype="tokens">CivilCentre</VisibleClasses> 72 72 <Icon>structures/civic_centre.png</Icon> 73 73 </Identity> 74 74 <Loot> -
binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml
27 27 <Max>2000</Max> 28 28 <SpawnEntityOnDeath>rubble/rubble_stone_4x6</SpawnEntityOnDeath> 29 29 </Health> 30 30 <Identity> 31 31 <GenericName>Temple</GenericName> 32 <Tooltip>Train healers. Garrison u p to 20 units to heal them at a quick rate (3 HP per second). Research healing and religious improvements.</Tooltip>32 <Tooltip>Train healers. Garrison units to heal them at a quick rate (3 HP per second). Research healing and religious improvements.</Tooltip> 33 33 <VisibleClasses datatype="tokens">Town Temple</VisibleClasses> 34 34 <Icon>structures/temple.png</Icon> 35 35 <RequiredTechnology>phase_town</RequiredTechnology> 36 36 </Identity> 37 37 <Loot> -
binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml
25 25 <Max>2000</Max> 26 26 <SpawnEntityOnDeath>rubble/rubble_stone_4x4</SpawnEntityOnDeath> 27 27 </Health> 28 28 <Identity> 29 29 <GenericName>Barracks</GenericName> 30 <Tooltip>Train citizen-soldiers. Research training improvements. Garrison: 10.</Tooltip>30 <Tooltip>Train citizen-soldiers. Research training improvements.</Tooltip> 31 31 <VisibleClasses datatype="tokens">Village Barracks</VisibleClasses> 32 32 <Icon>structures/barracks.png</Icon> 33 33 <RequiredTechnology>phase_village</RequiredTechnology> 34 34 </Identity> 35 35 <Loot> -
binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
59 59 <Max>4200</Max> 60 60 <SpawnEntityOnDeath>rubble/rubble_stone_6x6</SpawnEntityOnDeath> 61 61 </Health> 62 62 <Identity> 63 63 <GenericName>Fortress</GenericName> 64 <Tooltip>Train heroes, champions, and siege weapons. Research siege weapon improvements. Garrison: 20.</Tooltip>64 <Tooltip>Train heroes, champions, and siege weapons. Research siege weapon improvements.</Tooltip> 65 65 <Classes datatype="tokens">GarrisonFortress</Classes> 66 66 <VisibleClasses datatype="tokens">Defensive City Fortress</VisibleClasses> 67 67 <Icon>structures/fortress.png</Icon> 68 68 <RequiredTechnology>phase_city</RequiredTechnology> 69 69 </Identity> -
binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml
45 45 </Health> 46 46 <Identity> 47 47 <GenericName>Light Warship</GenericName> 48 48 <Classes datatype="tokens">Warship Light Bow Ranged</Classes> 49 49 <RequiredTechnology>phase_town</RequiredTechnology> 50 <Tooltip>Garrison u p to 20 units for transport. Garrison increases the firepower up to 10 arrows.</Tooltip>50 <Tooltip>Garrison units for transport and to increase firepower.</Tooltip> 51 51 </Identity> 52 52 <ResourceGatherer disable=""/> 53 53 <Sound> 54 54 <SoundGroups> 55 55 <attack>attack/weapon/arrowfly.xml</attack> -
binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml
51 51 <Health> 52 52 <Max>2000</Max> 53 53 </Health> 54 54 <Identity> 55 55 <GenericName>Heavy Warship</GenericName> 56 <Tooltip>Garrison u p to 10 catapults to increase firepower.</Tooltip>56 <Tooltip>Garrison units for transport and to increase firepower.</Tooltip> 57 57 <Classes datatype="tokens">Warship Heavy Ranged</Classes> 58 58 <RequiredTechnology>phase_city</RequiredTechnology> 59 59 </Identity> 60 60 <Sound> 61 61 <SoundGroups> -
binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml
45 45 </Health> 46 46 <Identity> 47 47 <GenericName>Medium Warship</GenericName> 48 48 <VisibleClasses datatype="tokens">Warship Medium Ranged</VisibleClasses> 49 49 <RequiredTechnology>phase_town</RequiredTechnology> 50 <Tooltip>Garrison u p to 30 units for transport. Garrison increases the firepower up to 13 arrows.</Tooltip>50 <Tooltip>Garrison units for transport and to increase firepower.</Tooltip> 51 51 </Identity> 52 52 <ResourceGatherer disable=""/> 53 53 <Sound> 54 54 <SoundGroups> 55 55 <attack>attack/weapon/arrowfly.xml</attack> -
binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml
53 53 <Max>500</Max> 54 54 </Health> 55 55 <Identity> 56 56 <GenericName>Siege Tower</GenericName> 57 57 <Classes datatype="tokens">Ranged SiegeTower</Classes> 58 <Tooltip>Garrison u p to 20 infantry inside to increase arrow count from 0 to 10.</Tooltip>58 <Tooltip>Garrison units to increase firepower.</Tooltip> 59 59 </Identity> 60 60 <Selectable> 61 61 <Overlay> 62 62 <Texture> 63 63 <MainTexture>circle/256x256.png</MainTexture>