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
andonUnequip
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
andcolorGreen
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
andAfterChangeCallbacks
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
andunpause
to SQ and JS timer classes (#232) (DOC) - add:
silentGet
andsilentStop
functions to timer classes that will get the current time without printing to the log (#232) (DOC)
DEPRECATE
- deprecate: 'MSU.Utils.addAIBehaviour' - use MSU.AI.addAIBehavior instead
- deprecate: 'MSU.Array.remove' - use MSU.Array.removeByValue instead
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 inMSU.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 ifthis.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)