aboutsummaryrefslogtreecommitdiff
path: root/src/analyzers/raids/w3.rs
blob: 16a3d136a387f2c36c1f609777239cdcf4340620 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use crate::{
    analyzers::{helpers, Analyzer, Outcome},
    Log,
};

/// Analyzer for the final fight of Wing 3, Xera.
#[derive(Debug, Clone, Copy)]
pub struct Xera<'log> {
    log: &'log Log,
}

impl<'log> Xera<'log> {
    /// Create a new [`Xera`] analyzer for the given log.
    ///
    /// **Do not** use this method unless you know what you are doing. Instead, rely on
    /// [`Log::analyzer`]!
    pub fn new(log: &'log Log) -> Self {
        Xera { log }
    }
}

impl<'log> Analyzer for Xera<'log> {
    fn log(&self) -> &Log {
        self.log
    }

    fn is_cm(&self) -> bool {
        false
    }

    fn outcome(&self) -> Option<Outcome> {
        check_reward!(self.log);
        Outcome::from_bool(helpers::players_exit_after_boss(self.log))
    }
}