Skip to content

1.2.0-rc.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@LordMidas LordMidas released this 04 Jan 22:23

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 by adding hooks on some ai behaviors to work properly with MSU item actions such as 'payForAction' (a4722a0)
  • fix: clicking the top of Enum Settings causing them to move out of the way and not be clickable for 2 pixels (05b1a2b)
  • fix: range setting label not updating correctly (a2494ed)
  • fix: removed invalid default keybind (pause key) for pausing the game when on world map (e2d07e0)
  • fix: checkbox for Boolean Setting not updating reliably (b09619e)
  • fix: crash if actors aren't placed on the tactical map and any of the getXYZ functions are in Tactical Entity Manager are called (9e76875)
  • fix: deleting a value from an Ordered Map should now properly return the value (0b6e059)

NEW CONTRIBUTIONS