Commit graph

16840 commits

Author SHA1 Message Date
Ralph Sennhauser
97a82cbc4a
Enable eslint rule 'no-redeclare'
Enable recommended rule 'no-redeclare' [1] and manually fix violations.

[1] https://eslint.org/docs/latest/rules/no-redeclare

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-14 14:53:10 +02:00
Ralph Sennhauser
8b98a7a27c
Enable eslint rule 'no-extra-boolean-cast'
Enable https://eslint.org/docs/latest/rules/no-extra-boolean-cast

Ref: #8068
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-14 12:03:06 +02:00
phosit
df5cdbe8f1 Load map scripts as modules
Because its a function `GenerateMap` is renamed to `generateMap`.

Allows to rewrite the libraries as modules and to remove the costum
`Engine.LoadLibrary` mechanism in the future.
2025-06-14 09:10:47 +02:00
trompetin17
4524460d9c
Increase text size for capture, health, and resource stats in GUI panels
After FreeType integration in dfb4598186 font height and line spacing
were incorrectly applied. That caused UI elements like capture, health,
and resource stats to appear misaligned or invisible.

Commit c2d529b975 standardized font height usage, removed lineSpace, and
introduced GetCapHeight + Descender for better vertical alignment.

However, affected texts used a font-stroke-12 with a GUI size of 12,
which now renders lower in the container due to stroke and metric
offset. Increasing the size to 14 ensures the text is properly visible
and aligned.

This adjusts for the actual space font-stroke-12 occupies in rendering.

Fixes: #7962
2025-06-11 08:34:42 -05:00
trompetin17
79104db2c5
Revert "Fix position of the ingame release label"
This reverts commit dc156c3f24.

The original commit addressed incorrect UI alignment caused by improper
handling of font height and linespacing after FreeType integration
(introduced in 734386ce9f).

However, commit c2d529b975 corrected the root issue by standardizing
font metrics:
- Proper use of FreeType's height
- Removal of lineSpace
- Introduction of getCapHeight and Descender for accurate vertical
  alignment

As a result, the UI offset workaround is now obsolete and must be
reverted to reflect the correct baseline behavior.
2025-06-11 08:10:57 -05:00
trompetin17
b1123ff259
Revert "Fix element positions after new font rendering"
This reverts commit 52ee6ad470.

The original commit addressed incorrect UI alignment caused by improper
handling of font height and linespacing after FreeType integration
(introduced in 734386ce9f).

However, commit c2d529b975 corrected the root issue by standardizing
font metrics:
- Proper use of FreeType's height
- Removal of lineSpace
- Introduction of getCapHeight and Descender for accurate vertical
  alignment

As a result, the UI offset workaround is now obsolete and must be
reverted to reflect the correct baseline behavior.
2025-06-11 08:10:57 -05:00
Itms
994645930c
Move maps XML files out of LFS
Fixes #7519.

Reviewed-By: Dunedan
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/8014
2025-06-11 10:33:57 +02:00
Carl-O
a2830603b4 Capitalize first letter in ancient Egyptian
Reviewed-By: Stan
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/8041
2025-06-10 23:12:59 +02:00
Carl-O
c772b3ad89 Fix gaul Assembly SoundGroups
Make the sound consistent with its Athenian and Spartan counterparts.

Reviewed-By: Stan
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/8040
2025-06-10 23:07:17 +02:00
Vantha
6a7ad264e4 Add pitch-rolling to some bush and grass props
Fixes the issue that they noticably stick out horizontally when placed on slopes.

(thanks to the previous commit these values will be adopted by the "special/actor" template when loading it in)

Reviewed-By: Itms
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/7542
2025-06-10 23:01:09 +02:00
Vantha
eb2f59eeaa Allow actors to override the entity's anchor type
Optionally let actor templates define their own anchor types.
These override the default value defined in the template.
Useful for actors without their own entity template.

Reviewed-By: Itms
Reviewed-On: https://gitea.wildfiregames.com/0ad/0ad/pulls/7542
2025-06-10 23:01:09 +02:00
Ralph Sennhauser
0ce889ca6d
Use stylistic for deprecated eslint rules
During the eslint 8 cycle the formatting rules were split out [1],
deprecating the corresponding rules in core.

This replaces all rules that where moved to @stylistic/eslint-plugin [2]
and accounts for the difference in the indenting rule behaviour.

To allow the pre-commit import hack to continue to work with the
stylisitc plugin for a recent nodejs version to be used.

