When tasked to gather, entities looked for resources close to their
current location when the target was invalid (e.g. full).
Now on forced orders the entities will look for resources close to that
order's location, when possible.
Differential revision: https://code.wildfiregames.com/D4146Fixes: #6085
Reviewed by: @Imarok
Tested by: @Langbart
Comments by: @marder, @Stan, @wraitii
This was SVN commit r25776.
Introduces a new helper to place mines. use it on 'Best for MP' maps for
stone and metal.
The amount of metal will scale with the # of players, and will place
slightly more mines overall for fairer distribution.
This should make 1v1 and 4v4 more playable on these maps.
Differential Revision: https://code.wildfiregames.com/D4148
This was SVN commit r25772.
Both maps were using extremely high smoothness setting, that did nothing
but lag extremely.
Differential Revision: https://code.wildfiregames.com/D4150
This was SVN commit r25770.
New loading screen tips. Update for the pictures and the text.
Patch by: marder
Reviewed by: Freagarach
Some based on work of: wowgetoffyourcellphone
Fix#6191
Differential Revision: https://code.wildfiregames.com/D4107
This was SVN commit r25767.
- Hellas_biome isn't a RM but as a JSON script it does load, and then
silently fails on mapgen. Explicitly fail.
- Fix player.js when a valid position cannot exist.
- Fix unknown.js when landscape isn't set in the settings.
Reported by: vladislavbelov
Refs #6180
Differential Revision: https://code.wildfiregames.com/D4147
This was SVN commit r25765.
- Arctic biome was much too bright with postprocess (error in
717a9d0252)
- Change sun angle in Nubia to make the grass less yellow at default
camera angle
- Change sun angle in Steppe to make the game look less flat at default
camera angle.
Patch by: marder
Differential Revision: https://code.wildfiregames.com/D4145
This was SVN commit r25764.
There appears to be an SDL issue with linux and X11 that causes Keydown
events to be sent immediately when 0 A.D. gains focus. This can loead to
Alt-F4 quitting 0 A.D. immediately upon focus gain, such as when another
application was quit via Alt-F4.
The typical bug case was:
- Open 0 A.D.
- Open another app
- Alt-F4 other app
- 0 A.D. immediately receives alt-F4 as well and exits.
Since SLD handles this hotkey natively via SDL_QUIT, it seems easier to
default to "no hotkey", as that fixes the problem.
Reported by: Imarok
Fixes#6092
Differential Revision: https://code.wildfiregames.com/D4132
This was SVN commit r25762.
And slightly reduce the desaturation since it now looks better.
Patch by: marder
Differential Revision: https://code.wildfiregames.com/D4139
This was SVN commit r25758.
- Make Savanna and Nubia have a .25 Forest probability.
- Remove brightness changes from HDR, this made postproc look too
different, particularly on Savanna
- Lower postproc impact on constrast/saturation for the same reasons.
- Lighten up Aegean, Alpine, Savanna, Nubia, slightly darken Arctic
- Make Aegean water a bit bluer. Likewise lightwen Savanna water.
- Fix the sun elevation/rotation on Nubia, Sahara and Savanna
- Remove the HDR settings of Cantabrian Highlands
- Remove the water/HDR settings of Corinthian Isthmus RM
Comments by: marder
Differential Revision: https://code.wildfiregames.com/D4124
This was SVN commit r25757.
- Max garrison reduced to 20, like fortresses (caps the capture regen
rate)
- Can construct rams
- Cost an additional 100S/100M
The capture stats have been tweaked but there's no fundamental change.
See also D4080
Differential Revision: https://code.wildfiregames.com/D4109
This was SVN commit r25756.
This is intended to make a deathball of elephant archer less OP, as the
units are difficult to mass but really strong once that is done.
See D3599 for larger changes.
This was SVN commit r25755.
Autoqueue can ignore entity limits like Heroes, because AddItem does not
check for them, only commands.js. This changes that, fixing the
autoqueue.
Reported by: Player of 0AD
Tested by: langbart
Refs #6213
Differential Revision: https://code.wildfiregames.com/D4133
This was SVN commit r25753.
The Reference Suite (Structure Tree, Civ Info, Viewer) wasn't taking
into
account civilization- or team-bonus auras when calculating entity stats.
This wasn't really a problem (for Vanilla 0AD) prior to a18d97b047, as
civ-bonus auras don't exist in Vanilla 0AD, and our team-bonus auras
didn't
apply to the owning civ before that change. Now they do, the Suite needs
to
take them into consideration.
Differential Revision: https://code.wildfiregames.com/D4093
This was SVN commit r25751.
They were all set to hidden-by-default as part of b7ff371d00, only there
wasn't anything to tell them to unhide when we actually want them. This
commit
fixes that.
Differential Revision: https://code.wildfiregames.com/D4114
This was SVN commit r25750.
Following 40cbde1925, the minimum pushing force is 0.2. This also
happens to be the maximum pushing force any pair of units can exert on
each other, so they can freely overlap instead of being pushed.
This tweaks settings slightly to fix that problem.
Reported by: marder
Differential Revision: https://code.wildfiregames.com/D4129
This was SVN commit r25748.
The structTree, in case of errors, could have enough items to draw to
trigger an OOM failure in the Arena allocator.
This fixes that by hiding elements by default and some c++ memory
optimisation (mostly, this should make all platforms take the same
memory footprint for VisibleObject).
Discussed with vladislavbelov and s0600204
Differential Revision: https://code.wildfiregames.com/D4114
This was SVN commit r25746.
Redo 09a33b6626.
When the host set te 'best for mp' mapfilter and a non-default maps,
ordering issues bugged things out.
This handles things slightly better.
Fixes#6208
Differential Revision: https://code.wildfiregames.com/D4121
This was SVN commit r25741.
As no default values got set, some game settings became NaN, which
triggered exceptions.
This sets sane default.
This also includes better debugging logic in case of exception, so it's
easier to know what happens.
Fixes#6200
Reported by: langbart
Differential Revision: https://code.wildfiregames.com/D4113
This was SVN commit r25736.
This is unexpected and does not seem particularly useful/sensical.
Patch by: pszemsza
Fixes#5214
Differential Revision: https://code.wildfiregames.com/D3929
This was SVN commit r25733.
- Settings weren't sent to the server when mapfilters change.
- Because of ordering issues, the 'multiplayer' mapfilter would be
activated at the wrong time and things would go haywire.
- Likewise, selecting a non-default map with a non-default filter
wouldn't work well.
Fixes#6208
Differential Revision: https://code.wildfiregames.com/D4111
This was SVN commit r25731.
Formation controllers that were about to be destroyed could bug out.
It's plausible this bug would also happen with regular units, but
couldn't reproduce.
Differential Revision: https://code.wildfiregames.com/D4110
This was SVN commit r25730.
Follows 9a3da390b9 / b5bbed4690.
Forge technologies are cheaper in A24, but still too expensive to use
directly, making the forge not immediately useful.
This changes the technologies from 2 levels to 3, and further decreases
costs.
Instead of 600/400 then 900/600, costs are 200/100, 350/250 then
500/400. This makes the Town Phase techs immediately accessible, and
lengthens impact of City Phase with stronger late techs.
Iberians and Mauryas had a special "wootz steel" tech that gave
swordsmen +20% damage, this is folded into the 3rd level. I have not
changed the effect because the tech was cheap, but we shall see.
Patch by: Nescio
Comments by: borg-, Valihrant
Differential Revision: https://code.wildfiregames.com/D3679
This was SVN commit r25726.
Increases consistency, unlikely to be overpowered. Temple and Fortress
were considered but found risky of being too strong.
Patch by: langbart
Differential Revision: https://code.wildfiregames.com/D3994
This was SVN commit r25725.
Their lowered prepare time (since c78ead79e6) makes them too good at
hit-and-run, they should be slower since a crossbow is encumbering.
Accepted By: ValihrAnt
Differential Revision: https://code.wildfiregames.com/D4096
This was SVN commit r25724.
When switching scenarios, teams should always be reset.
Do nothing in skirmish mode.
Reported by: Stan
Differential Revision: https://code.wildfiregames.com/D4104
This was SVN commit r25723.
Elephants go from 2150 real HP to 2100 against Hack and 1700 against
Pierce.
The intention is to make them more vulnerable to range (and somewhat
spearmen as well).
Suggested by: Valihrant
Differential Revision: https://code.wildfiregames.com/D4058
This was SVN commit r25721.
This overall decreases the deathball effect from units walking to each
other a bit.
- Fix formations - this cleans up a UnitMotion hack for formations,
making it possible to increase pushing ranges without breaking closely
knit formations like testudo.
- Make MINIMAL_PUSHING and the MOVE_EXTENSION configurable, and add a
STATIC_EXTENSION as well.
- Increase the pushing range significantly, making units sparser.
Differential Revision: https://code.wildfiregames.com/D4098
This was SVN commit r25708.
- Rename to subalpine to fit the theme better & tweak tooltip
- improve the shore textures
- remove the snow dir texture which contrasted too heavily.
Differential Revision: https://code.wildfiregames.com/D4027
This was SVN commit r25701.
- Change the grass actor, which was too lighting dependent and heavy on
performance
- Change the main terrain texture which was quite noisy
- Change shore textures to be more seamless.
Based on a patch by: marder
Differential Revision: https://code.wildfiregames.com/D4025
This was SVN commit r25700.
Switch some logic from C++ to JS in PREGAME for player assignments. Refs
#3049Fixes#6204
Reported by: Imarok
Tested By: Imarok
Differential Revision: https://code.wildfiregames.com/D4092
This was SVN commit r25699.
Reverts D1762 / 014c2922f2.
Because any territory connected to a root does not decay, this made it
possible to anchor CC territories by adding a fortress somewhere, thus
making it much, much harder to push against an enemy territory.
This led to a much more turtley gameplay and overall made the game
worse.
For now, I do not reintroduce the larger territory range (which was
reduced in 014c2922f2).
Differential Revision: https://code.wildfiregames.com/D3989
This was SVN commit r25697.
Add flaring on the map and resize the minimap buttons.
Target marker and button by Stan.
Reviewed/Commented by wraitii, elexis, vladislavbelov
Refs: #3491
Refs: #57
Differential Revision: https://code.wildfiregames.com/D1751
This was SVN commit r25691.
As a side effect of 6b7a80b260, this is now trivial to do.
We don't (currently) have any aura-based civ bonuses in Vanilla 0A.D.,
but hopefully modders will find it useful.
This was SVN commit r25690.
(The `civ` key (in the team bonus aura templates) was added in
190d6e7cf5 for the
purpose of identifying which aura belongs to which civ. It's no longer
used.)
Proposed by: @Nescio
Comments by: @Freagarach
Refs: 190d6e7cf5
Differential Revision: https://code.wildfiregames.com/D3864
This was SVN commit r25689.
This shows off the new maps, and shows off campaigns in a straighforward
manner.
Differential Revision: https://code.wildfiregames.com/D4020
This was SVN commit r25684.
Forgotten in c012888e2a. This is useful for campaigns that would want to
use the full gamesetup, and in general makes the gamesetup slightly more
flexible.
Differential Revision: https://code.wildfiregames.com/D4082
This was SVN commit r25683.
Food/Wood techs now cost Wood and metal (with food techs being slightly
less expensive as they provide less bonus). Metal/Stone techs now cost
Food and Stone instead of Wood and Metal, reducing the load on those
resources, and making Stone slightly more critical.
Initial work by: Nescio
Accepted By: chrstgtr, Valihrant
Differential Revision: https://code.wildfiregames.com/D3704
This was SVN commit r25682.
- Support biomes
- Hills, forests, food & metal mines won't spawn on the isthmus anymore,
to avoid obstructions and make things a little fairer
- Stone mines spawn only on the isthmus and players start only with
small stones
- Tidier forests
- The central passageway is sometimes slightly offset left/right
- The central passageway is surrounded by a walkable shallow, which
prevents effectively walling the actual passageway.
- Widen the river slightly.
Overall the intention is to make the map less of a turtle-fest, though
it remains chokepointy by nature.
Differential Revision: https://code.wildfiregames.com/D4062
This was SVN commit r25681.
- Denser forests
- frozen lake biome gets some watery holes in there, just to make it
slightly more mazey.
- Tweak the lighting of the specific biomes to avoid overexposing the
ground textures.
Differential Revision: https://code.wildfiregames.com/D4073
This was SVN commit r25680.
- Slightly denser forests with the new helper
- good default biome for African Plains in Atlas.
Differential Revision: https://code.wildfiregames.com/D4072
This was SVN commit r25679.
- reuse settings from the temperate biome
- More wood / slightly denser
- replace the aleppo pine with the Fir, looks better
- Rework the terrain textures
Differential Revision: https://code.wildfiregames.com/D4061
This was SVN commit r25674.
- Support the 3 african biomes.
- Bigger forests (same # of trees overall)
- More hills/watering holes, more animals there.
Differential Revision: https://code.wildfiregames.com/D4060
This was SVN commit r25673.
The new texture is less visually intrusive thus a better general fit.
Patch by: marder
Differential Revision: https://code.wildfiregames.com/D4026
This was SVN commit r25671.
It looks bad on the summary graph, and might need further adjustments in
general.
Discussed with: @Langbart, @Imarok, @wraitii
cc @wowgetoffyourcellphone
This was SVN commit r25658.
The pathfinder computations are run asynchronously (and potentially on
the main thread) in-between simulation turns, thus reducing
pathfinder-related lag considerably in common cases.
To make this most efficient, the number of paths computed during a turn
via MaxSameTurnMoves is reduced from 64 to 20.
This has a hard dependency on the obstruction manager (via the vertex
pathfinder) not being modified in-between simulation turn (or to put it
more generally on the simulation state not changing outside of turn
computation), otherwise results will be non-deterministic and go OOS.
This is currently entirely safe (as in, it indeed does not happen that
the simulation state changes in-between turn), but future work towards
improving simulation sandboxing would be good.
Thanks to Kuba386 for maintaining & improving the patch in 2020
Thanks to everyone who tested the various iterations of this patch.
Fixes#4324
Differential Revision: https://code.wildfiregames.com/D14
This was SVN commit r25657.
Prepare time is the time between an attack order and the arrows actually
flying.
Archers go from 500ms to 800ms standard, making them slower to fire than
other ranged units, and making them slightly harder to micro against
e.g. raids.
Javelineers go from 750ms to 400ms, for the opposite effect.
Crossbowmen, as a 'special' feature, get 200ms, meaning they fire their
first volley really fast despite their long repeat rate.
This also standardizes all javelineer units to have 1250ms repeat time.
Differential Revision: https://code.wildfiregames.com/D4050
This was SVN commit r25655.
The terrain update introduced large actors for both small and large
stone and metal actors. This replaces the small ones by the appropriate
small actors.
Patch by: marder
Differential Revision: https://code.wildfiregames.com/D4057
This was SVN commit r25654.
This makes it easier to have more forests with fewer trees, or fewer
larger forests.
Differential Revision: https://code.wildfiregames.com/D4059
This was SVN commit r25653.
In case mod is missing some required field, for example label or version
for some reason, mod page would stop functioning.
Adding default to empty string in list and filter.
Differential revision: D4028
This was SVN commit r25639.
This allows switching to the gamesetup, with a harcoded map, from the
campaign screen. Lets player sets up a few things (e.g. their civ &
favorite AI), which can be convenient for some simple campaigns that
lack options.
Differential Revision: https://code.wildfiregames.com/D4039
This was SVN commit r25636.
Since it is very non-trivial to determine which mods change checksums
and which don't, this relies on modder goodwill (and on verification on
our end for signed mods).
The declaration is an optional "ignoreInCompatibilityChecks" boolean in
mod.json
Also rework slightly the MP lobby mod display to always show the host
mods in a clear manner.
Differential Revision: https://code.wildfiregames.com/D3968
This was SVN commit r25634.
Fix some language elements, add some details, and update to SVN specs.
Make the window wider to have the first phrase take a single line in
English/most languages hopefully.
Differential Revision: https://code.wildfiregames.com/D4049
This was SVN commit r25633.
The champions these structures built were not very usable in practice
because of their limited build rate.
Apadanas are a special case since they grant resources, their limit is
increased to 2 and their resource rate divided by two (this reduces
their economic impact early on, but increases their potential military
impact).
The preferred solution would be giving apadanas a pop count, but that
does not work very well right now given that they grant resources and
can still be built.
Patch by: Valihrant
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D3897
This was SVN commit r25627.
Refs 42c70cd508, be286d4345, refs #5106
The introduction of "turn time" in A24 has been pointed out as a
gameplay change that made rushing less viable, and made the game more
turtley overall. Combined with other changes in the same direction, this
was seen by several top MP players as a step back.
Increasing turn times to 14 for infantry makes them somewhat irrelevant,
and a value of 10 for cavalry makes them noticeably more reactive while
keeping a little speed debuff.
Champions have a lower value, and heroes keep their lower values still
to prevent a reintroduction of 'dancing'.
Patch by: Valihrant
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D3971
This was SVN commit r25626.
It was underpowered and too costly.
Patch by: borg`
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D3698
This was SVN commit r25625.
The intention is that while mercenaries are still difficult and costly
to train, they are more effective in their particular niche.
Patch by: Nescio
Differential Revision: https://code.wildfiregames.com/D3699
This was SVN commit r25624.
The significant slowdown in train times, particularly for infantry
resulted in an increase in the # of barracks and overall contributed to
shifting towards a defensive, turtley gameplay.
Cavalry was already reverted in 8bd7a4f4b5.
Reverts parts of D2866/8726a2abbf.
Patch by: ValihrAnt
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D4033
This was SVN commit r25623.
Use a more memory-efficient layout, reducing memory usage and speeding
things up considerably.
Patch by: smiley
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D4021
This was SVN commit r25622.
This allows picking 'random' on a bunch of maps known to be playable in
MP, with the hope of increasing variety in actual maps played.
Discussed with players on the balancing forums.
Differential Revision: https://code.wildfiregames.com/D4012
This was SVN commit r25617.
Because the page stack is a vector, if during PushPage, a new page is
pushed, the vector may re-allocate. This 'pulls the rug out' from
underneath the code stack that originally pushed, which then crashes.
To fix this, use a deque, since push/pop won't invalidate references.
Reported by: Imarok.
Based on a patch by: Imarok (tests are his)
Differential Revision: https://code.wildfiregames.com/D4037
This was SVN commit r25616.
Variants can now have limited or no diversity. This can occasionally
speed rendering slightly (5-10% FPS increase was reported on Combat Demo
Huge, which is very variant-heavy).
Reported by: bb
Based on a patch by: bb
Fixes#5831
Differential Revision: https://code.wildfiregames.com/D3035
This was SVN commit r25613.
As the available biome was a Set, pickRandom didn't work.
Reported by: Langbart
Refs #6190
Differential Revision: https://code.wildfiregames.com/D4036
This was SVN commit r25611.
Kushites should not have a bolt accuracy upgrade in arsenal, as they do
not have the ability to produce bolts.
Fixes#6167
Patch By: Langbart
Differential Revision: https://code.wildfiregames.com/D4035
This was SVN commit r25609.
This patch decreases the popScaling so that the easy AI difficulties
have lower targeted population.
And it also decreases the size & priority of the attacks from the easy
an very easy AI.
Refs: #6149
Differential revision: D3997
Patch by: @marder
Tested by: @Langbart
Comments by: @wraitii, @Freagarach
This was SVN commit r25600.
Let PetraAI use MatchesClassList more.
Differential revision: https://code.wildfiregames.com/D2150
Reviewed by: Angen
Comments by: Stan
This was SVN commit r25584.
To allow incorporating more options, this splits the graphics settings
into two tabs, one containing general options (such as
silhouettes/windowed), and one with more advanced settings.
Accepted by: asterix
Differential Revision: https://code.wildfiregames.com/D3985
This was SVN commit r25581.
Disable AO on quarried objects as its arguably broken.
Adds a second uv in case it's enabled again to prevent crashes in Atlas.
Use normal instead of parallax for the texture that do not have height
information.
This was SVN commit r25576.
Summary: Ran into this when testing things in the lobby - I'm not sure
it can happen if everything is working correctly, but I've had it
repeatedly when testing broken stuff. Feels safer.
Test Plan: ^
Differential Revision: https://code.wildfiregames.com/D4018
This was SVN commit r25574.
- Update the stone and metal mine meshes and
textures/skins/gaia/decal_quarry_sahara_a.png
- Slight tweak to the steppe grass
- Add some ptol eyecandy
Templates will come in a following commit.
This was SVN commit r25556.
Following D3108 / 876f6d5e50, sounds are attenuated by their actual
distance. However, as noted by players on A24, the dropoff is stark and,
when zoomed out, can easily result in not hearing things that are
happening in the middle of the screen.
The new default settings almost double the max-range, change the minimum
range to have greater dynamic range, and reduce the stereo depth
slightly to better match the default camera FOV.
These are stored per sound-grounp, possibly allowing future tweaks on a
per-soundgroup basis, and are configurable.
Tested by: Imarok
Discussed over mail with: Samulis, Porru
Differential Revision: https://code.wildfiregames.com/D3612
This was SVN commit r25547.
Structures now decay in the same time span, including walls/palisades.
This buffs houses/storehouses against capture slightly.
Exceptions:
- Fortresses decay 4 times slower (but, as of now, they are also
territory roots).
- Wonders decay 4 times slower.
Differential Revision: https://code.wildfiregames.com/D3993
This was SVN commit r25539.
CanAttack queries the miraged Resistance which did not exist, thus
failing.
This mirages Resistance explicitly (fixing parts of #5883)
Fixes 88549e77e1, reverts the mirage.xml change in 738b200dda
Refs #5883
Reported by: Asger_Spear
Differential Revision: https://code.wildfiregames.com/D4001
This was SVN commit r25517.
Also moves the function to the shared_script, since that is the
prototype it uses and the function doesn't use anything of the
terrain_analysis (as per @Angen's request).
Differential revision: https://code.wildfiregames.com/D3906
Comments by: @Angen, @wraitii
This was SVN commit r25511.
As noted by Angen in a26535d023, refs 3bcf360107
When starting with incompatible mods, the non-incompatible mods were no
longer shown. This fixes that.
I think the code looks cleaner from this new control flow that
explicitly only mounts "mod".
Tested by: Angen
Differential Revision: https://code.wildfiregames.com/D3996
This was SVN commit r25510.
This leaves them with 'Structure', undifferentiated. This avoids the
issue reported in #6096 that rams can try to hit unreachable buildings
indefinitely.
Based on a patch by: Nescio
Differential Revision: https://code.wildfiregames.com/D3684
This was SVN commit r25481.
Reduces the 'clumpiness' of units, particularly when ordered to move to
a single point. The minimum pushing force was increased to compensate.
Differential Revision: https://code.wildfiregames.com/D3978
This was SVN commit r25479.
I didn't quite understand what was supposed to happen here. This makes
things work as before.
While at it, fix a conversion bug & do some more tweaks.
Differential Revision: https://code.wildfiregames.com/D3990
This was SVN commit r25475.
- Non-visual replays now automatically try to load the replay mods. This
removes the annoyance that -mod=public usually had to be passed.
- MountMods is no longer called in InitVfs but later, making it possible
to load the game in one pass & simplifying things considerably.
- Explicitly ignore duplicates when loading mods
- Interface cleanup: failed mods and incompatible mods were redundant,
only incompatible mods is kept.
- Interface cleanup: `AreModsCompatible`becomes
`CheckForIncompatibleMods`, which becomes a private pure function,
simplifying the control flow somewhat.
- Interface cleanup: `CheckAndEnableMods` is just `EnableMods`, which
explicitly updates loaded & incompatible mods.
- `CacheEnabledModVersions` becomes private and is called on behalf of
the user, removing the need to be careful about updating that (fixes my
concern at 44ec2e324e)
Overall, the logic around mounting & enabled mods should be easier to
understand.
Differential Revision: https://code.wildfiregames.com/D3982
This was SVN commit r25474.
Sometimes PetraAI relies on UnitAI state of an entity, but those were
not changed after modifying UnitAI.
Introduced in ea96e81098 and 3579097d95.
Differential revision: https://code.wildfiregames.com/D3976
This was SVN commit r25468.
Refs c0157d613d / D3913 which removed the 'actions' suffix. The reason
for this suffix was probably avoiding this type of conflict, but this
new solution does a better job.
Fixes (at least) Survival of the Fittest, which used an
OnOnwershipChanged trigger.
Differential Revision: https://code.wildfiregames.com/D3979
This was SVN commit r25467.
This was already effectively the case, so this change increases
coherence.
Accepted By: Freagarach
Differential Revision: https://code.wildfiregames.com/D3980
This was SVN commit r25465.
Ranged cavalry goes from a base 0.89 walkspeed multiplier to:
- 0.8 for crossbowmen
- 0.85 for archers
- 0.9 for javelineers
The intention is to nerf archers slightly.
Patch By: Nescio
Accepted By: ValihrAnt, chrstgtr
Differential Revision: https://code.wildfiregames.com/D3758
This was SVN commit r25464.
Reverts D2986 / f9f7b4d49f.
Outposts have 90 base vision, increasing to 120 with the 'Carrier
pigeon' technology.
Outposts no longer decay in neutral territory, thus not needing
garrisoning. To compensate, they decay 10x faster in enemy territory.
Differential Revision: https://code.wildfiregames.com/D3898
This was SVN commit r25463.
Avoids recreating an object and frequent casting.
Allows some optimisations.
Simplifies some calls.
Differential revision: https://code.wildfiregames.com/D3934
Comment by: @Stan
This was SVN commit r25460.
If a default difficulty is given by the map, use that. Else use the
default of the game.
Patch by: @JCWasmx86
Differential revision: https://code.wildfiregames.com/D3951
This was SVN commit r25455.
This allows joining a lobby game hosted on the same network (behind the
same NAT gateway).
This is relatively primitive to keep things simple: if the server and
the client have the same public IP, it is assumed that they are on the
same network and the client instead requests the local IP.
Differential Revision: https://code.wildfiregames.com/D3944
This was SVN commit r25448.
The entity received a value modif. message while promoting, triggering a
second promotion.
Differential revision: https://code.wildfiregames.com/D3918Fixes: #6162
Comments by: @Angen, @Stan
This was SVN commit r25439.
Patch by: @nani
Liked by: @ffffffff
Tested by: me and @Langbart
Differential Revision: https://code.wildfiregames.com/D3957
This was SVN commit r25436.
Also refactors the order a bit to be more equal to other orders.
Removes the `autocontinue` because it was not useful (since that is more
about doing other tasks than the one ordered).
Follows ea96e8109897addf2aa7.
Differential revision: https://code.wildfiregames.com/D3942
Tested by: @Langbart
Fixes: #6175
This was SVN commit r25421.
This allows easier handling of e.g. range triggers calling into the same
function.
The original trigger data is also forwarded for convenience.
Differential Revision: https://code.wildfiregames.com/D3904
This was SVN commit r25413.
Fixing following problems:
Issue number one:
Enable mod with a23 compatibility in a23b.
Save configuration.
Start a24.
Better result:
Mod will be enabled and invisible in mod selection screen producing
various errors.
Worse result:
Game will crash and refuse to start.
Issue number two:
Mods can silently set loaded mods without restarting the engine, so mods
can unlist themselves from compatibility detection.
Solution:
Enable necessary mods instead if running with gui and open mod page.
Open information window on top of mod page to infom why mod page is
showing up.
On mod page show mods which failed in compatibility check and color the
resposnible ones.
Disable start button without enabled mods.
Show non existed mods if they failed in compatibility check.
Else just log to mainlog and close.
Another fixes:
Display in enabled mods really enabled mods as current logic confuses
players about which mods they have enabled and is not helpful (ref
#4881)
Note:
this will not solve issue with mods claiming being compatible with
engine version while in fact being incompatible.
Comments by: @vladislavbelov, @Stan, @Imarok
Tested by: @wraitii
Differential revision: D3592
Fixes: #6044#4881
This was SVN commit r25410.
This allows GUI elements to use a texture as their "mouse event mask",
making it possible to have arbitrarily-shaped GUI elements with regards
to mouse interactions.
Used for the minimap idle worker button as a proof-of-concept.
Differential Revision: https://code.wildfiregames.com/D3814
This was SVN commit r25408.
XMPP JID has a concept of 'resources', which can be used to
differentiate multiple clients of the same account.
We currently hardcode this 'resource' to '0ad' in two places:
- The 0 A.D. client always uses '0ad'
- The network code expects a host resource to be '0ad' when connecting.
As noted in 0fd8aa2a77#31215, it is less effort to store the JI
D directly. This patch does that. It also makes 0 A.D. use a different
resource each time.
Note that resources ought not contain particular information, as the
XMPP server is free to
clobber it. I keep '0ad-' here for debug purposes.
This allows:
- multiple 0 A.D. instances to log on the lobby at the same time (not
massively useful, but good for debugging sometimes)
- hosting a game with a custom resource, which will potentially make it
easier to have dedi
cated servers on one account.
Note that hosting multiple games on one account is currently not
supported and will have weird behaviour on the lobbybots side. They
should be upgraded independently of this.
Refs #3556
Differential Revision: https://code.wildfiregames.com/D3500
This was SVN commit r25407.
The 'map name' dropdown filter did not work in localised interfaces.
Patch by: nwtour
Differential Revision: https://code.wildfiregames.com/D3883
This was SVN commit r25404.
The line altered here was returning an Array of Objects. This array
would
eventually passed to code that expected it to be an Array of Strings.
This was
causing an error to thrown that could be replicated by going to the
Multiplayer
GameSetup, entering text (e.g. "Winter", "Dry", "lol") into the chat
field, and
pressing `Tab` to trigger the auto-complete.
This line now returns an Array containing the user-facing names of the
Biomes
available to the selected map (if it has them), which is what this
method was
returning prior to dc18d94030.
Related: dc18d94030, dc18d94030
This was SVN commit r25403.
Strength was floored, resulting in possibility for `0`, which was not
handled gracefully by the map.
Since the strength is multiplied by something that can be non-integer in
the map, the floor is not needed.
Differential revision: https://code.wildfiregames.com/D3884
Comments by: @Angen, @smiley
This was SVN commit r25400.
Requested in D3810 (and other places).
It was weird that e.g. the Romans gave their allies a training bonus but
lacked that themselves.
Differential revision: https://code.wildfiregames.com/D3899
Reviewed by: @ValihrAnt
Comment by: @darkcity
Idea approved by: @wraitii
This was SVN commit r25399.
51ab4315ff
Fix using the hotkey on entities that don't have a Production Queue.
Fix showing the icon on entities that don't produce entities.
Differential revision: https://code.wildfiregames.com/D3932Fixes: #6172
Comment by: @wraitii
Tested by: @Langbart
This was SVN commit r25396.
This adds a new command button that enables training of units
automatically.
Use:
- Enable auto-queue.
- Train an entity.
This adds a new item to the queue whenever the previous item starts,
such that good micro is more resource-efficient.
Patch by: @azayrahmad
Differential revision: https://code.wildfiregames.com/D3865
Comments by: @Langbart, @nani, @Stan, @wraitii
This was SVN commit r25381.
- 'Random' map is filtered correctly
- When in 'fallback to all' mode, selecting something works (#6165).
- Fix hotkeys being broken (fixes map browser following 0406c4dfde)
- Clear filters when reopening the map browser (seems natural).
Based on a patch by: nani
Refs #6045.
Fixes#6165.
Differential Revision: https://code.wildfiregames.com/D3833
This was SVN commit r25379.
The dropdown converted the numbers to string, and the code expected
numbers.
Differential Revision: https://code.wildfiregames.com/D3924
This was SVN commit r25376.
Trigger functions/actions were tied to the trigger 'identifier'. This is
inconvenient if several triggers should call the same function, e.g. for
range triggers.
By setting an 'action' in the trigger data, one can now specify the
function to call independently of the trigger name.
For clarity, the 'action' parameter in RegisterTrigger is changed to
'name'. By default, the action still matches the trigger name for
compatibility and convenience.
Differential Revision: https://code.wildfiregames.com/D3903
This was SVN commit r25374.
Revealed by 0406c4dfde. The fix also avoids sending a redundant
lobbyregistration message.
Reported by: langbart
Differential Revision: https://code.wildfiregames.com/D3923
This was SVN commit r25369.
Don't let entities waste a repeat time when they've killed their target.
Done by storing a list of attackers in cmpResistance (since that cmp is
obligatory anyway).
Differential revision: https://code.wildfiregames.com/D2129
Comments by: @Angen, @wraitii
This was SVN commit r25368.
This prints out a stack trace, which is quite helpful when debugging.
Also fixes an issue with stack trace not always being reported.
Differential Revision: https://code.wildfiregames.com/D3210
This was SVN commit r25365.
@mysticjim and @Sundiata manage the community, but were not named in
those credits yet.
@Langbart does a lot of valuable work (amongst which is writing patches)
and was not credited at their first patch (my fault).
Differential revision: https://code.wildfiregames.com/D3880
This was SVN commit r25364.
ChangeEntityTemplate used by Promotion is transfering xp from old unit
to new one, but also Promotion component itself does the same thing.
Introduced in cc1ea7cca0
Differential revision: D3915
This was SVN commit r25356.
Followup on 1e0a6f66f0.
This gives a better image of the amount of units which are gathering.
By decision, entities are _not_ accounted from when the player tasks
them to return their resources.
Refs. #643
Differential revision: https://code.wildfiregames.com/D3226
Comments by: @wraitii
This was SVN commit r25345.
Defensive buildings now have 25H/35P/3C resistance.
Patch by: Nescio
Differential Revision: https://code.wildfiregames.com/D3757
This was SVN commit r25342.
- Prevents lag
- Prevents abuse by using animals to break pathfinding.
Patch by: Nescio
Differential Revision: https://code.wildfiregames.com/D3777
This was SVN commit r25340.
Similar to the archer tradition tech.
Intended to boost usage of melee units.
Patch by: borg-
Differential Revision: https://code.wildfiregames.com/D3688
This was SVN commit r25338.
This new value was last changed in 4a2cc3273e. The new value sits
halfway.
The technology is available at the forge for all civilizations with
archers and independent of the already existing “Archery Tradition”
technology.
Patch by: Nescio
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D3736
This was SVN commit r25337.
- EOL native and xml mime type
- Add player_trans_norm_spec.xml
- Disable cast shadow for manes.
- Use norm instead of parallax
Reported by @Freagarach
This was SVN commit r25333.
- Fix in tooltip context for healing 'Health'
- Fix in tooltip for splash shape.
- Translate locale_advanced
- Translate specific name in the structure truee
- Translate player name in gamesetup.
Patch by: nwtour
Differential Revision: https://code.wildfiregames.com/D3889
This was SVN commit r25332.
Colour for away status, makes it hard to spot among busy statuses.
Setting more orange colour for this.
Differential revision: D3856
Ref: #6055
Accepted by: @asterix
Comments by: @Langbart
This was SVN commit r25311.
- Arrow shooting structures (towers, CC, fortress, camps...) now deal 10
pierce data per arrow, one arrow every 2 second (i.e. 5 pierce DPS).
- Adjust the count of arrows per building accordingly.
This makes these buildings easier to compare.
Accepted By: #balancing, borg-, wraitii
Differential Revision: https://code.wildfiregames.com/D3668
This was SVN commit r25309.
Instead of hardcoding it in the component.
Allows modders to easily change the value.
Differential revision: https://code.wildfiregames.com/D3792
Comments by: @Angen, @Nescio, @Stan
This was SVN commit r25299.
We have a FAQ, that is now pretty up-to-date, so use it.
Also add note that people may want to be more patient when chatting with
us on IRC.
Patch by: @Langbart
Differential revision: D3499
Comment by: @Stan
This was SVN commit r25298.
* Disable "castshadow" as they are never much larger than the shields
* Disable them on medium because they are part of the texture
* Disable them on low for performance.
* EOL & Mime Type
* Add a new materials/basic_trans_norm_spec.xml to disable parallax
(while keeping normal and transparency) when not needed and use it for
the handgrips with transparency.
This was SVN commit r25297.
- Disable "castshadow" as they are never much larger than the legs
- Disable them on medium because they are part of the texture
- Disable them on low for performance.
- Add a missing mesh reported by @wowgetoffyourcellphone the r variant
was used for the l actor
- EOL & Mime Type
- Add a new materials/no_trans_norm_spec.xml to disable parallax (while
keeping normal) when not needed and use it for the greaves.
This was SVN commit r25296.
59d0885d68 made formation take "formation", not "name". This broke
TriggerHelper.
Reported by: Angen
Reviewed By: Angen
Differential Revision: https://code.wildfiregames.com/D3873
This was SVN commit r25293.
Called the member instead of the function.
Introduced in ea96e81098. Noticed by @Angen.
Differential revision: https://code.wildfiregames.com/D3870
Reviewed by: @Angen
This was SVN commit r25291.
These don't depend on the simulation and can be useful for e.g. the GUI
(the FSM) or map scripts.
Confer also the vector implementation.
Differential revision: D3863
Comment by: @wraitii (agreed with concept)
This was SVN commit r25288.
If there are no idle units and the idle-unit hotkey is pressed there is
now a sound played.
Beneficial when there are already units selected since selection doesn't
change.
Sound courtesy of @Samualis.
Refs. #5360
Based on a patch by: @cpc
Differential revision: https://code.wildfiregames.com/D1692
Comments by: @asterix, @smiley, @Stan, @vladislavbelov
This was SVN commit r25287.
Replaces a house by a stable.
Since c4eeb82d83 cavalry cannot be trained at the barracks anymore.
Patch by: @Nescio
Differential revision: D3691
This was SVN commit r25274.
Chanakya was the teacher and minister of Chandragupta Maurya, whereas
Kautilya is the author of the Arthashshastra. While the two are often
equated (out of ignorance or for ideological reasons), they are
different persons, and the first versions of the Arthashshastra were
composed only a few centuries after the Mauryas were gone. See
https://wildfiregames.com/forum/topic/27113-bibliography-and-references-about-ancient-times-book-reviews/?tab=comments#comment-402302
for a more detailed explanation.
This patch therefore:
- changes the author from Chanakya to Kautilya;
- lists the quotes at the correct location in the file (under K instead
of C);
- removes the chapter titles (which depend on the text edition or
translation) and give a more precise location, to make it easier for
people to look up.
For those interested, the Sanskrit is:
KAZ01.4.07 na-iti kauṭilyaḥ | 7 |
KAZ01.4.08 tīkṣṇa.daṇḍo hi bhūtānām udvejanīyo bhavati | 8 |
KAZ01.4.09 mṛdu.daṇḍaḥ paribhūyate | 9 |
KAZ01.4.10 yathā.arha.daṇḍaḥ pūjyate | 10 |
and:
KAZ01.19.01 rājānam utthitam anūttiṣṭhante bhṛtyāḥ | 1 |
KAZ01.19.02 pramādyantam anupramādyanti | 2 |
And the translations in Patrick Olivelle King, Governance, and Law in
Ancient India / Kauṭilya’s Arthaśāstra / A New Annotated Translation
(Oxford 2013) are on p. 69:
7 “No,” says Kauṭilya;
8 “for one who punishes severely terrifies the people,
9 and one who punishes lightly is treated with contempt,
10 whereas one who dispenses appropriate punishment is treated with
respect.
and on p. 92:
1 When the king is energetic, people in his service, in turn, become
energetic;
2 and when he is lethargic, they, in turn, become lethargic.
Patch (and description above) by: @Nescio
Differential revision: https://code.wildfiregames.com/D3598
This was SVN commit r25273.
Summary screen and mainly its statistics can be influenced by mod as
much as replay itself with mod removing or adding classes and trackers
to the game.
Summary screen allows to replay the match without checking
compatibility, that is fine I think if it is prevented to see summary of
incompatible replay in a first place.
Therefore this is adding compatibility check for opening summary of
replay.
Differential revision: D3799
Fixes: #6119
Tested by: @Langbart
This was SVN commit r25268.
("Variant" in this case means a template that is functionally the same
as its
base template - but is a different promotion level, requires a
technology to
unlock (that the base template doesn't), is an upgrade of its base, or
is a
trainable version.)
Should fix concern raised on b2842e8021.
Accepted by: Angen
Differential Revision: https://code.wildfiregames.com/D3347
This was SVN commit r25260.
(Follows 76acc4e146 where I deleted actor.rnc)
This deletes the .rnc validation files, upgrading the .rng files to
being the source of truth.
- The engine uses, via LibXML2, .rng files to validate XML schemas, to
the .rnc files are redundant.
- The RelaxNG "Compact" format is a DSL for the RelaxNG XML format. Its
syntax is unique, unlike .rng files which are XML.
- Some errors are likely - I'm not sure anyone has converted the compact
files in years.
- The tool to generate .rng from .rnc files is trang
(https://github.com/relaxng/jing-trang), which runs on the JVM and is
quite annoying to install compared to "your usual text editor".
- The JS components use the full .rng format in XML, so editing this
format is already familiar to most people that mod the game.
The .rnc files were added in 2c9939ac74 along the .rng files.
Refs #413, #245
Differential Revision: https://code.wildfiregames.com/D3824
This was SVN commit r25258.
- Random lanscape option now works properly.
- Non-host clients now see the game attributes correctly in the loading
screen, including in particular the map name.
- AI bots are again translated.
- 'Cheat' setting is persisted correctly in MP gamesetup.
Reported by: myself, Freagarach, nwtour
Differential Revision: https://code.wildfiregames.com/D3841
This was SVN commit r25257.
While gathering resources entities may be tasked to gather near a
position. The range check for that is 10 m. However, the relaxed range
check for the walking state is this.DefaultRelaxedMaxRange, which is 12
meter, currently. Meaning it would lead to a slow infinite loop.
Differential revision: D3839
Comments by: @wraitii
Tested by: @gameboy
(https://wildfiregames.com/forum/topic/38131-tutorial-bug/)
This was SVN commit r25249.
- `initPos` was used wrong.
- There were two `CanGather` functions in `cmpResourceGatherer`.
- Reduced some duplication in the ReturnResource order.
Differential revision: D3838.
This was SVN commit r25243.
Caused by not checking the attack type while performing an attack.
Closes: #5511
Differential revision: D3840
References #3484
This was SVN commit r25242.
Following 21e866fcf0.
Also support leaving a turret by using a hotkey.
Currently the hotkeys are by default bound to the same ones as
garrisoning.
Differential revision: D3773
Icons by: @wowgetoffyourcellphone and @Stan.
This was SVN commit r25240.
Puts the athen-specific data in the mixin `civ/athen`. Deduplicates.
Differential Revision: https://code.wildfiregames.com/D3831
This was SVN commit r25239.
Keep responsibilities separated, allow easier modding of attacking
behaviour.
Ideally the BuildingAI attacking routine would be merged in here as
well, but not done for now.
Part of #5810
Differential revision: D3816
Comments by: @smiley, @Stan
This was SVN commit r25235.
Reduces duplication, allows all attack types to cause splash damage.
While at it, makes delay and minimal range optional (for obvious
defaults are available).
Split from D368, so basically a patch by @bb.
Note that it may seem like one can arbitrarily name an attack now, but
that is not true.
Differential revision: D2002
Comments by: @bb, @Nescio, @Stan, @wraitii
This was SVN commit r25233.
- Allows compositing any two templates in TemplateLoader, and not just
filters: 'A|B|C' is now valid for any template A, B and C.
- Allows parents to be composited paths 'A|B|C'. In such a schema, if A
or B themselves specify a parent, the actual composition becomes
A|pA|B|pB|C and so on.
This allows, by leveraging the common schema of our entities, to reduce
duplication.
For convenience, templates in "special/filters/" and "mixins/" can be
included by their direct name. Others have to be completely specified.
See the two provided cases for examples:
- 'hoplite' becomes a mixin that can be used to apply the Phalanx
formation
- 'builder' becomes a mixin that can be give a template the ability to
build the standard structures, and gives the 'Builder' identity class.
This also allows deduplicating that list of tokens.
Update checkrefs & swap std::map for std::unordered_map in
TemplateLoader.
Differential Revision: https://code.wildfiregames.com/D3801
This was SVN commit r25223.
Introduced in 93d22ef16b.
Brings back the less intrusive bug of transforming while garrisoned of
turreted and unloading results in the default stance. That needs to be
fixed again.
Differential revision: D3822
This was SVN commit r25221.
Instead of relying on the assumption that an entity which transforms
only has one of the two (and the same) before and after.
Fixes 5b3bdf3647.
Differential revision: D3821
Comment by: @Stan
This was SVN commit r25220.
Don't pretend it to be a callable function, while it is certainly part
of the FSM.
(Also makes it easier for us to implement a duration for the trading in
the future, might we ever want to.)
Differential revision: D3813
Comment from: @Angen
Closes: #6135
This was SVN commit r25216.
Allows for non-moving entities to drop resources. (When someone checks
those cases in the order.)
(Also makes it easier for us to implement a duration for the dropping in
the future, might we ever want to.)
Differential revision: D3817
This was SVN commit r25215.