Skip to content

Releases: MSUTeam/MSU

1.2.0-rc.3

20 Feb 17:02
Compare
Choose a tag to compare
1.2.0-rc.3 Pre-release
Pre-release

CHANGES

  • add: set the AIBehaviorID of vanilla skills to vanilla behavior during create. This ensures that adding a vanilla skill to an entity will automatically give the AI behavior of that skill to that entity. (#282)
  • change: the serde flag of settings to be ModSetting. instead of MS..This means settings in rc.1 and rc.2 will not be loaded with rc.3 (#283)
  • change: removed requireSettingValue function for now. (#285)
  • change: BB objects are no longer serialized & deserialized using ::Mod.Serialization.serialize and ::Mod.Serialization.deserialize, THIS WILL BREAK MODS written for rc.1 and rc.2. Now, you have to pass a Serialization or Deserialization emulator to their onSerialize or onDeserialize function respectively (#280)

FIXES

  • fix: bug in getBehaviorScriptFromID causing automatic addition of skill behaviors to not work (41c403a)
  • fix: item type names being slightly off in which item type they point to (#277)
  • fix: handling for itemType having a value of 0 for item type name (#277)
  • fix: remove leftover Timer in array_setting.js (3ee3d62)
  • fix: skills adding their behavior to player characters (4b93065)
  • fix: change hook on asset_manager from hookNewObjectOnce to hookNewObject otherwise quitting to the main menu and loading back into the game caused errors. (f18971b)
  • fix: modsettings not being synced between frontend and backend (2ef065b)
  • fix: remove check for existing behavior when adding behavior via AIBehaviorID in skills. Otherwise it was causing some behaviors to be removed mid-execution when the skill removed itself during the behavior execution. (#288)
  • fix: issues with the flag based serialization system (#280)
    • serialization of BB objects is now handled by passing a Serialization or Deserialization Emulator to them.
    • Normal deserialiation now requires a default value.
    • SerDeEmulators are now permanently linked to a FlagContainer they are assigned during instantiation
    • SerializationEmulators now have an Incremental mode where they store their data in the flag container as soon as something is written to them.
    • DeserializationEmulators now immediately clear flags from their FlagContainer as they deserialize.
    • SerDeEmulator flag IDs are validated to make sure they do not collide with flags generated by other emulators.

1.2.0-rc.2

07 Jan 09:28
Compare
Choose a tag to compare
1.2.0-rc.2 Pre-release
Pre-release

FIXES

  • fix: bug in setBaseValue function of AbstractSetting caused by a typo in code (#273)
  • fix: bad handling of empty arrays by ::MSU.Array.rand() (#270)
  • change: ::MSU.Array.rand's _start parameter now defaults to null instead of 0. Important with regards to dealing with empty arrays. (#270) (DOC)
  • fix; removes WIP files that shouldn't have been included in the previous rc

1.2.0-rc.1

04 Jan 22:23
Compare
Choose a tag to compare
1.2.0-rc.1 Pre-release
Pre-release

MAJOR

NEW FEATURES

  • add: flag based serialization and deserialization for completely safe addition/removal of serialized content from saved games (#148) (DOC)
  • add: ::MSU.Class.Enum an enumerate data structure (#191) (DOC)
  • add: ::MSU.BBClass.Empty, an empty bb class that can be inherited from to allow 'mods_hookExactClass' hooks (#175) (DOC)
  • add: mod update checker to Registry system (#214) (DOC)
  • add: resetSettings functions to ModSettings addon, panels and pages, and "reset" function to settings (#180) (DOC)
  • add: toggle function to BooleanSetting (c3063a1) (DOC)
  • add: isKeybindPressed function and passive SQ keybind to keybinds system (#174) (DOC)
  • add: removeByValue function to ::MSU.Array (deprecates ::MSU.Array.remove) (eea1f36) (DOC)
  • add: the ability to recursively merge two tables with Table.merge (661de94) (DOC)
  • add: ::MSU.isBBObject, a function to identify instances of BBObjects (4663676) (DOC)
  • add: ::MSU.isEqual, a function to check equality with full support for instances of WeakTableRef (#170) (DOC)
  • add: getValueAsHexString function to Color Picker element (#195) (DOC)
  • add: <skill>.m.AIBehaviorID member to skills which will create and add the respective AIBehavior to the receiving entity (#253) (DOC)
  • add: onQueryTileTooltip event for skills which allows the active entity to modify the tooltip of the hovered tile (#209) (DOC)
  • add onEquip and onUnequip events for skills (#163) (DOC)
  • add onAnySkillUsed event for items (#168) (DOC)
  • add: startsWith function to ::MSU.String (#217) (DOC)
  • add: endsWith function to ::MSU.String (#217) (DOC)
  • add: foreach (item, weight in container) iteration to weighted_container (#200) (DOC)
  • add: ::MSU.AI.addBehavior function which adds a new AI behaviour to the const table (#203) (DOC)
  • add: onGetHitFactorsAsTarget function to skills and skill_container that is called for the target entity's skills (#205) (DOC)
  • add: color, colorRed and colorGreen functions to ::MSU.Text for coloring strings (#151) (DOC)
  • add: lockSetting function (#193) (DOC)
  • add: requireSettingValue function that will change the setting to the passed value and lock it, and error otherwise (#193) (DOC)
  • add: BeforeChangeCallbacks and AfterChangeCallbacks that run before and after the setting is changed, replacing the previous 'Callback' (now BeforeChangeCallbacks) (#235) (DOC)
  • add: getMod functions to settings_element (#193) (DOC)
  • add: getMod function to and settings_page (#193) (DOC)
  • add: methods to pause and unpause to SQ and JS timer classes (#232) (DOC)
  • add: silentGet and silentStop functions to timer classes that will get the current time without printing to the log (#232) (DOC)

DEPRECATE

MINOR

NEW FEATURES

  • add: MSU GitHub and Nexus Mods links to lead the user to the newly updated MSU version (9d0dd03)
  • add: getAllElementsAsArray functions to ModSettings addon, panels, and pages, with an optional filter argument to reduce the array down to desired elements (e.g. settings only) (DOC)
  • add: 'Reset' button in the ModSettings UI to reset the settings of the current page (#180)
  • add: 'Reset all settings for every mod' button to MSU settings (#180)
  • add 'apply' button to mod settings screen (22544b4)
  • add: MSU 'Esc' keybind to close popup (#216)
  • add: '(MSU)' to name of vanilla settings in modsettings (#252)
  • add: a debug log to the keybind system that prints the final key combination string if the 'keybindsLog' MSU setting is turned on (ed3de0a)
  • add: modsetting that supresses the basegame keybinds so that only the MSU system is used (#251)
  • add: deserializeInto function in MSU.Utils to deserialize directly into an object (7c01161) (DOC)

CHANGES

  • change: new keybinds are now validated to make sure that they use valid keys (#178)
  • change: remove the notice from msu settings about them being potentially required by mods if enabled (instead we print lock reasons) (572d0ad)
  • change: simplify modSettings setBaseValue function by optionally calling the new reset() instead of set() (#236)
  • change: settings labels now use vanilla css classes to improve compatibility (a274418)
  • change: colorpicker labels now have the opposite color to increase readability (7edf3ca)
  • change: settings can now have multiple lock reasons (060c423)
  • change: settings lock reasons are now at the end of the tooltip (f691b53)
  • change: printData and debug print now print file, function & line (#241)
  • change: MSU.Table.merge now returns the first passed table (#248)
  • change: the set function of settings now returns true if the setting's value is equal to the passed new value at the end of the function and false otherwise (5b4ee95)

FIXES

  • fix: printData not being able to handle tables with non-string keys (#182)
  • fix: issues with 'additionalAccuracy' of items not applying correctly on skills (72ca8a1)
  • fix: AdditionalAccuracy and AdditionalHitchance not being considered properly for skills which inherit from other skills (017fab8)
  • fix: saveBaseValues not working properly for skills which inherit from other skills (e2135c8)
  • fix: ::MSU.Table.keys() and ::MSU.Table.values() not actually returning their intended values (afd6791)
  • fix: built-in functions (getclass() and weakref()) not working for ordered_map and weighted_container (50528f2)
  • fix: an issue with Affordability Preview
    (02ca49d)
  • fix: potential stack overflow in skill_container (df7f5e1)
  • fix: issues with the checkbox element not updating reliably (b09619e)
  • fix: default ui_screen show/hide not working (30473dd)
  • fix: itemTypes added via addNewItemType getting sorted to top (#152)
  • fix: weapon setUpCategories throwing error if this.m.Categories is an empty string (5ef680c)
  • fix: issue with weighted_container add function where items with a negative value that were added didn't correctly become forced (5db0f9e)
  • fix: range setting being unable to handle floats (#215)
  • fix: issue where our hooks on 'general_querySkillTooltipData' and 'general_queryStatusEffectTooltipData' would overwrite base tooltip instead of appending (0de57f8)
  • fix: settings will now print the lock reason if attempting to change them while locked (10a004b)
  • fix: issues where keybinds with multiple keys were not registering properly (they were not sorted correctly) (addee9b)
  • fix: logic issues in ::MSU.Array.rand function when passing non-default values for _start and _end (26993d6)
  • fix: cases where AI was able to swap items without paying the item action's cost properly (was an MSU bug due to MSU's custom item action implementation). The fix is accomplished ...
Read more

v1.1.1

19 Jun 10:14
Compare
Choose a tag to compare
  • fix issue where msu wouldn't work with some mods because they only had incompatibilities listed as their mod hooks dependencies.

v1.1.0

17 Jun 16:21
Compare
Choose a tag to compare
  • add Tooltip system to simplify adding tooltips to UI objects

  • add Timer functions to benchmark code

  • add: helpful log errors to type checking functions

  • add onShow and onHide to ui_screen base class (JS)

  • add addAIBehaviour function

  • add dummy functions to get movement speed mult instead of checking for the presence of the function

  • add text coloring functions

  • add logging for mods that the save was saved with that are now missing

  • add simple state management functions

  • add iterateObject JS function

  • add getSetting JS function

  • simplify Movement Speed hook to no longer overwrite onUpdate() of party

  • fix some issues with print/formatData and allow them to print class/instance members

  • fix: quick hands incorrectly applying to shield item swaps

  • fix: issue with Movement Speed module causing crashes

  • fix: SemVer compare functions not accepting mod objects

  • fix: MSU being unable to handle incompatibilities with specific versions

  • fix: error during getActionCost function

  • fix: new mods for save not getting printed to log

  • fix: add getclass function to OrderedMap and WeightedContainer

  • various minor fixes

v1.0.5

20 May 10:59
Compare
Choose a tag to compare
  • Fixed the getMod function throwing exception even when the mod ID existed.
  • Fixed MSU exceptions not adding a space before quotation marks.
  • Fixed error message when trying to get a non-registered mod to say that you should create a mod object rather than register it.

v1.0.4

20 May 01:31
Compare
Choose a tag to compare
  • Added a requirement in the MSU mod_hooks queue for vanilla version 1.5 or later.
  • The IsPreviewing boolean of skill_container is now set to false in onCombatFinished as well to avoid any cases where it might remain true due to some skills bugging out during combat.
  • Fixed a typo in a function call in the AlreadyInState exception.
  • Removed some leftover logging.
  • Fixed an issue in exceptions when the passed parameter is a tile object.

v1.0.3

18 May 23:27
Compare
Choose a tag to compare

Fixes

  • Fixed a bug causing weapon categories to not properly be generated for mods using the WeaponType system.
  • Added a helpful error and exception when passing the tile of an actor not placed on map to the various msu-based functions to get actors in tactical_entity_manager.

v1.0.2

18 May 02:02
Compare
Choose a tag to compare

Fixes

  • typo causing getFactionActors to not work
  • non-semver version compare mod hook not working

v1.0.1 - Nexus Release

17 May 18:12
Compare
Choose a tag to compare

Official Nexus release.