fix previous not adding back to queue
This commit is contained in:
parent
9f00d2b912
commit
2075f07bb7
|
|
@ -319,7 +319,7 @@ impl Night {
|
|||
}
|
||||
NightState::Complete => return Err(GameError::NightOver),
|
||||
};
|
||||
if let Some((prompt, _, changes)) = self.used_actions.pop() {
|
||||
if let Some((mut prompt, _, changes)) = self.used_actions.pop() {
|
||||
// Remove the shapeshifter role change from the queue
|
||||
if let ActionPrompt::Shapeshifter {
|
||||
character_id: ss_char,
|
||||
|
|
@ -337,8 +337,9 @@ impl Night {
|
|||
// put it back in
|
||||
self.action_queue.push_front(next);
|
||||
}
|
||||
// panic!("{:#?}", self.action_queue.pop_front());
|
||||
*current_prompt = prompt;
|
||||
core::mem::swap(&mut prompt, current_prompt);
|
||||
let last_prompt = prompt;
|
||||
self.action_queue.push_front(last_prompt);
|
||||
*current_result = None;
|
||||
*current_changes = Vec::new();
|
||||
Ok(())
|
||||
|
|
@ -369,7 +370,7 @@ impl Night {
|
|||
if self.village.character_by_id(recruiting)?.is_village() {
|
||||
if let Some(masons) = self.action_queue.iter_mut().find_map(|a| match a {
|
||||
ActionPrompt::MasonsWake { leader, masons, .. } => {
|
||||
(*leader == mason_leader).then_some(masons)
|
||||
(leader.character_id == mason_leader).then_some(masons)
|
||||
}
|
||||
_ => None,
|
||||
}) {
|
||||
|
|
@ -378,7 +379,7 @@ impl Night {
|
|||
*masons = ext_masons.into_boxed_slice();
|
||||
} else {
|
||||
self.action_queue.push_front(ActionPrompt::MasonsWake {
|
||||
leader: self.village.character_by_id(mason_leader)?.character_id(),
|
||||
leader: self.village.character_by_id(mason_leader)?.identity(),
|
||||
masons: Box::new([self.village.character_by_id(recruiting)?.identity()]),
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue