diff --git a/style/icon.scss b/style/icon.scss
index 9c3cee4..10272b5 100644
--- a/style/icon.scss
+++ b/style/icon.scss
@@ -1,5 +1,5 @@
.icon-fit {
- // height: 1em;
+ height: 1em;
flex-grow: 1;
flex-shrink: 1;
diff --git a/style/main.scss b/style/main.scss
index a2841b2..de63852 100644
--- a/style/main.scss
+++ b/style/main.scss
@@ -935,3 +935,96 @@ form {
gap: 1ch;
font-size: 1.25em;
}
+
+
+.top-of-day-info {
+ width: max-content;
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ align-items: flex-start;
+ padding: 10px;
+
+ gap: 10vw;
+
+ .info-tidbit {
+ display: flex;
+ flex-direction: column;
+ flex-wrap: nowrap;
+ align-items: center;
+ gap: 5px;
+
+ label {
+ font-size: 1.5em;
+ opacity: 70%;
+ }
+
+ .parity {
+ font-size: 2em;
+ }
+
+ .parity-pct {
+ font-size: 1.25em;
+ }
+
+ .last-nights-kills {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 2cm;
+
+ .identity {
+ .number {
+ color: red;
+ font-size: 1.5em;
+ }
+
+ text-align: center;
+ font-size: 1.25em;
+ }
+ }
+
+ .current-day {
+ color: red;
+ font-size: 3em;
+ flex-grow: 1;
+ }
+ }
+}
+
+.player-list {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 0.5ch;
+ padding-bottom: 1ch;
+
+ .character {
+ flex-grow: 1;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ gap: 1ch;
+ padding: 1ch;
+ font-size: 1.25em;
+
+ .headline {
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ gap: 0.5ch;
+
+ align-items: center;
+ justify-content: center;
+ }
+
+ background-color: $village_color_faint;
+ border: 1px solid $village_border_faint;
+
+ &.marked {
+ background-color: color.change($red2, $alpha: 0.3);
+ border: 1px solid color.change($red2, $alpha: 0.8);
+ }
+ }
+}
diff --git a/style/night.scss b/style/night.scss
index d0f5d94..026a882 100644
--- a/style/night.scss
+++ b/style/night.scss
@@ -1,4 +1,5 @@
.cover-of-darkness {
+ background-color: black;
font-size: 3em;
position: fixed;
top: 0;
diff --git a/werewolves/src/app/pages/game/big.rs b/werewolves/src/app/pages/game/big.rs
index a19e91a..c923abf 100644
--- a/werewolves/src/app/pages/game/big.rs
+++ b/werewolves/src/app/pages/game/big.rs
@@ -164,12 +164,10 @@ pub fn BigScreen() -> impl IntoView {
}
}
ServerToHostMessage::Disconnect => disconnect.set(true),
- ServerToHostMessage::Daytime {
- characters,
- marked,
- day,
- settings,
- } => todo!(),
+ ServerToHostMessage::Daytime { settings: s, .. } => {
+ settings.set(s);
+ page.set(BigScreenPage::Setup);
+ }
ServerToHostMessage::PlayerStates(_) => {}
ServerToHostMessage::ActionPrompt(act, ppage) => {
page.set(BigScreenPage::ActionPrompt {
@@ -229,10 +227,15 @@ pub fn BigScreen() -> impl IntoView {
BigScreenPage::ActionPrompt { prompt, page } => {
view! { }.into_any()
}
- BigScreenPage::ActionResult { character, result } => view! { }
- .into_any(),
+ BigScreenPage::ActionResult { character, result } => {
+ view! { }.into_any()
+ }
};
- view! {
{content}
}.into_any()
+ view! {
+ {content}
+ }.into_any()
}
}
diff --git a/werewolves/src/app/pages/game/host.rs b/werewolves/src/app/pages/game/host.rs
index c6bc66f..7946e03 100644
--- a/werewolves/src/app/pages/game/host.rs
+++ b/werewolves/src/app/pages/game/host.rs
@@ -1,16 +1,15 @@
werewolves_macros::include_path!("werewolves/src/app/pages/game/host");
+use core::num::NonZeroU8;
use std::collections::HashMap;
use leptos::prelude::*;
use werewolves_proto::{
+ character::CharacterId,
game::{Category, GameSettings},
message::{
- CharacterIdentity, PlayerState,
- host::{
- HostGameMessage, HostLobbyMessage, HostMessage, HostNightMessage,
- ServerToHostMessage as Srv2Host,
- },
+ CharacterIdentity, CharacterState, PlayerState,
+ host::{HostGameMessage, HostLobbyMessage, HostMessage, ServerToHostMessage as Srv2Host},
night::{ActionPrompt, ActionResult},
},
};
@@ -36,6 +35,12 @@ enum HostPage {
character: Option,
result: ActionResult,
},
+ Daytime {
+ day: NonZeroU8,
+ characters: Box<[CharacterState]>,
+ marked: Box<[CharacterId]>,
+ reply: WriteSignal