[1] https://eslint.org/blog/2023/10/deprecating-formatting-rules/
[2] https://eslint.style/packages/default

Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-06-10 21:23:23 +02:00
phosit
05869454e5 Disalow importing some files
Not all modules should be able to load all other modules. A predicate
function can to be passed to the `ScriptInterface`. That function
returns whether the module is allowed to loat the module. If no
predicate is passed in no modules can be loaded through that
`ScriptInterface`.
2025-06-06 17:36:35 +02:00
phosit
6492bc705a Allow modules to be hotloaded
Reload a module when it's script file got changed or when one of it's
imported modules got reloaded.

This doesn't work for dynamic `import`s.
2025-06-06 17:36:35 +02:00
phosit
4043f954a7 Allow mods to write appendices
Module local values are visible to Appendixes. This mechanism can be
used for mods.
2025-06-06 17:36:35 +02:00
phosit
d76e107dca Support the import.meta property
Through the `import.meta` property the engine can pass some values to
the module. Currently only the `path` of the script file is exposed.
2025-06-06 17:36:35 +02:00
phosit
a40caaffc4 Support dynamic import
The static `import` should be prefered over the dynamic but it might be
usefull when loading an object from a json file.
2025-06-06 17:36:35 +02:00
phosit
252df0a1db Return the namespace of a module
To make it easy for the engine to access the exported values the
namespace is returned from the future.
2025-06-06 17:36:35 +02:00
phosit
d26d9b9b2b Rethrow exceptions from the top level of a module 2025-06-06 17:36:35 +02:00
phosit
ce01bdddf6 Allow to check whether modules finished evaluating 2025-06-06 17:36:35 +02:00
phosit
32ef4fd0fa Normalize module-path
Modules indipendant of the path, should only be evaluated once.
2025-06-06 17:36:35 +02:00
phosit
c6d42ebbd5 Support JavaScript modules
- With modules JavaScript code can be split up into multiple files. We
	already implemented such a mechanism (`Engine.LoadLibrary`) in
	multiple parts of the engine. The advantage of using modules is
	that it's standart (JS-devs are familiar with it) and it doesn't
	has to be implemented multiple times.
	Note that `Engine.LoadLibrary` loads all files in a directory
	while the new `import` only loads one file.

- With modules seemingly global variables are local to that
	script/module. We already implemented such a mechanism
	(`ScriptInterface::LoadScript`).
2025-06-06 17:36:35 +02:00
trompetin17
c3d3943047
Fix incorrect shadow behavior in VisualActors
This commit primarily corrects an inaccurate comment and resolves a
hidden bug in the VisualActor shadow logic, while preserving the current
behavior.

Previously, the DisableShadows option removed both casting and receiving
shadows. However, the internal logic ignored this setting in some cases,
causing shadows to appear even when explicitly disabled in XML
templates.

This change introduces the ability to control CastShadows and
ReceiveShadows independently via template settings, defaulting both to
true unless explicitly specified.

In addition, previews are updated to receive shadows but not cast them,
improving visual volume effects without affecting lighting behavior.
2025-06-03 19:30:10 -05:00
Stan
167020c05c
Fix broken build restrictions
In f3ac9e9669 the fail condition was broken causing it to allow building on restricted areas.

Add a test to ensure correct behavior for this case.

Reported by: @wowgetoffyourcellphone
Pull Request: #8021
2025-05-31 10:58:14 +02:00
Stan
d3017b6f9c
Fix error spam in Atlas
Atlas has no notion of player removal. Each entity would trigger an error in Player.js

Reported by: @trompetin17
Reviewed by: @trompetin17
Pull Request: #8006
2025-05-30 19:23:32 +02:00
Ralph Sennhauser
666ffb0f18
Fix new and profiler eslint warnings
This fixes 'no-trailing-spaces', 'semi', 'prefer-const' that made it in
since and 'no-shadow', 'no-multi-assign', 'no-invalid-this' as well as
'no-undef-init' in profiler.

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-30 15:25:54 +02:00
trompetin17
d323797d98
Add glyph debug box rendering for font system
This commit introduces optional debugging visuals for font glyph
rendering. When enabled, each glyph is drawn with a surrounding debug
box to aid in visual inspection of glyph layout, spacing, and atlas
behavior.

Usage examples (via console):

// Enable debug box rendering
Engine.ConfigDB_CreateValue("user","fonts.debugBox", true);

// Set debug box color (R G B)
Engine.ConfigDB_CreateValue("user","fonts.debugBoxColor", "35 0 35");

