Menu text refactor
This commit is contained in:
parent
68dc0199c1
commit
10bb94bc15
|
@ -87,6 +87,8 @@ const UV_ARRAY_D_ROLL := PoolVector2Array([
|
||||||
])
|
])
|
||||||
|
|
||||||
# Color definitions
|
# Color definitions
|
||||||
|
const COLOR_MENU_TEXT = Color(0.95, 0.95, 1.0)
|
||||||
|
|
||||||
const COLOR_TAP := Color(1, 0.15, 0.15, 1)
|
const COLOR_TAP := Color(1, 0.15, 0.15, 1)
|
||||||
const COLOR_TAP2 := Color(0.75, 0.5, 0, 1) # High-score taps ("breaks" in maimai)
|
const COLOR_TAP2 := Color(0.75, 0.5, 0, 1) # High-score taps ("breaks" in maimai)
|
||||||
const COLOR_HOLD := Color(1, 0.15, 0.15, 1)
|
const COLOR_HOLD := Color(1, 0.15, 0.15, 1)
|
||||||
|
|
|
@ -95,7 +95,7 @@ func _process(delta):
|
||||||
NoteHandler.load_track(song_key, Library.Song.default_difficulty_keys[selected_difficulty])
|
NoteHandler.load_track(song_key, Library.Song.default_difficulty_keys[selected_difficulty])
|
||||||
NoteHandler.running = true
|
NoteHandler.running = true
|
||||||
|
|
||||||
func draw_string_centered(font, position, string, color := Color.white):
|
func draw_string_centered(font, position, string, color := GameTheme.COLOR_MENU_TEXT):
|
||||||
draw_string(font, Vector2(position.x - font.get_string_size(string).x/2.0, position.y + font.get_ascent()), string, color)
|
draw_string(font, Vector2(position.x - font.get_string_size(string).x/2.0, position.y + font.get_ascent()), string, color)
|
||||||
|
|
||||||
func draw_songtile(song_key, position, size, title_text:=false, difficulty=selected_difficulty, outline_px:=3):
|
func draw_songtile(song_key, position, size, title_text:=false, difficulty=selected_difficulty, outline_px:=3):
|
||||||
|
@ -191,21 +191,21 @@ func _draw_chart_select(center: Vector2) -> Array:
|
||||||
var r = draw_songtile(selected_song_key, Vector2(x, center.y), size, false, i_diff, width)
|
var r = draw_songtile(selected_song_key, Vector2(x, center.y), size, false, i_diff, width)
|
||||||
touchrects.append({rect=r, chart_idx=i_diff})
|
touchrects.append({rect=r, chart_idx=i_diff})
|
||||||
x += size + spacer_x
|
x += size + spacer_x
|
||||||
draw_string_centered(TitleFont, Vector2(center.x, center.y+size+32), Library.all_songs[selected_song_key].title.n, Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(center.x, center.y+size+32), Library.all_songs[selected_song_key].title.n)
|
||||||
|
|
||||||
var sel_chart: Array = charts.values()[min(selected_difficulty, len(charts)-1)]
|
var sel_chart: Array = charts.values()[min(selected_difficulty, len(charts)-1)]
|
||||||
var all_notes: Array = sel_chart[1]
|
var all_notes: Array = sel_chart[1]
|
||||||
var meta: Dictionary = sel_chart[0]
|
var meta: Dictionary = sel_chart[0]
|
||||||
|
|
||||||
draw_string_centered(TitleFont, Vector2(center.x-50, center.y+size+80), 'BPM:', Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(center.x-50, center.y+size+80), 'BPM:')
|
||||||
draw_string_centered(TitleFont, Vector2(center.x+50, center.y+size+80), str(song_data.BPM), Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(center.x+50, center.y+size+80), str(song_data.BPM))
|
||||||
|
|
||||||
var notestrs = ['Taps:', 'Holds:', 'Slides:']
|
var notestrs = ['Taps:', 'Holds:', 'Slides:']
|
||||||
var notetypes = [0, 1, 2]
|
var notetypes = [0, 1, 2]
|
||||||
var note_counts = [meta.num_taps, meta.num_holds, meta.num_slides]
|
var note_counts = [meta.num_taps, meta.num_holds, meta.num_slides]
|
||||||
for i in len(notestrs):
|
for i in len(notestrs):
|
||||||
draw_string_centered(TitleFont, Vector2(center.x-50, center.y+size+148+i*50), notestrs[i], Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(center.x-50, center.y+size+148+i*50), notestrs[i])
|
||||||
draw_string_centered(TitleFont, Vector2(center.x+50, center.y+size+148+i*50), str(note_counts[notetypes[i]]), Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(center.x+50, center.y+size+148+i*50), str(note_counts[notetypes[i]]))
|
||||||
|
|
||||||
return touchrects
|
return touchrects
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ func _draw_score_screen(center: Vector2) -> Array:
|
||||||
var judgement_text_height = 64 * judgement_text_scale
|
var judgement_text_height = 64 * judgement_text_scale
|
||||||
|
|
||||||
draw_songtile(song_key, Vector2(x_songtile-size/2.0, y), size, false, selected_difficulty, 3)
|
draw_songtile(song_key, Vector2(x_songtile-size/2.0, y), size, false, selected_difficulty, 3)
|
||||||
draw_string_centered(TitleFont, Vector2(x_songtile, y+size), Library.all_songs[song_key].title.n, Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(x_songtile, y+size), Library.all_songs[song_key].title.n)
|
||||||
var notestrs = ['Taps (%d):'%meta.num_taps, 'Holds (%d) Hit:'%meta.num_holds, 'Released:', 'Stars (%d):'%meta.num_slides, 'Slides:']
|
var notestrs = ['Taps (%d):'%meta.num_taps, 'Holds (%d) Hit:'%meta.num_holds, 'Released:', 'Stars (%d):'%meta.num_slides, 'Slides:']
|
||||||
var notetypes = [0, 1, -1, 2, -2]
|
var notetypes = [0, 1, -1, 2, -2]
|
||||||
var note_spacing = [0.0, 1.25, 2.25, 3.5, 4.5]
|
var note_spacing = [0.0, 1.25, 2.25, 3.5, 4.5]
|
||||||
|
@ -251,9 +251,9 @@ func _draw_score_screen(center: Vector2) -> Array:
|
||||||
|
|
||||||
for i in len(judgestrs):
|
for i in len(judgestrs):
|
||||||
# For each judgement type, print a column header
|
# For each judgement type, print a column header
|
||||||
# draw_string_centered(TitleFont, Vector2(x2+x_spacing*(i+1), y2), judgestrs[i], Color(0.95, 0.95, 1.0))
|
# draw_string_centered(TitleFont, Vector2(x2+x_spacing*(i+1), y2), judgestrs[i])
|
||||||
draw_texture_rect_region(tex_judgement_text, Rect2(x2+x_spacing*(i+1)-judgement_text_width/2.0, y2, judgement_text_width, judgement_text_height), Rect2(0, 128*(i+3), 512, 128))
|
draw_texture_rect_region(tex_judgement_text, Rect2(x2+x_spacing*(i+1)-judgement_text_width/2.0, y2, judgement_text_width, judgement_text_height), Rect2(0, 128*(i+3), 512, 128))
|
||||||
draw_string_centered(TitleFont, Vector2(x2+x_spacing*(len(judgestrs)+1), y2), 'Score', Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(x2+x_spacing*(len(judgestrs)+1), y2-4), 'Score')
|
||||||
|
|
||||||
for i in len(notestrs):
|
for i in len(notestrs):
|
||||||
# For each note type, make a row and print scores
|
# For each note type, make a row and print scores
|
||||||
|
@ -262,7 +262,7 @@ func _draw_score_screen(center: Vector2) -> Array:
|
||||||
var note_count = 0
|
var note_count = 0
|
||||||
# var y_row = y2+y_spacing*(i+1)
|
# var y_row = y2+y_spacing*(i+1)
|
||||||
var y_row = y2 + y_spacing * (note_spacing[i]+1)
|
var y_row = y2 + y_spacing * (note_spacing[i]+1)
|
||||||
draw_string_centered(TitleFont, Vector2(x2-20, y_row), notestrs[i], Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(x2-20, y_row), notestrs[i])
|
||||||
for j in len(judgestrs):
|
for j in len(judgestrs):
|
||||||
var score
|
var score
|
||||||
if j == 0:
|
if j == 0:
|
||||||
|
@ -274,13 +274,13 @@ func _draw_score_screen(center: Vector2) -> Array:
|
||||||
notecount_early += scorescreen_score_data[idx][-j]
|
notecount_early += scorescreen_score_data[idx][-j]
|
||||||
notecount_late += scorescreen_score_data[idx][j]
|
notecount_late += scorescreen_score_data[idx][j]
|
||||||
if (j >= len(judgestrs)-1) and (idx == -1):
|
if (j >= len(judgestrs)-1) and (idx == -1):
|
||||||
draw_string_centered(TitleFont, Vector2(x2+x_spacing*(j+1), y_row), '^', Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(x2+x_spacing*(j+1), y_row), '^')
|
||||||
else:
|
else:
|
||||||
draw_string_centered(TitleFont, Vector2(x2+x_spacing*(j+1), y_row), str(score), Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(x2+x_spacing*(j+1), y_row), str(score))
|
||||||
notecount_total += score # Kinda redundant, will probably refactor eventually
|
notecount_total += score # Kinda redundant, will probably refactor eventually
|
||||||
note_count += score
|
note_count += score
|
||||||
note_score += score * judge_scores[j]
|
note_score += score * judge_scores[j]
|
||||||
draw_string_centered(TitleFont, Vector2(x2+x_spacing*(len(judgestrs)+1), y_row), '%2.2f%%'%(note_score/max(note_count, 1)*100.0), Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(x2+x_spacing*(len(judgestrs)+1), y_row), '%2.2f%%'%(note_score/max(note_count, 1)*100.0))
|
||||||
total_score += note_score * notetype_weights[i]
|
total_score += note_score * notetype_weights[i]
|
||||||
total_scoremax += note_count * notetype_weights[i]
|
total_scoremax += note_count * notetype_weights[i]
|
||||||
|
|
||||||
|
@ -291,29 +291,29 @@ func _draw_score_screen(center: Vector2) -> Array:
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
score_idx += 1
|
score_idx += 1
|
||||||
# draw_string_centered(ScoreFont, Vector2(x_score, y1), Rules.SCORE_STRINGS[score_idx], Color(1.0, 1.0, 1.0))
|
# draw_string_centered(ScoreFont, Vector2(x_score, y1), Rules.SCORE_STRINGS[score_idx], Color.white)
|
||||||
# draw_string_centered(TitleFont, Vector2(x_score, y1+y_spacing*3), '%2.3f%%'%(overall_score*100.0), Color(1.0, 1.0, 1.0))
|
# draw_string_centered(TitleFont, Vector2(x_score, y1+y_spacing*3), '%2.3f%%'%(overall_score*100.0), Color.white)
|
||||||
ScoreText.position = Vector2(x_score, y1)
|
ScoreText.position = Vector2(x_score, y1)
|
||||||
ScoreText.score = Rules.SCORE_STRINGS[score_idx]
|
ScoreText.score = Rules.SCORE_STRINGS[score_idx]
|
||||||
ScoreText.score_sub = '%2.3f%%'%(overall_score*100.0)
|
ScoreText.score_sub = '%2.3f%%'%(overall_score*100.0)
|
||||||
ScoreText.update()
|
ScoreText.update()
|
||||||
|
|
||||||
draw_string_centered(TitleFont, Vector2(x, y2+y_spacing*7), 'Early : Late', Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(x, y2+y_spacing*7), 'Early : Late')
|
||||||
draw_string_centered(TitleFont, Vector2(x, y2+y_spacing*8), '%3d%% : %3d%%'%[notecount_early*100/notecount_total, notecount_late*100/notecount_total], Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(x, y2+y_spacing*8), '%3d%% : %3d%%'%[notecount_early*100/notecount_total, notecount_late*100/notecount_total])
|
||||||
|
|
||||||
var rect_songselect := Rect2(x-100.0, y+660.0, 400.0, 100.0)
|
var rect_songselect := Rect2(x-100.0, y+660.0, 400.0, 100.0)
|
||||||
draw_rect(rect_songselect, Color.red)
|
draw_rect(rect_songselect, Color.red)
|
||||||
draw_string_centered(TitleFont, Vector2(x+100, y+680), 'Song Select', Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(x+100, y+680), 'Song Select')
|
||||||
touchrects.append({rect=rect_songselect, next_menu=MenuMode.SONG_SELECT})
|
touchrects.append({rect=rect_songselect, next_menu=MenuMode.SONG_SELECT})
|
||||||
|
|
||||||
var rect_save := Rect2(x-300.0, y+660.0, 180.0, 100.0)
|
var rect_save := Rect2(x-300.0, y+660.0, 180.0, 100.0)
|
||||||
if not scorescreen_saved:
|
if not scorescreen_saved:
|
||||||
draw_rect(rect_save, Color(0.0, 0.01, 1.0))
|
draw_rect(rect_save, Color(0.0, 0.01, 1.0))
|
||||||
draw_string_centered(TitleFont, Vector2(x-210, y+680), 'Save', Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(x-210, y+680), 'Save')
|
||||||
touchrects.append({rect=rect_save, action='save'})
|
touchrects.append({rect=rect_save, action='save'})
|
||||||
else:
|
else:
|
||||||
draw_rect(rect_save, Color.darkgray)
|
draw_rect(rect_save, Color.darkgray)
|
||||||
draw_string_centered(TitleFont, Vector2(x-210, y+680), 'Saved', Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, Vector2(x-210, y+680), 'Saved')
|
||||||
return touchrects
|
return touchrects
|
||||||
|
|
||||||
func _draw_gameplay(center: Vector2) -> Array:
|
func _draw_gameplay(center: Vector2) -> Array:
|
||||||
|
@ -323,7 +323,7 @@ func _draw_gameplay(center: Vector2) -> Array:
|
||||||
|
|
||||||
var rect_songselect := Rect2(x-960.0, y+440.0, 100.0, 100.0)
|
var rect_songselect := Rect2(x-960.0, y+440.0, 100.0, 100.0)
|
||||||
draw_rect(rect_songselect, Color.red)
|
draw_rect(rect_songselect, Color.red)
|
||||||
draw_string_centered(TitleFont, center+Vector2(-910, 470), 'Stop', Color(0.95, 0.95, 1.0))
|
draw_string_centered(TitleFont, center+Vector2(-910, 470), 'Stop')
|
||||||
touchrects.append({rect=rect_songselect, action='stop'})
|
touchrects.append({rect=rect_songselect, action='stop'})
|
||||||
return touchrects
|
return touchrects
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,6 @@ func draw_string_centered(font, position, string, color := Color.white):
|
||||||
|
|
||||||
func _draw():
|
func _draw():
|
||||||
if score:
|
if score:
|
||||||
draw_string_centered(ScoreFont, Vector2(0, 0), score, Color(1.0, 1.0, 1.0))
|
draw_string_centered(ScoreFont, Vector2(0, 0), score)
|
||||||
if score_sub:
|
if score_sub:
|
||||||
draw_string_centered(TitleFont, Vector2(0, 128), score_sub, Color(1.0, 1.0, 1.0))
|
draw_string_centered(TitleFont, Vector2(0, 128), score_sub)
|
||||||
|
|
Loading…
Reference in New Issue