Release v1.4.0
Richard 'CWolf' Griffiths
DeveloperThis release introduces Extended Lances version 2, a major upgrade to Extended Lances, and some minor bugfixes.
The full release diff can be at the v1.4.0 pull request.
❗ Extended Lances v2 Upgrade ❗
As many of the features and fixes are related to EL - I'm drawing attention to it here. Some of the below fixes and improvements for EL v2 are covered below in the main changelog too.
- Extended Lances v2 Upgrade
- Extended Lances has been given a major upgrade. There were some fundamental issues and limitations with EL that preventing some modders achieving the results they wanted. Now EL should have fewer bugs and more flexibility.
- Backwards compatible
- Extensively tested
🚀 Features
- Extended Lances: Support all other Teams
- EL now supports TargetAlly, EmployerAlly, HostileToAll, NeutralToAll
- This feature is on by default so modpacks might want to consider game balance
- Support can be individually turned off in the
settings.json
in the EL section - Can be individually overridden with per-contract overrides
- Extended Lances: Provide a way to force EL to allow specific LanceOverride set ups
- A new
settings.json
property calledForceLanceOverrideSizeWithTag
which controls this behaviour - When a LanceOverride (lance in the contract json) has this tag in its
lanceTagSet/tagSetSourceFile
then it will force EL to spawn this exact defined lance lanceTagSet/tagSetSourceFile
is not used in BattleTech so it's been adopted for this feature
- A new
- Extended Lances: Provide a way to force EL to allow specific LanceDef set ups
- A new
settings.json
property calledForceLanceDefSizeWithTag
which controls this behaviour - When a LanceDef has this tag in its
LanceTags/tagSetSourceFile
then it will force EL to spawn this exact defined lance LanceTags/tagSetSourceFile
is not used in BattleTech so it's been adopted for this feature
- A new
- Extended Lances: AutofillType setting
- When EL autofills lances it has to decide how to handle units that are defined as empty (mechDef_None, vehicleDef_None)
- A new
settings.json
property calledAutofillType
which controls this behaviour and it has two settings:RespectEmpty
is the legacy and still the default behaviour. When a LanceOverride or LanceDef has empty units defined (e.g. mechDef_None, vehicleDef_None) then it will respect those and not autofill them.FillEmpty
is a new autofill behaviour. When a LanceOverride or LanceDef has empty units defined (e.g. mechDef_None, vehicleDef_None) then it will autofill and replace them so units will spawn in those slots.
- Extended Lances: AutofillStartingFromContractDifficulty setting
- A new
settings.json
property underExtendedLances
calledAutofillStartingFromContractDifficulty
- To aid in a fairer early game, you can now control when Extended Lances autofills units in lances that are below the faction's EL
LanceSize
by setting a contract difficulty (real difficulty - not UI/visible difficulty) to start autofilling from - This does not affect LanceDefs that fill up to the faction's
LanceSize
themselves (e.g. modpack Clan LanceDefs up to 5 or 6 etc) - For those who don't want this feature - set it to
1
- A new
- Extended Lances: AutofillUnitCopyType setting
- At times EL needs to copy units to create a varied and interesting lance when autofilling it up to the Faction Size (or any overridden size). In this case EL tries to copy a 'Tagged' lance so to use this tagged UnitSpawnPointOverride and leverage the tags to provide variation. If there are no 'Tagged' lances available to copy it will use the defined behaviour in
AutofillUnitCopyType
in the settings.json. - A new
settings.json
property calledAutofillUnitCopyType
which controls this behaviour and it has two settings:FirstInLance
- The legacy behaviour. It would pick the first unit (index 0) and copy it (giving it new identify/clearing custom names etc)RandomInLance
- The new behaviour and is now the default behaviour. It picks a random unit from the Lance to copy (giving it new identify/clearing custom names etc)
- At times EL needs to copy units to create a varied and interesting lance when autofilling it up to the Faction Size (or any overridden size). In this case EL tries to copy a 'Tagged' lance so to use this tagged UnitSpawnPointOverride and leverage the tags to provide variation. If there are no 'Tagged' lances available to copy it will use the defined behaviour in
⚡Improvements
- Extended Boundaries: Ambush Convoy - Reduce increase from 30% to 20%
- Previously Ambush Convoy boundary increased by 30%. As players sometimes struggle to catch the convoy if the Random Spawn algorithm places them too far away the boundary increase is now reduced slightly to 20%
🐛 Bug Fixes
- Extended Lance: LanceOverrides with fewer units than a selected LanceDef didn't populate all LanceDef units
- Extended Lances: LanceDefId being direct reference only added one extra lance instead of EL number
- Random Spawns: Blackout - Opposing Force Orientation Was Wrong
- Additional Lances: Incorrectly handling lanceExcludedTagSet
- MC AL lances incorrectly added
lanceExcludedTagSet
to thelanceTagSet
. This would cause incorrect lance selection behaviour for MC AL lances with tags
- MC AL lances incorrectly added
- Vanilla: When BT copies LanceDefs it didn't maintain the LanceTags 'tagSetSourceFile' data
- When BT copies LanceDefs it would never maintain/preserve the
tagSetSourceFile
property. Since this property is never used in the game it isn't a problem, however, Since ELv2 uses it - it has been fixed
- When BT copies LanceDefs it would never maintain/preserve the
📝 Documentation / Website
- Added ModTek v2 information in the setup page
- Added per-contract override page
- Added settings.json override with settings.modpack.json and settings.user.json in the settings page
- Added
SwapPlacement
typeEncounterStructure
subtype node information in the contract builder API nodes area - Added
CombatState
typeDisablePilotDeath
subtype node information in the contract builder API nodes area - Updated Extended Lances information for version 2
- Removed HBS mod loader information
🆙 Upgrade Instructions
- If you're using MC without a modpack and none of your own changes, just delete the MC folder and move the new one into your mods folder
- If you're using MC as part of a modpack, let the modpack authors update MC for you (using the below guide)
- If you're using MC without a modpack but you've made some of your own changes to the configs, or you're a modpack author:
- Copy into your Mods/MissionControl folder
- MissionControl.dll
- mod.json
- config/Contracts/My_Contract_ID_Example.json
- config/Contracts/My_FP_Contract_ID_Example.json
- Copy into your Mods/MissionControl folder
Add the following to your settings.json
:
ExtendedLances
add:
Under "EnableForTargetAlly": true,"EnableForEmployerAlly": true,"EnableForHostileToAll": true,"EnableForNeutralToAll": true,"AutofillType": "RespectEmpty","AutofillUnitCopyType": "RandomInLance","AutofillStartingFromContractDifficulty": 3,"ForceLanceOverrideSizeWithTag": "mc_force_extended_lance","ForceLanceDefSizeWithTag": "mc_force_extended_lance",
and update to have mc_no_extended_lance
:
"SkipWhenExcludeTagsContain": ["mc_no_extended_lance", "no_extended_lance"],
ExtendedBoundaries/Overrides
add:
Under {"ContractTypeName": "AmbushConvoy","IncreaseBoundarySizeByPercentage": 0.2}