This feature is intended for developers working on font layout or atlas
generation logic, and has no effect on normal gameplay or UI rendering
when disabled.
2025-05-29 06:23:20 -05:00
Stan
b36782388b
Allow removing player entities when starting a match. 2025-05-28 23:05:36 +02:00
Ralph Sennhauser
e4e80a2504
Use trigger hook to init map Flood
Eslint doesn't like the global return and fails to parse the trigger
script file. Rewrite the script to avoid this and any globals while at
it. Also use OnInitGame as the execution with an IIFE in global scope
wouldn't guarantee when it will be executed or whether the timer
component is already registered.

Further don't concat the warning string as the extraction script for
translation expects a literal.

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-28 20:21:24 +02:00
Ralph Sennhauser
7583c4f241
Fix remaining eslint warnings
Fix instances of semi, no-unreachable, space-unary-ops, and no-invalid-this.

Manual fixes needed for:
eslint --config full.mjs

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-28 19:51:10 +02:00
Ralph Sennhauser
97d76b1495
Fix eslint rule 'prefer-const'
Manual fixes needed for:
eslint --no-config-lookup --rule '"prefer-const": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-28 19:34:46 +02:00
Ralph Sennhauser
f3ac9e9669
Fix eslint rule 'default-case'
Manual fixes needed for:
eslint --no-config-lookup --rule '"default-case": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-28 19:24:50 +02:00
Ralph Sennhauser
d37811d42c
Fix eslint rule 'no-invalid-this'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-invalid-this": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-28 17:18:33 +02:00
trompetin17
2781d9a6a3
Add Fallback Font support
In previous fontbuilder.py we have the capacity to specified chain fonts
when a glyph is missed from one font.

This commit enable that behavior.
2025-05-28 01:01:03 -05:00
Vantha
b772ebc262 Small normal map improvement 2025-05-27 22:19:24 +02:00
Ralph Sennhauser
ba9dcd8146
Fix eslint warnings for 'gamestate.js'
Fixes 'no-invalid-this' by converting to arrow function as thisArg is
only accepted by eslint for inlined function, "free" function might be
used in another context.

Also fixes 'consistent-return' and 'default-case' adn while at it
simplify the logic a bit.

Manual fixes needed for:
eslint --config full.mjs binaries/data/mods/public/simulation/ai/common-api/gamestate.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-27 19:25:30 +02:00
Vantha
279233aca1 Two improved normal maps 2025-05-27 07:26:33 +02:00
Ralph Sennhauser
189ec6a7eb
Fix eslint rule 'brace-rules'
Manual fixes needed for temporary config braces-rules due to setting up
required plugin:
eslint --no-config-lookup --config brace-rules.mjs

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-26 19:23:19 +02:00
Ralph Sennhauser
8b13be3b03
Fix eslint rule 'consistent-return'
Manual fixes needed for:
eslint --no-config-lookup --rule '"consistent-return": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-26 18:54:52 +02:00
Dunedan
99b9a0cb86
Add support for new font handling for checkrefs.py
As the fonts specified in the GUI templates don't exist as files on disk
anymore after 734386ce9f we can't check if they're specified correctly
the same way as before anymore. Instead, this commit adds validation
of font names to the GUI Relax NG schema and adds a check whether all
fonts referenced in default.cfg exist in the proper location.
2025-05-25 11:21:51 +02:00
Dunedan
6c85951d53
Combine duplicate profiler2 config sections
default.cfg contained two sections named "profiler2". That's something
which might be confusing and is not supported by all implementations of
ini file parsers. To remove that ambiguity, this combines these two
sections into one.
2025-05-25 11:21:47 +02:00
Lancelot de Ferrière
a7330cf469 Improve group movement by distributing units around the target.
This improves pathfinding feel as units no longer try to clump on a particular point. However, can lead to oddities if there's a lot of impassable terrain around.

Closes #7791
2025-05-24 14:34:09 +02:00
Ralph Sennhauser
72be06fd7f
Fix AttackEntityInZone after eslint 'no-shadow'
Fix for 7b4cf11e25

Fixes: #7965
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-22 19:16:28 +02:00
trompetin17
8c85f32327 Remove fontbuilder & files
After 734386ce9f (that introduce freetype as a core of text rendering
engine), we dont need fontbuilder.py, neither files generated by that
tool.
2025-05-22 19:06:53 +02:00
Dunedan
b3de44c37d
Increase range of Ptolemaic lighthouse
The Ptolemaic lighthouse is a pretty unique building. Ever since it got
changed to not reveal all coasts anymore in 04240f05a7 it hasn't been
very useful anymore, as its visibility range was too low to justify
spending the resources on it. To make the lighthouse more attractive
again, this commit increases its visibility range from 200 to 325.
2025-05-22 08:18:24 +02:00
trompetin17
a1d13c1cf8
Add CJK fonts for Text Engine
This PR removes the need for separate mods that previously provided CJK
support, and reduce the step for release process as mentioned here:
https://gitea.wildfiregames.com/0ad/0ad/wiki/ReleaseProcess
2025-05-21 16:16:36 +02:00
Ralph Sennhauser
622f477ae9
Fix eslint rule 'no-new'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-new": 1'

