When observer selects some building he can see possible units to be
trained. Data about that templates are returned with id of observer what
means no technologies or bonuses for selected player have been applied
to the template. So observer does not see correct information in
tooltip.
Differential Revision: https://code.wildfiregames.com/D2054Fixes: #5109
Tested by: Nescio
This was SVN commit r23237.
Entities have different sound entries for build and repair orders in
templates but currently only one is used.
This patch is using build order for foundations and repair order for
anything else.
Also playing correctly order_build when placing new construction.
Differential Revision: https://code.wildfiregames.com/D2276Fixes: #5374
Reviewed by: @Freagarach
This was SVN commit r23221.
This allows merging community balancing patches without giving them
false or no credit.
Differential Revision: https://code.wildfiregames.com/D2436
Comments By: Stan
This was SVN commit r23182.
Summary: Resources should be referred to as “Resources”, not as “Goods”.
This patch updates the Barter & Trade window to reflect that.
Test Plan: Check for mistakes and omissions.
Reviewers: O8 JS GUI, Gallaecio
Reviewed By: Gallaecio
Subscribers: elexis, Krinkle, bb, O8 JS GUI
Differential Revision: https://code.wildfiregames.com/D2306
This was SVN commit r23177.
Summary:
Single-player is proper English, single player and singleplayer are less
correct.
(Contrary to multiplayer, which doesn't have a hyphen or space.)
Test Plan: Check for mistakes and omissions.
Reviewers: Gallaecio
Reviewed By: Gallaecio
Subscribers: Freagarach, elexis, O8 JS GUI
Differential Revision: https://code.wildfiregames.com/D2312
This was SVN commit r23176.
Game selection details features:
* Display victory conditions following their sending but missing display
following bffe917914, refs 7b0f6f530c.
* Display the host of the match and the game name in the selected game
details following 61261d14fc, refs D1666.
* Display mods if the mods differ (without having to attempt to join the
game prior) following eca956a513.
Performance features:
* Implement batch message processing in the XmppClient to rebuild GUI
objects only once when receiving backlog or returning from a match.
* Implement Game class to cache gamelist, filter and sorting values, as
they rarely change but are accessed often.
* Cache sprintf objects.
Security fixes:
* Add escapeText in lobby/ to avoid players breaking the lobby for every
participant, supersedes D720, comments by bb.
* Do not hide broadcasted unrecognized chat commands that mods used as
leaking private channels, fixes#5615.
Defect fixes:
* Fix XmppClient.cpp storing unused historic message types resulting in
memory waste and unintentional replay of for instance
disconnect/announcements messages following both e8dfde9ba6/D819 and
6bf74902a7/D2265, refs #3306.
* Fix XmppClient.cpp victoryCondition -> victoryConditions gamesetup.js
change from 6d54ab4c1f/D1240.
* Fix leaderboard/profile page cancel hotkey closing the lobby dialog as
well and removes cancel hotkey note from lobby_panels.xml from
960f2d7c31/D817 since the described issue was fixed by f9b529f2fb/D1701.
* Fix lobby playing menu sound in a running game after having closed the
lobby dialog following introduction in 960f2d7c31/D817.
* Fix GUI on nick change by updating g_Username.
* Update profile panel only with data matching the player requested.
Hack erasure:
* Object semantics make it cheap to add state and cache values, storing
literals in properties while removing globals, adding events while
decoupling components and gaining moddability.
* Erase comments and translation comments stating that this would be
IRC!!, supersedes D1136.
* Introduce Status chat message type to supersede "/special" chat
command + "isSpecial" property from bffe917914 (formerly g_specialKey
e6840f5fca) deluxe hack.
* Introduce System chat message type to supersede system errors
disguising as chat from a mock user called "system".
Code cleanups:
* Move code from XML to JS.
* Move size values from JS to XML, especially following 960f2d7c31/D817
and 7752219cef/D1051.
* Rename "user" to "player".
* Fix lobby/ eslint warnings, refs D2261.
* Remove message.nick emptiness check from 0940db3fc0/D835, since
XEP-0045 dictates that it is non-empty.
* Add translated string for deleted subjects.
* Add TODOs for some evident COList issues, refs #5638.
Differential Revision: https://code.wildfiregames.com/D2412
This was SVN commit r23172.
Remove TODO question from c4684effb6 since the class updates correctly.
Differential Revision: https://code.wildfiregames.com/D2419
Tested on: clang 9.0.0, Jenkins/gcc6, Jenkins/vs2015
This was SVN commit r23151.
Add config option to display the loading screen stage description.
Add tip functions for future use, refs D1730.
Harmonize coordinates.
Differential Revision: https://code.wildfiregames.com/D2418
This was SVN commit r23150.
The "chat" simulation command and according GUIInterface notification
became unused which translated simulation chat messages ("aichat") in
7afe0afbca.
That commit also introduced the "aichat" network message parsing code
that is never triggered since the NetClient never creates messages of
that type.
The "debug-print" command introduced by 1c0536bf08 sends a GUI value to
the simulation and prints it to the log, which is already covered by the
JS console since e4fe4ed602.
Differential Revision: https://code.wildfiregames.com/D2407
This was SVN commit r23137.
Notice TimeNotificationOverlay.xml must be included after
PauseOverlay.xml, otherwise there will be a Z/transparency bug, see
D148.
This was SVN commit r23117.
Decouples events from event handling, removes implicit-pause duplication
per messagebox and allows mods to modify message box values.
Differential Revision: https://code.wildfiregames.com/D2398
Comments By: Stan, Freagarach
This was SVN commit r23114.
The atlas check added in e3f43f6352 works for skirmish maps but not for
random maps generated in Atlas.
The same atlas check added in f2778ea7b4 works for random maps since the
partial information Atlas provides happened to be sufficient for
DiplomacyPlayerText.
Reported by Stan in 6814a983e1.
This was SVN commit r23097.
Rebuild the counters every 250ms instead of every frame and minimize
object creation.
Differential Revision: https://code.wildfiregames.com/D2391
Comments By: Stan
This was SVN commit r23096.
Add class MainMenuPage, BackgroundLayer, remove duplication of XML size
values in the MainMenuItemHandler,
remove onTick assignment from XML, replace references to globals with
local references.
Differential Revision: https://code.wildfiregames.com/D2390
Comments By: Stan
This was SVN commit r23093.
Avoids further session commits that missed to keep options.json session
code in sync,
enables use of anonymous or object owned config callback handlers and
encourages session developers to make the GUI more reactive to changing
options.
Update RangeOverlays when reseting to default, and update
RangeOverlays of selected entities upon closing the page too (not only
hotkey).
Differential Revision: https://code.wildfiregames.com/D2389
This was SVN commit r23091.
Change the logic to only insert/delete buttonhandlers on ownershipchange
and update only the entitystate dependent part on simulation update.
Differential Revision: https://code.wildfiregames.com/D2387
This was SVN commit r23089.
Improves performance if no techs are researched from 200 to 50
microseconds per turn (from 500 to 300 microseconds for one tech etc).
Differential Revision: https://code.wildfiregames.com/D2386
This was SVN commit r23088.
Adapt rating score for exploration score and add comment to keep
calculateExplorationScore and calculateScoreTotal in sync following
be881dc420 (following the formula in a4f27dc3e0 and bffe917914 being
otherwise in sync with the summary screen measures), refs #686.
Adapt rating score for captured entities and add comment to keep
calculateMilitaryScore in sync following f60befe098, refs #3216,
ad27deeb9d.
Adapt rating score for trade and vegetarian food and add comment to keep
calculateEconomyScore in sync following 202e567492/D494 and
215a102c27/D1052, refs #3948.
Remove ceasefire sending from the client from d21c0026ec since the bot
doesn't record it and since ceasefire time is expected to be 0 after a
1v1 was decided, refs #2749.
Resolve column value computation fragmentation and remove unneeded
intermediary object encoding following 1d3ac14d35, refs #686.
Remove hardcoding/duplication of unit and structure classes and send
domesticUnitsTrained too, refs c7a04e219b/D2384.
Move session code including the two globals to a separate folder so as
to maximize separation of and ease distribution without lobby code.
Migrate useless ugly trailing commas from bffe917914, to be removed in a
patch modifying the bot code.
Differential Revision: https://code.wildfiregames.com/D2385
This was SVN commit r23087.
Summary: The action is Reload Cache, but the tooltip used to say Rebuild
instead of Reload, which caused some confusion among translators
(https://www.transifex.com/wildfire-games/0ad/translate/#sv/$/113848525),
and hence could have the same effect among users.
Test Plan: No tests, only user-visible strings are affected.
Reviewers: Imarok
Reviewed By: Imarok
Differential Revision: https://code.wildfiregames.com/D2294
This was SVN commit r23083.
Using 22 classes instead of 1 class (refs 2bcf4f678b/D1928) leverages
more benefit of the paradigm.
In particular it means the checkboxes can own the EntityState and
TimeWarp helpers and the DeveloperOverlay itself can remain independent.
Improve performance by 200 microseconds per turn by unsubscribing from
onSimulationUpdate when the developer overlay is not opened, refs
e3f43f6352 / D2378.
Move TimeWarp from input.js from 8ddef2fee0 to independent class using
hotkey release event from 78bc56f33e, refs #3194.
Differential Revision: https://code.wildfiregames.com/D2383
This was SVN commit r23081.
Add tooltips for buttons that can be triggered with hotkeys.
Unassign menu animation onTick function after the animation finished,
refs 9a00398e24.
Cleans unused openMenu following 5aae5ee55a.
Differential Revision: https://code.wildfiregames.com/D2380
This was SVN commit r23080.
New controller classes: PlayerViewControl, PauseControl,
GameSpeedControl
New viewer classes: ObjectivesDialog, PauseOverlay, FollowPlayer,
TopPanel (BuildLabel, CivIcon, CounterManager, CounterPopulation,
CounterResource refs 7e14a33411/D1113, GameSpeedButton,
ObjectivesDialogButton)
New events: SimulationUpdate, EntitySelectionChange, ViewedPlayerChange,
PreViewedPlayerChangeHandler, PlayerIDChange, PlayersInit,
PlayersFinished, Pause, DiplomacyColorsChange, HotkeyChange, refs #2604
Improves GUI onSimuationUpdate performance without selected entities by
allegedly 30%.
Delete misleading dead code resign command from leaveGame and rename to
endGame. The command is not sent via network (see fa85527baf) nor
processed in simulation, because the Game instance is deleted
immediately thereafter, introduced in fcedcae052, refs a3e1c68b9a,
39ffb0a6bd, 9f796068f8.
Remove explicitResume 0 value from e57c99c6f6 and 8ae67ed15f which
should have been a false if defined, and is equivalent to the default.
Restore fast forwarding option from cd571035bb/D595 for developers
changing the perspective to observer or player following 56308ec1ad.
Add pausing for the delete dialog missing following 7a7ebaa983.
Differential Revision: https://code.wildfiregames.com/D2378
This was SVN commit r23076.
Includes dilomacy colors, tribute buttons, spy request buttons, attack
request buttons, minimap panel, idle worker button, ceasefire counter.
Differential Revision: https://code.wildfiregames.com/D2365
Use hotkey release event from 78bc56f33e to remove input.js state and
evil global nested closure hackery from cb890ad876, refs #1839, #3194.
Fixes masstribute selecitonchange issue subject of D1191.
This was SVN commit r23065.
Set global hotkeys in JS instead of empty XML objects from
f192d4a2fa/D2260.
Differential Revision: https://code.wildfiregames.com/D2355
This was SVN commit r23062.
Remove gui/common/ hack by going through the GUIInterface and fragile
EndGame() hardcoding by saving if and only if a ReplayLogger exists
following 7470e88624, refs #4020.
Refs D2211, D2213.
Differential Revision: https://code.wildfiregames.com/D2197
Based on patch by: irishninja
Tested on: clang 8.0.1, Jenkins
This was SVN commit r22991.
Uses simple event subscription to make the classes independent of each
other.
Removes all globals except two variables and one function (that may be
avoided in the future too).
Allows the reader to focus on the relevant aspect of the implementation
(encapsulation, information hiding) and makes implementation more
modifiable and extensible.
Differential Revision: https://code.wildfiregames.com/D2310
This was SVN commit r22985.