Commit graph

83861 commits

Author SHA1 Message Date
Gunter Labes
944ed026a2 Use same default id in [remove_unit_overlay] as [unit_overlay] 2024-06-13 18:02:05 +02:00
Gunter Labes
28a8959854 Fix "span" regex
This disallows matching "0-11-2" and "1," for example. It also avoids an exponential backtracking issue which could make this regex very slow.
2024-06-12 19:52:50 +02:00
loonycyborg
a7483313d9 Change id tag in appstream manifest to what is expected
Flathub linter complains about mismatched id in flatpak manifest and
appstream. Based on appstream docs it seems that reverse-DNS name is
expected without .desktop extension so appstream should be changed.
Extra <provides> and <replaces> tags added as per
https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines/#renaming-id-tag
2024-06-12 04:21:22 +03:00
Dalas121
59ccd7ce8a
EI S10: add message about Owaec being able to recruit (#8987)
Owaec has a crown but little other indicator that he's a leader, and this scenario requires him to be used to recruit. Make it more obvious to the player.
2024-06-10 10:30:36 -05:00
Dalas121
6bd7832c61
EI items: add [filter_second] to Sentinel Shield and set delay=0 (#8984)
Delay=0 fixes an annoying animation issue, as the default is delay=500.
2024-06-09 21:10:53 -05:00
Dalas121
e1fa71cf16
EI S13: fix gaoler rebuild breaking "free prisoner" events (#8980)
Formerly, EI S13 uses various Deathblades' max-moves status instead of [filter_second] for some reason. This breaks when deathblades get rebuild, which in the bug report was caused by the sentinel shield. Use [filter_second] instead.
2024-06-09 21:10:26 -05:00
Dalas121
8efcb80685
EI S11: drop equippable items when imprisoned (#8982)
This is thematic, and also prevents cheese with shield+dacyn and baneblade+gate
2024-06-09 21:09:58 -05:00
Dalas121
43d6d87939
EI S10, S11, S12: Dacyn difficulty tweaks (#8976)
Resolves #8969

In EI S10, Dacyn picks up a cursed amulet and his HP drops to 1. In EI S11, Dacyn remains on very low HP, and is surrounded by orcs. There's a convenient ford hex he can hide on and be protected, but several players did not notice this hex and complained about difficulty.

In S10, this commit also drops his XP to 0. 1) showing that the amulet interferes with his MoL-ing, and 2) preventing the player from deliberately AMLA-ing Dacyn in the next scenario (partially a difficulty issue, but mostly it's bad to punish blind playthroughs / reward foreknowledge).

In S11, this commit adds a gold pile on Easy/Normal hinting towards the hex, while on Easy Dacyn's HP is fully restored. Hard is unaffected.

In S12, this commit restores Dacyn's HP on Easy (since it would be odd if he had full HP S11 but low HP S12).
2024-06-09 21:09:17 -05:00
Dalas121
6da672b6e1
EI S09: fix Grug telling Gweddry he can recruit the wild ogres after having already done so (#8981) 2024-06-09 21:08:51 -05:00
Pentarctagon
971073055e
Refactor the preferences into a proper singleton. (#8930)
The current preferences handling is a mess:
* it's essentially a global config object that anything can modify in any way the caller wants, which is managed across multiple source files which have their own oddities and interdependencies.
* the general preferences has its own bit of SDL event handling and while I get the idea behind `events::sdl_handler` there's no reason to have SDL events handled in the preferences instead of just calling the relevant preferences setter for each event when it happens.
* the general preferences is where most of the preferences are handled and has its `base_manager` struct, which is part of the `manager` struct in the game preferences, which is then implicitly initialized as part of game_launcher's constructor.
* the editor preferences are the only preferences in a sub-namespace `preferences::editor` while all other preferences are just in the `preferences` namespace.
* the display, editor, and lobby preferences are all dependent on including the game preferences, the credentials are dependent on including the general preferences (but not the game preferences), the game preferences are dependent on including the general preferences, and the advanced preferences are entirely their own thing which is dependent on none of the other preference functionality and manages its own singleton.
* nothing checks whether the preferences file has actually been loaded before allowing values to be read from or written to the preferences config - if you attempt to get a value too early in wesnoth's initialization it will silently just give you whatever the default value for that preference happens to be.

With this there is instead a single access point (with exceptions handled via friend functions/classes), all predefined preferences are accessed via their own setter/getter, and all mainline preferences are defined in a single file (preference_list.hpp) so it's easily findable what preferences exist and where they're used. Having the list of all mainline preferences listed out also allows the lua preferences API to provide that full list rather than just the list of the preferences that have been set so far. Also it now checks for whether the location of the preferences file is known before attempting to load the preferences file and asserts if someone attempts to use the preferences too early.
2024-06-09 11:34:09 -05:00
Dalas121
81a1ef260d
EI S10: reduce difficulty on Easy/Normal (#8956)
https://www.reddit.com/r/wesnoth/comments/1d6a3e7/eastern_invasion_is_much_better_but_still_bad/

EI's S10 is overly hard on Normal, and especially on Easy (which is intended to be a very accessible difficulty). This PR increases the available gold and adds several villages, which aid in both defense and upkeep. This PR also drastically reduces the number of orcs on lower difficulties.

We also move Owaec to his keep to help imply his ability to recruit, and remove the related just-added [note] string to avoid violating 1.18.1 string freeze.
2024-06-09 10:29:45 -05:00
Nils Kneuper
17ff25de5c updated Ukrainian translation 2024-06-09 09:16:51 +02:00
Steve Cotton
9cc0b15fbc Add a unit test for a weapon-special activating mid-attack
A weapon with poison, which does extra damage to poisoned opponents.
This tests that the weapon-special's filter is checked on each strike,
instead of being tested once and then cached during the battle.

(cherry picked from commit 55aa8b44cf)
2024-06-08 22:08:28 +02:00
Severin Glöckner
c2fbb745f7 terrain2wiki tool: link to images on stable 1.18 branch 2024-06-08 21:18:03 +02:00
Severin Glöckner
136f96e428 German translation update 2024-06-08 21:13:19 +02:00
Severin Glöckner
564c96a7e9 terrain2wiki tool: python 3.12 compatibility 2024-06-08 20:56:21 +02:00
Nils Kneuper
066419efba updated Chinese (Simplified) translation 2024-06-08 15:42:38 +02:00
Nils Kneuper
052452bf3b updated Japanese translation 2024-06-08 15:41:37 +02:00
Nils Kneuper
39dcc41750 updated French translation 2024-06-08 15:40:42 +02:00
Nils Kneuper
28a772ae8f updated Czech translation 2024-06-08 15:39:46 +02:00
Nils Kneuper
334b748990 updated Bengali translation 2024-06-08 15:38:28 +02:00
Subhraman Sarkar
c12bb8ef69
replace deprecated CURLOPT_PROTOCOLS with CURLOPT_PROTOCOLS_STR (#8958)
* replace deprecated CURLOPT_PROTOCOLS with CURLOPT_PROTOCOLS_STR
* use conditional compilation for curl 7.85.0
2024-06-08 14:15:06 +05:30
newfrenchy83
1809af8cdf
Modify 'apply_to' in an ability filter to do an inclusion check for resistance abilities
Instead of needing to contain the exact string from the ability, 'apply_to' in the filter is now taken as a comma-separated list, where all elements need to be present in the ability.
For example if we filter for apply_to=fire,arcane given an ability [resistance]apply_to=arcane, fire, cold, it will match.
For an ability [resistance]apply_to=arcane, impact, cold, this will not match because 'fire' is missing.
2024-06-07 18:08:43 +02:00
newfrenchy83
2c13a67fa6 Fix sidebar always showing text for [damage_type]alternative_type=
When any of the images is missing, a text description is shown as a fallback.
The bug being fixed is that the search for the secondary PNGs used the basename
with neither the directory nor the ".png".

The existence of the files controls a single conditional block, but was using
three bools with two dedicated to single files and one shared between all the
alternate files. This changes it to a single bool shared between all files for
clarity.
2024-06-07 17:02:33 +02:00
Subhraman Sarkar
43f5644e36
Rich Text Label widget for Help Browser GUI2 port (#8655)
A rich text label widget that can show text marked up with help markup.
Also includes the GUI Test Window, accessible in the title screen after launching wesnoth using --clock option. It can be used as dialog template/example or as a place to test GUI2 code.
2024-06-06 16:33:37 +05:30
newfrenchy83
9dd2d5d94b
Use type_adv_tree in some filters to support addons adding advancements to existing unit types (#8895) 2024-06-05 11:49:33 +02:00
Dalas121
ebbe03dc6c
EI: use fancy script for "Part II" "Part III" storytext (#8941)
In add-on form, EI used images to display "Part II" and "Part III". For translation reasons this got replaced with ugly title_text when the add-on went mainline.

This PR once again makes the "Part II" "Part III" storytext more fancy, while maintaining translatability.
2024-06-04 20:03:40 -05:00
Dalas121
f442e09e05
EI S10: specify that Owaec can recruit (#8950)
https://www.reddit.com/r/wesnoth/comments/1d6a3e7/eastern_invasion_is_much_better_but_still_bad/?rdt=58522

Owaec has a leader icon, but it's not made explicit that he can recruit units. In most scenarios that doesn't matter, but in S10 he becomes isolated from Gweddry and must recruit to survive.

Note that there's already a '[show_objectives][/show_objectives]' when 'orcs_attacking' is set.
2024-06-04 20:01:36 -05:00
Gunter Labes
f2d22d6364
Fix indentation 2024-06-04 23:15:49 +02:00
newfrenchy83
84c62456a3 Fix sidebar's display of attacks with damage_type specials
When a [damage_type] affected an attack, the old code assumed that it would have an alternative_type.
If that assumption failed, it would add ("type_" + an empty string), causing "UNTLB type_" to be shown
in the sidebar.

UNTLB is itself a shorthand for "untranslatable", see language.cpp for an explanation.
2024-06-03 17:15:18 +02:00
Gunter Labes
f4e8635723 Implement table sorting without tablesorter.js
This allows getting rid of a bunch of dependencies for minimal own code.
2024-06-03 17:08:33 +02:00
Steve Cotton
d7542c5ec4 Fix the whitespace error 2024-06-02 15:15:22 +02:00
Dalas121
28f93b4b8d
EI: use "bonus objective" instead of "optional objective" (#8947)
"optional" may imply that the scenario will be completed once this objective is finished, which is not accurate for these scenarios.
2024-06-01 17:57:19 -05:00
Dalas121
e293e9874d
EI S06b: clarify bonus objectives
https://forums.wesnoth.org/viewtopic.php?p=690528#p690528

Old verbiage suggested that the scenario would be won as soon as you moved any unit next to Yannic, and didn't give any indication that he'd need to be protected.
2024-06-01 17:49:46 -05:00
Nils Kneuper
a2851f5ca6 updated British English translation 2024-06-01 14:38:36 +02:00
Nils Kneuper
fea253ef0b updated Bengali translation 2024-06-01 14:37:16 +02:00
Nils Kneuper
efa1da31d9 updated French translation 2024-06-01 14:36:27 +02:00
Nils Kneuper
198423debb updated Chinese (Simplified) translation 2024-06-01 14:35:21 +02:00
Severin Glöckner
049706efda Add [part]text_alignment= to schema 2024-05-31 19:07:13 -04:00
pentarctagon
1629258d9b fix for targeting macos 10.12
note that this will no longer be possible once macos-12 is removed from CI eventually
2024-05-31 11:33:07 -05:00
Wedge009
858df2d491 SoF S6: Apply @doofus-01's proposal to remove reference to finding Alanin when he is already present among the dwarves.
Resolves #8311.

[ci skip]
2024-05-30 22:37:49 -05:00
Wedge009
d3624f4df4 HttT tip: Change Delfador's quote date to the start of HttT, as requested by @Konrad22.
There's no particular reason why Delfador should say this during HttT, but perhaps it will make the connection to the campaign clearer.

Closes #8365.

[ci skip]
2024-05-30 22:37:32 -05:00
gfgtdf
5ef08cee71 remove deprecated controller=<number>
This was deprecated back in 1.13.1
2024-05-27 21:13:09 +02:00
Subhraman Sarkar
5d06a8f463 putting into test textdomain so schema CI check can suceed 2024-05-27 19:41:31 +05:30
Wedge009
e3aeab3f27 Game version dialogue: Don't mark links for translation.
[ci skip]
2024-05-26 21:27:34 -04:00
Charles Dang
78620c7d61 GUI2/Addon Manager: make addon id more prominent, debug-only
It wasn't visible enough for people for whom it was useful, and too visible for people for whom it was not.
2024-05-26 18:18:11 -04:00
pentarctagon
279c7daa33 1.19.0+dev 2024-05-26 15:16:01 -05:00
pentarctagon
d39e42b672 1.19.0 2024-05-26 15:13:59 -05:00
pentarctagon
397779f9dd pot-update and regenerate doc files 2024-05-26 15:10:25 -05:00
pentarctagon
b3247d3dfc changelog_entries 2024-05-26 15:06:55 -05:00