Make the handlers that aren't actually handlers calss functions and for
the HotkeyPage suppress the warning as the global init is prone to be
removed at some point.

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-20 14:17:13 +02:00
Dunedan
638391d7ab
Fix password change for certain usernames
This fixes the ability for users with uppercase letters in their
username to change their passwords, which wasn't possible before on
non-Windows platforms. The underlying issue for that is
https://github.com/processone/ejabberd/issues/4377 and in addition some
inconsistent normalization of usernames in password change requests
by gloox. This commit works around that by always using the local JID
part as username for password requests, which got the nodeprep string
profile already applied.

It also fixes a problem that Windows users which were able to change
their passwords, weren't able to login afterwards anymore, unless they
typed their username in all lowercase in the login form. This was caused
by using the all lowercase username as input for the password hash
function, instead of using the username in the user supplied case.

Fixes #7796
2025-05-19 17:05:41 +02:00
ShadowOfHassen
231c38d28d Improved Civ Overviews 2025-05-19 10:35:27 +02:00
Dunedan
f28ca5d684
Fix bold and italic fonts
A last minute change in #7787 caused the bold and italic identifiers of
fonts to be ignored once it got merged in 734386ce9f and all fonts to
be rendered as regular fonts. This commit fixes that.
2025-05-18 18:41:25 +02:00
Dunedan
b1a638dfdc
Remove the sprites of the player color dropdown
This makes the arrow of the player color dropdown look like in a27
again.
2025-05-17 18:54:22 +02:00
Dunedan
dc156c3f24
Fix position of the ingame release label
This commit fixes the vertical position of the release label in the
in-game top menu, which broke with 734386ce9f.
2025-05-17 18:54:22 +02:00
Dunedan
ec95ee96d4
Improve player color dropdown
This properly centers the colors in the player color dropdown.
2025-05-17 18:54:22 +02:00
Dunedan
58a58bc25d
Improve layout of the civ and structree pages
This contains some small layout fixes and improvements for the
civilization overview and structure tree pages. Some of these fixes have
fix regressions introduced with 37065ebc71.
2025-05-17 18:54:12 +02:00
Ralph Sennhauser
4e5cdc87b9
Fix eslint rule 'spaced-comment'
Manual fixes needed for:
eslint --no-config-lookup --rule '"spaced-comment": ["warn", "always"]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-17 12:08:47 +02:00
Dunedan
52ee6ad470
Fix element positions after new font rendering
This fixes the positions of elements which changed as part of
734386ce9f.
2025-05-17 10:02:25 +02:00
Ralph Sennhauser
7b4cf11e25
Fix eslint rule 'no-shadow'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-shadow": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-17 09:48:36 +02:00
trompetin17
734386ce9f
Use freetype for font rendering
Replace premade bitmap fonts with FreeType2 and dynamic texture atlas.

Switched from static, premade bitmap fonts to runtime-generated glyphs using FreeType2.
Glyphs are rendered on demand into a dynamic texture atlas, improving scalability,
font quality, and support for internationalization.

Currently using RGBA format for compatibility across all render
paths while initial support for R8_UNORM is being added.
This prepares for future optimizations in VRAM and performance

