2 post(s) tagged with "v1.4.0"

View All Tags

ConverseTek Release v1.4.0

Hey guys!

Today I’ve released v1.4 of ConverseTek.

For those of you who don’t know what ConverseTek is, it’s the tool I developed for creating and editing BT dropship conversations (1-on-1s with the crew and conference room) and released in Summer 2018.

You can grab the new release from the Github ConverseTek v1.4 Release.

As part of this update I rewrote / ported the project to Typescript and updated a lot of the badly outdated dependencies. In the process I’ve improved lots of areas of code since I was forced to touch almost every single file. This makes the project easier to work with so it makes it easier to improve.

Before I get onto the new features and improvements I need to mention the elephant in the room / the outstanding big issue and how it’s now been fixed.

Corrupted Conversations / Bad Data (The Ugly Big Elephant)

Ever since CT was created it had a risk of corrupting a conversation file - sometimes in obvious ways and other times in very subtle ways. Any modder who has used it would probably scream in rage any time they realised this happened (and it was particularly sneaky as it would always look fine in CT - just break in BattleTech itself). This bug was due to an original assumption I made when I originally developed the tool and one I only realised was wrong when I was stopping development on the tool. Fast forward to a year and a half after the last release and this issue is now fixed in v1.4 (it should have been fixed years ago but that's life). An important note to modders who might still have corrupted conversation files from previous CT usage - v1.4 can fix those for you if you open it up and re-save them.

It also fixes all other issues around bad conversation data, for example, old text showing up in copied / moved nodes even after the copied text was changed in CT.

With that said, onto the nice new features.

Quicklinks / Favourites

The user experience of opening up your workspace folder that contained conversations was horrible. It started you off in your root drive view and didn’t help you save time to navigate back to your conversations. If the user’s conversations were deep in a drive then that meant a lot of clicking. Really annoying stuff.

Now you have some typical quick links that you’d expect (Desktop, My Documents, My Computer, Favourites). You can also right-click any directory and favourite it. This adds a blue favourite icon to the directory navigator that you can click to go straight to.

ConverseTek-Improved-Navigation

Dialogue Tree Zoom

Large conversations means a ton of prompt nodes (blue) and response nodes (yellow). When it gets so large, like in vanilla conversations, it gets incredibly difficult to figure out where all the conversation nodes are that you’re trying to look at.

You now can use CTRL + mouse wheel to zoom in and out to give yourself a better feel for the conversation (or it can help people who need the text a bit bigger to read).

ConverseTek-Zoom

Node Details Drag Expand

Actions and Conditions are vital to making good conversations, yet, the viewing area for those is too small compared to the data-dense functionality often needing to be displayed.

You can now drag and expand the node details area to give yourself a lot more space for actions / conditions / node details and writing dialogue. This often will give users the ability to view all (or most) of the actions and conditions on a node (or reduce the scrolling to a minimum).

ConverseTek-Drag-Expand

Delete Conversation

You can now delete conversations from within CT. Pretty simple but useful.

ConverseTek-Delete-Conversation

Re-enabled Dragging Response Nodes to Other Nodes

In earlier releases of CT you were able to drag and drop response (yellow) nodes from their parent prompt (blue) node to anywhere else in the conversation. Due to the realisation this caused some nasty bugs the feature was limited to allowing only dragging/reordering within the same prompt node.

Since all the conversation corruption bugs are fixed I re-enabled this feature - so you can now move response nodes to other prompt nodes.

Other fixes and changes

There are a good few other fixes and changes but I’ll leave this post here. If you’re interested in the full changelog check out the ConverseTek github release page and the github milestone for v1.4

In Closing

Tools for the community often go overlooked but are critical for the health of mods and modpacks. This update took me a month of my free time (developing on it almost every single day when I had spare time during that month) so I honestly hope you enjoy and appreciate the new improvements. Don’t be quiet and please let me know what you think. It was a good update to work on.

Thanks guys.

Release v1.4.0

This 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 called ForceLanceOverrideSizeWithTag 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
  • Extended Lances: Provide a way to force EL to allow specific LanceDef set ups
    • A new settings.json property called ForceLanceDefSizeWithTag 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
  • 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 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.
  • Extended Lances: AutofillStartingFromContractDifficulty setting
    • 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
  • 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 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)

⚡Improvements

🐛 Bug Fixes

📝 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 type EncounterStructure subtype node information in the contract builder API nodes area
  • Added CombatState type DisablePilotDeath 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

Add the following to your settings.json:

Under ExtendedLances add:

"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"],

Under ExtendedBoundaries/Overrides add:

{
"ContractTypeName": "AmbushConvoy",
"IncreaseBoundarySizeByPercentage": 0.2
}