Achievement
- Re-write some code to let the ruleset able to support different type of stage.
- Add three more stars in this proejct.
- Trying to reduce working hours but seems failed ;_;
- Not very sure, maybe andy and this project is full of mistake and there’s no achievement actually.
- Add new stage section for the chagne log.
Beatmap
- Move fill the working property method into the hit-object to make the
beatmap processor
simple. karaoke - Stage info can be invalidate in the editor. Means we can see the change in the editor if any property related to the stage changed. karaoke
Code quality
Regular clean up code. karaoke
Convert to using declaration to make the CI happy. karaoke
from:using (var sw = new StreamWriter(ms)) { var encoder = new KaraokeLegacyBeatmapEncoder(); string encodeResult = encoder.Encode(beatmap); sw.WriteLine(encodeResult); }
to:
using var sw = new StreamWriter(ms); var encoder = new KaraokeLegacyBeatmapEncoder(); string encodeResult = encoder.Encode(beatmap); sw.WriteLine(encodeResult);
Refactor the change handler test. karaoke
Setting
- Remove the font size adjustment in the config. karaoke
Stage
- Implement the base class for the stage element for collecting the shared info like
ID
andName
. karaoke - Should be able to clear the whole elements in the stage category. karaoke
- Add
stage element
as working property in thenote
and thelyric
for able to apply the stage effect in thedrawable lyric
easily. karaoke - Auto-create and initialize the beatmap stage if current stage in the beatmap is empty. karaoke
- Implement base stage definition class. Technically, one stage info should only one stage definition to recording something like playfield size, lyric fading effect or anything related to the stage and can be configurable. karaoke
- Add serializer for the preview stage info. karaoke
Technically, we will not save the preview stage info info into the beatmap but still make the serializer.
- Should invalidate the stage elements working property in the beatmap processor if beatmap stage changed. karaoke
- Implement stage effect applier for the note and the lyric. karaoke
We need a class for able to convert the stage elements into the transformers that can affect the hit-object like adjust the lyric preempt effect or moving position.
- Define the interface for able to affect the drawable hit-object in the whole lifecycle. karaoke
The
stage element
should be able to affect theinitial transformer
(the transformer when the drawable hit-object appear) ,start time transformer
(the transformer for the drawable hit-object’s start time) andhit state transformer
(the transformer for the drawable disappear). - Add
preempt time
in thelyric
/note
becausestate element
might affect thepreempt time
in thedrawable hit-object
. karaoke - Implement the playfield stage applier. karaoke For able to adjust the property in the playfield like change the size or add the drawable.
- Introduce: Preview stage. karaoke
Not much words to say, it’s the new stage that can show the lyric and cover without mappers to create the stage. Players can have a “playable” stage before the first stage(classic stage) editor created.
- Create
PreviewStageInfo
class. karaoke - Implement stage mods for able to force use the
preview stage
orclassic stage
. Will create the default stage in the mod if there’s no matched stage in the beatmap. karaoke - Implement preview stage timing calculator. karaoke
We need a algorithm to calculate the timing lyric should be moved to the target of line.
- Add more properties(e.g. fading duration and effect for the lyric) in the default stage definition. karaoke
- Let preview stage timing calculator support delay effect. karaoke
- Implement the preview stage’s lyric transformer effect. karaoke
- Implement the drawable to show the beatmap cover and some basic info. karaoke
- Should not use overlay colour in gameplay component(beatmap cover info). karaoke
- Implement the stage applier for the preview stage. karaoke
- Adjust the stage layout for the preview stage with scorable or non-scorable. karaoke
- Think about should change the lyric position by the playfield or applier if using the default stage info. karaoke
The final answer is we should write more logic into the applier as possible.
- Use applier in the
drawable lyric
andplayfield
. karaokeIt’s the final PR to make the
stage applier
or thehit-object applier
works.
- Create