Includes groundwork for gamma-corrected blending and future swizzling support.
2025-05-16 14:57:59 -05:00
Dunedan
45340a2e32
Don't store consecutive console commands twice
This adds an option to disable storing consecutive console commands
twice and enables it by default.
2025-05-16 17:38:41 +02:00
Dunedan
d549cbeeaa
Make the console font configurable 2025-05-16 17:38:41 +02:00
Dunedan
13c00d1869
Add missing console.history.size to default.cfg 2025-05-16 17:38:29 +02:00
Kate
a91a8594c2 remove whitespace on line 317 through 321 2025-05-16 12:11:18 +02:00
Kate
750b10a966 Update binaries/data/mods/public/simulation/ai/petra/config.js 2025-05-16 01:51:06 +02:00
Kate
517916c4d6 Update binaries/data/mods/public/simulation/ai/petra/config.js 2025-05-16 00:50:49 +02:00
Ralph Sennhauser
a9987868c4
Fix eslint rule 'no-use-before-define'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-use-before-define": ["error", "nofunc"]

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-14 16:35:58 +02:00
Ralph Sennhauser
3a2d75af65
Fix eslint rule 'no-irregular-whitespace'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-irregular-whitespace": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-14 13:52:12 +02:00
Ralph Sennhauser
74f475f9fd
Fix eslint rule 'no-return-assign'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-return-assign": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 20:12:35 +02:00
phosit
429fb672a0 Move the argument validation to PlayerPlacement
Only `PlayerPlacement` itself should know how to validate it's value.
Fix: #7686
2025-05-13 17:52:57 +02:00
Ralph Sennhauser
406d0c90ca
Fix eslint rule 'operator-linebreak'
eslint --no-config-lookup --fix --rule '"operator-linebreak": ["warn", "after"]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 16:06:50 +02:00
Ralph Sennhauser
bc2e16afc2
Fix eslint rule 'no-mixed-spaces-and-tabs'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-mixed-spaces-and-tabs": ["warn", "smart-tabs"]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 15:48:23 +02:00
Ralph Sennhauser
40f1340e60
Fix eslint rule 'space-before-function-paren'
eslint --no-config-lookup --fix --rule '"space-before-function-paren": ["warn", "never"]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 15:21:57 +02:00
Ralph Sennhauser
8e71be511b
Fix eslint rule 'space-in-parens'
eslint--no-config-lookup --fix --rule '"space-in-parens": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 14:29:29 +02:00
Ralph Sennhauser
76a50d1828
Fix eslint rule 'no-floating-decimal'
eslint --no-config-lookup --fix --rule '"no-floating-decimal": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-13 14:09:58 +02:00
Ralph Sennhauser
d2222ee0ac
Fix eslint rule 'prefer-const'
The remaining ones that can be fixed automatically.

eslint --no-config-lookup --fix --rule '"prefer-const": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-12 18:44:28 +02:00
Ralph Sennhauser
c24bf321d6
Fix eslint rule 'prefer-const' in gui/[c-p]
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/[c-p]*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-12 14:15:40 +02:00
Ralph Sennhauser
e7f1406c37
Fix eslint rule 'prefer-const' in components/[T-V]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/[T-V]*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-12 13:12:45 +02:00
Ralph Sennhauser
4b3124e364
Fix eslint rule 'prefer-const' in components/unitai
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/UnitAI.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-12 08:23:10 +02:00
Ralph Sennhauser
9d791de2eb
Fix eslint rule 'prefer-const' in components/[R-S]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/[R-S]*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-12 08:02:53 +02:00
Ralph Sennhauser
fd27f39c20
Fix eslint rule 'prefer-const' in components/[H-P]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/[H-P]*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 19:24:03 +02:00
Ralph Sennhauser
eb75835ce4
Fix eslint rule 'prefer-const' in components/G*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/G*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 17:53:23 +02:00
Ralph Sennhauser
b80c222b96
Fix eslint rule 'prefer-const' in components/[C-F]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/C* \
    binaries/data/mods/public/simulation/components/D* \
    binaries/data/mods/public/simulation/components/E* \
    binaries/data/mods/public/simulation/components/F*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 14:27:12 +02:00
Ralph Sennhauser
4c4f787c63
Fix eslint rule 'prefer-const' in components/[A-B]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/A* \
    binaries/data/mods/public/simulation/components/B* \

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 10:40:23 +02:00
Ralph Sennhauser
88eea5c7e3
Fix eslint rule 'prefer-const' in components/tests
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/tests

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 10:03:30 +02:00
Ralph Sennhauser
2e090c2daa
Fix eslint rule 'prefer-const' in components/tests/[A-R]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/components/tests

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 09:06:57 +02:00
Ralph Sennhauser
5a9968f88d Fix eslint rule 'prefer-const' in simulation/helpers
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/helpers

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-11 08:50:27 +02:00
Ralph Sennhauser
bebc72a3c7
Fix eslint rule 'prefer-const' in sim/helpers/commands
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/helpers/Commands.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 19:41:45 +02:00
Ralph Sennhauser
62ee1c34ac
Fix eslint rule 'prefer-const' in simulation/ai
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 19:16:52 +02:00
Ralph Sennhauser
ac3f56fa9e
Fix eslint rule 'prefer-const' in ai/[a-f]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/common-api/class.js \
    binaries/data/mods/public/simulation/ai/common-api/entity.js \
    binaries/data/mods/public/simulation/ai/common-api/entitycollection.js \
    binaries/data/mods/public/simulation/ai/common-api/filters.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 18:55:13 +02:00
