CloneWith / osu

Another osu! client fork, tailored for tournament hosting
https://osu.ppy.sh
MIT License
1 stars 0 forks source link

Board view logic improvement #10

Closed CloneWith closed 3 months ago

CloneWith commented 4 months ago

Various problems have found in OFFC Test Match:

NaughtyChas commented 4 months ago
  • [x] Rewrite the beatmap list logic (manually specified)

Beatmap listing can be achieved by edit beatmaps in correct order inside Rounds Editor:

Rounds Editor Board
image image

Listing from top to bottom in Rounds Editor will result in a expected order from top to bottom, from left to right.

This issue is worth to be re-thinked.

CloneWith commented 4 months ago

Not until now have I reliazed this trick! So I think we temporarily don't need a Board-specific editor?

NaughtyChas commented 4 months ago

Not until now have I reliazed this trick! So I think we temporarily don't need a Board-specific editor?

Depends on display logic of EX Screen. The board should in 4x4 size, adding more than 16 beatmaps will cause board display issue, as shown in the pic below:

image

In this case I have added 16 + 4 beatmaps in current round, for 16 maps in board & 4 EX maps. The board is now in a 4x5 display which is not we are expecting.


Here are some potential solution towards this issue:

  1. Change board's beatmap display logic to make it not render beatmaps labelled as EX.
  2. Add a EX editor.

It is obvious that the second solution should be easier to implement. Problem is it will cause some degree of redundant if we add a dedicated tab on the left. A suggested approach is to add four input boxes on the right of the EX screen, each of them accept beatmap IDs, for EX 1-4 respectively.

Take a look at commit 347b9e8 which demonstrate the concept.

CloneWith commented 4 months ago

I think we've somehow implemented solution 1 in the EX Stage view, where we only add mod=EX beatmaps to the list, refer to this commit.

Noticeably a disadvantage of this implementation is portability, which means we can't use other mod names other than EX to make a map visible in EX view. Chances are that I'll add this as a JSON argument and enable it to be configured in the main settings screen.

NaughtyChas commented 4 months ago

I think we've somehow implemented solution 1 in the EX Stage view, where we only add mod=EX beatmaps to the list, refer to this commit.

Noticeably a disadvantage of this implementation is portability, which means we can't use other mod names other than EX to make a map visible in EX view. Chances are that I'll add this as a JSON argument and enable it to be configured in the main settings screen.

Solution 1 is indeed already implemented in the code, and it works well in the perspective of EX view. However adding 4 extra EX maps in Round Editor, with Mods defined as EX with blank Mod Index, these maps somehow will display in the board, which is not expected.

Round Editor
image image

The first solution can be marked as complete only when these EX Maps are not being rendered on the board view.

CloneWith commented 4 months ago

The first solution can be marked as complete only when these EX Maps are not being rendered on the board view.

Fixed in the latest commit.

Map Settings Board View
Settings Board
NaughtyChas commented 4 months ago

The first solution can be marked as complete only when these EX Maps are not being rendered on the board view.

Fixed in the latest commit.

Map Settings Board View Settings Board

Reviewed, cheers for your fantastic work! This issue can be drown to a close, since we have addressed how we're going to fill the board with corresponding beatmaps.

NaughtyChas commented 3 months ago

commit bc3507f added board arrangement edit based on Board row/column. only input boxes are being created so far:

image


  • [x] Rewrite the beatmap listing logic (manually specified)

Re-opening this issue and the first task, as no specific methods is being declared so far to put correspond beatmap into boxes. Re-check it if we complete this.


As we have to give every beatmap a position, automatic EX situation and winning judgement should be easier to get implemented. Opening new issue at #17 .

CloneWith commented 3 months ago

Re-opening this issue and the first task, as no specific methods is being declared so far to put correspond beatmap into boxes.

This is implemented in our recent commits.

The switch

To prevent boards being broken by maps with undefined board coodinates, I've added a switch in the header of each round. To use the manually set position, we just need to turn the switch on and then it will work.

NaughtyChas commented 3 months ago

@CloneWith are there any thing left we haven't finish in this issue? Closing this issue if ready.

CloneWith commented 3 months ago

Seemingly most stuff about this has been done, and we can safely close this now.