# IdleKit Tools Change Logs

## Version L.3.0 2021-07-26
* *FEATURE* Add network connection indicator to the HeaderUI prefab used in the showcase.
* *FEATURE* Add LocalNotificationService which wraps Unity's Mobile Notifications package to provide mobile notification scheduling functionality on iOS and Android.
* *FEATURE* Add `ReviewRequesterService`, which is responsible for bringing upo native iOS/Android in app review dialogs.
* *FEATURE* Add a slew of debug tools for the new services: `PurchasingService`, `ReviewRequesterService`, `LocalNotificationService`, `PromosService`, `LeaderboardService`

## Version L.2.1, 2021-04-29
*FEATURE* Update Beamable to 0.9

## Version L.2, 2021-04-07
### Debug
* *FEATURE* Added a debug console tool for viewing console in builds.
* *FEATURE* Added Beamable and Error logging to the jenkins pipeline.
* *FIX* Fixed a bug with the Commit Id debug tool, where the tool would sometimes throw an error in a fresh repository.

## Version L.1.0, 2021-02-10

### General
* *FEATURE* Beamable has been added as a framework which will manage IdleKit's remote data in the cloud, as well as provide simpler tools for data authoring to game designers. Please see our [UPGRADENOTES.md](https://github.com/Idlekit/idlekit-tools/blob/release-L.x/UPGRADENOTES.md) file for more details on how to fix any Entity errors you might have after upgrading.

### DataAssetImporter
* *CHANGE* The Data Asset Importer has been deprecated. Please see our [UPGRADENOTES.md](https://github.com/Idlekit/idlekit-tools/blob/release-L.x/UPGRADENOTES.md) file to see how data is now imported into IdleKit.
* *CHANGE* `IKManifest` has been deprecated, as data will now be imported into Beamble using the YAMLton pipeline.

### Debug
* *FEATURE* Added a class `CanvasDebugBeamableCli` which is used for carrying out standard Beamable console commands and copying their results to clipboard.

### Events
* *FEATURE* `CanvasEventView` and `CanvasReturnToMainConventView` have been updated with the new Beamable event API. Both now display information for the current event phase. Refer to the CHANGELOG.md in the `idlekit-gameplay` repo for more information on the changes to the Event data structure.

### GuidReferenceHelper
* *CHANGE* The helper now uses `ISingleDataProvider<IData>` instead of `IGuidReferenceableAsset` to establish reference linking between different `DataAssets`.

### Installers
* *FEATURE* Added a `RemoteInstaller` which is responsible for setting up and linking the components required for IdleKit's integration with Beamable.

### Startup
* *CHANGE* `CanvasStartup` has been made abstract, as its been replaced by the new `RemoteStartup` and `LocalStartup` classes. See our [UPGRADENOTES.md](https://github.com/Idlekit/idlekit-tools/blob/release-L.x/UPGRADENOTES.md) file for more details.
### Tests
* *CHANGE* Instead of using `SimpleStartup` the `ContextTest` now uses a newly created class `TestSimpleStartup`, which serves as a placeholder on the test Gameobject and is set up in the `Setup` phase.

## Version L.0.0, 2020-11-18

### General
* *CHANGE* Formatting cleaned up to follow the IdleKit coding standard: Public properties renamed using upper camel case. Property and methods access levels downgraded to
  protected where possible.

### AssemblyUtil
* *CHANGE* Moved `AssemblyUtil` to the idlekit-core repo. 

### Class Generation Tool
* *REMOVE* Class generation tool has been removed from the project as it is often unstable, hard to maintain, and used only sparingly by our partners.

### Data Asset Creators
* *CHANGE* Data Header constants split out into separate files for a variety of Data Asset Creators.
* *CHANGE* A number of new Data Asset Creator classes inheriting `BaseDataAssetCreator<TDataAsset>` created to split functionality for each type of data asset
created during the data import process.

### Data Asset Importer
* *FEATURE* Importing a single data sheet now updates the entities database if it can be found in the output folder. This is done inside `SimpleEntitiesDatabaseHelper`.
* *FEATURE* Added functionality to import `StoreReward`, `StoreTimedReward`, and `StoreUpgradeableCurrencyCollection` data.

### Guid Reference
* *CHANGE* The Guid Ref helper now supports display of nested assets that share a single path.

### Installer
* *CHANGE* Renamed `DummyInstaller` to `SimpleInstaller`.

### Load Phase
* *CHANGE* `InjectComponentsLoadPhase`and `LoadPlotPointDataLoadPhase` now extends `SequenceableBase`.
* *CHANGE* `SimpleStartup` has been updated to match the load phase changes.

### PlotPoint Editor
* *CHANGE* `PlotPointEditor.SaveSequence` has been simplified and refactored into a number of methods to improve readability and extensibility.
* *CHANGE* `Tools.PlotPointEditor` namespace has been added to the PlotPoint Editor classes.
* *CHANGE* Added a prompt to the sequence deletion process.
* *CHANGE* Added `FramePanel.cs` which handles Plot Point Frame creation/manipulation.

### Store
* *FEATURE* Added `StorePanel`, `StoreGachaRewardPanel`, `StoreRewardPanel`, `StoreUpgradeableCurrencyPanel`, and `StoreUpgradeableCurrencyCollectionPanel` for the Store feature.
* *CHANGE* Renamed `TimerTrunkPanel` to `StoreTimedRewardPanel`.

### Tests
* *CHANGE* Tests moved to `Idlekit.Gameplay`: IdleKit Gameplay/Tests, and to `Idlekit.Core`: IdleKit Core/Tests. Moved to adhere to Unity Package Manager development guidelines.

### Trade
* *CHANGE* Moved `Exchange` to the idlekit-gameplay repo.

### UI
* *CHANGE* `Collector` and `Generator` UI info buttons now also display the `IPayoutEntity` id, type, and amount.
* *BUGFIX* Fixed an issue when the `MilestonePanel` scroll kept getting reset when there is an UI update in the game such as when an ICurrency is collected.
