Compare commits
3 Commits
e536edfc28
...
060180579d
| Author | SHA1 | Date |
|---|---|---|
|
|
060180579d | |
|
|
2b704ddff6 | |
|
|
16e8a6ffa5 |
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
use convert_case::Casing;
|
use convert_case::Casing;
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
@ -171,6 +171,10 @@ impl Game {
|
||||||
settings: village.settings(),
|
settings: village.settings(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
(GameState::Night { night }, HostGameMessage::Night(HostNightMessage::SkipAction)) => {
|
||||||
|
night.skip_action()?;
|
||||||
|
self.process(HostGameMessage::GetState)
|
||||||
|
}
|
||||||
(GameState::Night { night }, HostGameMessage::GetState) => {
|
(GameState::Night { night }, HostGameMessage::GetState) => {
|
||||||
if let Some(res) = night.current_result() {
|
if let Some(res) = night.current_result() {
|
||||||
return Ok(ServerToHostMessage::ActionResult(
|
return Ok(ServerToHostMessage::ActionResult(
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
@ -421,6 +421,23 @@ impl Night {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn skip_action(&mut self) -> Result<()> {
|
||||||
|
match &mut self.night_state {
|
||||||
|
NightState::Active {
|
||||||
|
current_result,
|
||||||
|
current_changes,
|
||||||
|
..
|
||||||
|
} => {
|
||||||
|
*current_result = CurrentResult::GoBackToSleepAfterShown {
|
||||||
|
result_with_data: ActionResult::SkippedByHost,
|
||||||
|
};
|
||||||
|
current_changes.clear();
|
||||||
|
}
|
||||||
|
NightState::Complete => return Err(GameError::NightOver),
|
||||||
|
}
|
||||||
|
self.next()
|
||||||
|
}
|
||||||
|
|
||||||
fn remove_reverted_prompts(
|
fn remove_reverted_prompts(
|
||||||
mut action_queue: VecDeque<ActionPrompt>,
|
mut action_queue: VecDeque<ActionPrompt>,
|
||||||
reverting: CharacterId,
|
reverting: CharacterId,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
@ -69,7 +69,7 @@ pub struct NightChoice {
|
||||||
|
|
||||||
impl NightChoice {
|
impl NightChoice {
|
||||||
pub fn new(prompt: ActionPrompt, result: ActionResult, village: &Village) -> Option<Self> {
|
pub fn new(prompt: ActionPrompt, result: ActionResult, village: &Village) -> Option<Self> {
|
||||||
Some(Self {
|
(result != ActionResult::SkippedByHost).then_some(Self {
|
||||||
prompt: StoryActionPrompt::new(prompt, village)?,
|
prompt: StoryActionPrompt::new(prompt, village)?,
|
||||||
result: StoryActionResult::new(result),
|
result: StoryActionResult::new(result),
|
||||||
})
|
})
|
||||||
|
|
@ -107,6 +107,7 @@ pub enum StoryActionResult {
|
||||||
impl StoryActionResult {
|
impl StoryActionResult {
|
||||||
pub fn new(result: ActionResult) -> Option<Self> {
|
pub fn new(result: ActionResult) -> Option<Self> {
|
||||||
Some(match result {
|
Some(match result {
|
||||||
|
ActionResult::SkippedByHost => return None,
|
||||||
ActionResult::ShiftFailed => Self::ShiftFailed,
|
ActionResult::ShiftFailed => Self::ShiftFailed,
|
||||||
ActionResult::BeholderSawNothing => Self::BeholderSawNothing,
|
ActionResult::BeholderSawNothing => Self::BeholderSawNothing,
|
||||||
ActionResult::BeholderSawEverything => Self::BeholderSawEverything,
|
ActionResult::BeholderSawEverything => Self::BeholderSawEverything,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
@ -18,6 +18,7 @@ mod night_order;
|
||||||
mod previous;
|
mod previous;
|
||||||
mod revert;
|
mod revert;
|
||||||
mod role;
|
mod role;
|
||||||
|
mod skip;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
character::{Character, CharacterId},
|
character::{Character, CharacterId},
|
||||||
|
|
@ -339,9 +340,30 @@ pub trait GameExt {
|
||||||
fn next_expect_game_over(&mut self) -> GameOver;
|
fn next_expect_game_over(&mut self) -> GameOver;
|
||||||
fn prev(&mut self) -> ServerToHostMessage;
|
fn prev(&mut self) -> ServerToHostMessage;
|
||||||
fn mark_villager(&mut self) -> ActionPrompt;
|
fn mark_villager(&mut self) -> ActionPrompt;
|
||||||
|
fn skip(&mut self) -> ActionPrompt;
|
||||||
|
fn skip_expect_day(&mut self) -> (Box<[CharacterState]>, Box<[CharacterId]>, NonZeroU8);
|
||||||
}
|
}
|
||||||
|
|
||||||
impl GameExt for Game {
|
impl GameExt for Game {
|
||||||
|
fn skip(&mut self) -> ActionPrompt {
|
||||||
|
self.process(HostGameMessage::Night(HostNightMessage::SkipAction))
|
||||||
|
.unwrap()
|
||||||
|
.prompt()
|
||||||
|
}
|
||||||
|
fn skip_expect_day(&mut self) -> (Box<[CharacterState]>, Box<[CharacterId]>, NonZeroU8) {
|
||||||
|
match self
|
||||||
|
.process(HostGameMessage::Night(HostNightMessage::SkipAction))
|
||||||
|
.unwrap()
|
||||||
|
{
|
||||||
|
ServerToHostMessage::Daytime {
|
||||||
|
characters,
|
||||||
|
marked,
|
||||||
|
day,
|
||||||
|
..
|
||||||
|
} => (characters, marked, day),
|
||||||
|
other => panic!("expected daytime, got {other:?}"),
|
||||||
|
}
|
||||||
|
}
|
||||||
fn prev(&mut self) -> ServerToHostMessage {
|
fn prev(&mut self) -> ServerToHostMessage {
|
||||||
self.process(HostGameMessage::PreviousState).unwrap()
|
self.process(HostGameMessage::PreviousState).unwrap()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
// Copyright (C) 2026 Emilis Bliūdžius
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
#[allow(unused)]
|
||||||
|
use pretty_assertions::{assert_eq, assert_ne, assert_str_eq};
|
||||||
|
|
||||||
|
use crate::{
|
||||||
|
game::{Game, GameSettings, SetupRole},
|
||||||
|
game_test::{
|
||||||
|
ActionPromptTitleExt, ActionResultExt, GameExt, SettingsExt, gen_players, init_log,
|
||||||
|
},
|
||||||
|
message::night::ActionPromptTitle,
|
||||||
|
};
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn skip_wolf_kill_all_villagers() {
|
||||||
|
init_log();
|
||||||
|
let players = gen_players(1..21);
|
||||||
|
let mut player_ids = players.iter().map(|p| p.player_id);
|
||||||
|
let wolf = player_ids.next().unwrap();
|
||||||
|
let mut settings = GameSettings::empty();
|
||||||
|
settings.add_and_assign(SetupRole::Werewolf, wolf);
|
||||||
|
settings.fill_remaining_slots_with_villagers(players.len());
|
||||||
|
let mut game = Game::new(&players, settings).unwrap();
|
||||||
|
game.r#continue().r#continue();
|
||||||
|
assert_eq!(game.next().title(), ActionPromptTitle::WolvesIntro);
|
||||||
|
game.r#continue().sleep();
|
||||||
|
|
||||||
|
game.next_expect_day();
|
||||||
|
game.execute().title().wolf_pack_kill();
|
||||||
|
game.skip_expect_day();
|
||||||
|
|
||||||
|
assert!(game.village().characters().into_iter().all(|c| c.alive()))
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn skip_wolf_kill_has_seer() {
|
||||||
|
init_log();
|
||||||
|
let players = gen_players(1..21);
|
||||||
|
let mut player_ids = players.iter().map(|p| p.player_id);
|
||||||
|
let wolf = player_ids.next().unwrap();
|
||||||
|
let seer = player_ids.next().unwrap();
|
||||||
|
let mut settings = GameSettings::empty();
|
||||||
|
settings.add_and_assign(SetupRole::Werewolf, wolf);
|
||||||
|
settings.add_and_assign(SetupRole::Seer, seer);
|
||||||
|
settings.fill_remaining_slots_with_villagers(players.len());
|
||||||
|
let mut game = Game::new(&players, settings).unwrap();
|
||||||
|
game.r#continue().r#continue();
|
||||||
|
assert_eq!(game.next().title(), ActionPromptTitle::WolvesIntro);
|
||||||
|
game.r#continue().sleep();
|
||||||
|
|
||||||
|
game.next().title().seer();
|
||||||
|
game.mark(game.character_by_player_id(wolf).character_id());
|
||||||
|
game.r#continue();
|
||||||
|
game.r#continue().sleep();
|
||||||
|
|
||||||
|
game.next_expect_day();
|
||||||
|
game.execute().title().wolf_pack_kill();
|
||||||
|
game.skip().title().seer();
|
||||||
|
game.mark(game.character_by_player_id(wolf).character_id());
|
||||||
|
game.r#continue();
|
||||||
|
game.r#continue().sleep();
|
||||||
|
|
||||||
|
game.next_expect_day();
|
||||||
|
|
||||||
|
assert!(game.village().characters().into_iter().all(|c| c.alive()))
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
@ -60,6 +60,7 @@ pub enum HostNightMessage {
|
||||||
ActionResponse(ActionResponse),
|
ActionResponse(ActionResponse),
|
||||||
Next,
|
Next,
|
||||||
NextPage,
|
NextPage,
|
||||||
|
SkipAction,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
|
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
@ -623,6 +623,7 @@ pub enum ActionResult {
|
||||||
GoBackToSleep,
|
GoBackToSleep,
|
||||||
ShiftFailed,
|
ShiftFailed,
|
||||||
Continue,
|
Continue,
|
||||||
|
SkippedByHost,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ActionResult {
|
impl ActionResult {
|
||||||
|
|
@ -660,7 +661,8 @@ impl ActionResult {
|
||||||
| ActionResult::Mortician(_, _)
|
| ActionResult::Mortician(_, _)
|
||||||
| ActionResult::Insomniac(_)
|
| ActionResult::Insomniac(_)
|
||||||
| ActionResult::GoBackToSleep
|
| ActionResult::GoBackToSleep
|
||||||
| ActionResult::Continue => return None,
|
| ActionResult::Continue
|
||||||
|
| ActionResult::SkippedByHost => return None,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use werewolves_macros::ChecksAs;
|
use werewolves_macros::ChecksAs;
|
||||||
|
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -2,104 +2,115 @@
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
width="126.23896mm"
|
width="82.665497mm"
|
||||||
height="51.465496mm"
|
height="93.698868mm"
|
||||||
viewBox="0 0 126.23896 51.465496"
|
viewBox="0 0 82.665497 93.698868"
|
||||||
version="1.1"
|
version="1.1"
|
||||||
id="svg1"
|
id="svg1"
|
||||||
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
|
||||||
sodipodi:docname="icons.svg"
|
|
||||||
xml:space="preserve"
|
xml:space="preserve"
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||||
id="namedview1"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="true"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:document-units="mm"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:zoom="1"
|
|
||||||
inkscape:cx="1447"
|
|
||||||
inkscape:cy="1883.5"
|
|
||||||
inkscape:window-width="1918"
|
|
||||||
inkscape:window-height="1042"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="17"
|
|
||||||
inkscape:window-maximized="0"
|
|
||||||
inkscape:current-layer="layer4"><inkscape:grid
|
|
||||||
id="grid1"
|
|
||||||
units="mm"
|
|
||||||
originx="-287.79055"
|
|
||||||
originy="-536.67756"
|
|
||||||
spacingx="0.26458333"
|
|
||||||
spacingy="0.26458334"
|
|
||||||
empcolor="#0099e5"
|
|
||||||
empopacity="0.30196078"
|
|
||||||
color="#0099e5"
|
|
||||||
opacity="0.14901961"
|
|
||||||
empspacing="5"
|
|
||||||
enabled="true"
|
|
||||||
visible="false" /><inkscape:page
|
|
||||||
x="0"
|
|
||||||
y="0"
|
|
||||||
width="126.23896"
|
|
||||||
height="51.465496"
|
|
||||||
id="page2"
|
|
||||||
margin="0"
|
|
||||||
bleed="0" /></sodipodi:namedview><defs
|
|
||||||
id="defs1" /><g
|
id="defs1" /><g
|
||||||
inkscape:groupmode="layer"
|
id="layer3"
|
||||||
id="layer4"
|
transform="translate(-617.41613,-892.54217)"><g
|
||||||
inkscape:label="Layer 4"
|
id="g39"><g
|
||||||
transform="translate(-287.79055,-536.67755)"><g
|
id="g36"
|
||||||
id="g110"
|
transform="translate(101.97657,24.077083)"
|
||||||
transform="translate(-38.629167,49.2125)"><g
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-opacity:1"><path
|
||||||
id="g109"><g
|
d="m 525.062,916.05881 -7.01559,7.0156 30.9702,30.9702 7.01559,7.01559 7.0156,-7.01559 30.97072,-30.9702 -7.01611,-7.0156 -30.97021,30.97021 z"
|
||||||
id="g108"
|
style="opacity:1;fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1.561;stroke-opacity:1"
|
||||||
transform="translate(-15.715448,-1.8708867)"><rect
|
id="path8" /><g
|
||||||
style="fill:#bb402d;fill-opacity:1;stroke:#3e150f;stroke-width:1.265;stroke-dasharray:none;stroke-opacity:1"
|
id="g31"
|
||||||
id="rect107"
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-opacity:1"><path
|
||||||
width="40"
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
height="15"
|
d="m 525.25144,920.94395 -4.44336,4.44336"
|
||||||
x="342.7677"
|
id="path27" /><path
|
||||||
y="525.16895" /><rect
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
style="fill:#bb402d;fill-opacity:1;stroke:#3e150f;stroke-width:1.265;stroke-dasharray:none;stroke-opacity:1"
|
d="m 526.24756,925.1177 -2.75956,2.94665"
|
||||||
id="rect107-5"
|
id="path27-3" /><path
|
||||||
width="40"
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
height="15"
|
d="m 530.83399,926.47547 -4.44336,4.44336"
|
||||||
x="385.35562"
|
id="path27-6" /><path
|
||||||
y="525.16895" /></g><rect
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
style="fill:#bb402d;fill-opacity:1;stroke:#3e150f;stroke-width:1.265;stroke-dasharray:none;stroke-opacity:1"
|
d="m 531.83011,930.64922 -2.75956,2.94665"
|
||||||
id="rect107-0"
|
id="path27-3-1" /><path
|
||||||
width="40"
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
height="15"
|
d="m 536.37143,931.80702 -4.44336,4.44336"
|
||||||
x="348.34619"
|
id="path27-0" /><path
|
||||||
y="505.69763" /></g><g
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
id="g109-6"
|
d="m 537.36755,935.98077 -2.75956,2.94665"
|
||||||
transform="matrix(1,0,0,-1,42.386031,1026.3956)"><g
|
id="path27-3-2" /><path
|
||||||
id="g108-8"
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
transform="translate(-15.715448,-1.8708867)"><rect
|
d="m 541.88504,937.41418 -4.44336,4.44336"
|
||||||
style="fill:#bb402d;fill-opacity:1;stroke:#3e150f;stroke-width:1.265;stroke-dasharray:none;stroke-opacity:1"
|
id="path27-2" /><path
|
||||||
id="rect107-9"
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
width="40"
|
d="m 542.88116,941.58793 -2.75956,2.94665"
|
||||||
height="15"
|
id="path27-3-28" /><path
|
||||||
x="342.7677"
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
y="525.16895" /><rect
|
d="m 546.88277,942.91173 -4.44336,4.44336"
|
||||||
style="fill:#bb402d;fill-opacity:1;stroke:#3e150f;stroke-width:1.265;stroke-dasharray:none;stroke-opacity:1"
|
id="path27-1" /><path
|
||||||
id="rect107-5-2"
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
width="40"
|
d="m 547.87889,947.08548 -2.75956,2.94665"
|
||||||
height="15"
|
id="path27-3-29" /><path
|
||||||
x="385.35562"
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
y="525.16895" /></g><rect
|
d="m 552.31614,947.72513 -4.44336,4.44336"
|
||||||
style="fill:#bb402d;fill-opacity:1;stroke:#3e150f;stroke-width:1.265;stroke-dasharray:none;stroke-opacity:1"
|
id="path27-7" /><path
|
||||||
id="rect107-0-6"
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
width="40"
|
d="m 553.31226,951.89888 -2.75956,2.94665"
|
||||||
height="15"
|
id="path27-3-8" /></g><g
|
||||||
x="348.34619"
|
id="g31-6"
|
||||||
y="505.69763" /></g></g></g></svg>
|
transform="matrix(-1,0,0,1,1111.8082,0.22285383)"
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-opacity:1"><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 525.25144,920.94395 -4.44336,4.44336"
|
||||||
|
id="path27-10" /><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 526.24756,925.1177 -2.75956,2.94665"
|
||||||
|
id="path27-3-6" /><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 530.83399,926.47547 -4.44336,4.44336"
|
||||||
|
id="path27-6-3" /><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 531.83011,930.64922 -2.75956,2.94665"
|
||||||
|
id="path27-3-1-2" /><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 536.37143,931.80702 -4.44336,4.44336"
|
||||||
|
id="path27-0-0" /><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 537.36755,935.98077 -2.75956,2.94665"
|
||||||
|
id="path27-3-2-6" /><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 541.88504,937.41418 -4.44336,4.44336"
|
||||||
|
id="path27-2-1" /><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 542.88116,941.58793 -2.75956,2.94665"
|
||||||
|
id="path27-3-28-5" /><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 546.88277,942.91173 -4.44336,4.44336"
|
||||||
|
id="path27-1-5" /><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 547.87889,947.08548 -2.75956,2.94665"
|
||||||
|
id="path27-3-29-4" /><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 552.31614,947.72513 -4.44336,4.44336"
|
||||||
|
id="path27-7-7" /><path
|
||||||
|
style="fill:#8c8cd8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 553.31226,951.89888 -2.75956,2.94665"
|
||||||
|
id="path27-3-8-6" /></g></g><path
|
||||||
|
style="fill:#ffca32;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 659.47394,909.22014 -9.12812,19.11614 -3.24115,0.33073 -22.36748,43.9043 -2.15151,-0.18709 -1.8709,3.46115 h -2.52568 l 32.92761,-73.24524 7.57708,-1.12252 z"
|
||||||
|
id="path36" /><path
|
||||||
|
style="fill:#bd8d06;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 658.0238,909.22014 9.12812,19.11614 3.24115,0.33073 22.36748,43.9043 2.15151,-0.18709 1.8709,3.46115 h 2.52568 l -32.92761,-73.24524 -7.57708,-1.12252 z"
|
||||||
|
id="path36-7" /><circle
|
||||||
|
style="opacity:1;fill:#ffca32;fill-opacity:1;stroke:#000000;stroke-width:1.561;stroke-opacity:1"
|
||||||
|
id="path26"
|
||||||
|
cx="658.00903"
|
||||||
|
cy="903.32275"
|
||||||
|
r="10" /><path
|
||||||
|
style="fill:#0f07ff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 669.34288,930.20553 v 8.86354 h -1.25677 c 0,0 -0.39688,-3.63802 -1.98438,-4.82865 -13.27502,-9.95623 -15.00968,21.46778 -5.09323,21.10053 3.61581,-0.13403 4.7813,-2.34902 4.23334,-7.07761 0,0 -0.19844,-1.12448 -1.19063,-1.45521 -0.99219,-0.33073 -1.65364,-0.19843 -1.65364,-0.19843 l 0.0661,-1.7198 h 8.75784 v 1.91823 c 0,0 -2.3151,-0.19843 -2.64583,0.79375 -0.40835,2.38614 -0.26458,4.85843 -0.26458,7.27604 -2.01447,0 -2.88862,1.57461 -4.92139,2.11667 -2.82003,0.752 -13.60018,1.33116 -15.21354,-11.57552 l -2.44739,-1.52135 2.77812,-1.38907 c 2.45785,-15.60142 15.17401,-12.63375 17.79323,-10.84791 1.45521,0.99218 0.79375,0.59531 0.79375,0.59531 v -2.05052 z"
|
||||||
|
id="path37-4" /><path
|
||||||
|
d="m 660.62273,912.96857 a 10,10 0 0 1 -2.22778,0.25166 10,10 0 0 1 -0.48834,-0.0119 l -7.17475,15.02544 -3.24115,0.33073 -10.64328,20.89123 21.54752,21.54753 22.77588,-22.77587 -10.01748,-19.66289 -3.24115,-0.33073 z m -0.46613,17.18964 c 2.74855,-0.0395 5.15024,0.79637 6.13245,1.46606 0.41577,0.28348 0.65875,0.45356 0.79375,0.55191 v -2.00711 h 2.24895 v 8.86354 h -1.25677 c 0,0 -0.39687,-3.63802 -1.98437,-4.82865 -13.27502,-9.95623 -15.00968,21.46777 -5.09323,21.10052 3.61581,-0.13403 4.78129,-2.34901 4.23333,-7.0776 0,0 -0.19843,-1.12448 -1.19062,-1.45521 -0.99219,-0.33073 -1.65365,-0.19844 -1.65365,-0.19844 l 0.0661,-1.71979 h 8.75812 v 1.91823 c 0,0 -2.3151,-0.19843 -2.64583,0.79375 -0.40835,2.38614 -0.26459,4.85843 -0.26459,7.27604 -2.01447,0 -2.88889,1.57461 -4.92166,2.11667 -2.82003,0.752 -13.60018,1.33116 -15.21354,-11.57552 l -2.4474,-1.52136 2.77813,-1.38906 c 1.53615,-9.75089 7.07987,-12.24819 11.66078,-12.31398 z"
|
||||||
|
id="path38"
|
||||||
|
style="fill:#0000ff;fill-opacity:0.14902;stroke-width:2;stroke-dasharray:none" /></g></g></svg>
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 9.9 KiB |
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
@ -560,12 +560,40 @@ impl Component for Host {
|
||||||
}
|
}
|
||||||
_ => None,
|
_ => None,
|
||||||
};
|
};
|
||||||
|
let skip_btn = match &self.state {
|
||||||
|
HostState::Prompt(_, _) | HostState::Result(_, _) => {
|
||||||
|
let on_skip_click = callback::send_message(
|
||||||
|
HostMessage::InGame(HostGameMessage::Night(HostNightMessage::SkipAction)),
|
||||||
|
self.send.clone(),
|
||||||
|
);
|
||||||
|
let on_skip_click = {
|
||||||
|
Callback::from(move |_| {
|
||||||
|
on_skip_click.emit(());
|
||||||
|
crate::components::modal::close_modal_by_id("skip-button");
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
Some(html! {
|
||||||
|
<crate::components::modal::Dialog
|
||||||
|
id={"skip-button"}
|
||||||
|
button={html!{{"skip"}}}
|
||||||
|
close_button=false
|
||||||
|
>
|
||||||
|
<h2>{"skip the current prompt?"}</h2>
|
||||||
|
<p>{"if this is the final prompt of the night, you may not be able to go back"}</p>
|
||||||
|
<Button on_click={on_skip_click}>{"skip prompt"}</Button>
|
||||||
|
</crate::components::modal::Dialog>
|
||||||
|
})
|
||||||
|
}
|
||||||
|
_ => None,
|
||||||
|
};
|
||||||
let nav = self.big_screen.not().then(|| {
|
let nav = self.big_screen.not().then(|| {
|
||||||
html! {
|
html! {
|
||||||
<nav class="host-nav" style="z-index: 3;">
|
<nav class="host-nav" style="z-index: 3;">
|
||||||
{previous_btn}
|
{previous_btn}
|
||||||
{view_roles_btn}
|
{view_roles_btn}
|
||||||
{override_screens_btn}
|
{override_screens_btn}
|
||||||
|
{skip_btn}
|
||||||
</nav>
|
</nav>
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
@ -124,7 +124,7 @@ pub fn ActionResultView(props: &ActionResultProps) -> Html {
|
||||||
</CoverOfDarkness>
|
</CoverOfDarkness>
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
ActionResult::Continue => {
|
ActionResult::SkippedByHost | ActionResult::Continue => {
|
||||||
props.on_complete.emit(HostMessage::GetState);
|
props.on_complete.emit(HostMessage::GetState);
|
||||||
return html! {
|
return html! {
|
||||||
<CoverOfDarkness />
|
<CoverOfDarkness />
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use core::ops::Not;
|
use core::ops::Not;
|
||||||
|
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (C) 2025 Emilis Bliūdžius
|
// Copyright (C) 2025-2026 Emilis Bliūdžius
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue