mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-11 00:14:00 +00:00
feat(multiplayer): expose ranked season countdown
This commit is contained in:
@@ -13,6 +13,7 @@ var ranked_games := 0
|
||||
var tier := ""
|
||||
var provisional := false
|
||||
var season_id := ""
|
||||
var season_ends_at_unix := 0
|
||||
var error_message := ""
|
||||
|
||||
|
||||
@@ -37,6 +38,9 @@ func apply(payload: Dictionary) -> bool:
|
||||
tier = next_tier
|
||||
provisional = bool(payload["provisional"])
|
||||
season_id = String(payload.get("season_id", ""))
|
||||
season_ends_at_unix = 0
|
||||
if payload.has("season_ends_at") and payload["season_ends_at"] is String and not String(payload["season_ends_at"]).is_empty():
|
||||
season_ends_at_unix = maxi(0, int(Time.get_unix_time_from_datetime_string(String(payload["season_ends_at"]))))
|
||||
available = true
|
||||
error_message = ""
|
||||
return true
|
||||
@@ -47,11 +51,16 @@ func set_error(reason: String) -> void:
|
||||
error_message = reason
|
||||
|
||||
|
||||
func display_text() -> String:
|
||||
func display_text(now_unix: int = -1) -> String:
|
||||
if not available:
|
||||
return error_message if not error_message.is_empty() else "Ranked profile unavailable"
|
||||
var status := "Provisional" if provisional else tier
|
||||
return "%s · %d ranked game%s" % [status, ranked_games, "" if ranked_games == 1 else "s"]
|
||||
var text := "%s · %d ranked game%s" % [status, ranked_games, "" if ranked_games == 1 else "s"]
|
||||
if season_ends_at_unix > 0:
|
||||
var current_unix := int(Time.get_unix_time_from_system()) if now_unix < 0 else now_unix
|
||||
var remaining_days := maxi(0, int(ceil(float(season_ends_at_unix - current_unix) / 86400.0)))
|
||||
text += " · Season ends in %dd" % remaining_days
|
||||
return text
|
||||
|
||||
|
||||
func _reject(reason: String) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user