Ralph Sennhauser
93668e8447
Fix eslint rule 'prefer-const' in gui/reference
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/reference

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 18:40:28 +02:00
Ralph Sennhauser
50a5d4b366
Fix eslint rule 'prefer-const' in gui/session
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/session

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 18:05:22 +02:00
Ralph Sennhauser
9f489b748f
Fix eslint rule 'prefer-const' in gui/session/[m-t]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/session/message_box \
    binaries/data/mods/public/gui/session/messages.js \
    binaries/data/mods/public/gui/session/minimap/MiniMap.js \
    binaries/data/mods/public/gui/session/objectives \
    binaries/data/mods/public/gui/session/top_panel \
    binaries/data/mods/public/gui/session/trade

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 17:38:23 +02:00
Ralph Sennhauser
8c20405274
Fix eslint rule 'prefer-const' in gui/session/[a-l]*
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/session/campaigns \
    binaries/data/mods/public/gui/session/chat \
    binaries/data/mods/public/gui/session/developer_overlay \
    binaries/data/mods/public/gui/session/diplomacy \
    binaries/data/mods/public/gui/session/lobby

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 16:52:52 +02:00
Ralph Sennhauser
7eeb8a6f9f
Fix eslint rule 'prefer-const' in gui/session/input+
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/session/input.js \
    binaries/data/mods/public/gui/session/session.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 16:43:01 +02:00
Ralph Sennhauser
b5227e03f7
Fix eslint rule 'prefer-const' in gui/session/selection
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/session/selection*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 16:22:11 +02:00
Ralph Sennhauser
6e4e4b681e
Fix eslint rule 'prefer-const' in maps/random
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/maps/random

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 12:40:32 +02:00
Ralph Sennhauser
5373c2e10c
Fix eslint rule 'prefer-const' in maps/rmgen
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/maps/random/rmgen*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 12:10:24 +02:00
Ralph Sennhauser
c92e300c20
Fix eslint rule 'prefer-const' in maps/scenarios
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/maps/scenarios

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-10 08:11:32 +02:00
Ralph Sennhauser
60fc382bd8
Fix eslint rule 'prefer-const' in maps/scripts
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/maps/scripts

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-09 19:46:31 +02:00
Ralph Sennhauser
519a215e1c
Fix eslint rule 'prefer-const' in gui/common
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/common

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-09 19:32:43 +02:00
Ralph Sennhauser
c8f3455458
Fix eslint rule 'prefer-const' in gui/campaigns
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/campaigns

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-09 15:37:01 +02:00
Vantha
fa046392bb Adjust the resource icon placement in tooltips 2025-05-09 13:20:19 +02:00
Vantha
314088af14 Center all small resource icons 2025-05-09 13:16:43 +02:00
Ralph Sennhauser
5221b81bff Fix eslint rule 'prefer-const' in petra
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-09 11:16:53 +02:00
Ralph Sennhauser
6a16b18795 Fix eslint rule 'prefer-const' in petra/trade+
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/startingStrategy.js \
    binaries/data/mods/public/simulation/ai/petra/tradeManager.js \
    binaries/data/mods/public/simulation/ai/petra/transportPlan.js \

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-09 10:42:16 +02:00
Ralph Sennhauser
fb5ae32e4b Fix eslint rule 'prefer-const' in petra/victoryManager
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/victoryManager.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-08 21:45:45 +02:00
Ralph Sennhauser
5378f452cf
Fix eslint rule 'prefer-const' in petra/worker
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/worker.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-08 18:31:51 +02:00
Ralph Sennhauser
08e21f3186
Fix eslint rule 'prefer-const' in petra/navalManager
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/navalManager.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 19:36:47 +02:00
Ralph Sennhauser
c6b14fbb2c
Fix eslint rule 'prefer-const' in petra/defense
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/defense*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 18:49:03 +02:00
Ralph Sennhauser
06b8857c04
Fix eslint rule 'prefer-const' in petra/queueplan
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/queueplan*

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 15:36:02 +02:00
Ralph Sennhauser
baa8d99be3
Fix eslint rule 'prefer-const' in petra/headquarters
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/headquarters.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 14:04:48 +02:00
Ralph Sennhauser
e83d5069f0 Fix eslint rule 'prefer-const' in petra/baseManager
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/baseManager.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 13:24:54 +02:00
Ralph Sennhauser
0d59444401
Fix eslint rule 'prefer-const' in petra/attackPlan
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/attackPlan.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-07 12:56:45 +02:00
Ralph Sennhauser
a800441783
Fix eslint rule 'prefer-const' in petra/attackManager
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/simulation/ai/petra/attackManager.js

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 18:43:37 +02:00
Ralph Sennhauser
7df1bd1a42
Fix eslint rule 'prefer-const' in gui/gamesetup
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/gamesetup

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 18:12:37 +02:00
Ralph Sennhauser
7e73841d50
Fix eslint rule 'prefer-const' in gui/maps
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/maps

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 17:18:12 +02:00
Ralph Sennhauser
0791504491
Fix eslint rule 'prefer-const' in globalscripts
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/globalscripts

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 14:16:42 +02:00
Ralph Sennhauser
7684e12717
Fix eslint rule 'prefer-const' in modmod
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/mod

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 13:49:13 +02:00
Ralph Sennhauser
6aeb09228a
Fix eslint rule 'no-multi-assign'
Manual fixes needed for:
eslint --no-config-lookup --rule '"no-multi-assign": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 13:15:10 +02:00
Ralph Sennhauser
1ee51e2d86
Fix eslint rule 'prefer-const' in gui/lobby
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gui/lobby

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-06 09:48:52 +02:00
Ralph Sennhauser
dc16f1ce82
Fix eslint rule 'prefer-const' in gamesettings
eslint --no-config-lookup --fix --rule '"prefer-const": 1' \
    binaries/data/mods/public/gamesettings

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-05 19:35:16 +02:00
Ralph Sennhauser
bc5f42d4a4
Fix eslint rule 'no-else-return'
Use ternary expressions instead.

