Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 29 additions & 12 deletions logic/conversion/playerToLeaderboardEntry.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,46 @@ import (
"github.com/fluofoxxo/outrun/obj"
)

func PlayerToLeaderboardEntry(player netobj.Player) obj.LeaderboardEntry {
friendID := player.ID // TODO: is this right?
func PlayerToLeaderboardEntry(player netobj.Player, mode int64) obj.LeaderboardEntry {
friendID := player.ID
name := player.Username
url := player.Username + "_findme" // TODO: only used for testing right now
grade := player.PlayerState.Rank // TODO: _probably_ what this is, but unsure
grade := int64(1) // TODO: make this specifiable in the future (this is the high score ranking it seems)
exposeOnline := int64(0)
rankingScore := player.PlayerState.HighScore // TODO: this probably differs based on mode...
rankChanged := int64(2)
rankingScore := player.PlayerState.HighScore
rankChanged := int64(0)
isSentEnergy := int64(0)
expireTime := time.Now().UTC().Unix() + 12345
numRank := player.PlayerState.Rank + 1
expireTime := now.EndOfWeek().UTC().Unix()
numRank := player.PlayerState.Rank
loginTime := player.LastLogin
mainCharaID := player.PlayerState.MainCharaID
mainCharaLevel := int64(12) // TODO: remove testing
mainCharaLevel := int64(0)
subCharaID := player.PlayerState.SubCharaID
subCharaLevel := int64(34) // TODO: remove testing
subCharaLevel := int64(0)
mainChaoID := player.PlayerState.MainChaoID
mainChaoLevel := int64(5) // TODO: remove testing
mainChaoLevel := int64(0)
subChaoID := player.PlayerState.SubChaoID
subChaoLevel := int64(6) // TODO: remove testing
subChaoLevel := int64(0)
if player.IndexOfChara(mainCharaID) != -1 {
mainCharaLevel = player.CharacterState[player.IndexOfChara(mainCharaID)].Level
}
if player.IndexOfChara(subCharaID) != -1 {
subCharaLevel = player.CharacterState[player.IndexOfChara(subCharaID)].Level
}
if player.IndexOfChao(mainChaoID) != -1 {
mainChaoLevel = player.ChaoState[player.IndexOfChao(mainChaoID)].Level
}
if player.IndexOfChao(subChaoID) != -1 {
subChaoLevel = player.ChaoState[player.IndexOfChao(subChaoID)].Level
}
language := int64(enums.LangEnglish)
league := player.PlayerState.Rank // TODO: check if this is right
league := player.PlayerState.RankingLeague
maxScore := player.PlayerState.HighScore
if mode == 1 { //timed mode?
rankingScore = player.PlayerState.TimedHighScore
league = player.PlayerState.QuickRankingLeague
maxScore = player.PlayerState.TimedHighScore
}
return obj.LeaderboardEntry{
friendID,
name,
Expand Down
6 changes: 4 additions & 2 deletions responses/leaderboard.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ func WeeklyLeaderboardEntries(base responseobjs.BaseInfo, pe obj.LeaderboardEntr
func DefaultWeeklyLeaderboardEntries(base responseobjs.BaseInfo, player netobj.Player, mode int64) WeeklyLeaderboardEntriesResponse {
startTime := now.BeginningOfDay().UTC().Unix()
resetTime := startTime + 86400 // +1 Day
myEntry := conversion.PlayerToLeaderboardEntry(player)
myEntry := conversion.PlayerToLeaderboardEntry(player, mode)
return WeeklyLeaderboardEntries(
base,
//obj.DefaultLeaderboardEntry(uid),
Expand All @@ -82,7 +82,9 @@ func DefaultWeeklyLeaderboardEntries(base responseobjs.BaseInfo, player netobj.P
1,
mode,
0,
[]obj.LeaderboardEntry{},
[]obj.LeaderboardEntry{
myEntry,
},
)
}

Expand Down