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.
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 called AutofillType 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.
FillEmptyis 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.
A new settings.json property under ExtendedLances called AutofillStartingFromContractDifficulty
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
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 called AutofillUnitCopyType 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)
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%
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
A new settings.json property called EnableStoryOverrides exists. When this is enabled MC will look into each settings.json feature section for the EnableForStory property to decide if a feature should be running in Story & Restoration contracts
Incorporated a fix by @mcb5637. Thanks.
Using these features will severly unbalance the Story and I will not provide support
This is the final release of Mission Control by me, CWolf. It was a hard decision to make but after two and a half great years modding BattleTech - I've decided it's time for me to move on. Thank you all for the support and I'm glad you've enjoyed what Mission Control grew into. It's not without its faults but I'm very proud of the work I accomplished here.
Keep enjoying BattleTech and destroying your way through the Inner Sphere! Take care - it's been a pleasure. Signing off.
Reward Screen Softlock: Fixed a situation where if the player restarted a mission, and the previous attempt had an enemy Additional Lance, when the contract was completed the reward screen would soft lock due to dirty contract data for objectives
Contracts Screen Infinite Load: Fixed another bad vanilla method situation where, in rare situations, the contracts screen would get stuck on the loading screen due to limited selection of biomes/factions/contract types/contracts.
Dynamic Withdraw: Feature was running in situations it shouldn't.
This release fixes a vanilla infinite contracts screen issue relating to original HBS code and restrictive contracts involving lack of faction selection and system restrictions, and a quick skirmish bug.
For upgrade instructions, see below the changelog.
Contracts: Fixed infinite loading screen when faction and system restrictions conflicted with some contract types and contracts (Thanks a lot for the help Pode, Granner and Quiller with debugging this)
Skirmish: Fixed map loading exception when allies dropped with you
This release fixes lots of very important bugs and adds some enhancements to Mission Control. One very important late addition to the patch is that the ally lance Follow AI has been fixed. If you've previously disabled them or not used them because how useless they were - it's time to try them again!
Please take the time to read through the changelog as there's some very good fixes in this patch! Enjoy!
For upgrade instructions, see below the changelog.
New Result: TriggerResultAtRandom allows you to specify multiple children results and one will be selected at random when this TriggerResultAtRandom result is triggered
New Result: IgnoreChunks allows you to specify multiple chunk guids. When this result is triggered it will iterate over all chunks specified and set the Chunk to Completed and any objectives as Ignored
This release adds a new custom contract type, 9 new contracts, expands duel contract type biome support and lots of quality of life features and bug fixes.
1.0.0 has been a big release for me. I feel with the maturity of Mission Control it warrants the 1.0.0 versioning. This release contained over 24% of the commits in the entire mod and you'll see why below in the changelog. A huge amount of effort has been put into opening up the contract type system to allow other modders to create new and interesting contract types for the whole community to enjoy. Hopefully people will take advantage of this.
Thanks for staying with me on this journey over the years (first release was on the 18th November 2018 with the first code saved on the 11th September 2018). I know there's still issues with the spawner but I feel, as whole, Mission Control has greatly improved the BattleTech experience. I hope you all feel the same way.
Enjoy and please let me know what you think of Blackout, the new contract type.
For upgrade instructions, see below the changelog.
UI: Added an update notification. When a new version of MC is released the Main Menu will show a notification. This can be disabled in the settings.json.
AI: Follow Player - Exposed TargetZoneRadius setting in the settings.json. This specifies the target zone the following mech will try to enter before not following anymore. If this zone is left, they will try to follow again.
Load Times: Decreased on average between 30% - 50%
Additional Lances: Lower tonnage lances can now spawn for higher difficulty contracts (since v0.4.2 only the same class of lance [e.g. heavy, assault] would spawn for the difficulty level).
Additional Lances: Reduced max lances to 1. MC is just too brutal at times. This can be edited back under the configs MissionControl/config/AdditionalLances/ if you want it harder again.
Additional Lances: Substantially increased bonus payout from 20% to 150%. This is to try and offset the huge Company cost to fighting extra lances like the repairs, new mechs and pilot recruitment costs.
Extended Boundaries: Increase specific boundary size for contract type & map combinations
Capture Base with mapGeneral_frigidSteppes_iTnd
Capture Base with mapGeneral_icyOutpost_iGlc
Simple Battle with mapGeneral_highPeak_iGlc
Fire Mission (all of them)
Extended Boundaries: Increase default boundary increase from 20% to 30%
Rescue: Added a minimum distance to objective check for the player lance spawn
Hot Drop Protection: Changed evasion pips from 4 to 6 (effectively a change from 40% to 60% evasion) if the starting drop is within enemy detection range
AI: Follow AI - Reduced 'should sprint' range from 200 to 120 units. This means the following unit should keep up better with the player mechs
Random Spawns: Fixed issue where mechs wouldn't be able to move after spawning (stuck in one place from spawn)
Random Spawns: Fixed issue where mechs would spawn in rocks or buildings
Random Spawns: Fixed a few issues that could cause long loads
Random Spawns: Fixed the Array out of Bounds errors when testing for valid spawn points
Random Spawns: Fixed issue where the map 'plot' (point of interest) could not be found to orientate spawns on for the map mapGeneral_gridLock_uTech (and possibly others who shared the same map set up)
Random Spawns: Fixed issue where the pathfinder mechs would trigger any Region they entered causing an error
Extended Boundaries: Setting the sub-override IncreaseBoundarySizeByPercentage was not read. This is a similar issue as v0.4.2 but for the contract type & map Overrides section instead.
Extended Boundaries: Customised size position can be wrong causing key points outside of boundary (same bug as in v0.4.2). Should be properly fixed now.
Localisation: Fixed a possible issue with locales that don't use period / fullstop for their decimal place. An error would occur when loading a map with an Additional Lance reward
Additional Lances: Fixed issue where if the player restarted a contract 3 or more times then no more AL lances would spawn (friendly or enemy)
Additional Lances: Fixed issue where Heavy Metal campaign contracts would allow Mission Control to run (and Bigger Drops). There's a setting (DisableIfFlashpointContract) in the settings.json to allow for MC to run in flashpoints but it's off by default.
Additional Lances: Units used to sometimes spawn inside each other. This was harmless for player units in player units but issues could occur with allies and enemies. If droppods were involved there was often a mess on the floor afterwards and a dead mech
Story / Restoration contracts: MC was running for Restoration contracts since v0.4.0. This has now been prevented and is a similar fix that went in for Story contracts in v0.4.1.
Extended Boundaries: Setting IncreaseBoundarySizeByPercentage was not read. This meant there was no way to manually change the boundary size.
Extended Boundaries: Custom sizes, including the default of 20% increase, caused some contracts to have extraction points and other important locations to fall outside the boundary.
AI: Follow AI has been improved. Now, the Follow AI no longer runs when a condition is met (defaults to OnEnemyDetected). This means the allied units will actually fight instead of ignore combat.
AI: Various contract types were missing Follow AI for important reasons. This could sometimes cause the AI to do nothing. This was reworked to allow the AI to run in all contract types.
Encounters: Fixed the cause of SaveSpawnPositions errors
Unknown contract type fallback ruleset - If an unknown countract type is encountered, a fallback contract type ruleset will be applied so access to the full MC featureset will still work for that contract type
Added IncludeContractTypes and ExcludeContractTypes to RandomSpawns, HotDrop, AdditionalLances, ExtendedLances, ExtendedBoundaries and DynamicWithdraw settings.json options
AI - Friendly turrets will no longer get the 'Follow Heaviest Mech' AI applied to them. This was causing issues where turrets wouldn't fire on the enemy if the player's heaviest mech was too far away. The turrets wanted to sprint after the player.
Random Spawns: Provided a setting to turn off random spawns for the original map spawns (Additional Lances and Extended Lances will still spawn according to their spawn profile even with this turned to false)
BT 1.7 forced me to release early to bring in BT 1.7 support. Mainly adds support for this, plus some additional features and minor bug fixes. Any remaining v0.3.1 milestone items are pushed to v0.3.2.
Extended Lances - Increase the size of a faction's lances allowing for clan stars (5 mechs) and reinforced lances / comstar demi-lances (6 mechs). Works for vanilla spawns and Mission Control spawns.
Additional Lances Faction Rep - Allow faction reputation range to select which lance to use
Additional Lances Elite Lances - Allow elite lances to be selected if allied or enemy with a faction
Flashpoint options - Allow for disabling Mission Control entirely, or just disabling only Additional Lances for FPs
Additional Lances Skull Lance Difficulty - Added a full initial set of lances to fit different difficulty levels
Ally Lance Combat Dialogue - Added more dialogue than the sample amount in v0.2.0a
Additional Lances Tonnage Restrictions - Ability to disable Additional Lances on various tonnage rules
BT v1.3 / FP Support
Ally Lance Combat Dialogue - Unique dialogue per contract type and MC contract type variations if you have an ally lance dropping with you.
Additional Lances Skull Lance Difficulty - Additional Lances now take into account skull difficulty when selecting lances to drop into a contract.
Additional Lances in Battle are Primary Objectives - This makes a lot of sense for a Battle as the contract sometimes would end seemingly at random when the original targets were destroyed.
Hot Drop Safety Features - When dropping into close proximity of enemies hot drop safety features will take effect. In the settings.json you can modify these. It supports auto-guard, auto-evasion and an option to include the enemies in this protection mode too.