HDIAndrew / EFS

12 stars 0 forks source link

Rebels set to produce units will build them from resource markers and ruins #88

Closed YeOldeEBM closed 1 year ago

YeOldeEBM commented 1 year ago

Description:

If Rebels are allowed to produce units in PlayerTable.dat, they will produce universal units (garrison units and Engineers) from resource markers and ruins since those are technically cities they own.

Expected behavior:

Rebels do not use resource markers or ruins to produce units.

Actual behavior:

Rebels use resource markers and ruins (normal and alien) to produce units.

Game version:

1.5 release

Steps to reproduce:

  1. Enable unit production for Rebels in PlayerTable.dat
  2. Start the game as any House
  3. End turns several times
  4. Activate HDIVIEW and look around the galaxy to see all sorts of new Rebel units sitting on resource markers

To save a little time I attached a save below from after the first election. Use HDIVIEW to examine any planets you like.

Additional information:

The save: rebelproduction.zip

Here's an example from Aragon, showing both resource markers and a ruin with new units. Rebel production

Matt-Caspermeyer commented 1 year ago

Thanks for reporting this - it's already on our radar, but it's nice to have it here, too!

Hope to work on it in the near future for V1.51.

I'll post back here once I have an update...

Matt-Caspermeyer commented 1 year ago

I have an update on this issue.

The problem with the Rebels building on Special Markers has been fixed and will be included in V1.51.

Note that I have not done anything with Monasteries, Ruins, & Alien Ruins, yet, because (along with Universities), these structures have been used by MODders to build special units. If I prevent units from being built in these structures, this capability for MODders will be lost (or perhaps we can enable it with an EFS.INI parameter).

Thoughts?

Note that this fix is in the process of being reviewed and merged. Once it has been merged, this issue will automatically close on GitHub, but we can reopen it if needed...

YeOldeEBM commented 1 year ago

Allowing modders to continue using the other cities would be good if we can figure out a suitable solution.

One idea is to add another value for the Bldgs column in UNIT.dat. The current 99 could be left as 'build anywhere' while 98 (or whatever number sounds good) could be 'build in any city engineers can build', which excludes Monasteries, Ruins and Universities. Or switch the numbers around so 99 is 'build in any city engineers can build' and the other number is 'build anywhere', though this would require changing UNIT.dat to adjust numbers on the garrison units and Engineers.

This retains the full unit construction functionality while preventing the building of universal units in the special cities unless a modder wishes to allow it.

floralpond commented 1 year ago

I really like the idea of having more combinations of options for the Bldgs column in UNIT.dat, similar to how we have a bunch of options in the Owner column (like 22 League or Church, 44 Any ministry, 77 Non house humans). It's overkill for solving this problem in particular, but it also adds a lot more choices for future modders to use.

Sidenote: how difficult would it be to implement user defined logic in the Bldgs or Owner columns? Like if I wrote "3&13" in Bldgs then the unit could be built in both a Factory and a Fort, or if I wrote "!13", then it could be built anywhere except Forts.

Matt-Caspermeyer commented 1 year ago

I have an update to this issue.

During our developer meeting yesterday, it was decided to allow MODders to control the building of units in each structure. To this end, a new column (BuildUnits) has been added to STRBUILD.DAT to control the building of units in each structure.

For unMODded EFS V1.5 the following structure's BuildUnits setting are set to 0 so that the won't build units if controlled by the Rebels: Monasteries, Ruins, Alien Ruins, Universities / Unknown, and Special Markers (Trace, Gems, Exotica, Fertile, Metal, & Energy).

MODders can change this and allow structures that don't normally build units to build units.

floralpond commented 1 year ago

Test Points summary - pass