X2CommunityCore / xcom2-launcher

The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad.
GNU General Public License v3.0
347 stars 51 forks source link

For the purposes of Mod Dependencies, treat BETA Highlander as a suitable replacement for Highlander. #218

Closed Iridar closed 3 years ago

RevZero commented 4 years ago

AML can actually manage this scenario https://github.com/X2CommunityCore/xcom2-launcher/wiki/Advanced#duplicate-id-workaround

Xymanek commented 4 years ago

I don't think that's what the issue is about though.

I think it's about having only beta CHL (so no duplicate DLC IDs) but the workshop mods list stable CHL in the requirements, which causes "required mod missing" warning

RevZero commented 4 years ago

I understand that. The proposed workaround would be, to leave the original Highlander installed and mark the BETA CHL as the primary. AML will then consider that mod a replacement, even if the workshop is is different.

Xymanek commented 4 years ago

1) I think AML should check the required mods against the currently active set. What's good a required mod if it's not loaded? 2) That workaround is getting the user to do things the AML way ™️, which IMO is bad especially cuz AML was very flexible so far. For example, I never keep 2 copies of CHL, especially cuz I keep deleting and rebuilding it

RevZero commented 4 years ago

AML can not know that the BETA CHL is a valid replacement for mods that list the stable CHL as a requirement. That is, because I only have the Workshop ID as a reference. The "Duplicate ID workaround" that AML offers is not "the AML way", but an option to workaround that limitation. If the main dependency is installed, AML can correlate the mod IDs.

Xymanek commented 4 years ago

I think it's fair to expect from mods to be provide this information somehow, since indeed AML cannot just know. What about a file in the mod's root that lists other IDs that should be considered equivalent? This will also help the case when the mod is not from workshop (e.g. a dev build of the CHL)

Iridar commented 4 years ago

Could AML read XComGame.ini of mods to check for these entries?

https://www.reddit.com/r/xcom2mods/wiki/index/hlrequiredmods

RevZero commented 4 years ago

Relying on mods to provide that info is probably not optimal.

Maybe AML could just provide a editable list of Workshop ID pairs that should be considered equivalent. That would not handle the case when having a local mod without Workshop ID, but that is tolerable IMO. We could then add a default entry for CHL vs BETACHL.

On the other hand - as already pointed out - AML already has a way to handle mods with same workshop ID and consider them substitutes with respect to dependencies. Granted, its a bit dirty in how it disables the duplicates, but it seems to do the job as far as I can tell from using it.

Xymanek commented 4 years ago

AML already has a way to handle mods with same workshop ID and consider them substitutes with respect to dependencies

it seems to do the job as far as I can tell from using it.

Sure, but I'm not gonna ever have 2 copies of CHL at the same time due to how mod development works. Therefore the aforementioned approach doesn't work for this workflow

RevZero commented 4 years ago

@Iridar That doesn't really help. I wouldn't be able to tell if the workshop ID that is listed as a dependency relates to the listed DLCIdentifier.