This patch introduces two functions `CompleteTutorial` and
`FailTutorial` for the tutorial steps to call. They can pass a
message to it to be shown on the victory/defeat screen.
`CompleteTutorial` is also called automatically when all steps are
finished, which resolves#8583 and prevents it from happening in the
future.
`FailTutorial` isn't used anywhere at the moment, but it'll be useful
for the future.
Fixes#8583
Up to now `eslint-plugin-brace-rules` was used to enforce a common brace
style for JavaScript code. This plugin was however updated the last time
over 9 years ago and will be incompatible with ESLint v10, as that
[removes `context.getSourceCode()`][1], the plugin relies on.
To keep the eslint config working with ESLint v10, this replaces
`eslint-plugin-brace-rules` with the [`@stylistic/brace-style`][2] rule
from `@stylistic/eslint-plugin`, a package we already use.
While `@stylistic/brace-style` doesn't offer an option to format braces
in exactly the same way as before, the "allman" style seems to be the
one closest to the existing code.
[1]: https://eslint.org/blog/2025/11/eslint-v10.0.0-alpha.0-released/#removed-deprecated-rule-context-members
[2]: https://eslint.style/rules/brace-style
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 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.
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.
Which were autofixable, with slight modifications.
Not done are the slightly more complex changes.
Refs. #5524
Patch by: @Krinkle
Differential revision: D2279
Comments by: @elexis, @Stan
Reviewed by: @wraitii
This was SVN commit r25087.
This allows heroes to be upgraded
Patch By: smiley
Comments By: elexis
Differential Revision: https://code.wildfiregames.com/D1694
This was SVN commit r22019.
Places a fortified gaia village, some gaia units performing a ritual and
some towers garrisoned on islands.
The attacker and ship count increases over time.
The attacker composition is randomized per ship and switches from
citizen soldiers to champions, heroes and siege engines.
One in three matches takes place at night.
Differential Revision: https://code.wildfiregames.com/D204
Map generation based on patch by Hannibal Barca
Reviewed By: bb, FeXoR
Refs #4354
This was SVN commit r19434.
Remove tons of trailing whitespace.
Format JSdoc comments properly.
Use alphabetical sorting in array.
let instead of var.
Eliminate deprecated for-each.
This was SVN commit r18412.
Based on existing code that was still around from an old(not working)
implementation.
Supports basic control from trigger scirpts (queue, start and stop
camera paths) and works in multiplayer.
This was SVN commit r17594.
Search treasures on small islands and on water. Collect more treasures
than your opponent to win.
I've used the Cycladic Archipelago scenario map with some minor
adjustments, mainly treasure placement and civ preselection for even
chances (both need townphase to build trading boats that can collect
floating treasures).
There's still some room for improvement to make it more fun and add
additional triggers, but I'll leave that for modders. :)
This was SVN commit r15432.