diff options
author | Ilion Beyst <ilion.beyst@gmail.com> | 2022-08-27 17:41:32 +0200 |
---|---|---|
committer | Ilion Beyst <ilion.beyst@gmail.com> | 2022-08-27 17:41:32 +0200 |
commit | 49a5735e07e7868195590a13c247698aaa1c5358 (patch) | |
tree | 30647b9b3cb25d8548e66757785f0b64cdf73490 | |
parent | c80ce332791c94b83a03c9f7c3cbb937f474cc5d (diff) | |
download | planetwars.dev-49a5735e07e7868195590a13c247698aaa1c5358.tar.xz planetwars.dev-49a5735e07e7868195590a13c247698aaa1c5358.zip |
show map info for matches
-rw-r--r-- | planetwars-server/src/routes/matches.rs | 4 | ||||
-rw-r--r-- | web/pw-server/src/lib/components/matches/MatchList.svelte | 8 | ||||
-rw-r--r-- | web/pw-server/src/routes/editor.svelte | 24 |
3 files changed, 30 insertions, 6 deletions
diff --git a/planetwars-server/src/routes/matches.rs b/planetwars-server/src/routes/matches.rs index 71c4409..10b4507 100644 --- a/planetwars-server/src/routes/matches.rs +++ b/planetwars-server/src/routes/matches.rs @@ -15,6 +15,8 @@ use crate::{ DatabaseConnection, GlobalConfig, }; +use super::maps::ApiMap; + #[derive(Serialize, Deserialize)] pub struct ApiMatch { id: i32, @@ -22,6 +24,7 @@ pub struct ApiMatch { state: MatchState, players: Vec<ApiMatchPlayer>, winner: Option<i32>, + map: Option<ApiMap>, } #[derive(Serialize, Deserialize)] @@ -102,6 +105,7 @@ pub fn match_data_to_api(data: matches::FullMatchData) -> ApiMatch { }) .collect(), winner: data.base.winner, + map: data.map.map(|m| ApiMap { name: m.name }), } } diff --git a/web/pw-server/src/lib/components/matches/MatchList.svelte b/web/pw-server/src/lib/components/matches/MatchList.svelte index 01a0b82..e38543e 100644 --- a/web/pw-server/src/lib/components/matches/MatchList.svelte +++ b/web/pw-server/src/lib/components/matches/MatchList.svelte @@ -16,6 +16,7 @@ <th /> <th /> <th class="col-player-2">player 2</th> + <th class="col-map">map</th> </tr> {#each matches as match} <tr class="match-table-row" on:click={() => goto(match_url(match))}> @@ -38,6 +39,9 @@ <td class="col-player-2"> {match["players"][1]["bot_name"]} </td> + <td class="col-map"> + {match["map"]?.name || ""} + </td> </tr> {/each} </table> @@ -84,6 +88,10 @@ text-align: left; } + .col-map { + text-align: right; + } + .matches-table { margin: 12px auto; border-collapse: collapse; diff --git a/web/pw-server/src/routes/editor.svelte b/web/pw-server/src/routes/editor.svelte index b1644c8..ff8232c 100644 --- a/web/pw-server/src/routes/editor.svelte +++ b/web/pw-server/src/routes/editor.svelte @@ -12,6 +12,7 @@ import { debounce } from "$lib/utils"; import SubmitPane from "$lib/components/SubmitPane.svelte"; import OutputPane from "$lib/components/OutputPane.svelte"; + import BotName from "./bots/[bot_name].svelte"; enum ViewMode { Editor, @@ -138,11 +139,12 @@ on:click={() => selectMatch(match.id)} class:selected={match.id === selectedMatchId} > - <span class="match-timestamp">{formatMatchTimestamp(match.timestamp)}</span> - <!-- hex is hardcoded for now, don't show map name --> - <!-- <span class="match-mapname">hex</span> --> - <!-- ugly temporary hardcode --> - <span class="match-opponent">{match["players"][1]["bot_name"]}</span> + <div class="match-timestamp">{formatMatchTimestamp(match.timestamp)}</div> + <div class="match-card-body"> + <!-- ugly temporary hardcode --> + <div class="match-opponent">{match["players"][1]["bot_name"]}</div> + <div class="match-map">{match["map"]?.name}</div> + </div> </li> {/each} </ul> @@ -221,14 +223,24 @@ .match-card { padding: 10px 15px; font-size: 11pt; + display: flex; } .match-timestamp { color: #ccc; } + .match-card-body { + margin: 0 8px; + } + .match-opponent { - padding: 0 0.5em; + font-weight: 600; + color: #eee; + } + + .match-map { + color: #ccc; } .sidebar-header { |