eslint--no-config-lookup --fix --rule '"no-else-return": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-04 22:34:54 +02:00
Ralph Sennhauser
e218cfa170
Fix eslint rule 'dot-notation'
For consistency with other commandline args containing '-' which can't
make use of the dot notation disable the rule for affected lines.

eslint --no-config-lookup --fix --rule '"dot-notation": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-04 21:31:21 +02:00
Ralph Sennhauser
3916fab66f
Fix eslint rule 'no-undef-init'
Manual fix needed, remove all assignments to undefined and rely on the
default state.

eslint --no-config-lookup --rule '""no-undef-init: 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-04 20:34:40 +02:00
Ralph Sennhauser
08a5f4405f
Fix eslint rule 'no-empty'
Manual fix needed, using 'noop' comment to silence warnings and convert
for loop to a probably more readable while loop.

eslint --no-config-lookup --rule '"no-empty": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-04 20:05:02 +02:00
Lancelot de Ferrière
7cc495ec91 Fix UnitMotion 'path prediction' to not trigger if following a short path
This is needed otherwise units might never go around pure unit obstructions.

Adds a small test map.

Fixes def0f57365
2025-05-04 11:22:31 +02:00
Ralph Sennhauser
dc6544a6c4
Fix eslint rule 'operator-assignment'
eslint --no-config-lookup --fix --rule '"operator-assignment": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 19:02:10 +02:00
Ralph Sennhauser
2b67499e05
Fix eslint rule 'no-trailing-spaces'
eslint --no-config-lookup --fix --rule '"no-trailing-spaces": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 17:31:47 +02:00
Ralph Sennhauser
1da93a6d2f
Fix eslint rule 'object-curly-spacing'
eslint --no-config-lookup --fix --rule '"object-curly-spacing": ["warn", "always"]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 17:17:35 +02:00
Ralph Sennhauser
12640ad63e
Fix eslint rule 'brace-on-same-line'
eslint --no-config-lookup --fix --plugin eslint-plugin-brace-rules \
    --rule '"brace-rules/brace-on-same-line": [
                "warn",
                {
                    "FunctionDeclaration": "never",
                    "FunctionExpression": "ignore",
                    "ArrowFunctionExpression": "always",
                    "IfStatement": "never",
                    "TryStatement": "ignore",
                    "CatchClause": "ignore",
                    "DoWhileStatement": "never",
                    "WhileStatement": "never",
                    "ForStatement": "never",
                    "ForInStatement": "never",
                    "ForOfStatement": "never",
                    "SwitchStatement": "never",
                },
                {
                    "allowSingleLine": true,
                }
            ]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 16:16:44 +02:00
Ralph Sennhauser
27c70de8ae
Fix eslint rule 'key-spacing'
eslint --no-config-lookup --fix --rule '"key-spacing": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 15:44:04 +02:00
Ralph Sennhauser
fd0f7cc270
Fix eslint rule 'comma-spacing'
eslint --no-config-lookup --fix --rule '""comma-spacing: 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 15:12:53 +02:00
Ralph Sennhauser
7ab9416acc
Fix eslint rule 'quote-props'
eslint --no-config-lookup --fix --rule '"quote-props": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 14:31:11 +02:00
Ralph Sennhauser
81c119bf39
Fix eslint rule 'semi'
eslint --no-config-lookup --fix --rule '"semi": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 14:13:14 +02:00
Ralph Sennhauser
ddba1ceabd
Fix eslint rule 'no-extra-semi'
eslint --no-config-lookup --fix --rule '"no-extra-semi": 1'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 11:18:16 +02:00
Ralph Sennhauser
24c47c81c7
Fix eslint rule 'no-multi-spaces'
eslint --no-config-lookup --fix --rule '"no-multi-spaces": ["warn", { "ignoreEOLComments": true, }]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 10:50:50 +02:00
Ralph Sennhauser
b6df170303
Fix eslint indent rule
eslint --no-config-lookup --fix --rule 'indent:  ["warn", "tab", { "outerIIFEBody": 0, }]'

Ref: #7812
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 09:39:58 +02:00
Ralph Sennhauser
57cf9578a7
Fix schema for TurretHolder
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-05-03 09:39:58 +02:00
Stan
00793d2918 Add rooster model and template. 2025-05-02 14:41:29 +02:00
abian
853ae057dd Do not require Traders for Diaspora
Remove the need to train 3 Traders before researching Diaspora, which
will now be researched directly from the Market instead of the Civic
Center. To compensate, increase cost by +100 food, +200 metal, and
+10 research time, matching the three resources used to produce
Traders, but in smaller quantities.

Fixes #7381
2025-05-01 22:01:32 +02:00
Vladislav Belov
0180faa1f2
Adds fixed frame frequency.
Adds possibility to control the frame time by setting the frame
frequency by a command line argument (`-fixed-frame-frequency`). It's
mostly useful for a trailer recording and graphics debugging.
2025-04-25 19:15:57 +02:00
Dunedan
d78e46ba26
Fix positioning of bottom minimap tooltips 2025-04-24 18:49:11 +02:00
Dunedan
680efb147d
Unify tooltip style of top menu items 2025-04-24 18:49:10 +02:00
Dunedan
dee2b73c7d
Remove pointless content from counter tooltips
This removes the static text "Gatherers: current" from the
resource and population counter tooltips. This string was static and
only changed its color depending on whether units were assigned to
collect a certain resource. That information is however already
available in the counter display itself.
2025-04-24 18:49:10 +02:00
Lancelot de Ferrière
0a4bfefb1e Fix modifiersManager cache incorrectly storing values with player-wide modifier
The cache would take the value post-player-modification, which is incorrect. This would usually just make caching fail, but could trigger worse problems if the post-player value is also used in other situations.

One such situation leads to an OOS for britons.

Thanks to elexis for the thorough investigation.

Fixes #7634
2025-04-19 12:37:24 +02:00
Dunedan
280dcd3a1c
Tweak probabilities of tip categories
With the introduction of multiplayer loading screen tips, categories of
tips and probabilities of how often to show tips from a certain category
got introduced. The original probabilities ended up showing multiplayer
tips in 60% of the cases. As the number of multiplayer tips is still
fairly small, this resulted in very repetitive occurrence of the same
multiplayer tips over and over when loading multiplayer matches.

This commit changes that to give single-player tips a higher probability
for multiplayer matches. It also adds showing tips from the "Beginner"
category for multiplayer games, as there are regularly new players who
start their experience with 0 A.D. by playing multiplayer matches with
friends, instead of playing single-player matches and who'll therefore
benefit from those tips being shown for multiplayer matches as well.
2025-04-17 17:15:43 +02:00
Vladislav Belov
0b33921c06
Removes GL code from the common GPU profiler. 2025-04-16 22:38:34 +02:00
wowgetoffyourcellphone
8da6c758fc Add small metal/ore mine objects to the game.
New small metal mine models and actors.
New sparkle particles.
Remove refs to old metal ore mines from existing maps.

Fix refs to temperate_small_01_01, which should have been temperate_small_01
2025-04-15 18:14:37 +02:00
ramtzok1
1b797ce0a0
Add specific tips for multiplayer sessions
A multi player loading screen will have possibility of showing single
and multi player tips while multi player tips are in favor.

Tips are now separated by categories. During loading those category
have an occurrence probability, where we are choosing a random category
based on chance and not by complete randomness. From there we just
picking a random tip from that category.
2025-04-12 10:38:57 +02:00
Dunedan
8482f25800
Fix a bunch of spelling mistakes
This fixes a bunch of spelling mistakes found in user facing strings.

Fixes #7716
2025-04-11 06:24:32 +02:00
Feldfeld
6224223807 Add myself (Feldfeld) to the programming credits 2025-04-10 18:57:40 +02:00