Skip to content

Timing improvements and fixes#55

Merged
Exterminate5573 merged 15 commits intoMPKMod:masterfrom
Zpiboo:feature/better-timings
Mar 18, 2026
Merged

Timing improvements and fixes#55
Exterminate5573 merged 15 commits intoMPKMod:masterfrom
Zpiboo:feature/better-timings

Conversation

@Zpiboo
Copy link
Member

@Zpiboo Zpiboo commented Mar 17, 2026

The timing definition format and the programmatic model were improved in order to fix the following issues:

  • Some timings used to require sprinting while they should not in theory
  • Timings were only doable in a single direction (rex bwmm with A, pessi/hh timings with W)

Key changes

  • All timing classes were made JSON-deserializable
  • TimingInput was split in two:
    • InputPredicate serves as the theoretical input predicate representation
    • TimingInput now only represents concrete player input
  • InputPredicate is more flexible and lets you define which keys are required, forbidden and optional
  • InputPredicateReference lets you reference a past InputPredicate to match the same inputs across timing entries

Zpiboo added 15 commits March 2, 2026 13:23
- Enforce bounds order in the constructor
- Rename isAbove method to isValueAbove
- Create isValueBelow method
- Add equals method
These new classes aim to replace one of the current two responsibilities of TimingInput: it can represent both actual player input and a theoretical input predicate.
The next commit fixes this by making it only an actual input model.
This tightens TimingInput's responsibility, which used to also be used for input predicates. The latter are now represented using the new InputPredicate* classes.
@Exterminate5573 Exterminate5573 merged commit b11a863 into MPKMod:master Mar 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants