more info!
This commit is contained in:
parent
15aacf88f7
commit
ca0bbd45d2
1 changed files with 56 additions and 4 deletions
60
src/main.rs
60
src/main.rs
|
@ -1,7 +1,7 @@
|
||||||
mod compile_data;
|
mod compile_data;
|
||||||
mod raw_data;
|
mod raw_data;
|
||||||
|
|
||||||
use crate::compile_data::{JobStats, Role};
|
use crate::compile_data::{DpsRole, JobStats, Role};
|
||||||
use crate::raw_data::RawJobStats;
|
use crate::raw_data::RawJobStats;
|
||||||
|
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
|
@ -14,11 +14,13 @@ fn get_job_stats(lodestone_id: usize) -> anyhow::Result<Vec<JobStats>> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() -> anyhow::Result<()> {
|
fn main() -> anyhow::Result<()> {
|
||||||
let id = 29932586;
|
let id = 29932586; // Binglesworth
|
||||||
let stats = get_job_stats(id)?;
|
let stats = get_job_stats(id)?;
|
||||||
display_stats(id, &stats);
|
display_stats(id, &stats);
|
||||||
|
|
||||||
let id = 44540671;
|
println!();
|
||||||
|
|
||||||
|
let id = 44540671; // Dialus
|
||||||
let stats = get_job_stats(id)?;
|
let stats = get_job_stats(id)?;
|
||||||
display_stats(id, &stats);
|
display_stats(id, &stats);
|
||||||
|
|
||||||
|
@ -26,11 +28,61 @@ fn main() -> anyhow::Result<()> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn display_stats(id: usize, stats: &[JobStats]) {
|
fn display_stats(id: usize, stats: &[JobStats]) {
|
||||||
|
println!("{id}\t\tLevels Earned");
|
||||||
|
println!("-------------------------------------");
|
||||||
|
|
||||||
let total_dowm_earned_levels = stats
|
let total_dowm_earned_levels = stats
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|j| matches!(j.role, Role::Tank | Role::Healer | Role::Dps(_)))
|
.filter(|j| matches!(j.role, Role::Tank | Role::Healer | Role::Dps(_)))
|
||||||
.filter(|j| j.name != "Scholar")
|
.filter(|j| j.name != "Scholar")
|
||||||
.fold(0usize, |acc, j| acc + j.level - j.starting_level);
|
.fold(0usize, |acc, j| acc + j.level - j.starting_level);
|
||||||
|
|
||||||
println!("{total_dowm_earned_levels} levels for {id}");
|
println!("DoW/DoM\t\t\t{total_dowm_earned_levels}");
|
||||||
|
|
||||||
|
let healer_stats = stats.iter().filter(|j| matches!(j.role, Role::Healer));
|
||||||
|
let healer_stats_no_scholar = healer_stats.clone().filter(|j| j.name != "Scholar");
|
||||||
|
let total_healer_earned = healer_stats.fold(0usize, |acc, j| acc + j.level - j.starting_level);
|
||||||
|
let total_healer_earned_no_scholar =
|
||||||
|
healer_stats_no_scholar.fold(0usize, |acc, j| acc + j.level - j.starting_level);
|
||||||
|
|
||||||
|
println!("Healers (w/o SCH)\t{total_healer_earned} ({total_healer_earned_no_scholar})");
|
||||||
|
|
||||||
|
let total_tank_earned = stats
|
||||||
|
.iter()
|
||||||
|
.filter(|j| matches!(j.role, Role::Tank))
|
||||||
|
.fold(0usize, |acc, j| acc + j.level - j.starting_level);
|
||||||
|
|
||||||
|
println!("Tanks\t\t\t{total_tank_earned}");
|
||||||
|
|
||||||
|
let total_dps_earned = stats
|
||||||
|
.iter()
|
||||||
|
.filter(|j| matches!(j.role, Role::Dps(_)))
|
||||||
|
.fold(0usize, |acc, j| acc + j.level - j.starting_level);
|
||||||
|
|
||||||
|
println!("Dps\t\t\t{total_dps_earned}");
|
||||||
|
|
||||||
|
let total_melee_dps_earned = stats
|
||||||
|
.iter()
|
||||||
|
.filter(|j| matches!(j.role, Role::Dps(DpsRole::Melee)))
|
||||||
|
.fold(0usize, |acc, j| acc + j.level - j.starting_level);
|
||||||
|
|
||||||
|
println!("Dps - Melee\t\t{total_melee_dps_earned}");
|
||||||
|
|
||||||
|
let total_ranged_dps_earned = stats
|
||||||
|
.iter()
|
||||||
|
.filter(|j| matches!(j.role, Role::Dps(DpsRole::Ranged)))
|
||||||
|
.fold(0usize, |acc, j| acc + j.level - j.starting_level);
|
||||||
|
|
||||||
|
println!("Dps - Ranged\t\t{total_ranged_dps_earned}");
|
||||||
|
|
||||||
|
let magic_stats = stats
|
||||||
|
.iter()
|
||||||
|
.filter(|j| matches!(j.role, Role::Dps(DpsRole::Magic)));
|
||||||
|
let magic_stats_no_blue = magic_stats.clone().filter(|j| !j.is_blue_mage);
|
||||||
|
|
||||||
|
let magic_earned = magic_stats.fold(0usize, |acc, j| acc + j.level - j.starting_level);
|
||||||
|
let magic_earned_no_blue =
|
||||||
|
magic_stats_no_blue.fold(0usize, |acc, j| acc + j.level - j.starting_level);
|
||||||
|
|
||||||
|
println!("Dps - Magic (w/o BLU)\t{magic_earned} ({magic_earned_no_blue})");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue