56f15f0869 broke those maps in atlas where g_MapSettings.TeamPlacement
is never initialized.
Bug found by @elexis
Fix not objected by @elexis (comments: committable if 56f15f0869 should
not be reverted and developer time is limited)
Differential revision: https://code.wildfiregames.com/D5200
This was SVN commit r27952.
Needed until / if D5082 lands.
Until then we also still need: `g_PlayerbaseTypes`.
Differential revision: https://code.wildfiregames.com/D5196
This was SVN commit r27946.
This means deprecate `createBasesByPattern` in rmgen2 and add new
function `playerPlacementByPattern` in common
Differential revision: https://code.wildfiregames.com/D5194
This was SVN commit r27943.
Move the placement functions and the getTeamArray from rmgen2 to
rmgen-common, so that those maps can use the placement options as well,
without having to load the whole rmgen2 library.
Differential revision: https://code.wildfiregames.com/D4948
This was SVN commit r27941.
After they had been broken in 21e866fcf0
Author / patch by: @lairkers
Troubleshooting / comments by @elexis@FreagarachFixes#6831
This was SVN commit r27937.
This creates a slightly larger chicken model, which helps with visual
identification at the start of the match. I have seen multiple let's
plays where finding the initial chickens took too long (in my opinion),
because I believe they are too small for the game world.
Patch by: @wowgetoffyourcellphone
Original model by: @LangBart
Accepted by: @chrstgtr, @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5177
This was SVN commit r27910.
This is a very unique technology that trades in melee citizen-soldier
infantry in exchange for unlocking Legionaries. Legionaries are similar
to Skiritai except they are cheaper.The idea is that these units can
form the bulk of the Roman army, so they should be cheap, but powerful.
Additional champions remain to supplement these units. And for improved
engagement with Centurions, they gain a special second aura just for
Legionaries, called 'Century Maneuvers"
Patch by: @real_tabasco_sauce
Accepted by: @borg-, @wowgetoffyourcellphone
Comments by: @chrstgtr, @Freagarach,
This was SVN commit r27900.
Back by popular demand; patch requested by @borg-. This gives the "War
Dog" Kennel building back to the Britons. Previously removed in Alpha
24. Its removal widely lamented since then.
War Dogs removed from the Briton Stable as a consequence.
Patch by: @wowgetoffyourcellphone
Accepted by: @borg-, @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5153
This was SVN commit r27890.
This mixin is genericized in order to be useful for other units if
desired. It adds a splash attack, but removes some regular attack to
balance. With this, a champion or other unit can be easily
differentiated. In this instance, it is applied to the Macedonians'
champion swordsman, the Thracian Black Cloak. These guys use the very
long Rhomphaia and Sika swords of Thraco-Dacian origin.
Patch by: @wowgetoffyourcellphone
Accepted by: @real_tabasco_sauce, @borg-
Differential revision: https://code.wildfiregames.com/D5145
This was SVN commit r27871.
Celtic women were famous for their ferocity and aggressiveness against
enemies and it was common for them to fight alongside men in battles,
especially if the battle had been lost, the women being a strong last
line of defense.
Patch by: @borg-
Accepted by: @chrstgtr, @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5125
This was SVN commit r27870.
Reduce prepare time for catapults and bolt shooters. Catapults have
recently been nerfed and buffed with a small splash attack. Bolt
shooters are a little underutilized. Both of these units share a
'clunkiness' which is due to their pack/unpack time, minimum range, and
long prepare time. This patch hopes to address part of this clunkiness
by decreasing the prepare time for catas and bolt shooters. This makes
the unit seem more responsive to new commands to attack a different
unit/structure.
Patch by: @real_tabasco_sauce
Accepted by: @wowgetoffyourcellphone
Comments by: @chrstgtr, @Freagarach
Differential revision: https://code.wildfiregames.com/D5131
This was SVN commit r27865.
Adds 1/1/1 armor, but +10 metal cost and -5% speed and slightly slower
acceleration and turning
Patch by: @wowgetoffyourcellphone
Accepted by: real_tabasco_sauce
Comments by: @borg- & @chrstgtr
Differential revision: https://code.wildfiregames.com/D5141
This was SVN commit r27864.
Druids increase attack rates of soldiers near them slightly. This
fulfills a decade+ design element in the old Celtic civ design profiles.
Patch by: @borg-
Positive Comments by: @chrstgtr
Accepted by: @real_tabasco_sauce, @wowgetoffyourcellphone
Differential revision: https://code.wildfiregames.com/D5116
This was SVN commit r27836.
Attempts to address Invalid warning messages for capturable farmsteads
and creates a mixin as suggested by @Langbart
Renames the "farmsteads_" template files to "mill_" to eliminate
confusion with standard buildable farmsteads and changes the refs in the
skirmish maps to suit.
Genericizes the name to Rotary Mill instead of Farmstead, again to
eliminate confusion between the two (the former is a capturable map
object, while the latter is a player-buildable structure).
Fixes#6818
Differential revision: https://code.wildfiregames.com/D5113
This was SVN commit r27835.
Catapults and heavy warships received a nerf to their range, which was
also designed to stop infinite targeting of structures outside of vision
range. This was a substantial nerf, from 100 range to 85. This change
compensates for this range reduction by slightly improving their
versatility.
This is not the same splash we have seen in previous alphas, as it is
only a radius of one meter. It also makes them exciting as you could
land some epic shots if your enemy is very tightly bunched.
Patch by: @real_tabasco_sauce
Differential revision: https://code.wildfiregames.com/D5053
Accepted by: @borg-
Comments by: @chrstgtr, @wowgetoffyourcellphone
This was SVN commit r27831.
With the change to the Spartan bonus, it is interesting to add +10%
health to the hoplite tradition tech.
The hoplites dominated warfare for a long time, and it is fair to keep
this bonus somehow.
Patch by: @borg-
Differential revision: https://code.wildfiregames.com/D5098
Accepted by: @real_tabasco_sauce, @wowgetoffyourcellphone
This was SVN commit r27804.
When playing a network game with at least one AI, and an AI dies, after
a while there will be an increasing lag on the system, eventually
freezing the screen for e.g. 4 seconds every 5 seconds.
It turned out that once the AI is dead, the savedEvents grew endlessly.
Causing issues down the line (hashing).
That is now fixed by discarding savedEvents when the AI is defeated.
Patch by: @lairkers
Differential revision: https://code.wildfiregames.com/D5042
Comments by: @phosit, @wraitii
This was SVN commit r27800.
Avoid cases of filenames
Update years in terms and other legal(ish) documents
Don't update years in license headers, since change is not meaningful
Will add linter rule in seperate commit
Happy recompiling everyone!
Original Patch By: Nescio
Comment By: Gallaecio
Differential Revision: D2620
This was SVN commit r27786.
This differentiates Sparta by giving them P1 champions, a Hero-oriented
team bonus and a new unit.
Sparta should rely heavily on their extremely powerful melee infantry,
hence the focus is on that with choice and upgrade.
Patch by: @borg-
Differential revision: https://code.wildfiregames.com/D4736
Accepted by: @chrstgtr, @real_tabasco_sauce
Comments by: @Langbart, @marder, @wowgetoffyourcellphone
This was SVN commit r27775.
We were incorrectly comparing an object to a number.
I don't think this will drastically change the AI behaviour as it's
rather an edge case.
Reviewed By: Freagarach
Differential Revision: https://code.wildfiregames.com/D5030
This was SVN commit r27732.
Since 281bb0b2ec, opening the 'Options' menu in-game will show that
there are pending changes, even if the user has done nothing.
Unfortunately the cinematic logic to hide silhouettes, which comes from
cfd08bbf28, is broken following those changes. We use the configuration
to hide them, which results in us, indeed, changing the configuration.
There isn't really a good short term fix. This change only attemps to
reset the setting if we changed it for a cinematic, which fixes the
issue, but has drawbacks.
Ideally, we would use a superior config level, but we need to be careful
about exposing that to JS.
Reported by: langbart
Fixes#6821
Differential Revision: https://code.wildfiregames.com/D5040
This was SVN commit r27730.
Who says only players should be able to conduct diplomacy?
Also separation of concerns, more maintainable files.
Differential revision: https://code.wildfiregames.com/D4921
Comments by: @elexis, @Stan
Refs. #5894
This was SVN commit r27722.
- Add explicit variables for magic values.
- `let`s to `const`.
- Don't start the regen timer when not needed.
Differential revision: https://code.wildfiregames.com/D4965
Comments by: @Stan
This was SVN commit r27707.
Similar trick to D3446 / c87229aa48 - we can short-circuit if we find
units that match our best possible preference.
This is, in particular, almost a 40% wall time improvement on Combat
Demo Huge, but it should apply in a number of more normal cases.
Differential Revision: https://code.wildfiregames.com/D5020
This was SVN commit r27701.
This functions is amongst the most called in JS, so it's important to
make it speedy.
- Bugfix: if 'originalValue' is falsy, the result was never cached. This
in particular affected the minRange of archers, which is 0. It's a large
optimisation on combatDemoHuge, but the effect elsewhere is less likely
to be noticeable.
- Don't go through the helper to get the player Entity ID, in this case
it's slower.
- Concat is slower than Flat() in this case according to my profiling.
- Some micro-optimisation by strict equality.
Differential Revision: https://code.wildfiregames.com/D5012
This was SVN commit r27696.
Mediterranean Bush (dry)
Stone and Rock fences by @Wow
New props for Briton and Gallic formation standards
New Kushite Shields by @Stan
Saharan capturable farmstead
Celtic Shrine (with improved textures)
Royal Palm tree
This was SVN commit r27677.
According to JIT profiling on SM 115, using ForEach is faster than
iterating.
This is a micro optimisation, maybe 2% faster for OnUpdate, which means
we might see an overall improvement < 0.4%.
The reason this is faster here is that Iterating needs to construct an
array to store the result, whereas ForEach just uses the values
directly. This means this probably doesn't apply to iterating if we
don't need both the key/value pair.
Differential Revision: https://code.wildfiregames.com/D5010
This was SVN commit r27674.
CmpPosition::TurnStart checks whether the territory changed underneath
each entityevery turn. The only user of this is TerritoryDecay
(structures, for the most part). It is rather inefficient to have this
done for all entities.
The simplest solution is to listen to position-changed messages in
TerritoryDecay instead. This should hardly ever happen in vanilla 0
A.D., except in Atlas, so it's basically free.
This sort of reverts 19965ce37a (original implementation) and
c44b48bd59.
Accepted By: Freagarach (concept only)
Differential Revision: https://code.wildfiregames.com/D5009
This was SVN commit r27673.
Right now usernames for the lobby can consist solely of numbers and
special characters. This can result in nonsensical usernames and is
prone to be abused. While we can't entirely prevent nonsensical
usernames, we can at least do a bit better.
Therefore, this adjusts the rules for the validation of new lobby
usernames in pyrogenesis. Previously these rules were:
- length: between 1 and 20 characters
- valid characters: lower- and uppercase letters, numbers, ".", "_", "-"
The new rules are:
- length: between 3 and 20 characters
- valid characters: lower- and uppercase letters, numbers, ".", "_", "-"
- must contain at least one letter
These validation changes are relevant for new user registrations only
and don't affect existing users. As this also just adjusts the
client-side validation, users will also still be able to register
usernames according to the old rules, e.g. when using an older version
of 0 A.D., until the same change gets rolled out at a later point in
time server-side as well.
This was SVN commit r27670.
- Move the Crush damage from Splash to direct hit.
- Reduce overall damage slightly
Accepted By: Feldfeld
Differential Revision: https://code.wildfiregames.com/D5008
This was SVN commit r27668.
Summary:
On macOS Ventura (at least version 13.2.1 and above), the game crashes
instantly when clicking on buttons communicating with the lobby.
This issue is solved by upgrading nettle to 3.9 and GNUTLS to 3.8.
Patch by: froissant
Accepted By: wraitii
Trac Tickets: #6807
Differential Revision: https://code.wildfiregames.com/D5018
This was SVN commit r27667.
Avoid duplication by moving the function to Transform.js.
Add tests to Transform.js
Add tests to TurretHolder.js
Optimize slightly Trainer.js by removing some useless
Engine.QueryInterface calls.
Refs #6784 (symptoms in TriggerHelper.js are fixed underlying cause not)
`SkirmishReplacer` is called before the Modifier Manager so it does not
suffer the same fate.
Entities using `ChangeEntityTemplate` function are still affected.
Maps calling Engine.AddEntity directly are still affected.
Ideally this should be handled by hotloading components instead of
creating new entities each time. See =>
https://code.wildfiregames.com/D4991
Tested using:
908dd631d9
Differential Revision: https://code.wildfiregames.com/D4984
This was SVN commit r27636.
Most of the shaders are explicitely interned by the engine except for
the one called "Model" which is not required (you can have maps with
just terrain for visualization)
The rng files are called by the engine to validate structure.
The game has two overrides for high quality and normal water to be
"ocean" and "default" respectively
The minimap flare folder is hardcoded see #6795
The default material now calls the dummy shader instead of the model one
when in modmod
Move the default skybox, it will be required by _default.xml
The terrain materials are moved as well, for completeness, although they
are currently not referenced.
This commit does not include atlas needed files as it cannot run without
the public mod anyway for now. It will be done in a separate commit when
we have the ingame editor that will require _default.xml for instance.
This commit is also needed to generate the spir-v shaders in the correct
mods, in order to be able to launch the game with mod mod only.
Refs: #6636#5366Fixes: #6294
Differential Revision: https://code.wildfiregames.com/D4906
This was SVN commit r27629.
This fixes packet loss issues on some VPN solutions.
Patch By: sera
Differential Revision: https://code.wildfiregames.com/D4967
This was SVN commit r27599.
Fixes: #6708
Reported by @borg- @andy5995, ticket creation & suggested solutions by
@Langbart
Previous version of the batch accepted by @real_tabasco_sauce, positive
comments from @chrstgtr
Differential Revision: https://code.wildfiregames.com/D4962
This was SVN commit r27585.