Commit Graph

30429 Commits

Author SHA1 Message Date
JovialFeline
99253702c5 Add IsDead checks to Fall of Greece 1 2025-05-20 22:25:52 +03:00
Ashley Newson
5c09d5d828 Support PickAny templates in MultiBrushes
Allows PickAny templates to be used in MultiBrushes, which can be
painted with random selection. This avoids the need to define various
separate MultiBrushes for each tile combination.

Note that all combinations count as part of a single MultiBrush, which
may influence selection weighting.

This MultiBrush feature is not presently used in OpenRA's official
mods, but is useful for unofficial mods using more general PickAny
templates.
2025-05-19 22:18:12 +03:00
Ashley Newson
daf36769d6 Add additional MultiBrush segments for RA and CnC
Adds MultiBrush definitions for River (RA and CnC) and WaterCliff (RA
only), allowing them to be tiled with the Path Tiling tool.

A small enhancement to the MultiBrush and TilingPathTool code is added
to allow the inner type to be derived from start and end types. This
allows segments that interface between types (such as WaterCliff to
Beach) to be usable when tiling either WaterCliffs or Beach. Whilst
this makes the inner types of many of the existing MultiBrushes
redundant, no simplification is performed as part of this change.
2025-05-19 22:01:25 +03:00
Михаил Васильев
ba444de014 Fix link to Lua API in README.md 2025-05-19 21:33:04 +03:00
Paul Chote
6a67906823 Improve --check-yaml robustness against bogus maps. 2025-05-19 21:30:07 +03:00
Paul Chote
681edb1879 Fix button order in save browser. 2025-05-15 23:14:48 +03:00
Paul Chote
b7d929de5a Precache generated map for the host. 2025-05-15 23:08:13 +03:00
Paul Chote
6ffd786d5b Add Generate Map tab to the lobby map chooser. 2025-05-15 23:08:13 +03:00
Paul Chote
979483b63c Add MapClassification.Generated.
Generated maps are created at runtime using a
mod-defined trait. They are embedded directly
into replays and save games as they exist in
memory only, and disappear after the game exits.
2025-05-15 23:08:13 +03:00
Paul Chote
6be947bbf0 Support serializing/loading ReadWriteZipFile as base64 string. 2025-05-15 23:08:13 +03:00
Paul Chote
5292919917 Move Boundary Shape option before Players. 2025-05-15 23:08:13 +03:00
Paul Chote
497b5e30ad Extract a MapSizeLabel helper method. 2025-05-15 23:08:13 +03:00
Paul Chote
4f1b17b832 Allow MapGeneratorSettings to be initialized from MapGenerationArgs. 2025-05-15 23:08:13 +03:00
Ashley Newson
ad08045e5f Add path auto-tiling tool to map editor
Exposes the TilingPath code used by the map generator as a map editor
tool to help automate the process of tiling sequences of templates
together.

No additional template stitching definitions are added as part of this
commit. As such, the tool currently only supports the same auto tiling
as the map generator does. This includes:

- RA and CnC support.
- Beaches, land cliffs, and roads.

Support for additional mods and templates can be added in follow-ups
by adding the necessary MultiBrush definitions.

Related changes included in this commit to support this work include:

- Add support for sparse EditorBlits.
- Add support for MultiBrush to EditorBlitSource conversion.
- Add support for EditorBlitSource previewing.
- Adjust the "Road" types used in segmented MultiBrush definitions.
2025-05-15 22:41:43 +03:00
michaeldgg2
d3d949176d ProductionTabsWidget: fix updating tabs when new production building is built 2025-05-11 22:20:04 +03:00
michaeldgg2
89d906a613 ProductionTabsWidget: fix updating internal cache for production queue 2025-05-11 22:20:04 +03:00
Михаил Васильев
8f3ca30840 Fix typo in soviet 04b mission description 2025-05-11 21:59:23 +03:00
N.N
c5e4545ecd Add muzzle effect into the sequences
- remove Armament@muzzle
- remove HMG_muzzle, HMGo_muzzle
2025-05-10 19:12:13 +03:00
JovialFeline
894d08adf0 Add missing campaign bots 2025-05-10 16:31:19 +03:00
RoosterDragon
92b3dde789 When pathing, prefer optimal paths over short distances.
The default path weight of 125% allows paths up to 25% longer than the optimal path to be returned, which improves the performance of path searches.

Over short distances, players are likely to be sensitive to suboptimal paths this can produce, so instead use a weight of 100% over short distances to ensure these paths are optimal. As the search area is limited, the additional performance impact is also capped. The hierarchical path finder already has a speculative check for short paths within a 20 cell area (twice the grid size of 10 cells), which allows it to skip a hierarchical search if a path within that area can be found. We can piggy back on this short path logic and use a weight of 100%.

