caused by a79a47effe and de3ed2cd19 petra will be blocked by not being
able to train hero again as she does not do rotations.
add check for matchlimits reached for permadeaths
more propper solution to handle training with numbers greater than 1
will be needed in the future.
Differential revision: D3559
Accepted by: @Freagarach
This was SVN commit r24897.
692e236499 assumed that `this.capacities` would always exist, but that
proved incorrect, in particular if a value modification message is sent
before ownership change is processed.
Fix that by initializing them on init.
Reported by: Langbart
Fixes#6019
Differential Revision: https://code.wildfiregames.com/D3562
This was SVN commit r24896.
- e7e218a3bc contained a small mistake: this.order wasn't cleared when
clearing the orderqueue, which led to a broken codepath in
PushOrderFront.
- Since 71a61d5f50, formation orders their members to reform in IDLE.
This will automatically pack any unpacked siege.
Reported by: langbart
Tested by: langbart
Fixes#6018
Differential Revision: https://code.wildfiregames.com/D3561
This was SVN commit r24895.
Add a fallback material for the basic_trans_wind_parallax_spec.xml so it
default to a less costly one on lowest settings.
Rename basic_trans_wind_parallax_spec.xml to
basic_trans_wind_norm_spec.xml to reflect there is no parallax disabled.
Discussed with @vladislavbelov.
This was SVN commit r24889.
- Remove unused decals as the rubble takes over
- Add destruction smoke to most buildings
- Fix very small destruction smoke for gates
- Fix fortress props "popping up" when ranges and arsenals are
destroyed.
This was SVN commit r24878.
When giving several queued formation-walk orders, then a queued
non-formation order (such as gathering), the gather order would be
silently dropped. This did not happen if only one formation-walk order
was given, which is why this issue was not noticed in 59d0885d68
To fix it, explicitly only drop pre-"leave formation" orders in the
queue for formation members.
Reported By: faction02
Differential Revision: https://code.wildfiregames.com/D3550
This was SVN commit r24869.
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.
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.
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.
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.
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.
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.
Unit Motion currently checks if the unit is at destination during the
MT_Update_Motion* step, which happens late in the turn (notably, after
Timer.js) and moreover happens while entities are being moved (e.g.
entities with lower IDs have moved already, entities with higher IDs
have yet to do so).
This changes UnitMotion to instead check at turn start, which:
- benefits from in-turn path computations for more fluid movement
- ensure that distance checks aren't done against an entity that has
already moved for the turn.
The latter issue led to units failing to get in range of their target
when chasing them, in some situations.
As a side effect, this means that UnitAI move requests always take one
turn to succeed, so orders should be updated to check for range (or
they'll waste a turn). This is done for garrisoning, other orders were
already doing so.
Also includes a small tweak to avoid units rotating randomly when they
have no movement to accomplish.
Patch by: bb
Reviewed By: wraitii
Refs #5936
Differential Revision: https://code.wildfiregames.com/D3230
This was SVN commit r24797.
Display locked icon for matches with password, unlocked otherwise.
This should help players to avoid clicking to the locked matches, when
they do not know password.
Differential revision: D3480
Fixes: #5949
Comments by: Stan, Freagarach, wraitii, borg
This was SVN commit r24795.
As suggested by elexis, 1a8de6d2b8 should get some protection against
brute force attacks on password.
This is supposed to prevent attackers from getting connection data by
guessing the password.
Each failed attempt increases the counter.
XmppClient on the server side checks for the users with certain number
of failed attempts, determined in CNetServer, and refuses to check the
password, answering with banned message.
So they cant guess again in given match. Effect of this block will
dissapear after new match is created.
Differential revision: D3467
Comments by: wraitii, Stan
Tested by: Stan, Freagarach
Ref: #5913
This was SVN commit r24794.
The hotkey editor could modify hotkeys despite the changes being
cancelled.
Refs #2604, Fixes#5982
Differential Revision: https://code.wildfiregames.com/D3481
This was SVN commit r24793.
- Mercenaries should be green.
- Cart super dock icon used an old background
- Due to the reduced panel icon size it was easy to confuse the stables
with the barracks
- Due to the reduced panel icon size it was easy to confuse the corral
with the farmstead.png
Reported by: @wraitii @borg-
This was SVN commit r24792.
Units no longer stop when ordered to stand ground. Use the Stop
command/hotkey instead.
Reviewed By: Freagarach
Fixes#5975
Differential Revision: https://code.wildfiregames.com/D3463
This was SVN commit r24791.
Gather rates are not rounded, so after some modifiers are applied, they
appear as ugly decimal numbers.
Limiting them into 2 decimal places for readability and it looks nicer.
Differential revision: D3460
Reviewed by: @wraitii
This was SVN commit r24782.
Outposts have a vision range of 4. This however does not always reveal
FoW around them, which looks rather odd (see D3054).
Give them 10 vision so that it's obvious they are working, and clarify
the tooltip that garrisoning is needed to make them helpeful.
Fixes#5974
Differential Revision: https://code.wildfiregames.com/D3464
This was SVN commit r24779.
Units sometimes ignored targets that entered their LoS. The cause is
d0fc8ff67d: range queries returned units farther away, and those units
might actually be out of range if distance is computed center-to-center,
which both UnitAI and LOS do. This meant that code relying on range
query updates was possibly broken, and indeed units missed things (see
ticket).
This introduces a boolean to switch between pre-d0fc8ff67d behaviour
(entity-as-point, center-to-center range queries) and post-d0fc8ff67d
(entities-as-circumscribing-circle, edge-to-edge range queries).
The former is used for UnitAI (where the new behaviour bugged), auras
(where varying structure sizes made it awkward) and build
restrictions(which simply did not really need it).
Reverts 7f1ee23d88, 050c5401b1 (with the exception of the iber monument
footprint), and the template changes in d0fc8ff67d itself.
It also reduces alertRaiser ranges slightly, this was missed in the
original diff.
#3381 is not reopened as BuildingAI still uses the new range queries.
Reported by: Freagarach
Comments By: Angen
Fixes#5968
Differential Revision: https://code.wildfiregames.com/D3456
This was SVN commit r24776.
Introduced in e543b01077.
Units entering cheering from idle state, may not check their surrounding
for pottential targets yet, so they will react incorrectly when
attacked.
Pointed out by @Freagarach in
https://code.wildfiregames.com/D1977?id=10404#inline-52415 and turned
out to be issue.
Differential revision: D3455
Fixes: #5966
Reviewed by: @wraitii
This was SVN commit r24774.
Make sure that any pending cheering order is deleted when leaving the
Cheering state, otherwise other unitAI states can behave weirdly.
This fixes issues with units cheering at incorrect time, then not
correctly picking their next target in a fight.
Reported by: snelius
Reviewed By: Angen
Refs #5966
Differential Revision: https://code.wildfiregames.com/D3452
This was SVN commit r24773.
Since 59d0885d68, there is a "LeaveFormation" order to support
queued-disbanding. However, I misread the code paths and FinishOrder()
isn't always called.
This fixes that oversight.
Reported by: Freagarach
Differential Revision: https://code.wildfiregames.com/D3450
This was SVN commit r24771.
When Petra encounters free technology or technology with no
researchtime, she will not start it and blocks the queue.
Also fixing seleucids.
Differential revision: D3388
Reviewed by: @wraitii
Comments by: @Freagarach, @Stan
This was SVN commit r24769.
The Y coordinate at which to fire a projectile is currently assumed to
be the target's current Y, which is incorrect if the target is moving on
a slope.
This fixes that.
Note that this was purely visual, since projectiles still hit the target
regardless, as the height component is totally ignored, even if the
projectile is underground (in fact, the projectile's position is not
known in DelayedDamage::MissileHit, which just assumes it lands where it
said it would when fired).
As noted by bb in f737831167Fixes#5939
Differential Revision: https://code.wildfiregames.com/D3425
This was SVN commit r24766.
In 86ddf09640, fire damage was introduced for the Iberian fire ship (and
the Theban fire raiser), this adds that damage type to the config of
PetraAI.
Poison (a24c8419c5) is only used in Status Effects (which PetraAI
doesn't understand anyway) so is not added.
Differential revision: D3432
Reviewed by: @Angen
This was SVN commit r24758.
attackmoveUnit is more specific than attackMove, so since d0a42f2f00
won't fire at the same time. However the GUI code expected that,
breaking it.
Instead, properly check for either attackmove or attackmoveUnit.
Also fix an issue with d0a42f2f00 where hotkeys would be release if
switching to a more specific combination of the same hotkey.
Reported by: snelius
Fixes#5944
Differential Revision: https://code.wildfiregames.com/D3436
This was SVN commit r24752.
1f2286305d introduced a "Unit+!Ship" preferred class. However, Preferred
classes don't actually use MatchesClassList, and thus this resulted in
no preference whatsoever. This is fixed.
Further, Macemen & elephants have no particular preferred classes,
unlike all other land units which are either Unit+!Ship or Human (which
implies !Ship). This is fixed by setting them to !Ship, for consistency.
Reported by: snelius (and also Valirhant, I believe)
Trac Tickets: #5945
Differential Revision: https://code.wildfiregames.com/D3442
This was SVN commit r24751.
Mac keyboards have no "Pause" button. As an alternative, introduce
'Shift+Space' (used in Factorio).
P is already used for Patrol.
Reported by: langbart
Fixes#5943
Differential Revision: https://code.wildfiregames.com/D3435
This was SVN commit r24743.
With the new 'fire' status effect, the damage against buildings was much
lower than in A23. This upgrades it from 2 to 6.
Reported by: soloooy0
Patch by: borg-
Differential Revision: https://code.wildfiregames.com/D3430
This was SVN commit r24738.
When one hovers over gate in structure tree (e.g. gauls), it shows
unmodified hp.
As soon as one opens template viewer, one can see correct values.
Reason is that when getting values of upgrades, civ modifiers are not
applied.
Differential revision: D3427
Reviewed by: @wraitii, @s0600204
This was SVN commit r24730.
Maurya players had little incentive to build further support elephants.
This reduces their cost to make it more interesting for players.
It also reduces their Resistance, which was un-naturally high for a
support unit.
Patch by: FeldFeld
Accepted by: borg-
Differential Revision: https://code.wildfiregames.com/D2852
This was SVN commit r24729.
Current issue with the lobby, is that we make ips of hosts public for
anyone to read. This patch consists of 3 parts.
1.) Removing ips and ports from lobby javascript
2.) Removing need of script on the server to attach public ips to game
stanza by asking the host using xmppclient as proxy.
3.) Implementing password protected matches, to deny this information to
not trusted players.
Further description:
Do not send ports and stunip to the bots.
Removed from stanza.
Do not send ip to the lobby.
Removed from mapping gamelist from backend to gui (still on the backend
side, because it is done by script on 0ad server).
Get ip and ports on request when trying to connect.
On the host side, ask stun server what is host's public ip and remember
it.
On the client side, send iq through xmppclient to the hosting player and
ask for ip, port and if Stun is used, then if answer is success,
continue
with connecting, else fail.
Add optional password for matches.
Add password required identifier to the stanza.
Allow host to setup password for the match. Hash it on the host side and
store inside Netserver. If no password is given, matches will behave
as it is not required.
On the client side, if password for the match is required, show
additional window before trying to connect and ask for password, then
hash it
and send with iq request for ip, port and stun.
Server will answer with ip, port and stun only if passwords matches,
else will asnwer with error string.
Some security:
Passwords are hashed before sending, so it is not easy to guess what
users typed. (per wraitii)
Hashes are using different salt as lobby hashing and not using usernames
as salt (as that is not doable), so they are different even typing the
same password as for the lobby account.
Client remembers which user was asked for connection data and iq's id of
request. If answer doesn't match these things, it is ignored. (thnx
user1)
Every request for connection data is logged with hostname of the
requester to the mainlog file (no ips).
If user gets iq to send connection data and is not hosting the match,
will respond with error string "not_server".
If server gets iq::result with connection data, request is ignored.
Differential revision: D3184
Reviewed by: @wraitii
Comments by: @Stan, @bb, @Imarok, @vladislavbelov
Tested in lobby
This was SVN commit r24728.
Follow up to D3287/9a3da390b9.
- Remove the specialised infantry/cavalry attack technologies, in favour
of generalist melee/ranged techs to make it easier to switch army
compositions.
- Lower the costs of the technologies substantially.
- Make melee techs cost Food/Metal and Ranged techs Wood/Metal, like
resistance techs.
- City phase upgrades take 60s
- New names and descriptions for the ranged attack technologies.
Initial patch by @borg-, rebased and updated by @Nescio.
Differential Revision: https://code.wildfiregames.com/D3366
This was SVN commit r24725.
A23 siege techs were rarely used. This:
- Lowers the cost of the attack tech slightly.
- Remove the cost techs which were not very useful or interesting.
- Rework the armor tech into a Health bonus
- Introduces a tech to pack/unpack faster.
Patch By: borg-
Accepted By: Feldfeld
Differential Revision: https://code.wildfiregames.com/D2878
This was SVN commit r24722.
Since they were deemed too powerful.
Patch by: @Nescio
Differential revision: D3404
Reviewed by: @Feldfeld, @wraitii
Reservations by: @borg-
Comments by: @Stan
This was SVN commit r24719.
Removed false information, added information that was missing.
Removed history of stronger Spartan women in the game.
Initial patch by: @ValihrAnt
Redone by: @Nescio
Cleaned in between by: s0600204
Differential revision: D2720
Comments by: @asterix, @badosu, @borg-, @elexis, @Stan, @wraitii
This was SVN commit r24716.
The major change here is that Archer spread is reduced to 2 to make them
have much better aim than before at max-range, where they often missed.
This makes their DPS more predictable over their range.
This makes ranged unit's spread proportional between citizen soldiers,
advanced/elite CS, champions and heroes.
Because of the spread reduction and because promotion more strongly
reduces spread, the 10% spread reduction from the archery tradition
technology is removed.
Gravity values are tweaked.
LaunchPoint values are raised and standardised by unit type.
Patch By: Nescio
Differential Revision: https://code.wildfiregames.com/D3374
This was SVN commit r24709.
This fixes chasing, particularly chasing ranged cavalry.
- Standardise the range of melee cav to 4.
- Decreases the speed of ranged cavalry slightly to make melee cavalry a
better counter & reduce the ability of ranged cavalry to dominate an
area.
- Fix UnitMotion to better chase units, by increasing direct-range
distance and making "from scratch" short paths recompute better paths
(by increasing the search range).
- Gives some free rotation time for slight angles to units. Angles below
30° take no time to rotate towards. Chasing units that recomputed a lot
of paths could be slowed down substantially by minute angle differences.
Fixes#5936
Differential Revision: https://code.wildfiregames.com/D3402
This was SVN commit r24708.
- Add an option to control the 'null formation' override, so it can be
turned off/on independently of having a default formation set. It
defaults to "Walk/Patrol only".
- Make only 'walk' and 'patrol' orders use the default formation.
This makes the system more flexible, and easier to use for competitive
play.
Differential Revision: https://code.wildfiregames.com/D3413
This was SVN commit r24703.
Attack.js can use UnitMotion to calculate the position of the unit in
the future, accounting for odd movements such
as zigzags, turnarouds and early stops (to the extent of the current
order).
This improves the resilience of units against the 'dancing' trick.
The linear interpolation is kept as a failsafe and to avoid an edge case
in the new prediction code.
Patch by: bb
Refs #5106
Differential Revision: https://code.wildfiregames.com/D3225
This was SVN commit r24701.
As pointed out by @Feldfeld, Spartan swordsmen are much better troops
than basic soldiers, yet hardly cost more. Moreover, 8e19745bba
practically doubled their gather speed (from 25% to 49%).
This raises their cost a bit, to a total of 125 resources, instead of
110. For comparison, basic infantry has a total cost of 100, champion
infantry 220.
Patch by: @Nescio
Differential revision: D3423
Reviewed by: @borg-, @wraitii
This was SVN commit r24700.
This enables the 'save' button only when there is (probably) something
to save. It improves the UX of using the editor since it gives feedback
that the hotkeys were indeed saved.
Refs #5867
Differential Revision: https://code.wildfiregames.com/D3419
This was SVN commit r24699.
The Ptolemy have not used it since A21, and Kushites have a better
Nubian archer.
Patch by: Nescio
Differential Revision: https://code.wildfiregames.com/D3415
This was SVN commit r24695.
Wrong assumptions on reviewing 2627714c07 and 7f7a3edfae made it such
that non-capture attacks did not play a being-attacked sound anymore.
We only want a different sound when being captured.
Differential revision: D3408
Tested by: @Stan
This was SVN commit r24694.
Since wonders already have many bonuses by default.
This merges the two population auras to one that increases the
population cap after researching the technology and instead of flat +50,
it now is relative: +20%.
Patch by: @Nescio
Differential revision: D2951
Reviewed by: @Palaxin
Comments by: @badosu, @borg-,
Reservations by: @bb, @Freagarach
This was SVN commit r24692.
- Remove movement speed technology, which was a straight trade bonus.
- Buffed health tech from +2 armour to +50% HP, moved to town phase,
made costlier.
- Changed gain of trade techs to +15% each.
The intent is to slightly reduce the snowballing effect from trade
techs.
Patch by: Nescio
Comments by: borg-
Differential Revision: https://code.wildfiregames.com/D3357
This was SVN commit r24690.
All animals have the default resistance of 1H/1P/1C. This makes macemen
able to kill them again.
Damage has been reduced on some templates.
HP has been reduced across the board.
Fix the goat cost with respect to other domestic animals after
D3301/082bd8bd44.
Patch by: Nescio
Differential Revision: https://code.wildfiregames.com/D3397
This was SVN commit r24689.
#5932 reported a segfault. The direct cause is an infinite loop in
Order.Repair in a formation controller.
There are multiple issues at play here, but the core problem is that the
controller has been marked for destruction, but remains alive over the
turn and UnitAI timers can fire. This leads to an unexpected state that
triggers an infinite loop.
To avoid this problem, immediately switch the formation controller to a
clean state when it's being disbanded.
Fixes#5932
Differential Revision: https://code.wildfiregames.com/D3410
This was SVN commit r24688.
- Make the library a Ptolemaic exclusive. The tech discount is 15%
unstackable.
- Enable Theater for Ptolemy & Seleucid, tweak stats.
- 'Hellenistic Metropolis' is now in the Civil Centre, and no longer
affects military colonies/crannogs.
- The Ptolemaic lighthouse no longer reveals all shores, instead simply
has a very large vision range. It's moved to City Phase.
- The Carthaginian super dock is moved to city pahse as well.
Patch by: Nescio
Differential Revision: https://code.wildfiregames.com/D3350
This was SVN commit r24687.
This patch will:
- Pass `gameRegisterStanza` to `playerAssignmentsControl` constructor.
- Remove handlers for `onClientJoin` and `onClientLeave` from
`gameRegisterStanza` class.
- Call `gameRegisterStanza` method `sendImmediately` only once after
all handlers have run and after updating g_PlayerAssignments .
- Remove from `gameRegisterStanza` the dependency on
`playerAssignmentsControl` since the `onClientJoin` and `onClientLeave`
handlers are removed.
Reviewers: Angen, wraitii
Accepted By: wraitii
Trac Tickets: #5929, #5933
Differential Revision: https://code.wildfiregames.com/D3406
This was SVN commit r24686.
Siege engines are faster to destroy than to capture. As such, capture as
a default is annoying, since it's not the best tactical choice.
Unfortunately, fixing this for now means removing "Capturable" from
siege engines.
Rams/Siege towers retain 50 Pierce Armour, others get 25.
Patch by: Nescio
Differential Revision: https://code.wildfiregames.com/D2493
This was SVN commit r24685.
Network settings must be synchronised when the map selection is
submitted. Fixes ae9ea5b859.
Reported by: Imarok
Differential Revision: https://code.wildfiregames.com/D3405
This was SVN commit r24684.
This was removed originally in D3264/eb1163b872.
It made early-game aggression less viable.
Approved By: FeldFeld, borg-, ValihrAnt
Differential Revision: https://code.wildfiregames.com/D3401
This was SVN commit r24680.
This unique technology for heroes was not useful.
Patch by: Nescio
Differential Revision: https://code.wildfiregames.com/D2939
This was SVN commit r24679.
It was occluding the input field when saving, and the border in any
case.
Reported by: nifa
Differential Revision: https://code.wildfiregames.com/D3383
This was SVN commit r24677.
(setting waypoints to more than 2 markets still does not work properly,
but it also did not in A23).
Fixes#5923
Differential Revision: https://code.wildfiregames.com/D3400
This was SVN commit r24676.
In the case that a player started or aborted researching a phase
technology, a
blank line was being added to the chat history of the player in question
and
any mutual ally or observer, where the player, ally, or observer had
their
`gui.session.notifications.phase` setting at the default value of
"completed".
This was happening because in the above case the returned value of
`ChatMessageFormatSimulation.phase` class's `.parse()` method is `{text:
""}`.
Related a3eccc043dFixes#5921
This was SVN commit r24671.
Carry capacity changes triggered 4x recomputation of gather rates
(because modifiersManager isn't as efficient as it can be), and this was
slow enough to matter. This reduces the work sufficiently to not matter
much.
Reviewed By: Freagarach
Differential Revision: https://code.wildfiregames.com/D3373
This was SVN commit r24670.
Since champions have been moved to barracks, researching unlocking
technologies became the must in order to train them.
Therefore:
Specificaly research `unlock champion` technologies.
Increase priority of minor techs to 250.
Remove some duplicated checks.
Differential revision: D3380
Reviewed by: @wraitii
This was SVN commit r24669.
Some keys have multiple names that they may be identified by in config
files,
such as the Escape key which may be identified by either "Esc" or
"Escape", or
the number-pad keys which may be identified with a name in the form
"Num{xxx}"
(e.g. "NumMinus") or the alternate "Keypad {x}" (e.g. "Keypad -").
The alternate names were not being picked up and formatted correctly
when
displayed in tooltips. Now they are.
Accepted By: wraitii
Differential Revision: https://code.wildfiregames.com/D3358
This was SVN commit r24668.
There was a Z-conflict since the addition of the hotkeys button.
Patch by: ffffffff
Fixes#5928
Differential Revision: https://code.wildfiregames.com/D3393
This was SVN commit r24667.
Since it affects gameplay also in a negative way (units wandering off
farther) and that entities with already high vision range benefit much
more than those with smaller vision ranges (the area is pi times radius
square).
Patch by: @borg-
Differential revision: D3365
Reviewed by: @Nescio, @wowgetoffyourcellphone
Comments by: @Freagarach, @wraitii
This was SVN commit r24659.
Due to the new way attack ranges are calculated (d0fc8ff67d), structures
can shoot significantly further, making raiding much harder.
This patch lowers the maximum attack range of archers and structures
from 70 to 60, and of slingers from 50 to 45 (javelineers keep 30), as
requested by @Feldfeld and @ValihrAnt. It also reduces the vision range
of defensive structures and artillery accordingly.
Patch by: @Nescio
Differential revision: D3381
Reviewed by: @wraitii
Informally accepted by: @borg-
Comment by: @Angen
This was SVN commit r24658.
Having some civs able to train their champions at the barracks, others
at (not too expensive) specific structures and some only at the (still
expensive) fortress is neither consistent nor balanced.
Patch by: @Nescio
Differential revision: D3384
Reviewed by: @borg-
Idea approved by: @wraitii
This was SVN commit r24657.
Changes from Cost and Build time to Cost and Health, for that is less
complicated.
Patch by: @borg-
Differential revision: D3355
Reviewed by: @Nescio
Comments by: @Freagarach, @wraitii
This was SVN commit r24655.
D3269 / 1649a8c221 made Mercenaries unable to gather. Ptolemies
Javelineers are mercs, so thy now had a non-gatherer starter unit,
putting them at a disadvantage.
This swaps the Merc javelineer with the slinger to correct for that.
Patch by: Nescio (for Stockfish0ad)
Differential Revision: https://code.wildfiregames.com/D3378
This was SVN commit r24649.
This patch fixes a few oversights:
* When redoing D3287, a typo slipped in, spotted by @borg-: “wood”
instead of “food”.
* From the same patch, @Angen suggested to change a technology name,
from “Metal Shield” to “Metal Rim”.
* When redoing D2494, I missed that the ptol polybolos has a third less
reload time; as a consequence its damage per second is now 50% higher
than that of other bolt-shooters; this patch fixes that by adjusting its
damage.
* Likewise, D3235 adjusted archer attacks but omitted the crossbowman,
which currently has half the base damage of its champion counterpart but
three times the reload time, which means its damage per second is only
one-sixth the archer's; this patch raises its base damage sixfold to
give the crossbowman the same damage per second as the archer.
Patch by: Nescio
Reviewed By: wraitii
Differential Revision: https://code.wildfiregames.com/D3375
This was SVN commit r24646.
d0fc8ff67d / D2759 make buildRestriction distances take obstruction
sizes into account.
This requires AI adjustment, which wasn't done then.
Differential Revision: https://code.wildfiregames.com/D3364
This was SVN commit r24643.
This puts them on-par with champion infantry.
Patch by: @Nescio
Differential revision: D3372
Reviewed by: @borg-
Comment by: @wraitii
This was SVN commit r24640.
Since they don't have much bonuses (structure health, stronger female
citizens) to stand up against two penalties (no stone walls and this).
This removes the population penalty; other civilisations have better
bonuses but no such penalties.
Besides, Sparta was larger than other city states in ancient Greece,
both in terms of area and army size.
Patch by: @Nescio
Differential revision: D3376
Reviewed by: @borg-
This was SVN commit r24639.
- axemen, macemen, swordsmen: 3.5 -> 3
- spearmen: 4.5 -> 4
- pikemen: 7 -> 8
In single combat or small numbers the effect of this patch is probably
negligible; however, in large groups more pikemen could hit a single
target. Given that pikemen have by far the lowest damage per second,
increasing the range differences won't hurt.
In reality pikes were two to three times as long as spears, and up to
six pikes extended in front before an opponent could touch the first
pikemen, so this improves historical realism too.
Patch by: @Nescio
Differential revision: D3080
Reviewed by: @borg-
Comment by: @wratiii
This was SVN commit r24638.
Now that rams are available to all civs, it's no longer necessary for
elephants to keep having the same amount of crush damage as rams.
This patch therefore reduces their crush damage by 20%, but raises their
hack damage by 50%, making them less effective vs structures but better
against units.
Patch by: @Nescio
Differential revision: D3371
Reviewed by: @borg-, @wraitii
This was SVN commit r24637.
A frequent complaint is that ranged troops are too effective in 0 A.D.
They're supposed to die quickly, however, they get the same resistance
increases as melee troops. This limits the advanced and elite resistance
bonus to melee only (thus also excluding healers) and reduces the
resistance of ranged champions and heroes by two levels, to stay in pace
with their elite counterparts.
As a consequence, nothing changes for basic ranged troops, but advanced
are about 11% easier to kill, and elite, champion, and heroes about 23%.
Patch by: @Nescio
Differential revision: D3369
Reviewed by: @wraitii
Comment by: @borg-
This was SVN commit r24636.
Mercenaries:
- Can't gather but can build structures.
- Cost 60% less food, neither wood nor stone, but metal.
- Less training time.
Patch by: @Nescio
Differential revision: D3269
Reviewed by: @borg-, @wraitii
This was SVN commit r24635.
The carnyx was a long, bronze, Celtic trumpet and used on the
battlefield; its sound would intimidate opponents.
This patch introduces a trainable infantry champion for the carnyx-using
actor, at the assembly, and adds a generic template and an aura file,
which lowers the attack damage of nearby enemy soldiers a bit.
While it has an aura that could make a difference, it has no training
restrictions (unlike heroes); to compensate for that, it has a higher
cost, less resistance and less attack damage than other champions. If it
turns out to make the Gauls too strong, its values can be adjusted in
the future.
Having this (historically attested) unit would make the Gauls less
similar to other civs.
The specific name was suggested by @genava55 on the forums.
Icon adapted by @Stan from @niektb.
Original patch by: @Stan
Redone by: @Nescio
Differential revision: D3320
Reviewed by: @borg-
Comments by: @Freagarach
This was SVN commit r24634.
A pure stone cost makes it easier to research and more unique.
Patch By: borg-
Accepted By: wraitii, Nescio
Differential Revision: https://code.wildfiregames.com/D3356
This was SVN commit r24628.
Foundations were originally made conquest critical in 722578fdcd.
However, it remains rather frustrating that a player can evade defeat by
placing an unbuilt, uncommitted foundation. While allies can revive a
player with only a foundation, that cannot happen in 1v1, where it is
simply undue frustration, and the inconvenience seems greater than the
feature.
This thus removes them again from the conquest critical list.
Patch By: nephele
Differential Revision: https://code.wildfiregames.com/D2674
This was SVN commit r24624.
Houses increase the population limit. Various other structures did it
too as a side-effect.
This changes that, making houses more unique.
This also removes the Gaul/Brit bonus that most buildings increased
population, as they already build structures 20% faster and that is
deemed a sufficient early-game advantage.
Accepted By: borg-
Differential Revision: https://code.wildfiregames.com/D2950
This was SVN commit r24623.
If there is a building that has a paired tech researchable, where the
two techs have a civ requirement but the parent pair tech doesn't, then
the selection panels will throw errors.
This has happened with add6b0206c,
https://wildfiregames.com/forum/index.php?/topic/24732-de-alpha-24/page/2/
and other incidences.
Now when both paired techs have an unmet civ dependency they are not
shown, when one of them hasn't, it is shown.
Fixes: #5915
Original patch by: @elexis
Changes by: @Freagarach
Differential revision: D2171
Comment by: @Imarok
This was SVN commit r24621.
Since many players might not notice the new snapping feature
(a8f241da5d), a loading screen tip is nice.
Patch by: @elexis
Differential revision: D2545
Comments by: @bb, @Nescio, @vladislavbelov
Some minor changes by: @Freagarach
This was SVN commit r24620.
Because heroes permanently die (de3ed2cd19) it is nice to users of that.
Differential revision: D3294
Comments by: @Nescio, @Stan
This was SVN commit r24619.
This changes ConfigDB to support empty settings, marked with `= ""`. It
also changes hotkey to handle unused hotkeys, but stil have them appear
in the hotkey editor.
Fixes an issue where the current editor would bug when saving an empty
hotkey.
Removes the old system for unused hotkeys, adjust hotkey files
accordingly.
Reported by: FeldFeld
Differential Revision: https://code.wildfiregames.com/D3307
This was SVN commit r24618.
Adjusts the jb.js to not try and place walls outside of the map.
Only adds really added walls to the entity list (refs. #5919).
Patch by: @elexis
Differential revision: D3299
Tested by: @Freagarach, @StanFixes: #5177
Refs. #5150
This was SVN commit r24617.
- Changes the Hero Elephant damage to twice that of Champion Elephants
(consistent with other classes).
- Reduces Champion Elephant crush damage resistance to the same of other
Champions.
- Give all elephants the same walk speed.
- Removed the bonus vs cav from GAIA elephants.
Patch by: @Nescio
Differential revision: D2853
Reviewed by: @borg-, @wraitii
Comments by: @Feldfeld
This was SVN commit r24615.
Clients don't get map size updates shown in the gamesetup (they do
appear in the description).
Tested by: Freagarach
Differential Revision: https://code.wildfiregames.com/D3351
This was SVN commit r24614.
Previous to 7f77cf2f3e the AI got its population bonus per entity from
the Cost component, which every entity happened to have.
Thereafter, the population bonus was handled by a separate component,
which was not always present leading to `(void 0)` additions to the pop
cap and PetraAI not constructing houses.
Differential revision: D3360
Reviewed by: @Angen, @wraitii
This was SVN commit r24613.
And moves elephant training thereto.
This means the Persians get to train them again, by popular demand.
Mauryas are not the only ones anymore that have the elephant stables,
but they can build it earlier.
Patch by: @Nescio
Differential revision: D3362
Reviewed by: @borg-
This was SVN commit r24612.
Artillery is not that effective in 0 A.D., partly because their damage
per second is unimpressive (especially compared to rams or war
elephants), partly because of their splash damage.
Splash damage was added in f72d820cd4 (nearly eight years ago). The
values have changed multiple times, as has the exact calculation (see
simulation/components/Attack.js). While it's quite interesting in
theory, in practice it's not that effective. @fatherbushido explained
how it works on the forums. It's important to understand the actual
splash damage depends on the distance to the centre of entities, in
contrast to ordinary attacks, which do full damage when they hit the
footprint (edge).
Splash damage has some serious problems:
- It may have no effect vs entities with footprints longer than the
splash radius, such as many (most?) structures and warships.
- The AI does not take it into account.
- It's anachronistic: exploding shells did not exist yet in 0 A.D.'s
timeframe. Missiles were rigid objections, and even the very largest
projectiles were well under a metre in diameter.
This patch therefore removes splash damage from artillery (except bolt
shooters).
Fireships and fireraisers now deal fire damage instead of a combination
of other damage types.
Basically, stone throwers are good against large unit masses and
structures only, while bolt shooters are unit killers.
Artillery and bolt towers no longer get additional projectiles from
garrisoned units.
Roman artillery does not get a larger range but keeps the increased
damage.
Patch by: @Nescio
Differential revision: D2494
Reviewed by: @borg-, @wraitii
Comments by: @Angen, @Stan
This was SVN commit r24608.
- Changes footprints to better match their visuals.
- Lowers ram cost to compensate for ther reduced effectiveness (against
units).
- Loot = 20% cost.
- Change experience loot to relate to health.
- Give Kush ram +2 garrison capacity and +20 attack damage since it is
the same actor as the Persian ram.
- Adjust fireraiser template.
Patch by: @Nescio
Differential revision: D3345
Reviewed by: @borg-
This was SVN commit r24606.
Since they are conceptually more policical techs than commercial.
Patch by: @Nescio
Differential revision: D3321
Reviewed by: @borg-
This was SVN commit r24605.
This separates the pierce and hack damage resistance techs but lets them
apply to all soldiers (including elephants).
Patch by: @borg-
Differential revision: D3287
Reviewed by: @Nescio, @wraitii
This was SVN commit r24604.