fix: handle bot errors
This commit is contained in:
parent
4fd1f00af0
commit
3d01e8fe06
2 changed files with 15 additions and 5 deletions
|
|
@ -58,12 +58,17 @@ impl GameRunner {
|
|||
}
|
||||
|
||||
pub fn handle_event(&mut self, event: &GameEvent) -> Option<GameEvent> {
|
||||
if !self.state.validate(event) {
|
||||
println!("event not valid : {:?}", event);
|
||||
if event == &GameEvent::PlayError {
|
||||
return None;
|
||||
}
|
||||
// println!("consuming {:?}", event);
|
||||
self.state.consume(event);
|
||||
let valid_event = if self.state.validate(event) {
|
||||
self.state.consume(event);
|
||||
event
|
||||
} else {
|
||||
println!("{}", self.state);
|
||||
println!("event not valid : {:?}", event);
|
||||
&GameEvent::PlayError
|
||||
};
|
||||
|
||||
// chain all successive bot actions
|
||||
if self.bots.is_empty() {
|
||||
|
|
@ -74,7 +79,7 @@ impl GameRunner {
|
|||
let bot_events: Vec<GameEvent> = self
|
||||
.bots
|
||||
.iter_mut()
|
||||
.filter_map(|bot| bot.handle_event(event))
|
||||
.filter_map(|bot| bot.handle_event(valid_event))
|
||||
.collect();
|
||||
|
||||
// if bot_events.len() > 1 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue