Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Timings "do not work properly" #26

Open
srockw opened this issue Jul 14, 2023 · 6 comments
Open

Timings "do not work properly" #26

srockw opened this issue Jul 14, 2023 · 6 comments

Comments

@srockw
Copy link
Contributor

srockw commented Jul 14, 2023

HH, BWHH, FMM and Pessi do not work when using strafe keys (for hh and bwhh) and key combinations, like W+D, W+A, S+A, S+D.

I would try adding this myself, but I simply cannot comprehend the strats.json file, would be nice to have an explanation of it somewhere...

@ghost
Copy link

ghost commented Jul 14, 2023

I took a look at the parsing of the file. It seems that timing entries are just conditions (you may want to look at the Operator enum in Timing.java) with the keys defined in the Player class.

The format of the timings entires seems to be the following: "{condition}:{key inputs}".
So, for example, in the timing entry "a{1,1}:WJ", the condition is a{1,1}, which means the value of a (variable, but not sure where its set) must be equal to 1. The key inputs associated with this condition are WJ, indicating that the player should press the W key (forward movement) and J key (jump) simultaneously.

@kurrycat2004
Copy link
Owner

the variable a in this case is set when it tries to match the WJ. meaning if you put a{1,1}, a will always be 1 but if you put just a:W and in game you do something like W W W WJ then a would be 3 because it managed to find 3 consecutive W inputs. every strat will try to match from a stop tick (no inputs but on ground) and the longest matching will be shown

@kurrycat2004
Copy link
Owner

@kurrycat2004
Copy link
Owner

there is currently no nice way go add an optional strafe to strats because i havent found a nice way to represent that in the strats.json yet. doing something like W(A|D) for a or d and WA?D? for W, WA or WD could work but the problem is how to then pass that information on what strafe key is pressed to the format string

@srockw
Copy link
Contributor Author

srockw commented Jul 14, 2023

but the problem is how to then pass that information on what strafe key is pressed to the format string

Is it really necessary to specify what keys were used in the timing? I believe not, there are other labels for that imo

@kurrycat2004
Copy link
Owner

ig i could just always check the mirrored version of a timing too, if it has strafe keys. that was the first idea i had and i think the mirror method still exists so that should be easy

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

No branches or pull requests

2 participants