• Visit Honorbuddy
  • Visit Rebornbuddy
  • Visit Demonbuddy
  • Visit Exilebuddy
  • Visit Hearthbuddy
  • Visit Pokefarmer
  • Visit Buddystore

Exilebuddy Alpha (2.6+) Release Thread

Discussion in 'Exilebuddy Alpha' started by pushedx, Apr 16, 2017.

Thread Status:
Not open for further replies.
  1. pushedx

    pushedx Moderator Moderator Buddy Core Dev

    Joined:
    Sep 24, 2013
    Messages:
    3,558
    Likes Received:
    40
    Trophy Points:
    48
    Under construction

    About:

    This thread will serve as the Exilebuddy Alpha Release Thread for 2.6. A different thread will be made for 3.0 when it is ready.

    The purpose of this thread is to provide the optional means of transitioning into upcoming changes through the current stable game version (2.6.0.9) to help reduce the work required when the 3.0 update is released.

    This is a development build and is not intended for non-developer use. Existing Beta/Release content is *not* compatible without updates. Additional significant changes are planned, but by understanding these changes now, developers will have less adjustments to make in the future.

    Change details: https://www.thebuddyforum.com/threads/big-thread-of-upcoming-3-0-changes.299068/

    Changelog:

    Code:
    Global
    * Exilebuddy now uses VS 2017.
    * Buddy.Overlay removed.
    * MahApps updated to 1.5.0 from 1.4.3.
    * Newtonsoft.Json updated to 10.0.2 from 9.0.1.
    * Previously marked Obsolete entries removed:
    ** InventoryControlWrapper.EssenceTabItem, InventoryControlWrapper.CurrencyTabItem [use CustomTabItem].
    ** InventoryControlWrapper.GetItemCost [use GetItemCostEx]
    ** DatQuestStateWrapper.StateId [use Id]
    ** StashUi's currency tab API [use StashUi.CurrencyTab API instead]
    ** Explorer.Delegate [use CurrentDelegate]
    
    Loki.Game
    * Objects.Items revamps, optimizations, and caching.
    ** SocketableItem removed. [Use Item.ObjectTypeIsSocketableItem rather than 'Item is SocketableItem']
    *** SocketedSkillGemsByLinks now returns a List rather than an IEnumerable.
    ** LinkedSocketColors now returns a List rather than an IEnumerable.
    ** Currency removed. [Use Item.ObjectTypeIsCurrency rather than 'Item is Currency']
    ** Armor removed. [Use Item.ObjectTypeIsArmor rather than 'Item is Armor']
    ** Map removed. [Use Item.ObjectTypeIsMap rather than 'Item is Map']
    *** MonsterPackSize -> MapMonsterPackSize
    *** ItemQuantity -> MapItemQuantity
    *** ItemRarity -> MapItemRarity
    *** RawItemRarity -> MapRawItemRarity
    *** RawItemQuantity -> MapRawItemQuantity
    *** Tier -> MapTier
    *** Level -> MapLevel
    *** Area -> MapArea
    ** Shield removed. [Use Item.ObjectTypeIsShield rather than 'Item is Shield']
    ** SealedProphecy removed. [Use Item.ObjectTypeIsSealedProphecy rather than 'Item is SealedProphecy']
    *** Difficulty -> ProphecyDifficulty
    ** Weapon removed. [Use Item.ObjectTypeIsWeapon rather than 'Item is Weapon']
    ** Flask removed. [Use Item.ObjectTypeIsFlask rather than 'Item is Flask']
    ** Leaguestone removed. [Use Item.ObjectTypeIsLeaguestone rather than 'Item is Leaguestone']
    ** SkillGem removed. [Use Item.ObjectTypeIsSkillGem rather than 'Item is SkillGem']
    *** GemTypes now returns a List rather than an IEnumerable.
    *** GetAttributeRequirements now returns a bool if the function was performed or not.
    *** Level -> SkillGemLevel
    
    Loki.Bot
    * IPlayerMover updates.
    * DefaultPlayerMover updates.
    * IMandatory removed as it's no longer needed.
    * IPlugin no longer forces an implementation of IRunnable
    * IRunnable split into two new interfaces
    * ITickEvents.Tick to receive Tick events
    * IStartStopEvents.Start/Stop to receive Start/Stop events
    * ILogic split into ILogicProvider and IMessageHandler; IBot, IRoutine, IPlugin, and ITask affected.
    * ITask.Run interface function added to hold main task logic instead of relying on "task_execute".
    * IContent added. This is basically an IPlugin without IEnableable.
    * TaskManager.Execute -> SendMessage to handle Message objects.
    * TaskManager.Logic -> ProvideLogic to handle Logic objects.
    * TaskManager.Run added to run the main task function.
    * ThirdPartyInstance.ContentInstances added.
    * Utility.BroadcastEventExecute -> BroadcastMessage
    * Utility.BroadcastEventLogic -> BroadcastLogicRequest
    * PluginManager now allows plugins that don't implement IStartStopEvents to be enabled/disabled at runtime
    * ThirdPartyLoader will now fail to load content that is missing files referenced in their FileList.
    
    Exilebuddy
    * ContentManager is now intitialized before BotManager.
    * Settings window updates for IContent support and the layout changes.
    * Settings window now allows plugins that don't implement IStartStopEvents to be enabled/disabled at runtime
    
    Bots / Plugins / Routines
    * "Event" model updated. Old code that used Logic for events now uses Messages.
    ** For example: "core_player_died_event" is now handled in IMessageHandler.Message.
    * Tasks updated to new model. For most tasks this means:
    ** ILogicProvider.Logic added as an empty coroutine that returns LogicResult.Unprovided.
    ** IMessageHandler.Message added as an empty function that returns MessageResult.Unprocessed;
    ** The old Logic(string type, params dynamic[] param) coroutine is now just Run()
    *** If the coroutine only checked for "task_execute", then the logic can stay as-is.
    *** Otherwise, the non-"task_execute" logic now goes in ILogicProvider.Logic.
    *** Exception: Tasks that run via a second TaskManager can be setup differently - see AutoPassives, Monoliths, GemLeveler, and Breaches as an example.
    * Content compiling updates:
    ** Content should now include Properties\AssemblyInfo.cs.
    ** AssemblyVersion should be set as so: [assembly: AssemblyVersion("1.0.*")]
    ** AssemblyVersion should have the following: [assembly: AssemblyKeyFile("ThirdParty.snk")]
    ** Content is now Strong Name Signed via ThirdParty.snk.
    ** ThirdParty.snk can be copied into local projects so code compiles on your side.
    * Existing plugins now only implement the relevant ITickEvents /IStartStopEvents interfaces.
    * Content does not need to log Start/Tick/Stop/Enable/Disable/Initialize/Deinitialize events anymore, these are taken care of on the bot side for consistency.
    * CommonEvents now exists for Legacy and Default content as two separate content providers that are only Ticked by bot bases that use them.
    

    Downloads:

    2.6.0.9 - Coming Soon
     
    Last edited: Apr 19, 2017 at 12:13 AM
Thread Status:
Not open for further replies.

Share This Page