Repository navigation
Conversation
# Conflicts: # src/mods/Loader.lua
# Conflicts: # docs/modding.md # src/mods/Loader.lua # src/world/WorldAPI.lua
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Native GBA Lock-On/Mind Reader currently stores a one-use pointer on the attacker. The actual native path owns a two-residual-phase binding on the target, including its originating side/slot. Consequently repeated checks, subsequent attacks and switching expose different accuracy-hook behavior.
Add target-owned native state shared by the ordinary accuracy and OHKO paths. Run the producer's Substitute/accuracy/Protect/semi-invulnerability checks in the observed order. Expire through real residual processing, clear owner bindings on replacement, preserve unrelated partners, drop normal target replacements and retain the existing explicit Baton Pass switch-entry transfer semantics. Both direct primary assignment and placed/forced replacements participate. Older games and authored legacy pointer consumers keep their previous behavior.
Native command revision 2 enters full GBA fingerprints; an explicit revision guard also prevents custom fingerprints from admitting different native rules. Matching party codecs can still negotiate shared trade data. Include owned duration/side/slot in active-state components, canonicalized across host/guest coordinates.
This stacks on #216. Gen1 is an unchanged read-only reference; no Gen1 publication or code changes.
Validation on clean feature
0905dcd005d102c33d31fad12d2082290d76f56c:535a5ec088c1ae1bf4d91dd3e35a56f64cf46d91. All prior modes remain. New cases invoke actual move resolvers, repeated accuracy checks, residual sweeps and switch functions, retaining raw ownership, PP/HP, every bounded RNG call/value and public accuracy/damage/move-event calls.LOCK_ONthrough the shared public enemy-action consumer, execute two Tackle hits and two actual end-of-turn sweeps. Ownership, one accuracy-hook call, duration retention and expiry pass. CPU-only; controlled HP avoids KO. No ROM/cache assets or saves are distributed.2fd444270c3d90dbtocf73a8e083fb8a54, independently audited with the unchanged Preserve native GBA party genetics across trades and link battles #216 hasher and only the explicit command-revision token. Non-GBA goldens remain unchanged.Scope: this establishes native Lock-On command/state/switch-entry contracts. The full Baton Pass move/UI chooser, other side/volatile producers, native egg legality, global RNG/VBlank scheduling and live UI/full-playthrough acceptance remain separate. The explicit Baton Pass switch entry is tested without claiming its whole chooser lifecycle. See
docs/native-gen3-lock-on.mdfor reproducible commands and limits.Combined fork acceptance: runtime
244d2367da28e6205611fc79c5fd16093315d451passes 226/226 engine suites, SDK 3/3 and B30, with all 84 workers / 59,820 paired observations still equal and the actual imported-record smoke passing. Integration preserves the fork's existing GBA item/residual scheduler, ticking the new state ingen3BattlerCountersTickrather than restoring the old monolithic sweep. The documented snapshot is pushed asc5a58284a82276da4134a2d1cac6f17fa445d07dtoRoxas2712/Gen2Recomped:codex/portability-testing. Forkmainremains13af468b.All seven hosted workflows currently require maintainer approval (
action_required). The dedicated contract run has zero jobs; local acceptance does not claim hosted execution. The app's 100-artifact cap prevented an additional attachment; the regular PR remains published and linked.