Add support for TS ice tiles

Open
#8,918 9 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
csharp
Domain
game-dev

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

Feature Tiberian Sun

This should be relatively straightforward:

  • Add a new IceLayer trait 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.
  • Add a new DamagesIce trait 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.
  • Add a new DamagesIce warhead 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from OpenRA/OpenRA

All issues in OpenRA/OpenRA

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.