Over longer distances, players are less likely to notice the suboptimal paths, and the performance benefit is more noticeable, so continue to use the 125% weight in these scenarios.
2025-05-10 16:18:52 +03:00
RoosterDragon
7fb88b974e Expose HeuristicWeightPercentage on PathFinder trait.
Maintain the default weight of 125%, but allow this to be modified via config.
2025-05-10 16:18:52 +03:00
Matthias Mailänder
798593bede Enable Dependabot for GitHub Actions. 2025-05-09 17:54:51 +03:00
Paul Chote
3e06749006 Rewrite fluent lint check. 2025-05-09 16:28:04 +03:00
Paul Chote
9ffa7be606 Remove mod-specific keys from common fluent. 2025-05-09 16:28:04 +03:00
Paul Chote
0313d04970 Polish map generator settings. 2025-05-05 20:50:55 +03:00
michaeldgg2
ad13658076 Make WithMuzzleOverlay and Info class public 2025-05-01 20:42:57 +03:00
atlimit8
0b110a0423 ping when non-structures are attacked 2025-04-30 22:22:53 +03:00
atlimit8
34a92f3406 Remove BaseAttackNotifier trait 2025-04-30 22:22:53 +03:00
atlimit8
b792e3eecf add update rule for replacing BaseAttackNotifier 2025-04-30 22:22:53 +03:00
atlimit8
e27aa0d379 replace use of BaseAttackNotifier trait w/ DamageNotifier 2025-04-30 22:22:53 +03:00
atlimit8
2b1121b970 add DamageNotifier 2025-04-30 22:22:53 +03:00
michaeldgg2
5537a194fa DockClientManager: enter cursor per DockHost's DockType 2025-04-30 21:46:56 +03:00
Paul Chote
56c615d890 Fix invalid CachedTransform uses of MapPreview. 2025-04-30 14:06:42 +03:00
Paul Chote
e8d710dee4 Prevent remote map searches overwriting local or generated state. 2025-04-30 13:21:26 +03:00
Ashley Newson
4a4217c3b3 Fix resource calculation in map generator
The editor's resource value calculation logic was fixed in #21820 to
match actual gameplay. The map generator logic originally copied the
editor logic from EditorResourceLayer rather than ResourceLayer and
associated game logic. As such, it inherited incorrect calculations.

This change updates the map generator logic to match the now
consistent logic in both ResourceLayer classes. Map generator resource
settings are also adjusted -25% to continue roughly matching the
previous resource output.
2025-04-30 12:51:14 +03:00
Paul Chote
965a490b70 Dynamically populate map chooser tabs. 2025-04-29 12:17:27 +03:00
Paul Chote
5b7a714ac2 Replace Tileset id with Environment name. 2025-04-28 15:41:54 +03:00
Paul Chote
90013bc6d3 Migrate tileset names to Fluent. 2025-04-28 15:41:54 +03:00
Paul Chote
246a1b9fec Move map installed check to LobbyLogic. 2025-04-28 13:08:38 +03:00
Paul Chote
e5ffed2a4f Require map generators to specify valid tilesets. 2025-04-28 12:54:08 +03:00
Gustas
c41a1302b6 Fix explored map being rendered incorrectly on first frame 2025-04-26 20:45:42 +01:00
Gustas
bad58b5821 Don't fade in shellmaps 2025-04-26 20:45:42 +01:00
Gustas
4c551cef00 Add more customization to fade, shorten fade in 2025-04-26 20:45:42 +01:00
Gustas
d3b7688a7d Fix fading in not working 2025-04-26 20:45:42 +01:00
Paul Chote
9c78c45faf Split IMapGeneratorInfo into core backend and editor frontend. 2025-04-25 20:51:33 +03:00
Paul Chote
ce41ec3fc3 Skip dropdowns that have no valid options. 2025-04-25 15:21:29 +03:00
Ashley Newson
07ef98a578 Improve map-generated roads for awkward symmetries
For awkward symmetries (where there is mirroring and/or non-grid
aligned rotations), road planning now runs an extra filtering step so
that only sufficiently symmetric road plans make it to the tiling
stage.

Road planning also now extends out-of-map-bounds to more accurately
accommodate awkward rotations, improving the symmetry of pre-filtered
road plans.

A previous filter, which removes nearly horizontal or vertical roads
is now removed, as this is not fair to all rotations. This step is
less importance since the introduction of relaxed tiling.

Note that roads may be dropped entirely if the plans come out highly
asymmetric. This is not uncommon for awkward rotations. This is
preferred over presenting a map with asymmetric roads.
2025-04-25 15:09:27 +03:00
Gustas
c541a0e0dc Improve HD sheet creation 2025-04-19 16:34:13 +01:00
Ashley Newson
f1573d4b0c Add map-generated beaches to more CnC tilesets
CnC map generation previously only supported maps with water/beaches
for the DESERT tileset, as it is the only tileset with a complete set
of beach tiles. This change adds support for the other tilesets
(TEMPERAT, SNOW, WINTER) by adding fake beach templates constructed
from actors and other templates' tiles that look reasonable in both
original and remastered graphics.

This means all CnC tilesets have feature parity in the map generator.
2025-04-19 15:45:49 +03:00
Paul Chote
ede12610a8 Change Map.MapSize from int2 to Size. 2025-04-19 14:06:32 +03:00