Changelog¶
All notable changes to the LoL Gameplay Kit are documented here. Format follows Keep a Changelog; versioning is semver. 0.x releases are internal; APIs may break between minors until 1.0.0.
[Unreleased]¶
[0.1.0] — in development¶
Added¶
- Sample scenes, fully self-contained inside the package (
Samples/Scenes/):KitShowcase(service modules + calendar HUD),InteractionDemo(player/interactables/facing cone),TooltipDemo(uGUI TooltipPanel + hover item slots). The demos run in a brand-new project that imports only the package: each scene embeds anImprovedGameInitializerwith a minimal sampleServiceConfiguration(events/pool/time/RNG — mirroring LoLEngine Samples), and the Kit's Resources catalogs (GameplayKitConfig,CalendarConfig,ItemDatabase,ContractCatalog,DeductionMatrix) ship inSamples/Content/Resources/. Sample scripts wait onSampleEngineWait.UntilReady()before resolving services. Runtime components that resolve services inStart/OnEnable(InteractionDetectorComponent,TooltipViewComponent,TooltipTriggerComponent) retry lazily so they recover once async engine initialization completes. Each scene shows an on-screen instructions panel ("What this demonstrates" / "Try" card, matching LoLEngine's samples). Rebuild via Tools → LoLGameplayKit → Build Sample Scenes. - Package skeleton: embedded package at
Assets/GameplayKit, asmdef-per-module topology (Core, Items, Flags, Calendar, Interaction, Contracts, Deduction, UI + Editor + Tests). - The four integration contracts (save / RNG / events / config) as Core conventions, with the RNG contract enforced by an edit-mode source guard test.
GameplayKitConfig(per-module enable toggles, loaded fromResources); per-module auto-discoveredIServiceRegistrars (the engine constructs registrars parameterlessly).- WorldFlags (
LoLEngine-GameplayKit-Flags): typed global variable store (bool/int/float/string), headlessWorldFlagStorecore,IWorldFlagService, save-integrated (gameplaykit.flags), pooledWorldFlagChangedEvent, live editor inspector window, sample, docs. - Calendar (
LoLEngine-GameplayKit-Calendar): day/phase counter with manual advance and save-safe id-keyed scheduled callbacks (ICalendarService,CalendarConfig,gameplaykit.calendarsave domain), deterministic rollover event order, sample, docs. - Items (
LoLEngine-GameplayKit-Items): data-driven item definitions (ItemDefinition,RarityDefinition, typed custom-property bags), headlessItemIndex(id/tag/rarity queries),IItemDatabaseService+ Resources-loadedItemDatabase, edit-time validation with a menu command, sample, docs. Static content — deliberately no save domain or events. - Interaction (
LoLEngine-GameplayKit-Interaction): headlessInteractionResolver(range/facing gates, nearest-wins, stable tie-break),IInteractable/InteractableComponentwith LocString verbs, registry-based input-agnosticInteractionDetectorComponent(consumer callsTryInteract()), pooled focus/blur/interact events — including blur from a cached identity when the focused object is destroyed. Sample, docs. - Tooltip (
LoLEngine-GameplayKit-UI): headlessTooltipContentmodel +ITooltipService(engine-free, UI-free logic),ItemDefinitionbinding with rarity-tinted titles, stock uGUITooltipViewComponent(cursor-follow guarded for new-input-only projects) and hoverTooltipTriggerComponent, sample, docs. - Contracts (Contracts-lite) (
LoLEngine-GameplayKit-Contracts): commissions with requirement predicates (has-item via a game-suppliedIContractItemCountProvideradapter, flag checks via WorldFlags), calendar-day deadlines (inclusive deadline day, expiry on next day start), and rewards (flags applied, items emitted onContractCompletedEventfor the game to grant). HeadlessContractBookwith deterministic instance ids,IContractService,gameplaykit.contractssave domain, four pooled events, sample, docs. Covers a Pinakes Retrieval Request as-is. - Deduction (seed) (
LoLEngine-GameplayKit-Deduction): subject×property truth matrix (DeductionMatrix,DeductionPropertyDefinition), headlessKnowledgeBook(reveal state + guess commitment with per-propertyGuessReport),IKnowledgeService,gameplaykit.deductionsave domain, pooled reveal/guess events, sample, docs. Seed scope — no hints, confidence tiers, inference, or UI; sized for the Pinakes catalog commit-click. - Compatibility: LoL Engine 1.0.3, Unity 6000.0.