Remove all references to serif fonts in the GUI files (see cde72788a2
)
Rebuild the sans fonts to include the missing glyph character (fixes #2483) Update the pot files This was SVN commit r14980.
This commit is contained in:
parent
bfa6bbd0e0
commit
73470a3610
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/mono-10.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/mono-10.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/mono-stroke-10.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/mono-stroke-10.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-10.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-10.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-12.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-12.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-13.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-13.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-14.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-14.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-16.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-16.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-9.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-9.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-bold-12.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-bold-12.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-bold-13.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-bold-13.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-bold-14.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-bold-14.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-bold-16.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-bold-16.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-bold-18.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-bold-18.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-bold-20.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-bold-20.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-bold-22.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-bold-22.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-bold-24.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-bold-24.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-bold-stroke-12.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-bold-stroke-12.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-bold-stroke-13.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-bold-stroke-13.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-bold-stroke-14.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-bold-stroke-14.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-stroke-12.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-stroke-12.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-stroke-13.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-stroke-13.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-stroke-14.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-stroke-14.png
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
binaries/data/mods/public/fonts/sans-stroke-16.png
(Stored with Git LFS)
BIN
binaries/data/mods/public/fonts/sans-stroke-16.png
(Stored with Git LFS)
Binary file not shown.
@ -53,7 +53,7 @@ function initCivNameList()
|
||||
// Function to make first char of string big
|
||||
function bigFirstLetter(str, size)
|
||||
{
|
||||
return '[font="serif-bold-'+(size+6)+'"]' + str[0] + '[/font]' + '[font="serif-bold-'+size+'"]' + str.substring(1) + '[/font]';
|
||||
return '[font="sans-bold-'+(size+6)+'"]' + str[0] + '[/font]' + '[font="sans-bold-'+size+'"]' + str.substring(1) + '[/font]';
|
||||
}
|
||||
|
||||
// Heading font - bold and mixed caps
|
||||
@ -71,7 +71,7 @@ function heading(string, size)
|
||||
if (word.length && word[0].toLowerCase() != word[0])
|
||||
textArray[i] = bigFirstLetter(wordCaps, size);
|
||||
else
|
||||
textArray[i] = '[font="serif-bold-'+size+'"]' + wordCaps + '[/font]'; // TODO: Would not be necessary if we could do nested tags
|
||||
textArray[i] = '[font="sans-bold-'+size+'"]' + wordCaps + '[/font]'; // TODO: Would not be necessary if we could do nested tags
|
||||
}
|
||||
|
||||
return textArray.join(" ");
|
||||
@ -98,7 +98,7 @@ function selectCiv(code)
|
||||
|
||||
for(var i = 0; i < civInfo.CivBonuses.length; ++i)
|
||||
{
|
||||
bonusCaption += '[color="' + TEXTCOLOR + '"][font="serif-bold-14"]' + civInfo.CivBonuses[i].Name + '[/font] [icon="iconInfo" tooltip="'
|
||||
bonusCaption += '[color="' + TEXTCOLOR + '"][font="sans-bold-14"]' + civInfo.CivBonuses[i].Name + '[/font] [icon="iconInfo" tooltip="'
|
||||
+ escapeChars(civInfo.CivBonuses[i].History) + '" tooltip_style="civInfoTooltip"]\n ' + civInfo.CivBonuses[i].Description + '\n[/color]';
|
||||
}
|
||||
|
||||
@ -106,7 +106,7 @@ function selectCiv(code)
|
||||
|
||||
for(var i = 0; i < civInfo.TeamBonuses.length; ++i)
|
||||
{
|
||||
bonusCaption += '[color="' + TEXTCOLOR + '"][font="serif-bold-14"]' + civInfo.TeamBonuses[i].Name + '[/font] [icon="iconInfo" tooltip="'
|
||||
bonusCaption += '[color="' + TEXTCOLOR + '"][font="sans-bold-14"]' + civInfo.TeamBonuses[i].Name + '[/font] [icon="iconInfo" tooltip="'
|
||||
+ escapeChars(civInfo.TeamBonuses[i].History) + '" tooltip_style="civInfoTooltip"]\n ' + civInfo.TeamBonuses[i].Description + '\n[/color]';
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ function selectCiv(code)
|
||||
var faction = civInfo.Factions[i];
|
||||
for(var j = 0; j < faction.Technologies.length; ++j)
|
||||
{
|
||||
techCaption += '[color="' + TEXTCOLOR + '"][font="serif-bold-14"]' + faction.Technologies[j].Name + '[/font] [icon="iconInfo" tooltip="'
|
||||
techCaption += '[color="' + TEXTCOLOR + '"][font="sans-bold-14"]' + faction.Technologies[j].Name + '[/font] [icon="iconInfo" tooltip="'
|
||||
+ escapeChars(faction.Technologies[j].History) + '" tooltip_style="civInfoTooltip"]\n ' + faction.Technologies[j].Description + '\n[/color]';
|
||||
}
|
||||
}
|
||||
@ -130,7 +130,7 @@ function selectCiv(code)
|
||||
|
||||
for(var i = 0; i < civInfo.Structures.length; ++i)
|
||||
{
|
||||
techCaption += '[color="' + TEXTCOLOR + '"][font="serif-bold-14"]' + civInfo.Structures[i].Name + '[/font][/color] [icon="iconInfo" tooltip="'
|
||||
techCaption += '[color="' + TEXTCOLOR + '"][font="sans-bold-14"]' + civInfo.Structures[i].Name + '[/font][/color] [icon="iconInfo" tooltip="'
|
||||
+ escapeChars(civInfo.Structures[i].History) + '" tooltip_style="civInfoTooltip"]\n';
|
||||
}
|
||||
|
||||
@ -145,7 +145,7 @@ function selectCiv(code)
|
||||
var faction = civInfo.Factions[i];
|
||||
for(var j = 0; j < faction.Heroes.length; ++j)
|
||||
{
|
||||
heroCaption += '[color="' + TEXTCOLOR + '"][font="serif-bold-14"]' + faction.Heroes[j].Name + '[/font][/color] [icon="iconInfo" tooltip="'
|
||||
heroCaption += '[color="' + TEXTCOLOR + '"][font="sans-bold-14"]' + faction.Heroes[j].Name + '[/font][/color] [icon="iconInfo" tooltip="'
|
||||
+ escapeChars(faction.Heroes[j].History) + '" tooltip_style="civInfoTooltip"]\n';
|
||||
}
|
||||
heroCaption += '\n';
|
||||
|
@ -21,7 +21,7 @@
|
||||
<object
|
||||
name="civSelectionHeading"
|
||||
type="text"
|
||||
font="serif-bold-20"
|
||||
font="sans-bold-20"
|
||||
textcolor="white"
|
||||
text_align="left"
|
||||
size="50%-420 10 50%-96 48">
|
||||
@ -39,7 +39,7 @@
|
||||
<object
|
||||
name="civGameplayHeading"
|
||||
type="text"
|
||||
font="serif-bold-16"
|
||||
font="sans-bold-16"
|
||||
textcolor="white"
|
||||
text_align="left"
|
||||
text_valign="center"
|
||||
@ -51,7 +51,7 @@
|
||||
<object
|
||||
name="civBonuses"
|
||||
type="text"
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
textcolor="white"
|
||||
text_align="left"
|
||||
size="10 0 100%-10 100%-10"
|
||||
@ -62,7 +62,7 @@
|
||||
<object
|
||||
name="civTechs"
|
||||
type="text"
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
textcolor="white"
|
||||
text_align="left"
|
||||
size="10 0 100%-10 100%-10"
|
||||
@ -73,7 +73,7 @@
|
||||
<object
|
||||
name="civHeroes"
|
||||
type="text"
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
textcolor="white"
|
||||
text_align="left"
|
||||
size="10 0 100%-10 100%-10"
|
||||
@ -89,7 +89,7 @@
|
||||
<object
|
||||
name="civHistoryHeading"
|
||||
type="text"
|
||||
font="serif-bold-16"
|
||||
font="sans-bold-16"
|
||||
textcolor="white"
|
||||
text_align="left"
|
||||
text_valign="center"
|
||||
@ -101,7 +101,7 @@
|
||||
<object
|
||||
name="civHistoryText"
|
||||
type="text"
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
textcolor="white"
|
||||
text_align="left"
|
||||
size="10 0 100% 100%"
|
||||
|
@ -5,7 +5,7 @@
|
||||
anchor="top"
|
||||
buffer_zone="10"
|
||||
delay="50"
|
||||
font="serif-12"
|
||||
font="sans-12"
|
||||
textcolor="white"
|
||||
maxwidth="440"
|
||||
offset="16 24"
|
||||
|
@ -18,7 +18,7 @@ function cancelOnError(msg)
|
||||
Engine.PushGuiPage("page_msgbox.xml", {
|
||||
width: 500,
|
||||
height: 200,
|
||||
message: '[font="serif-bold-18"]' + msg + '[/font]',
|
||||
message: '[font="sans-bold-18"]' + msg + '[/font]',
|
||||
title: translate("Loading Aborted"),
|
||||
mode: 2
|
||||
});
|
||||
|
@ -20,7 +20,7 @@
|
||||
anchor="top"
|
||||
buffer_zone="4"
|
||||
delay="500"
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
maxwidth="300"
|
||||
offset="16 32"
|
||||
sprite="colour:255 255 255"
|
||||
|
@ -79,7 +79,7 @@
|
||||
anchor="top"
|
||||
buffer_zone="4"
|
||||
delay="500"
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
maxwidth="300"
|
||||
offset="16 32"
|
||||
sprite="bkWhiteBorderBlack"
|
||||
@ -90,7 +90,7 @@
|
||||
anchor="top"
|
||||
buffer_zone="4"
|
||||
delay="500"
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
maxwidth="300"
|
||||
offset="16 32"
|
||||
sprite="bkWhiteBorderBlack"
|
||||
@ -101,7 +101,7 @@
|
||||
anchor="bottom"
|
||||
buffer_zone="4"
|
||||
delay="500"
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
maxwidth="300"
|
||||
offset="-4 -4"
|
||||
sprite="bkWhiteBorderBlack"
|
||||
@ -117,7 +117,7 @@
|
||||
anchor="top"
|
||||
buffer_zone="4"
|
||||
delay="100"
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
maxwidth="300"
|
||||
offset="16 32"
|
||||
sprite="BackgroundSessionTooltip"
|
||||
@ -128,7 +128,7 @@
|
||||
anchor="bottom"
|
||||
buffer_zone="4"
|
||||
delay="100"
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
maxwidth="400"
|
||||
offset="-4 -4"
|
||||
sprite="BackgroundSessionTooltip"
|
||||
@ -139,7 +139,7 @@
|
||||
anchor="top"
|
||||
buffer_zone="4"
|
||||
delay="100"
|
||||
font="serif-bold-14"
|
||||
font="sans-bold-14"
|
||||
maxwidth="300"
|
||||
offset="16 32"
|
||||
sprite="BackgroundSessionTooltip"
|
||||
@ -150,7 +150,7 @@
|
||||
anchor="bottom"
|
||||
buffer_zone="4"
|
||||
delay="100"
|
||||
font="serif-bold-14"
|
||||
font="sans-bold-14"
|
||||
maxwidth="400"
|
||||
offset="-4 -4"
|
||||
sprite="BackgroundSessionTooltip"
|
||||
|
@ -55,7 +55,7 @@ var g_MapFilters = [];
|
||||
// Warn about the AI's nonexistent naval map support.
|
||||
var g_NavalWarning = "\n\n" + sprintf(
|
||||
translate("%(warning)s The AI does not support naval maps and may cause severe performance issues. Naval maps are recommended to be played with human opponents only."),
|
||||
{ warning: "[font=\"serif-bold-12\"][color=\"orange\"]" + translate("Warning:") + "[/color][/font]" }
|
||||
{ warning: "[font=\"sans-bold-12\"][color=\"orange\"]" + translate("Warning:") + "[/color][/font]" }
|
||||
);
|
||||
|
||||
// To prevent the display locking up while we load the map metadata,
|
||||
@ -1516,18 +1516,18 @@ function addChatMessage(msg)
|
||||
switch (msg.type)
|
||||
{
|
||||
case "connect":
|
||||
var formattedUsername = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font][color="gold"]'
|
||||
var formattedUsername = '[font="sans-bold-13"][color="'+ color +'"]' + username + '[/color][/font][color="gold"]'
|
||||
formatted = '[color="gold"]' + sprintf(translate("%(username)s has joined"), { username: formattedUsername });
|
||||
break;
|
||||
|
||||
case "disconnect":
|
||||
var formattedUsername = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font][color="gold"]'
|
||||
var formattedUsername = '[font="sans-bold-13"][color="'+ color +'"]' + username + '[/color][/font][color="gold"]'
|
||||
formatted = '[color="gold"]' + sprintf(translate("%(username)s has left"), { username: formattedUsername });
|
||||
break;
|
||||
|
||||
case "message":
|
||||
var formattedUsername = '[color="'+ color +'"]' + username + '[/color]'
|
||||
var formattedUsernamePrefix = '[font="serif-bold-13"]' + sprintf(translate("<%(username)s>"), { username: formattedUsername }) + '[/font]'
|
||||
var formattedUsernamePrefix = '[font="sans-bold-13"]' + sprintf(translate("<%(username)s>"), { username: formattedUsername }) + '[/font]'
|
||||
formatted = sprintf(translate("%(username)s %(message)s"), { username: formattedUsernamePrefix, message: message });
|
||||
break;
|
||||
|
||||
|
@ -96,7 +96,7 @@
|
||||
</object>
|
||||
<object name="playerConfig[n]" type="button" style="StoneButton" size="50%+5 6 50%+60 26"
|
||||
tooltip_style="onscreenToolTip"
|
||||
font="serif-bold-stroke-12"
|
||||
font="sans-bold-stroke-12"
|
||||
>
|
||||
<translatableAttribute id="caption">Settings</translatableAttribute>
|
||||
<translatableAttribute id="tooltip">Configure AI settings.</translatableAttribute>
|
||||
@ -203,7 +203,7 @@
|
||||
<!-- Tooltip -->
|
||||
<object name="onscreenToolTip"
|
||||
type="text"
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
textcolor="white"
|
||||
sprite="BackgroundTranslucent"
|
||||
hidden="true"
|
||||
|
@ -751,24 +751,24 @@ function ircFormat(text, from, color, key)
|
||||
{
|
||||
case "me":
|
||||
// Translation: IRC message prefix when the sender uses the /me command.
|
||||
var senderString = '[font="serif-bold-13"]' + sprintf(translate("* %(sender)s"), { sender: coloredFrom }) + '[/font]';
|
||||
var senderString = '[font="sans-bold-13"]' + sprintf(translate("* %(sender)s"), { sender: coloredFrom }) + '[/font]';
|
||||
// Translation: IRC message issued using the ‘/me’ command.
|
||||
var formattedMessage = sprintf(translate("%(sender)s %(action)s"), { sender: senderString, action: message });
|
||||
break;
|
||||
case "say":
|
||||
// Translation: IRC message prefix.
|
||||
var senderString = '[font="serif-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
|
||||
var senderString = '[font="sans-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
|
||||
// Translation: IRC message.
|
||||
var formattedMessage = sprintf(translate("%(sender)s %(message)s"), { sender: senderString, message: message });
|
||||
break
|
||||
case "special":
|
||||
if (key === g_specialKey)
|
||||
// Translation: IRC system message.
|
||||
var formattedMessage = '[font="serif-bold-13"]' + sprintf(translate("== %(message)s"), { message: message }) + '[/font]';
|
||||
var formattedMessage = '[font="sans-bold-13"]' + sprintf(translate("== %(message)s"), { message: message }) + '[/font]';
|
||||
else
|
||||
{
|
||||
// Translation: IRC message prefix.
|
||||
var senderString = '[font="serif-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
|
||||
var senderString = '[font="sans-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
|
||||
// Translation: IRC message.
|
||||
var formattedMessage = sprintf(translate("%(sender)s %(message)s"), { sender: senderString, message: message });
|
||||
}
|
||||
@ -781,7 +781,7 @@ function ircFormat(text, from, color, key)
|
||||
else
|
||||
{
|
||||
// Translation: IRC message prefix.
|
||||
var senderString = '[font="serif-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
|
||||
var senderString = '[font="sans-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
|
||||
// Translation: IRC message.
|
||||
var formattedMessage = sprintf(translate("%(sender)s %(message)s"), { sender: senderString, message: text });
|
||||
}
|
||||
@ -798,7 +798,7 @@ function ircFormat(text, from, color, key)
|
||||
var timeString = Engine.FormatMillisecondsIntoDateString(time.getTime(), translate("HH:mm"));
|
||||
|
||||
// Translation: Time prefix as shown in the multiplayer lobby (when you enable it in the options page).
|
||||
var timePrefixString = '[font="serif-bold-13"]' + sprintf(translate("[%(time)s]"), { time: timeString }) + '[/font]';
|
||||
var timePrefixString = '[font="sans-bold-13"]' + sprintf(translate("[%(time)s]"), { time: timeString }) + '[/font]';
|
||||
|
||||
// Translation: IRC message format when there is a time prefix.
|
||||
return sprintf(translate("%(time)s %(message)s"), { time: timePrefixString, message: formattedMessage });
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
<!-- Left panel: Player list. -->
|
||||
<object name="leftPanel" size="20 30 20% 100%-50">
|
||||
<object name="playersBox" style="ModernList" type="olist" size="0 0 100% 100%" font="serif-bold-stroke-13">
|
||||
<object name="playersBox" style="ModernList" type="olist" size="0 0 100% 100%" font="sans-bold-stroke-13">
|
||||
<def id="status" width="27%">
|
||||
<translatableAttribute id="heading">Status</translatableAttribute>
|
||||
</def>
|
||||
@ -147,7 +147,7 @@
|
||||
type="dropdown"
|
||||
style="ModernDropDown"
|
||||
size="45%-10 0 68% 100%"
|
||||
font="serif-bold-13">
|
||||
font="sans-bold-13">
|
||||
<action on="SelectionChange">applyFilters();</action>
|
||||
</object>
|
||||
|
||||
@ -155,7 +155,7 @@
|
||||
type="dropdown"
|
||||
style="ModernDropDown"
|
||||
size="70% 0 88% 100%"
|
||||
font="serif-bold-13">
|
||||
font="sans-bold-13">
|
||||
<action on="SelectionChange">applyFilters();</action>
|
||||
</object>
|
||||
|
||||
@ -163,7 +163,7 @@
|
||||
type="dropdown"
|
||||
style="ModernDropDown"
|
||||
size="90% 0 100% 100%"
|
||||
font="serif-bold-13">
|
||||
font="sans-bold-13">
|
||||
<action on="SelectionChange">applyFilters();</action>
|
||||
</object>
|
||||
|
||||
@ -175,14 +175,14 @@
|
||||
checked="true"
|
||||
style="ModernTickBox"
|
||||
size="0 0 20 20"
|
||||
font="serif-bold-13">
|
||||
font="sans-bold-13">
|
||||
<action on="Press">applyFilters();</action>
|
||||
</object>
|
||||
</object>
|
||||
|
||||
<object name="chatPanel" size="0 49% 100% 100%" type="image" sprite="ModernDarkBoxGold">
|
||||
<object name="chatText" size="0 0 100% 94%" type="text" style="ChatPanel" font="serif-13"/>
|
||||
<object name="chatInput" size="0 94% 100% 100%" type="input" style="ModernInput" font="serif-13">
|
||||
<object name="chatText" size="0 0 100% 94%" type="text" style="ChatPanel" font="sans-13"/>
|
||||
<object name="chatInput" size="0 94% 100% 100%" type="input" style="ModernInput" font="sans-13">
|
||||
<action on="Press">submitChatInput();</action>
|
||||
<action on="Tab">completeNick();</action>
|
||||
</object>
|
||||
|
@ -1,12 +1,12 @@
|
||||
[font="serif-bold-18"]0 A.D. in-game manual
|
||||
[font="serif-14"]
|
||||
[font="sans-bold-18"]0 A.D. in-game manual
|
||||
[font="sans-14"]
|
||||
Thank you for installing 0 A.D.! This page will give a brief overview of the features available in this incomplete, under-development, alpha version of the game.
|
||||
|
||||
[font="serif-bold-16"]Graphics settings
|
||||
[font="serif-14"]You can switch between fullscreen and windowed mode by pressing Alt + Enter. In windowed mode, you can resize the window. If the game runs too slowly, you can change some settings in the configuration file: look for binaries/data/config/default.cfg in the location where the game is installed, which gives instructions for editing, and try disabling the "fancywater" and "shadows" options.
|
||||
[font="sans-bold-16"]Graphics settings
|
||||
[font="sans-14"]You can switch between fullscreen and windowed mode by pressing Alt + Enter. In windowed mode, you can resize the window. If the game runs too slowly, you can change some settings in the configuration file: look for binaries/data/config/default.cfg in the location where the game is installed, which gives instructions for editing, and try disabling the "fancywater" and "shadows" options.
|
||||
|
||||
[font="serif-bold-16"]Playing the game
|
||||
[font="serif-14"]The controls and gameplay should be familiar to players of traditional RTS games. There are currently a lot of missing features and poorly-balanced stats – you will probably have to wait until a beta release for it to work well.
|
||||
[font="sans-bold-16"]Playing the game
|
||||
[font="sans-14"]The controls and gameplay should be familiar to players of traditional RTS games. There are currently a lot of missing features and poorly-balanced stats – you will probably have to wait until a beta release for it to work well.
|
||||
|
||||
Basic controls:
|
||||
• Left-click to select units.
|
||||
@ -16,17 +16,17 @@ Basic controls:
|
||||
• Ctrl + arrow keys, or shift + mouse wheel, to rotate the camera.
|
||||
• Mouse wheel, or "+" and "-" keys, to zoom.
|
||||
|
||||
[font="serif-bold-16"]Modes
|
||||
[font="serif-14"]The main menu gives access to two game modes:
|
||||
[font="sans-bold-16"]Modes
|
||||
[font="sans-14"]The main menu gives access to two game modes:
|
||||
|
||||
• [font="serif-bold-14"]Single-player[font="serif-14"] — play a sandbox game or against one or more AI opponents. The AI/AIs are under development and may not always be up to date on the new features, but you can test playing the game against an actual opponent if you aren't able to play with a human.
|
||||
• [font="sans-bold-14"]Single-player[font="sans-14"] — play a sandbox game or against one or more AI opponents. The AI/AIs are under development and may not always be up to date on the new features, but you can test playing the game against an actual opponent if you aren't able to play with a human.
|
||||
|
||||
• [font="serif-bold-14"]Multiplayer[font="serif-14"] — play against human opponents over the internet.
|
||||
• [font="sans-bold-14"]Multiplayer[font="sans-14"] — play against human opponents over the internet.
|
||||
|
||||
To set up a multiplayer game, one player must select the "Host game" option. The game uses UDP port 20595, so the host must configure their NAT/firewall/etc to allow this. Other players can then select "Join game" and enter the host's IP address.
|
||||
|
||||
[font="serif-bold-16"]Game setup
|
||||
[font="serif-14"]In a multiplayer game, only the host can alter the game setup options.
|
||||
[font="sans-bold-16"]Game setup
|
||||
[font="sans-14"]In a multiplayer game, only the host can alter the game setup options.
|
||||
|
||||
First, select whether you want to play on a random map (created automatically from a random map script) or a scenario (created by a map designer). Scenarios can be filtered to show only some maps. The default maps are shown immediately, but custom maps are often not so select "All maps" to see a list of all available maps. Then select a map to play on. The "Demo Maps" are designed for testing particular gameplay features and are probably not generally useful.
|
||||
|
||||
@ -34,9 +34,9 @@ Finally change the settings. For random maps this includes the number of players
|
||||
|
||||
When you are ready to start, click the "Start game" button.
|
||||
|
||||
[font="serif-bold-16"]Hotkeys:
|
||||
[font="serif-bold-14"]Always
|
||||
[font="serif-14"]Alt + F4: Close the game, without confirmation
|
||||
[font="sans-bold-16"]Hotkeys:
|
||||
[font="sans-bold-14"]Always
|
||||
[font="sans-14"]Alt + F4: Close the game, without confirmation
|
||||
Alt + Enter: Toggle between fullscreen and windowed
|
||||
~ or F9: Show/hide console
|
||||
Alt + F: Show/hide frame counter (FPS)
|
||||
@ -45,8 +45,8 @@ Shift + F11: Save current profiler data to "logs/profile.txt"
|
||||
F2: Take screenshot (in .png format, location is displayed in the top left of the GUI after the file has been saved, and can also be seen in the console/logs if you miss it there)
|
||||
Shift + F2: Take huge screenshot (6400px*4800px, in .bmp format, location is displayed in the top left of the GUI after the file has been saved, and can also be seen in the console/logs if you miss it there)
|
||||
|
||||
[font="serif-bold-14"]In Game
|
||||
[font="serif-14"]Double Left Click [on unit]: Select all of your units of the same kind on the screen (even if they're different ranks)
|
||||
[font="sans-bold-14"]In Game
|
||||
[font="sans-14"]Double Left Click [on unit]: Select all of your units of the same kind on the screen (even if they're different ranks)
|
||||
Triple Left Click [on unit]: Select all of your units of the same kind and the same rank on the screen
|
||||
Alt + Double Left Click [on unit]: Select all your units of the same kind on the entire map (even if the are different ranks)
|
||||
Alt + Triple Left Click [on unit]: Select all your units of the same kind and rank on the entire map
|
||||
@ -69,8 +69,8 @@ Ctrl + F5 (and so on up to F8): Mark the current camera position, for jumping ba
|
||||
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.
|
||||
|
||||
[font="serif-bold-14"]Modify mouse action
|
||||
[font="serif-14"]Ctrl + Right Click on building: Garrison
|
||||
[font="sans-bold-14"]Modify mouse action
|
||||
[font="sans-14"]Ctrl + Right Click on building: Garrison
|
||||
Shift + Right Click: Queue the move/build/gather/etc order
|
||||
Shift + Left click when training unit/s: Add units in batches of five
|
||||
Shift + Left Click or Left Drag over unit on map: Add unit to selection
|
||||
@ -82,15 +82,15 @@ Ctrl + Right Click with units selected:
|
||||
- If the cursor is over a structure: Garrison
|
||||
- Otherwise: Attack move
|
||||
|
||||
[font="serif-bold-14"]Overlays
|
||||
[font="serif-14"]Alt + G: Hide/show the GUI
|
||||
[font="sans-bold-14"]Overlays
|
||||
[font="sans-14"]Alt + G: Hide/show the GUI
|
||||
Alt + D: Show/hide developer overlay (with developer options)
|
||||
Alt + W: Toggle wireframe mode (press once to get wireframes overlaid over the textured models, twice to get just the wireframes colored by the textures, thrice to get back to normal textured mode)
|
||||
Alt + S: Toggle unit silhouettes (might give a small performance boost)
|
||||
Alt + Z: Toggle sky
|
||||
|
||||
[font="serif-bold-14"]Camera manipulation
|
||||
[font="serif-14"]W or [up]: Pan screen up
|
||||
[font="sans-bold-14"]Camera manipulation
|
||||
[font="sans-14"]W or [up]: Pan screen up
|
||||
S or [down]: Pan screen down
|
||||
A or [left]: Pan screen left
|
||||
D or [right]: Pan screen right
|
||||
@ -109,7 +109,7 @@ R: Reset camera zoom/orientation
|
||||
Alt + W: Toggle through wireframe modes
|
||||
Middle Mouse Button or / (Forward Slash): Keep pressed and move the mouse to pan
|
||||
|
||||
[font="serif-bold-14"]During Building Placement
|
||||
[font="serif-14"][: Rotate building 15 degrees counter-clockwise
|
||||
[font="sans-bold-14"]During Building Placement
|
||||
[font="sans-14"][: Rotate building 15 degrees counter-clockwise
|
||||
]: Rotate building 15 degrees clockwise
|
||||
Left Drag: Rotate building using mouse (foundation will be placed on mouse release)
|
||||
|
@ -172,7 +172,7 @@ function ShowRenderPathMessage()
|
||||
messageBox(
|
||||
600,
|
||||
300,
|
||||
"[font=\"serif-bold-16\"]" +
|
||||
"[font=\"sans-bold-16\"]" +
|
||||
sprintf(translate("%(startWarning)sWarning:%(endWarning)s You appear to be using non-shader (fixed function) graphics. This option will be removed in a future 0 A.D. release, to allow for more advanced graphics features. We advise upgrading your graphics card to a more recent, shader-compatible model."), { startWarning: "[color=\"200 20 20\"]", endWarning: "[/color]"}) +
|
||||
"\n\n" +
|
||||
// Translation: This is the second paragraph of a warning. The
|
||||
|
@ -93,7 +93,7 @@
|
||||
style="userReportText"
|
||||
>
|
||||
<attribute id="caption">
|
||||
<keep>[font="serif-bold-16"]</keep>
|
||||
<keep>[font="sans-bold-16"]</keep>
|
||||
<translate>Help improve 0 A.D.!</translate>
|
||||
<keep>[/font]\n</keep>
|
||||
<translate>You can automatically send us anonymous feedback that will help us fix bugs, and improve performance and compatibility.</translate>
|
||||
@ -121,7 +121,7 @@
|
||||
style="userReportText"
|
||||
>
|
||||
<attribute id="caption">
|
||||
<keep>[font="serif-bold-16"]</keep>
|
||||
<keep>[font="sans-bold-16"]</keep>
|
||||
<translate>Thank you for helping improve 0 A.D.!</translate>
|
||||
<keep>[/font]\n\n</keep>
|
||||
<translate>Anonymous feedback is currently enabled.</translate>
|
||||
@ -469,7 +469,7 @@
|
||||
|
||||
<!-- PRE-RELEASE WARNING -->
|
||||
<object
|
||||
font="serif-14"
|
||||
font="sans-14"
|
||||
type="text"
|
||||
textcolor="white"
|
||||
size="8 8 100%-8 100%-36"
|
||||
@ -477,7 +477,7 @@
|
||||
>
|
||||
<!-- IMPORTANT: remember to update session/session.xml in sync with this: -->
|
||||
<attribute id="caption">
|
||||
<keep>[font="serif-bold-16"]</keep>
|
||||
<keep>[font="sans-bold-16"]</keep>
|
||||
<translate>Alpha XV: Osiris</translate>
|
||||
<keep>[/font]\n\n</keep>
|
||||
<translate>WARNING: This is an early development version of the game. Many features have not been added yet.</translate>
|
||||
|
@ -93,13 +93,13 @@ function displaySingle(entState, template)
|
||||
|
||||
if (entState.promotion.curr < entState.promotion.req)
|
||||
Engine.GetGUIObjectByName("experience").tooltip = sprintf(translate("%(experience)s %(current)s / %(required)s"), {
|
||||
experience: "[font=\"serif-bold-13\"]" + translate("Experience:") + "[/font]",
|
||||
experience: "[font=\"sans-bold-13\"]" + translate("Experience:") + "[/font]",
|
||||
current: Math.floor(entState.promotion.curr),
|
||||
required: entState.promotion.req
|
||||
});
|
||||
else
|
||||
Engine.GetGUIObjectByName("experience").tooltip = sprintf(translate("%(experience)s %(current)s"), {
|
||||
experience: "[font=\"serif-bold-13\"]" + translate("Experience:") + "[/font]",
|
||||
experience: "[font=\"sans-bold-13\"]" + translate("Experience:") + "[/font]",
|
||||
current: Math.floor(entState.promotion.curr)
|
||||
});
|
||||
Engine.GetGUIObjectByName("experience").hidden = false;
|
||||
@ -223,7 +223,7 @@ function displaySingle(entState, template)
|
||||
Engine.GetGUIObjectByName("icon").sprite = "bkFillBlack";
|
||||
}
|
||||
|
||||
var armorLabel = "[font=\"serif-bold-13\"]" + translate("Armor:") + "[/font]"
|
||||
var armorLabel = "[font=\"sans-bold-13\"]" + translate("Armor:") + "[/font]"
|
||||
var armorString = sprintf(translate("%(label)s %(details)s"), { label: armorLabel, details: armorTypeDetails(entState.armour) });
|
||||
|
||||
// Attack and Armor
|
||||
@ -231,9 +231,9 @@ function displaySingle(entState, template)
|
||||
{
|
||||
// Rate
|
||||
if (entState.buildingAI)
|
||||
var rateLabel = "[font=\"serif-bold-13\"]" + translate("Interval:") + "[/font]";
|
||||
var rateLabel = "[font=\"sans-bold-13\"]" + translate("Interval:") + "[/font]";
|
||||
else
|
||||
var rateLabel = "[font=\"serif-bold-13\"]" + translate("Rate:") + "[/font]";
|
||||
var rateLabel = "[font=\"sans-bold-13\"]" + translate("Rate:") + "[/font]";
|
||||
|
||||
var rate = sprintf(translate("%(label)s %(details)s"), {
|
||||
label: rateLabel,
|
||||
@ -241,12 +241,12 @@ function displaySingle(entState, template)
|
||||
});
|
||||
|
||||
var attack;
|
||||
var label = "[font=\"serif-bold-13\"]" + getAttackTypeLabel(entState.attack.type) + "[/font]"
|
||||
var label = "[font=\"sans-bold-13\"]" + getAttackTypeLabel(entState.attack.type) + "[/font]"
|
||||
if (entState.attack.type == "Ranged")
|
||||
{
|
||||
var realRange = entState.attack.elevationAdaptedRange;
|
||||
var range = entState.attack.maxRange;
|
||||
var rangeLabel = "[font=\"serif-bold-13\"]" + translate("Range:") + "[/font]"
|
||||
var rangeLabel = "[font=\"sans-bold-13\"]" + translate("Range:") + "[/font]"
|
||||
var relativeRange = Math.round((realRange - range));
|
||||
var meters = "[font=\"sans-10\"][color=\"orange\"]" + translate("meters") + "[/color][/font]";
|
||||
|
||||
@ -300,10 +300,10 @@ function displaySingle(entState, template)
|
||||
var iconTooltip = "";
|
||||
|
||||
if (genericName)
|
||||
iconTooltip = "[font=\"serif-bold-16\"]" + genericName + "[/font]";
|
||||
iconTooltip = "[font=\"sans-bold-16\"]" + genericName + "[/font]";
|
||||
|
||||
if (template.tooltip)
|
||||
iconTooltip += "\n[font=\"serif-13\"]" + template.tooltip + "[/font]";
|
||||
iconTooltip += "\n[font=\"sans-13\"]" + template.tooltip + "[/font]";
|
||||
|
||||
Engine.GetGUIObjectByName("iconBorder").tooltip = iconTooltip;
|
||||
|
||||
@ -338,7 +338,7 @@ function displayMultiple(selection, template)
|
||||
healthSize.rtop = 100-100*Math.max(0, Math.min(1, averageHealth / maxHealth));
|
||||
unitHealthBar.size = healthSize;
|
||||
|
||||
var hitpointsLabel = "[font=\"serif-bold-13\"]" + translate("Hitpoints:") + "[/font]"
|
||||
var hitpointsLabel = "[font=\"sans-bold-13\"]" + translate("Hitpoints:") + "[/font]"
|
||||
var hitpoints = sprintf(translate("%(label)s %(current)s / %(max)s"), { label: hitpointsLabel, current: averageHealth, max: maxHealth });
|
||||
var healthMultiple = Engine.GetGUIObjectByName("healthMultiple");
|
||||
healthMultiple.tooltip = hitpoints;
|
||||
|
@ -627,10 +627,10 @@ function updateHero()
|
||||
unitHeroPanel.hidden = false;
|
||||
|
||||
// Setup tooltip
|
||||
var tooltip = "[font=\"serif-bold-16\"]" + template.name.specific + "[/font]";
|
||||
var healthLabel = "[font=\"serif-bold-13\"]" + translate("Health:") + "[/font]";
|
||||
var tooltip = "[font=\"sans-bold-16\"]" + template.name.specific + "[/font]";
|
||||
var healthLabel = "[font=\"sans-bold-13\"]" + translate("Health:") + "[/font]";
|
||||
tooltip += "\n" + sprintf(translate("%(label)s %(current)s / %(max)s"), { label: healthLabel, current: heroState.hitpoints, max: heroState.maxHitpoints });
|
||||
var attackLabel = "[font=\"serif-bold-13\"]" + getAttackTypeLabel(heroState.attack.type) + "[/font]";
|
||||
var attackLabel = "[font=\"sans-bold-13\"]" + getAttackTypeLabel(heroState.attack.type) + "[/font]";
|
||||
if (heroState.attack && heroState.attack.type == "Ranged")
|
||||
// Show max attack range if ranged attack, also convert to tiles (4m per tile)
|
||||
tooltip += "\n" + sprintf(
|
||||
@ -638,14 +638,14 @@ function updateHero()
|
||||
{
|
||||
attackLabel: attackLabel,
|
||||
details: damageTypeDetails(heroState.attack),
|
||||
rangeLabel: "[font=\"serif-bold-13\"]" + translate("Range:") + "[/font]",
|
||||
rangeLabel: "[font=\"sans-bold-13\"]" + translate("Range:") + "[/font]",
|
||||
range: Math.round(heroState.attack.maxRange/4)
|
||||
}
|
||||
);
|
||||
else
|
||||
tooltip += "\n" + sprintf(translate("%(label)s %(details)s"), { label: attackLabel, details: damageTypeDetails(heroState.armour) });
|
||||
|
||||
var armorLabel = "[font=\"serif-bold-13\"]" + translate("Armor:") + "[/font]";
|
||||
var armorLabel = "[font=\"sans-bold-13\"]" + translate("Armor:") + "[/font]";
|
||||
tooltip += "\n" + sprintf(translate("%(label)s %(details)s"), { label: armorLabel, details: damageTypeDetails(heroState.attack) });
|
||||
tooltip += "\n" + template.tooltip;
|
||||
|
||||
|
@ -754,7 +754,7 @@
|
||||
<!-- ================================ ================================ -->
|
||||
<!-- Phase -->
|
||||
<!-- ================================ ================================ -->
|
||||
<!--<object size="50%+50 4 50%+300 100%-2" name="PhaseTitleBar" type="text" font="serif-bold-stroke-14" textcolor="white"> Death Match :: Village Phase</object>-->
|
||||
<!--<object size="50%+50 4 50%+300 100%-2" name="PhaseTitleBar" type="text" font="sans-bold-stroke-14" textcolor="white"> Death Match :: Village Phase</object>-->
|
||||
|
||||
<!-- ================================ ================================ -->
|
||||
<!-- Observer Mode Warning -->
|
||||
|
@ -190,7 +190,7 @@ function formatBatchTrainingString(buildingsCountToTrainFullBatch, fullBatchSize
|
||||
}
|
||||
var remainderBatchString = remainderBatch > 0 ? remainderBatch : "";
|
||||
var batchDetailsString = "";
|
||||
var action = "[font=\"serif-bold-13\"]" + translate("Shift-click") + "[/font][font=\"serif-13\"]"
|
||||
var action = "[font=\"sans-bold-13\"]" + translate("Shift-click") + "[/font][font=\"sans-13\"]"
|
||||
|
||||
// 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
|
||||
@ -199,21 +199,21 @@ function formatBatchTrainingString(buildingsCountToTrainFullBatch, fullBatchSize
|
||||
(buildingsCountToTrainFullBatch == 1 && remainderBatch > 0))
|
||||
{
|
||||
if (remainderBatch > 0)
|
||||
return "\n[font=\"serif-13\"]" + sprintf(translate("%(action)s to train %(number)s (%(fullBatch)s + %(remainderBatch)s)."), {
|
||||
return "\n[font=\"sans-13\"]" + sprintf(translate("%(action)s to train %(number)s (%(fullBatch)s + %(remainderBatch)s)."), {
|
||||
action: action,
|
||||
number: totalBatchTrainingCount,
|
||||
fullBatch: fullBatchesString,
|
||||
remainderBatch: remainderBatch
|
||||
}) + "[/font]";
|
||||
|
||||
return "\n[font=\"serif-13\"]" + sprintf(translate("%(action)s to train %(number)s (%(fullBatch)s)."), {
|
||||
return "\n[font=\"sans-13\"]" + sprintf(translate("%(action)s to train %(number)s (%(fullBatch)s)."), {
|
||||
action: action,
|
||||
number: totalBatchTrainingCount,
|
||||
fullBatch: fullBatchesString
|
||||
}) + "[/font]";
|
||||
}
|
||||
|
||||
return "\n[font=\"serif-13\"]" + sprintf(translate("%(action)s to train %(number)s."), {
|
||||
return "\n[font=\"sans-13\"]" + sprintf(translate("%(action)s to train %(number)s."), {
|
||||
action: action,
|
||||
number: totalBatchTrainingCount
|
||||
}) + "[/font]";
|
||||
@ -499,10 +499,10 @@ function setupUnitPanel(guiName, usedPanels, unitEntState, playerState, items, c
|
||||
var tooltip = getEntityNamesFormatted(template);
|
||||
var key = Engine.ConfigDB_GetValue("user", "hotkey.session.queueunit." + (i + 1));
|
||||
if (key)
|
||||
tooltip = "[color=\"255 251 131\"][font=\"serif-bold-16\"][" + key + "][/font][/color] " + tooltip;
|
||||
tooltip = "[color=\"255 251 131\"][font=\"sans-bold-16\"][" + key + "][/font][/color] " + tooltip;
|
||||
|
||||
if (template.tooltip)
|
||||
tooltip += "\n[font=\"serif-13\"]" + template.tooltip + "[/font]";
|
||||
tooltip += "\n[font=\"sans-13\"]" + template.tooltip + "[/font]";
|
||||
|
||||
var [buildingsCountToTrainFullBatch, fullBatchSize, remainderBatch] =
|
||||
getTrainingBatchStatus(playerState, unitEntState.id, entType, selection);
|
||||
@ -521,7 +521,7 @@ function setupUnitPanel(guiName, usedPanels, unitEntState, playerState, items, c
|
||||
case RESEARCH:
|
||||
var tooltip = getEntityNamesFormatted(template);
|
||||
if (template.tooltip)
|
||||
tooltip += "\n[font=\"serif-13\"]" + template.tooltip + "[/font]";
|
||||
tooltip += "\n[font=\"sans-13\"]" + template.tooltip + "[/font]";
|
||||
|
||||
tooltip += "\n" + getEntityCostTooltip(template);
|
||||
|
||||
@ -529,7 +529,7 @@ function setupUnitPanel(guiName, usedPanels, unitEntState, playerState, items, c
|
||||
{
|
||||
var tooltip1 = getEntityNamesFormatted(template1);
|
||||
if (template1.tooltip)
|
||||
tooltip1 += "\n[font=\"serif-13\"]" + template1.tooltip + "[/font]";
|
||||
tooltip1 += "\n[font=\"sans-13\"]" + template1.tooltip + "[/font]";
|
||||
|
||||
tooltip1 += "\n" + getEntityCostTooltip(template1);
|
||||
}
|
||||
@ -538,7 +538,7 @@ function setupUnitPanel(guiName, usedPanels, unitEntState, playerState, items, c
|
||||
case CONSTRUCTION:
|
||||
var tooltip = getEntityNamesFormatted(template);
|
||||
if (template.tooltip)
|
||||
tooltip += "\n[font=\"serif-13\"]" + template.tooltip + "[/font]";
|
||||
tooltip += "\n[font=\"sans-13\"]" + template.tooltip + "[/font]";
|
||||
|
||||
tooltip += "\n" + getEntityCostTooltip(template);
|
||||
tooltip += getPopulationBonusTooltip(template);
|
||||
|
@ -152,7 +152,7 @@ function damageValues(dmg)
|
||||
function damageTypeDetails(dmg)
|
||||
{
|
||||
if (!dmg)
|
||||
return "[font=\"serif-12\"]" + translate("(None)") + "[/font]";
|
||||
return "[font=\"sans-12\"]" + translate("(None)") + "[/font]";
|
||||
|
||||
var dmgArray = [];
|
||||
if (dmg.hack)
|
||||
@ -199,7 +199,7 @@ function armorLevelToPercentageString(level)
|
||||
function armorTypeDetails(dmg)
|
||||
{
|
||||
if (!dmg)
|
||||
return "[font=\"serif-12\"]" + translate("(None)") + "[/font]";
|
||||
return "[font=\"sans-12\"]" + translate("(None)") + "[/font]";
|
||||
|
||||
var dmgArray = [];
|
||||
if (dmg.hack)
|
||||
@ -228,55 +228,55 @@ function armorTypeDetails(dmg)
|
||||
function damageTypesToText(dmg)
|
||||
{
|
||||
if (!dmg)
|
||||
return "[font=\"serif-12\"]" + translate("(None)") + "[/font]";
|
||||
return "[font=\"sans-12\"]" + translate("(None)") + "[/font]";
|
||||
|
||||
var dmgArray = [];
|
||||
if (dmg.hack)
|
||||
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s"), {
|
||||
damage: dmg.hack,
|
||||
damageType: "[font=\"serif-12\"]" + translate("Hack") + "[/font]"
|
||||
damageType: "[font=\"sans-12\"]" + translate("Hack") + "[/font]"
|
||||
}));
|
||||
if (dmg.pierce)
|
||||
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s"), {
|
||||
damage: dmg.pierce,
|
||||
damageType: "[font=\"serif-12\"]" + translate("Pierce") + "[/font]"
|
||||
damageType: "[font=\"sans-12\"]" + translate("Pierce") + "[/font]"
|
||||
}));
|
||||
if (dmg.crush)
|
||||
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s"), {
|
||||
damage: dmg.crush,
|
||||
damageType: "[font=\"serif-12\"]" + translate("Crush") + "[/font]"
|
||||
damageType: "[font=\"sans-12\"]" + translate("Crush") + "[/font]"
|
||||
}));
|
||||
|
||||
return dmgArray.join("[font=\"serif-12\"]" + translate(", ") + "[/font]");
|
||||
return dmgArray.join("[font=\"sans-12\"]" + translate(", ") + "[/font]");
|
||||
}
|
||||
|
||||
// Also for the training tooltip
|
||||
function armorTypesToText(dmg)
|
||||
{
|
||||
if (!dmg)
|
||||
return "[font=\"serif-12\"]" + translate("(None)") + "[/font]";
|
||||
return "[font=\"sans-12\"]" + translate("(None)") + "[/font]";
|
||||
|
||||
var dmgArray = [];
|
||||
if (dmg.hack)
|
||||
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
|
||||
damage: dmg.hack,
|
||||
damageType: "[font=\"serif-12\"]" + translate("Hack") + "[/font]",
|
||||
damageType: "[font=\"sans-12\"]" + translate("Hack") + "[/font]",
|
||||
armorPercentage: "[font=\"sans-10\"]" + sprintf(translate("(%(armorPercentage)s)"), { armorPercentage: armorLevelToPercentageString(dmg.hack) }) + "[/font]"
|
||||
}));
|
||||
if (dmg.pierce)
|
||||
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
|
||||
damage: dmg.pierce,
|
||||
damageType: "[font=\"serif-12\"]" + translate("Pierce") + "[/font]",
|
||||
damageType: "[font=\"sans-12\"]" + translate("Pierce") + "[/font]",
|
||||
armorPercentage: "[font=\"sans-10\"]" + sprintf(translate("(%(armorPercentage)s)"), { armorPercentage: armorLevelToPercentageString(dmg.pierce) }) + "[/font]"
|
||||
}));
|
||||
if (dmg.crush)
|
||||
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
|
||||
damage: dmg.crush,
|
||||
damageType: "[font=\"serif-12\"]" + translate("Crush") + "[/font]",
|
||||
damageType: "[font=\"sans-12\"]" + translate("Crush") + "[/font]",
|
||||
armorPercentage: "[font=\"sans-10\"]" + sprintf(translate("(%(armorPercentage)s)"), { armorPercentage: armorLevelToPercentageString(dmg.crush) }) + "[/font]"
|
||||
}));
|
||||
|
||||
return dmgArray.join("[font=\"serif-12\"]" + translate(", ") + "[/font]");
|
||||
return dmgArray.join("[font=\"sans-12\"]" + translate(", ") + "[/font]");
|
||||
}
|
||||
|
||||
function getEntityCommandsList(entState)
|
||||
@ -532,7 +532,7 @@ function getEntityCostTooltip(template, trainNum, entity)
|
||||
}
|
||||
else
|
||||
{
|
||||
cost = ""; // cleaner than duplicating the serif-bold-13 stuff
|
||||
cost = ""; // cleaner than duplicating the sans-bold-13 stuff
|
||||
}
|
||||
|
||||
return cost;
|
||||
@ -546,7 +546,7 @@ function getPopulationBonusTooltip(template)
|
||||
var popBonus = "";
|
||||
if (template.cost && template.cost.populationBonus)
|
||||
popBonus = "\n" + sprintf(translate("%(label)s %(populationBonus)s"), {
|
||||
label: "[font=\"serif-bold-13\"]" + translate("Population Bonus:") + "[/font]",
|
||||
label: "[font=\"sans-bold-13\"]" + translate("Population Bonus:") + "[/font]",
|
||||
populationBonus: template.cost.populationBonus
|
||||
});
|
||||
return popBonus;
|
||||
@ -560,11 +560,11 @@ function getNeededResourcesTooltip(resources)
|
||||
var formatted = [];
|
||||
for (var resource in resources)
|
||||
formatted.push(sprintf(translate("%(component)s %(cost)s"), {
|
||||
component: "[font=\"serif-12\"]" + getCostComponentDisplayName(resource) + "[/font]",
|
||||
component: "[font=\"sans-12\"]" + getCostComponentDisplayName(resource) + "[/font]",
|
||||
cost: resources[resource]
|
||||
}));
|
||||
|
||||
return "\n\n[font=\"serif-bold-13\"][color=\"red\"]" + translate("Insufficient resources:") + "[/color][/font]\n" + formatted.join(translate(" "));
|
||||
return "\n\n[font=\"sans-bold-13\"][color=\"red\"]" + translate("Insufficient resources:") + "[/color][/font]\n" + formatted.join(translate(" "));
|
||||
}
|
||||
|
||||
function getEntitySpeed(template)
|
||||
@ -572,10 +572,10 @@ function getEntitySpeed(template)
|
||||
var speed = "";
|
||||
if (template.speed)
|
||||
{
|
||||
var label = "[font=\"serif-bold-13\"]" + translate("Speed:") + "[/font]";
|
||||
var label = "[font=\"sans-bold-13\"]" + translate("Speed:") + "[/font]";
|
||||
var speeds = [];
|
||||
if (template.speed.walk) speeds.push(sprintf(translate("%(speed)s %(movementType)s"), { speed: template.speed.walk, movementType: "[font=\"serif-12\"]" + translate("Walk") + "[/font]"}));
|
||||
if (template.speed.run) speeds.push(sprintf(translate("%(speed)s %(movementType)s"), { speed: template.speed.run, movementType: "[font=\"serif-12\"]" + translate("Run") + "[/font]"}));
|
||||
if (template.speed.walk) speeds.push(sprintf(translate("%(speed)s %(movementType)s"), { speed: template.speed.walk, movementType: "[font=\"sans-12\"]" + translate("Walk") + "[/font]"}));
|
||||
if (template.speed.run) speeds.push(sprintf(translate("%(speed)s %(movementType)s"), { speed: template.speed.run, movementType: "[font=\"sans-12\"]" + translate("Run") + "[/font]"}));
|
||||
|
||||
speed = sprintf(translate("%(label)s %(speeds)s"), { label: label, speeds: speeds.join(translate(", ")) })
|
||||
}
|
||||
@ -592,14 +592,14 @@ function getEntityAttack(template)
|
||||
for (var type in template.attack)
|
||||
{
|
||||
var attack = "";
|
||||
var attackLabel = "[font=\"serif-bold-13\"]" + getAttackTypeLabel(type) + "[/font]";
|
||||
var attackLabel = "[font=\"sans-bold-13\"]" + getAttackTypeLabel(type) + "[/font]";
|
||||
if (type == "Ranged")
|
||||
{
|
||||
// Show max attack range if ranged attack, also convert to tiles (4m per tile)
|
||||
attack = sprintf(translate("%(attackLabel)s %(damageTypes)s, %(rangeLabel)s %(range)s"), {
|
||||
attackLabel: attackLabel,
|
||||
damageTypes: damageTypesToText(template.attack[type]),
|
||||
rangeLabel: "[font=\"serif-bold-13\"]" + translate("Range:") + "[/font]",
|
||||
rangeLabel: "[font=\"sans-bold-13\"]" + translate("Range:") + "[/font]",
|
||||
range: Math.round(template.attack[type].maxRange/4)
|
||||
});
|
||||
}
|
||||
@ -642,14 +642,14 @@ function getEntityNamesFormatted(template)
|
||||
if (specific)
|
||||
{
|
||||
// drop caps for specific name
|
||||
names += '[font="serif-bold-16"]' + specific[0] + '[/font]' +
|
||||
'[font="serif-bold-12"]' + specific.slice(1).toUpperCase() + '[/font]';
|
||||
names += '[font="sans-bold-16"]' + specific[0] + '[/font]' +
|
||||
'[font="sans-bold-12"]' + specific.slice(1).toUpperCase() + '[/font]';
|
||||
|
||||
if (generic)
|
||||
names += '[font="serif-bold-16"] (' + generic + ')[/font]';
|
||||
names += '[font="sans-bold-16"] (' + generic + ')[/font]';
|
||||
}
|
||||
else if (generic)
|
||||
names = '[font="serif-bold-16"]' + generic + "[/font]";
|
||||
names = '[font="sans-bold-16"]' + generic + "[/font]";
|
||||
else
|
||||
names = "???";
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
[font="serif-bold-16"]Thank you for installing 0 A.D.!
|
||||
[font="serif-16"]
|
||||
[font="sans-bold-16"]Thank you for installing 0 A.D.!
|
||||
[font="sans-16"]
|
||||
[icon="constructionIcon"] This is an early experimental version of the game. Features are missing and it contains bugs.
|
||||
|
||||
[icon=iconLag] The game lags when many units are moving.
|
||||
|
@ -28,7 +28,7 @@
|
||||
<object name="summaryText"
|
||||
type="text"
|
||||
size="50 6 100%-50 100%-20"
|
||||
font="serif-bold-18"
|
||||
font="sans-bold-18"
|
||||
textcolor="255 255 255"
|
||||
text_align="left"
|
||||
text_valign="center"
|
||||
@ -37,7 +37,7 @@
|
||||
<object name="timeElapsed"
|
||||
type="text"
|
||||
size="100%-200 8 100%-10 100%-20"
|
||||
font="serif-16"
|
||||
font="sans-16"
|
||||
textcolor="255 255 255"
|
||||
text_align="center"
|
||||
text_valign="center"
|
||||
@ -46,7 +46,7 @@
|
||||
<object name="mapName"
|
||||
type="text"
|
||||
size="50 20 100%-50 100%-4"
|
||||
font="serif-bold-16"
|
||||
font="sans-bold-16"
|
||||
textcolor="255 255 255"
|
||||
text_align="center"
|
||||
text_valign="center"
|
||||
|
@ -122,7 +122,7 @@ def generate_font(outname, ttfNames, loadopts, size, renderstyle, dsizes):
|
||||
# (This is inefficient if multiple characters have the same glyph)
|
||||
glyphs = []
|
||||
#for c in chars:
|
||||
for c in range(0x20, 0xFFFD):
|
||||
for c in range(0x20, 0xFFFE):
|
||||
for i in range(len(indexList)):
|
||||
idx = indexList[i](unichr(c))
|
||||
if c == 0xFFFD and idx == 0: # use "?" if the missing-glyph glyph is missing
|
||||
@ -227,27 +227,6 @@ fonts = (
|
||||
("sans-stroke-14", Sans, 14, stroked2),
|
||||
("sans-bold-stroke-14", Sans_Bold, 14, stroked3),
|
||||
("sans-stroke-16", Sans, 16, stroked2),
|
||||
|
||||
("serif-9", Serif, 9, filled),
|
||||
("serif-12", Serif, 12, filled),
|
||||
("serif-13", Serif, 13, filled),
|
||||
("serif-14", Serif, 14, filled),
|
||||
("serif-16", Serif, 16, filled),
|
||||
("serif-bold-12", Serif_Bold, 12, filled),
|
||||
("serif-bold-13", Serif_Bold, 13, filled),
|
||||
("serif-bold-14", Serif_Bold, 14, filled),
|
||||
("serif-bold-16", Serif_Bold, 16, filled),
|
||||
("serif-bold-18", Serif_Bold, 18, filled),
|
||||
("serif-bold-20", Serif_Bold, 20, filled),
|
||||
("serif-bold-22", Serif_Bold, 22, filled),
|
||||
("serif-bold-24", Serif_Bold, 24, filled),
|
||||
("serif-stroke-12", Serif, 12, stroked2),
|
||||
("serif-bold-stroke-12", Serif_Bold, 12, stroked3),
|
||||
("serif-stroke-13", Serif, 13, stroked2),
|
||||
("serif-bold-stroke-13", Serif_Bold, 13, stroked3),
|
||||
("serif-stroke-14", Serif, 14, stroked2),
|
||||
("serif-bold-stroke-14", Serif_Bold, 14, stroked3),
|
||||
("serif-stroke-16", Serif, 16, stroked2),
|
||||
)
|
||||
|
||||
for (name, (fontnames, loadopts), size, style) in fonts:
|
||||
|
Loading…
Reference in New Issue
Block a user