Add support for TS ice tiles
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
Research direction
Start by locating D2KResourceLayer and the existing resource-spawner logic, then inspect terrain types and Mobile for how cells become impassable. Trace the actor and warhead systems before defining IceLayer and DamagesIce. Done means ice is loaded, rendered, grown, damaged, and removed correctly, including the specified splash death behavior.
Written by the indexing model from the issue text.
Description
This should be relatively straightforward:
- Add a new
IceLayertrait that lives on the world.- Contains a
CellLayer<int>representing the ice "strength" at each tile. - Scans the map during load and populates the initial state based on the tiles on the map.
- Tiles that contain ice are replaced with the ice-growable water tile.
- Artwork for each cell is picked based on the current cell strength and the neighboring state (very similar to
D2KResourceLayer). - Include a method for reducing the strength at a given cell. If strength falls below 0 then remove the custom terrain type from the cell (allowing it to revert to "water").
- Grow the ice using similar logic to our resource spawners: Every [configurable interval] increase the strength of [one or more] ice cell(s) that are either adjacent to another ice tile or adjacent to the shore.
- Contains a
- Add a new
DamagesIcetrait that lives on actors.- Each tick, check if the actor is on an ice tile. If it is, reduce its strength. If the the actor is no longer allowed in the cell after the damage is applied (i.e. it has broken the tile, but decoupled using the existing plumbing provided by terrain types and
Mobile) then kill it with a special warhead that includes a damage type that triggers the spash death effect.
- Each tick, check if the actor is on an ice tile. If it is, reduce its strength. If the the actor is no longer allowed in the cell after the damage is applied (i.e. it has broken the tile, but decoupled using the existing plumbing provided by terrain types and
- Add a new
DamagesIcewarhead type.- This reduces strength of any ice tiles in the damage area.
- Dominant language
- C#
- Stars
- 17.4k
- Forks
- 3k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 14
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from OpenRA/OpenRA
-
Idea/Wishlist Red Alert
Difficulty 2/5 1-2 days Newbie friendliness 68/100
-
Polish
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Crash
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Refactor
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
-
Idea/Wishlist
Difficulty 3/5 1-2 days Newbie friendliness 45/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
:watch: Not Triaged 11.0 fundamentals/subsvc
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
dotnet/AspNetCore.Docs#37699 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SubtitleEdit/subtitleedit#15108 · 1 comment ·
-
area/docs-content Bug pulumi/docs
Difficulty 1/5 1-3 hours Newbie friendliness 94/100
-
agentic-workflows untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 76/100