Added untap hotkey⍼
This commit is contained in:
17
src/game.rs
17
src/game.rs
@ -16,7 +16,7 @@ struct CardInfo {
|
||||
count: usize,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize, Clone, Copy, Debug)]
|
||||
#[derive(Deserialize, Serialize, Clone, Copy, Debug, PartialEq)]
|
||||
pub enum Player {
|
||||
A,
|
||||
B,
|
||||
@ -56,7 +56,8 @@ enum Event {
|
||||
Undiscard(Player),
|
||||
Kill(Uuid, bool),
|
||||
Unkill(Uuid, bool),
|
||||
TransferDeadCard(Uuid, bool)
|
||||
TransferDeadCard(Uuid, bool),
|
||||
UntapAll(Player),
|
||||
}
|
||||
|
||||
#[derive(Serialize, Clone, Debug)]
|
||||
@ -371,3 +372,15 @@ pub fn transfer_dead_card(game_state: &mut GameState, pile_index: usize, shadow_
|
||||
event: Event::TransferDeadCard(card_id, shadow_to_discard),
|
||||
});
|
||||
}
|
||||
|
||||
pub fn untap_all(game_state: &mut GameState, player: Player) {
|
||||
game_state.events.push(CountedEvent {
|
||||
id: game_state.events.len(),
|
||||
event: Event::UntapAll(player),
|
||||
});
|
||||
for (_, card) in game_state.play.iter_mut() {
|
||||
if card.owner == player {
|
||||
card.tapped = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
20
src/main.rs
20
src/main.rs
@ -316,6 +316,25 @@ fn get_state(
|
||||
))
|
||||
}
|
||||
|
||||
#[get("/<uuid>/untap_all")]
|
||||
fn untap_all(
|
||||
uuid: Uuid,
|
||||
game_state_arc: &State<ArcMutexGameState>,
|
||||
player_uuids: &State<PlayerUuids>,
|
||||
) -> Result<String, BadRequest<String>> {
|
||||
let game_state_mutex = Arc::clone(&game_state_arc.state);
|
||||
let mut game_state = game_state_mutex.lock().unwrap();
|
||||
let player = match player_uuids.map.get(&uuid) {
|
||||
Some(player) => player,
|
||||
None => return Err(BadRequest(format!("Invalid player {}.", uuid))),
|
||||
};
|
||||
game::untap_all(&mut game_state, player.clone());
|
||||
Ok(format!(
|
||||
"{}",
|
||||
game::get_game_one_player(&game_state, player.clone())
|
||||
))
|
||||
}
|
||||
|
||||
#[get("/<uuid>/draw/<count>")]
|
||||
fn draw(
|
||||
uuid: Uuid,
|
||||
@ -462,6 +481,7 @@ fn rocket() -> _ {
|
||||
unshadow,
|
||||
undiscard,
|
||||
remember,
|
||||
untap_all,
|
||||
],
|
||||
)
|
||||
.manage(ArcMutexGameState {
|
||||
|
||||
Reference in New Issue
Block a user