COMBAT.APPROACHING will fallback to WalkAndFight if the order is forced
and the movement fails (happens e.g. on target death).
That behaviour was added in 5568bd4c16 (and tweaked in d9c6879450), to
make the unit move to the general position asked by the player as a
fallback.
However, it did not allow capture, which meant units would occasionally
start attacking structures, instead of capturing (the default).
This makes that fallback allow capture in all cases, which is generally
more expected than the reverse.
Fixes#6003
Differential Revision: https://code.wildfiregames.com/D3548
This was SVN commit r24866.
5d96346ac5 proved unsufficient to fix formation 'waltzing'. This is a
better fix, which makes sure units actually try to reach their
designated offset in the first place.
Further, it removes code that recalculated offsets un-necessarily, which
led to an issue with "sloppy" formations such as open and closed orders.
Fixes#5997
Differential Revision: https://code.wildfiregames.com/D3543
This was SVN commit r24865.
When reforming manually, the case of formation template beeing the same
was ignored what resulted in creating new formation controllers.
Differential revision: D3542
This was SVN commit r24859.
Follow-up to 1a8de6d2b8. This makes it again possible to host without
STUN via the lobby.
The lobby bot will answer the host "Register" command with the external
IP. This is only sent to the host, avoiding IP leakage.
There is a small window in which a client might try to join and the
public IP isn't up, and the request goes through, but that seems rather
unlikely to be a problem in practice.
Refs #5913
Differential Revision: https://code.wildfiregames.com/D3490
This was SVN commit r24858.
Following #5913, mod_ipstamp is no longer required to enable STUN
hosting (it can only be useful to enable non-STUN hosting).
This updates the readme to reflect that, and fixes some markdown issues.
Differential Revision: https://code.wildfiregames.com/D3473
This was SVN commit r24857.
FSM states would be left/re-entered, resetting the timer, which did not
happen pre a16e7c0a56 and is undesirable in general.
This explicitly checks for a few cases where timers are relevant.
Essentially a Patch by: Freagarach
Differential Revision: https://code.wildfiregames.com/D3531
This was SVN commit r24855.
When closing the mod downloader, the list of enabled mod is reset, which
can lead to an out-of-index assertion failing in the engine if an
enabled mod was selected before.
Reported by: Vas
Fixes#6001
Differential Revision: https://code.wildfiregames.com/D3537
This was SVN commit r24854.
Gamesetup Net synchronisation messages are sent on any change, which
includes slider changes. They can be quite slow for clients to process,
so it makes sense to introduce some 'debounce' here. I picked 400ms
somewhat arbitrarily.
Sliders also call UpdateGameAttributes, which can also lag, so run it
only once per 50ms at most.
Reported by: nani
Differential Revision: https://code.wildfiregames.com/D3536
This was SVN commit r24852.
86ddf09640 had buffed them by giving them Fire damage, which ships have
no resistance against. This made the too strong.
Patch By: Feldfeld
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D3538
This was SVN commit r24851.
As pointed out by Edwarf in the forum post, the elephant stable is
rather expensive compared to the arsenal (both are city-phase
structures).
This patch keeps the elephant stable's resource costs unchanged (it is
visually larger than the other three military structures), but lowers
the building time from 240 s to 180 s.
Differential revision: D3515
Reviewed by: @borg-
Patch by: @Nescio
This was SVN commit r24850.
As pointed out by Edwarf in this forum post, the espionage technology is
rather expensive. This patch removes the wood and stone costs and
reduces the research time.
Differential revision: D3516
Reviewed by: @borg-
Patch by: @Nescio
This was SVN commit r24849.
The "public" archive needs to be built with the mod mod active, to load
textures.xml files. This saves a few MBs as a side effect.
Fixes#6000
Differential Revision: https://code.wildfiregames.com/D3534
This was SVN commit r24847.
Post f78d3ddf71, chat uses a list, which has natively a larger interline
space.
This introduces a new style to revert to A23-like interline, making chat
denser and better looking.
Patch By: nani
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D3533
This was SVN commit r24846.
Following 847f3a9995,
Units in formation can get very small movement offsets, that nonetheless
require large rotations, and thus at least 2 turns to accomplish.
However, following 847f3a9995, PossiblyAtDestination fires() only after
the first rotation, so the unit ends up 'waltzing' in place.
Before that diff, the unit never even moved since PossiblyAtDestination
fired straight away.
This is also noticeable since IDLE formation re-order their members
since 71a61d5f50.
The fix here is to ignore rotation time for very small offsets, which
lets units accomplish the movement in one turn and fixes the issue.
Reported by: wowgetoffyourcellphone
Reviewed By: Freagarach
Tested By: langbart
Differential Revision: https://code.wildfiregames.com/D3518
This was SVN commit r24831.
When hovering over the background, the scrolling was suddenly reversed
and could loop around.
Tested By: Langbart
Fixes#5993
Differential Revision: https://code.wildfiregames.com/D3514
This was SVN commit r24824.
Check for existence explicitly in the lobby GUI.
It would probably be better to not trigger errors in the cache
laoder/JSON code but instead print at the caller, depending, but that
requires changing a lot more code.
Reported by: Asger
Fixes#5988
Differential Revision: https://code.wildfiregames.com/D3506
This was SVN commit r24821.
Partial revert of 8df9d8dcc3. Following some testing, this build time
increase made early cav rushes too difficult.
Accepted by: borg-, FeldFeld, Valirhant
Reviewed By: Nescio
Differential Revision: https://code.wildfiregames.com/D3508
This was SVN commit r24820.
Issue described in #5945.
Unit finishing the order such as walking, will reach destination and if
attacked, imediately reacts to the attacker.
Hovewer, more desireble is for unit to look around since entering idle
state and pick the target if any using preference and then react to
attacker.
This issue rised up after finding of new targets have been moved from
enter to timer to avoid infinite loops after alwaysenterstate logic
removal.
Only downside here is unit will receive few hits before reacting as we
are waiting to the timer first. This happens only if unit goes idle.
Differential revision: D3504
Reviewed by: Freagarach
Comments by: wraitii
Fixes: #5945
This was SVN commit r24818.
I'm hoping this will give us more information on what's going wrong.
Also remove comments which were outdated since 7460d0e56e
Refs #5987
Differential Revision: https://code.wildfiregames.com/D3501
This was SVN commit r24811.
D3230 / 847f3a9995 introduced range checking at turn start, and removed
a hack that made units predict the position of their target too far
ahead. This worked fine when in "straight movement" mode, unfortunately
I failed to recognise that ranged units would never use that mode. This
meant that ranged-unit chasing was broken.
There is a straightforward fix however, since we can simply change
TryGoingStraightToTarget to be used by ranged units. It fixes the issue
efficiently and improves movement for ranged units in general, so it
probably should have been done from the start.
Refs #5936
Differential Revision: https://code.wildfiregames.com/D3489
This was SVN commit r24803.
Nerf cavalry movement speed somewhat, by reducing walk speed and their
run multiplier.
Further, following 6a66fb8205, units have a chance of going through
their target when chasing them. This diff adjusts melee cavalry ranges
from 4 to 6 to reduce the probability of that happening. The speed
reduction also helps with this.
Refs #5936
Differential Revision: https://code.wildfiregames.com/D3483
This was SVN commit r24802.
- Because units slow down when turning, and JPS paths often begin with a
J-shape, chasers can fail to catch up to slower chasee, because the
latter don't recompute paths as often. To fix this, ignore the first
waypoint if it's close by and the next is accessible.
- Don't interpolate the target position when interpolation isn't
necessary (i.e. when not processing the MT_Update_Motion* message), as
that resulted in the "follow known bad path" hack to active
un-necessarily.
- Tweak PathingUpdateNeeded, it will return true when it has no path to
follow
- Remove the direct-range consideration in the "distance uncertainty"
calculation.
Refs #5936
Differential Revision: https://code.wildfiregames.com/D3485
This was SVN commit r24800.
Slight debuff for cavalry: increase their build time but slightly above
10%, and increase the cost of the +10% movement speed technology.
Accepted By: FeldFeld, borg-, Nescio
Differential Revision: https://code.wildfiregames.com/D3476
This was SVN commit r24799.
Units movement is currently "all or nothing". This means that a chasing
entity that moves fast enough is likely to collide with its target, if
the latter is moving also. This means that it might fail to get in range
if the max range is smaller than the movement speed over a turn.
This happens to be very much the case in MP, as cavalry range is 4,
melee cav speed is ~20 and turns are 500ms.
This problem depends on which unit moves first (i.e. which unit is
lowest-ID).
To fix this, ignore the obstruction of the target, if it is moving, when
moving. This however means sometimes chasers will 'overshoot' and block
their target pathing, making the chase easier than it probably should
be.
Fleeing units don't suffer from this problem since they also ignore
their target (and their code handles it).
This new problem introduced in this diff is heavily dependent on the
exact speeds and ranges at play, and a further diff will improve the
situation to acceptable levels.
Reported by: FeldFeld
Refs #5936
Differential Revision: https://code.wildfiregames.com/D3482
This was SVN commit r24798.