Release Notes

The Asset Store Release Notes section is limited in the amount of text. So the full release notes are here!
v4 is a MAJOR RELEASE. Please backup before you update. This update WILL BREAK existing projects. (This only affects users who have been using it for a long time and haven't updated yet!) Expect relatively frequent updates for a while, as bugs and issues are identified and addressed.
  • No longer required to add these to the scenes: StatsRepository, ItemObjectRepository, QuestsRepository, ItemAttributeRepository, ConditionsRepository, Loot Box Repository, Object Reference Repository
    • Code has been marked obsolete with guidance to the new methods on GameModuleRepository.Instance
    • If you have a custom QuestRewardHandler, add that to the Blackboard prefab in your scene.
    • New ModulesHelper class has been added to the Blackboard prefab.
  • Fixed ResetCache for ItemObjectsManager, correctly removing deleted ItemObject objects.
  • Fixed issue where it was possible to press "Add" button to add ItemAttribute to a Variable, when none have been created
    • Added namespace to Timespan class
    • Updated "First Person Movement" system
      • Now includes "First Person Camera" prefab for drag-and-drop use
      • Updates to movement
      • Added Jumping
      • Added Flying
      • Added "Player Input" (something you can override and customize)
      • Added a class which posts helpful information to the Main Blackboard
  • Major update to Game Modules system
  • Added Save & Load
  • Added Quests
  • Added Blackboard
  • Complete overhaul of systems.
3.5.3 - Updated to Unity 2020.3 LTS
  • [Mastery Levels] Fixed a bug where the Mastery Levels would not save after being created.
  • [Conditions] [Stats] [Item Object] [ItemAttribute] Modified the Transfer() methods to skip Cloneing (will clone by default) in cases where caching GameCondition objects is preferred for optimizations.
* Fixed issue in EditorUtilities.cs where Stats array was not being cached
* Added GetEffectOn() method to GameItemObject to get the effect (value/proficiency) on a specific stat, with options to include Attributes or not. The "Stats & Conditions" demonstrates this in the console when the Sword is toggled on.
* Added Blackboard module
* Updated Properties to include Quests
* Updated Properties to include types for various modules
* [Gametime] Updated to automatically post values to Blackboard. Added bool to send notifications on Tick() as an option.
* Updated InfinityEditor to bring it in line with other packs.
* [Items and Equipping Tutorial] Added the Items and Equipping Tutorial
* [Items] Added a gameUid string, which is a random guid added to all GameItemObjects. Will be added to existing objects for projects that are live. Provides a method to reference a specific GameItemObject, for situations where two are very similar, but perhaps have different custom values in Dictionaries.
* [Items] Updated GameItemObjectList with a RemoveExact() method, which uses the new gameUid to ensure the specific GameItemObject is removed, rather than one that is similar, but not the exact one.
* [Items] Updated GameItemObjectList with a TransferTo() method, which will Transfer() a GameItemObject to another GameItemObjectList, and then RemoveExact() the object from this list.
* [Property Code] Updated Editor to automatically update Property Code whenever play mode is entered, or an objectName or objectType is updated (including when a new object is created). The Property Code Editor window must be open for this to work, and the console will remind you if it is not. The option can be turned off, but will be on by default once you open the window.
* [Hunger System Tutorial] Added the Hunger System Tutorial
* [Conditions] Updated the required members for IHaveConditions
* [Stats] Updated the required members for IHaveStats* Minor fixes and updates
* [Game Time] Added methods to add time separately from the Tick() method.
* [Game Time] Added some helpful properties.
* [Game Time] Updated demo scene.
* [Conditions] Added a GetModificationLevels() method to GameConditionsList which returns all Modification Levels from Game Conditions in the list. [Helps with the GetOtherLevels() method on the Player]
* [Items] Added a GetModificationLevels() method to GameItemObjectList which returns all Modification Levels from Game Item Objects (and Game Item Attributes) in the list. [Helps with the GetOtherLevels() method on the Player]
* [Lookup Tables] Added a Validation step to the Editor script to ensure the objectName field is populated properly
* [Conditions] Added an "infinite" time option, for conditions that should not auto-expire.
* Renamed "CustomEditor" to "InfinityEditor" to avoid conflict issues with Editor.CustomEditor
* [Conditions] Added min/max values rather than set values for effect and time criteria. NOTE: This may break any custom code. Please back up your project before updating.
* Updated sort for adding stat modifications to things so the order is Type/Name, opposed to just Name.
* [Items] Fixed bug in "MatchDictionary" method where it may accidentally call the new Item Object and throw a Null Reference Exception.
* [Stats] Updated the new "Get" method to ensure that the stat recomputes when added, if there is an owner attached.
* Properties Code: Added a "Properties Code" export which will export a Properties.cs file that contains easy-to-use references to ItemObject, ItemAttribute, Stat, and Condition uids and scriptable objects. Easier to code using that, I would think, than having to copy.paste the Uid values :)
* [Conditions] Made the PointActions method virtual, so it can be overriden, helpful if you'd like to augment the value provided by other values.
* [Conditions] Added public reference to the owner.
* [Stats] Updated "Get" method with optional parameters to allow adding if Get returns null. Essentially means any Stat that you attempt to get a value for will be added if it does not already exist, and will not return null. This provides an easier way to add stats without having to actively add them prior to using them.
* [GameTime] Added a "Later" method which returns the GameTime + a float time period that you provide.
* [Items] Updated "Contains" to include option for Attritbute
* [Items] Split "Remove" to include a new "RemoveAll" method.
* Fixed a recurssive loop in the Conditions module
* Updated Count() method in GameItemObjectList.cs and GameItemAttributeList.cs to allow a string uid to be passed in, to return the count of objects matching that uid.
* Fixed some bugs keeping the project from building
* Updated IHaveInventory to be in the correct namespace
* Updated GameItemObject, GameItemAttribute, and GameItemObjectList (along with the "Stats & Conditions" demo scene) to fix a bug where GameItemAttribute stat values were not being computer.
* With the above, also ensured that Stats are SetDirty() when an item is added, transfered, or removed, or an attribute is added or removed, as long as owner is not null.
* Moved some files to the main /Editor folder, out of the Game Modules editor folder, so they can be utilized with other Infinity PBR content.
* Fixed bug when copying ItemAttribute settings in ItemObject objects
* [Audio Clip Combiner] Updated the Audio Clip Combiner, and added it as part of the Game Modules Bundle
* Added Conditions
* [Gametime] Fixed potential (rare) NaN bug
* [Stats] Added a Transfer() method to GameStatList.cs which will transfer an existing GameStat into this list.
* [Stats] Added a Clone() method to GameStat.cs
* Added the Conditions "WORK IN PROGRESS" to avoid some random errors with other components expecting them. However, it's not ready to be used :)
* [Inventory] Made "GotClicked" virtual so it can be overridden in the "Grid Button" prefab.
* [Dictionaries] Added AddNewKeyValue() version which allows a KeyValue to be passed, which will be cloned and added.
* [Items] Added an auto function that adds missing Dictionaries KeyValue objects to both GameItemAttribute and GameItemObject classes. (Must call Tick() during and Update() loop to run).
* Fixed some bugs when building with Utilities.cs
* [Items] Added "Dictionaries" to GameItemAttribute (it was already present in ItemAttribute)
* [Dictionaries] Fixed issue where it was possible for lists to be size 0. Lists will now always be size 1 or greater.
* [Stats] Updated GetMasteryLevel() to force recomputation if _masteryLevel is null
* [Items] Added an auto function that relinks inventoryPrefabs for any GameItemObjectList. (Must call Tick() during an Update() loop to run).
* [Items] Added RelinkPrefabs() to GameItemObject (which is what is called during the auto-update function above), which can be called when any data is loaded, to relink the prefabs.
* [Stats] Fixed a bug that could, in some cases, keep an affected stat from recomputing automatically.
* [GameTime] Fairly sizable update to address the maths and add correct maths on negative gameTime values (i.e. times before "start time")
* [GameTime] corrected namespace to InfinityPBR.Modules.Gametime
* [Items] Fixed a bug where Dictionaries Keys were not being added to ItemObjects
* [GameTime] Fixed a bug in the FullDate() method when the gametime provided is negative
* [GameTime] Added additional output options for FullDate()
* Moved IHaveLoot.cs into the correct folder.
* Updated repositories to, when in editor, update automatically OnValidate() [when play is pressed]
* Removed legacy files
* [Stats] Added min/max functionality to Points, Base Value, and Base Proficiency
* Fixed a null-check bug in the Dictionaries Module
* Updated Gametime in a variety of places
* Added SetOwner() to GameItemObjectList.cs and GameItemAttributeList.cs
* Added a DeleteItem() method to GameItemObjectList.cs and GameItemAttributeList.cs 3.0
* MAJOR RELEASE: Please backup before you update. This update WILL BREAK existing projects.
* Re-worked most of the modules from the ground up: Stats, Dictionaries, Items, and Loot
* Visit the documentation for the latest updates.
* Added the ability to select specific Item and StatOrSkill objects in custom Dictionaries.
* Added Unique ID to StatAndSkill objects
* NOTE: If you're upgrading an existing project, select each "Items" object and your "RPGData" object, which will set the Unique ID values for everything.
* Added Unique ID to Items
* Cleaned up some code
* Bug fix w/ the Items module
* Some cleanup
* Added a "Buff / Modification" demo to the Items module. See the video for more information.
* Removed need for define symbols.
* All modules now delivered in this download.
* Added Inventory Module
* Added Gametime Module
* Items Bug fix -- SetItemsDirty() was hidden without the Dictionaries module. This has been fixed.
* Stats & Skills - Bug fix with Skill Data Objects not serializing
* Bug fix
* Refactoring
* Stats and Skills now has dictionaries linked to Character Race and Character Class
* [Items Module] Made "Items" to be a class not a ScriptableObject -- this may affect existing projects!
* Code cleanup and refactoring
* Minor code updates
* Updated Dictionaries, Stats and Skills, and Items
First release (Not really)