chrishayesmu / XCOM-LW-CommunityEdition

14 stars 2 forks source link

Add line-of-sight indicators similar to XCOM 2 #34

Open chrishayesmu opened 2 years ago

chrishayesmu commented 2 years ago

This can be built using similar techniques to the Sightlines mod.

When moving the cursor to select a unit's destination, show indicators as to which units will be visible from the new location. Configuration options should include:

  1. Enabling/disabling the feature completely
  2. Enabling/disabling the feature for enemy units
  3. Enabling/disabling the feature for friendly units
  4. Whether to show flanking indicators as well

We will need to also consider ways to prevent these units from counting in certain scenarios (e.g. the number of civilians rescued in a terror mission).

chrishayesmu commented 2 years ago

Partially implemented in https://github.com/chrishayesmu/XCOM-LW-CommunityEdition/commit/6d004a8cfa6edf27f92676be4feba5096ecd8b62. The feature is enabled for enemy units, but does not show flanks due to an unresolved bug (flanking indicators stop working after loading the game). It still needs to be implemented for friendly units.

chrishayesmu commented 2 years ago

Friendly units now covered in https://github.com/chrishayesmu/XCOM-LW-CommunityEdition/commit/7907ec17aa1530a751df73663dbf86a918ed1337. Still pending flanking indicators.

moben commented 2 years ago

Flanking indicators seem to work in principle, even across save/reload. The one bug I noticed is that some flanks seem to be persisted across the save/reload, as if the helper that is flanking the enemy was still there.

I wonder if this would also have AI implications, presumably the same calculation is used.

moben commented 2 years ago

More testing: After making the sectoid visible, I noticed that does a sticking to cover animation if it was next to cover when the save was created.

The original sightlines mod has this:

// Process the new position without evaluating the new stance or the pawn will interact·
// with the environment in ways we don't want (e.g. splashing in water).
//kHelper.ProcessNewPosition(false);

Putting that call in our MoveHelperUnit fixes flanking indicators after load for me, but I don't know how it worked in the original mod with that commented out or why it works before reloading...