proxisim/models/src/dto/armour.rs

2122 lines
55 KiB
Rust

use std::borrow::Cow;
use bevy_ecs::{prelude::*, relationship::RelatedSpawner};
use strum::Display;
use crate::{
bundle::{
Name,
armour::{Armour, ArmourCoverage, ArmourValue, Immunities, Immunity},
bonus::ArmourBonusType,
},
dto::draw_id,
};
#[derive(Clone, Copy, Debug, Display, PartialEq, Eq)]
#[cfg_attr(feature = "json", derive(serde::Deserialize, serde::Serialize))]
#[cfg_attr(feature = "json", serde(rename_all = "snake_case"))]
pub enum ArmourSlot {
Head,
Body,
Hands,
Legs,
Feet,
}
#[derive(Debug, Clone)]
#[cfg_attr(feature = "json", derive(serde::Deserialize, serde::Serialize))]
pub struct ArmourBonusInfo {
pub kind: ArmourBonusType,
pub value: Option<i16>,
}
#[derive(Debug, Clone)]
#[cfg_attr(feature = "json", derive(serde::Deserialize, serde::Serialize))]
pub struct CoverageDto {
pub body: f32,
pub heart: f32,
pub stomach: f32,
pub chest: f32,
pub arm: f32,
pub groin: f32,
pub leg: f32,
pub throat: f32,
pub hand: f32,
pub foot: f32,
pub head: f32,
}
#[derive(Debug, Clone)]
#[cfg_attr(feature = "json", derive(serde::Deserialize, serde::Serialize))]
pub struct ArmourDto {
pub slot: ArmourSlot,
pub id: i32,
pub name: Cow<'static, str>,
pub base_armour: f32,
pub armour: Option<f32>,
pub coverage: CoverageDto,
pub immunities: Cow<'static, [Immunity]>,
pub bonus: Option<ArmourBonusInfo>,
}
impl ArmourDto {
pub fn new(name: &str, armour: Option<f32>, bonus: Option<i16>) -> Option<Self> {
let base = match name {
"Leather Vest" => Self::LEATHER_VEST,
"Police Vest" => Self::POLICE_VEST,
"Bulletproof Vest" => Self::BULLETPROOF_VEST,
"Full Body Armor" => Self::FULL_BODY_ARMOR,
"Outer Tactical Vest" => Self::OUTER_TACTICAL_VEST,
"Chain Mail" => Self::CHAIN_MAIL,
"Flak Jacket" => Self::FLAK_JACKET,
"Combat Vest" => Self::COMBAT_VEST,
"Liquid Body Armor" => Self::LIQUID_BODY_ARMOR,
"Flexible Body Armor" => Self::FLEXIBLE_BODY_ARMOR,
"Hazmat Suit" => Self::HAZMAT_SUIT,
"Medieval Helmet" => Self::MEDIEVAL_HELMET,
"Kevlar Gloves" => Self::KEVLAR_GLOVES,
"WWII Helmet" => Self::WWII_HELMET,
"Motorcycle Helmet" => Self::MOTORCYCLE_HELMET,
"Construction Helmet" => Self::CONSTRUCTION_HELMET,
"Welding Helmet" => Self::WELDING_HELMET,
"Safety Boots" => Self::SAFETY_BOOTS,
"Hiking Boots" => Self::HIKING_BOOTS,
"Leather Helmet" => Self::LEATHER_HELMET,
"Leather Pants" => Self::LEATHER_PANTS,
"Leather Boots" => Self::LEATHER_BOOTS,
"Leather Gloves" => Self::LEATHER_GLOVES,
"Combat Helmet" => Self::COMBAT_HELMET,
"Combat Pants" => Self::COMBAT_PANTS,
"Combat Boots" => Self::COMBAT_BOOTS,
"Combat Gloves" => Self::COMBAT_GLOVES,
"Riot Helmet" => Self::RIOT_HELMET,
"Riot Body" => Self::RIOT_BODY,
"Riot Pants" => Self::RIOT_PANTS,
"Riot Boots" => Self::RIOT_BOOTS,
"Riot Gloves" => Self::RIOT_GLOVES,
"Dune Helmet" => Self::DUNE_HELMET,
"Dune Vest" => Self::DUNE_VEST,
"Dune Pants" => Self::DUNE_PANTS,
"Dune Boots" => Self::DUNE_BOOTS,
"Dune Gloves" => Self::DUNE_GLOVES,
"Assault Helmet" => Self::ASSAULT_HELMET,
"Assault Body" => Self::ASSAULT_BODY,
"Assault Pants" => Self::ASSAULT_PANTS,
"Assault Boots" => Self::ASSAULT_BOOTS,
"Assault Gloves" => Self::ASSAULT_GLOVES,
"Delta Gas Mask" => Self::DELTA_GAS_MASK,
"Delta Body" => Self::DELTA_BODY,
"Delta Pants" => Self::DELTA_PANTS,
"Delta Boots" => Self::DELTA_BOOTS,
"Delta Gloves" => Self::DELTA_GLOVES,
"Marauder Face Mask" => Self::MARAUDER_FACE_MASK,
"Marauder Body" => Self::MARAUDER_BODY,
"Marauder Pants" => Self::MARAUDER_PANTS,
"Marauder Boots" => Self::MARAUDER_BOOTS,
"Marauder Gloves" => Self::MARAUDER_GLOVES,
"EOD Helmet" => Self::EOD_HELMET,
"EOD Apron" => Self::EOD_APRON,
"EOD Pants" => Self::EOD_PANTS,
"EOD Boots" => Self::EOD_BOOTS,
"EOD Gloves" => Self::EOD_GLOVES,
"Kevlar Lab Coat" => Self::KEVLAR_LAB_COAT,
"M'aol Visage" => Self::M_AOL_VISAGE,
"M'aol Spathe" => Self::M_AOL_SPATHE,
"M'aol Britches" => Self::M_AOL_BRITCHES,
"M'aol Hooves" => Self::M_AOL_HOOVES,
"M'aol Clawshields" => Self::M_AOL_CLAWSHIELDS,
"Starshield Breastplate" => Self::STARSHIELD_BREASTPLATE,
"Sentinel Helmet" => Self::SENTINEL_HELMET,
"Sentinel Apron" => Self::SENTINEL_APRON,
"Sentinel Pants" => Self::SENTINEL_PANTS,
"Sentinel Boots" => Self::SENTINEL_BOOTS,
"Sentinel Gloves" => Self::SENTINEL_GLOVES,
"Vanguard Respirator" => Self::VANGUARD_RESPIRATOR,
"Vanguard Body" => Self::VANGUARD_BODY,
"Vanguard Pants" => Self::VANGUARD_PANTS,
"Vanguard Boots" => Self::VANGUARD_BOOTS,
"Vanguard Gloves" => Self::VANGUARD_GLOVES,
_ => return None,
};
Some(Self {
armour,
bonus: base.bonus.map(|b| ArmourBonusInfo { value: bonus, ..b }),
..base
})
}
pub fn head_pieces() -> Vec<Self> {
Self::ALL
.iter()
.filter(|a| a.slot == ArmourSlot::Head)
.cloned()
.collect()
}
pub fn body_pieces() -> Vec<Self> {
Self::ALL
.iter()
.filter(|a| a.slot == ArmourSlot::Body)
.cloned()
.collect()
}
pub fn leg_pieces() -> Vec<Self> {
Self::ALL
.iter()
.filter(|a| a.slot == ArmourSlot::Legs)
.cloned()
.collect()
}
pub fn foot_pieces() -> Vec<Self> {
Self::ALL
.iter()
.filter(|a| a.slot == ArmourSlot::Feet)
.cloned()
.collect()
}
pub fn hand_pieces() -> Vec<Self> {
Self::ALL
.iter()
.filter(|a| a.slot == ArmourSlot::Hands)
.cloned()
.collect()
}
pub fn spawn(self, spawner: &mut RelatedSpawner<'_, ChildOf>) -> Entity {
let mut commands = spawner.spawn(draw_id());
commands.insert((
Name(self.name.to_string()),
Armour,
ArmourValue(self.armour.unwrap_or(self.base_armour)),
ArmourCoverage::from(self.coverage),
Immunities(self.immunities.to_vec()),
));
commands.id()
}
pub const ALL: &[Self] = &[
Self::LEATHER_VEST,
Self::POLICE_VEST,
Self::BULLETPROOF_VEST,
Self::FULL_BODY_ARMOR,
Self::OUTER_TACTICAL_VEST,
Self::CHAIN_MAIL,
Self::FLAK_JACKET,
Self::COMBAT_VEST,
Self::LIQUID_BODY_ARMOR,
Self::FLEXIBLE_BODY_ARMOR,
Self::HAZMAT_SUIT,
Self::MEDIEVAL_HELMET,
Self::KEVLAR_GLOVES,
Self::WWII_HELMET,
Self::MOTORCYCLE_HELMET,
Self::CONSTRUCTION_HELMET,
Self::WELDING_HELMET,
Self::SAFETY_BOOTS,
Self::HIKING_BOOTS,
Self::LEATHER_HELMET,
Self::LEATHER_PANTS,
Self::LEATHER_BOOTS,
Self::LEATHER_GLOVES,
Self::COMBAT_HELMET,
Self::COMBAT_PANTS,
Self::COMBAT_BOOTS,
Self::COMBAT_GLOVES,
Self::RIOT_HELMET,
Self::RIOT_BODY,
Self::RIOT_PANTS,
Self::RIOT_BOOTS,
Self::RIOT_GLOVES,
Self::DUNE_HELMET,
Self::DUNE_VEST,
Self::DUNE_PANTS,
Self::DUNE_BOOTS,
Self::DUNE_GLOVES,
Self::ASSAULT_HELMET,
Self::ASSAULT_BODY,
Self::ASSAULT_PANTS,
Self::ASSAULT_BOOTS,
Self::ASSAULT_GLOVES,
Self::DELTA_GAS_MASK,
Self::DELTA_BODY,
Self::DELTA_PANTS,
Self::DELTA_BOOTS,
Self::DELTA_GLOVES,
Self::MARAUDER_FACE_MASK,
Self::MARAUDER_BODY,
Self::MARAUDER_PANTS,
Self::MARAUDER_BOOTS,
Self::MARAUDER_GLOVES,
Self::EOD_HELMET,
Self::EOD_APRON,
Self::EOD_PANTS,
Self::EOD_BOOTS,
Self::EOD_GLOVES,
Self::KEVLAR_LAB_COAT,
Self::M_AOL_VISAGE,
Self::M_AOL_SPATHE,
Self::M_AOL_BRITCHES,
Self::M_AOL_HOOVES,
Self::M_AOL_CLAWSHIELDS,
Self::STARSHIELD_BREASTPLATE,
Self::SENTINEL_HELMET,
Self::SENTINEL_APRON,
Self::SENTINEL_PANTS,
Self::SENTINEL_BOOTS,
Self::SENTINEL_GLOVES,
Self::VANGUARD_RESPIRATOR,
Self::VANGUARD_BODY,
Self::VANGUARD_PANTS,
Self::VANGUARD_BOOTS,
Self::VANGUARD_GLOVES,
];
const LEATHER_VEST: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 32,
name: Cow::Borrowed("Leather Vest"),
base_armour: 20.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 21.12,
heart: 97.27,
stomach: 95.09,
chest: 90.22,
arm: 6.5,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const POLICE_VEST: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 33,
name: Cow::Borrowed("Police Vest"),
base_armour: 32.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 26.79,
heart: 100.0,
stomach: 100.0,
chest: 95.44,
arm: 35.34,
groin: 7.45,
leg: 0.77,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const BULLETPROOF_VEST: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 34,
name: Cow::Borrowed("Bulletproof Vest"),
base_armour: 34.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 32.7,
heart: 100.0,
stomach: 100.0,
chest: 95.45,
arm: 35.87,
groin: 89.16,
leg: 0.78,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const FULL_BODY_ARMOR: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 49,
name: Cow::Borrowed("Full Body Armor"),
base_armour: 31.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 48.46,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 100.0,
groin: 60.68,
leg: 0.28,
throat: 90.68,
hand: 13.4,
foot: 0.0,
head: 0.0,
},
};
const OUTER_TACTICAL_VEST: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 50,
name: Cow::Borrowed("Outer Tactical Vest"),
base_armour: 36.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 27.54,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 23.91,
groin: 35.95,
leg: 0.93,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const CHAIN_MAIL: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 176,
name: Cow::Borrowed("Chain Mail"),
base_armour: 23.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 39.41,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 99.9,
groin: 48.46,
leg: 1.93,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const FLAK_JACKET: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 178,
name: Cow::Borrowed("Flak Jacket"),
base_armour: 30.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 26.52,
heart: 100.0,
stomach: 99.99,
chest: 96.42,
arm: 35.79,
groin: 3.12,
leg: 0.14,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const COMBAT_VEST: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 332,
name: Cow::Borrowed("Combat Vest"),
base_armour: 38.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 27.45,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 23.18,
groin: 36.04,
leg: 0.98,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const LIQUID_BODY_ARMOR: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 333,
name: Cow::Borrowed("Liquid Body Armor"),
base_armour: 40.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 24.12,
heart: 100.0,
stomach: 99.59,
chest: 98.48,
arm: 19.85,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const FLEXIBLE_BODY_ARMOR: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 334,
name: Cow::Borrowed("Flexible Body Armor"),
base_armour: 42.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 26.96,
heart: 100.0,
stomach: 96.57,
chest: 95.73,
arm: 36.16,
groin: 11.88,
leg: 0.51,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const HAZMAT_SUIT: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 348,
name: Cow::Borrowed("Hazmat Suit"),
base_armour: 10.0,
armour: None,
immunities: Cow::Borrowed(&[
Immunity::Radiation,
Immunity::PepperSpray,
Immunity::NerveGas,
Immunity::TearGas,
]),
bonus: None,
coverage: CoverageDto {
body: 97.85,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 100.0,
groin: 100.0,
leg: 100.0,
throat: 100.0,
hand: 100.0,
foot: 100.0,
head: 70.0,
},
};
const MEDIEVAL_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 538,
name: Cow::Borrowed("Medieval Helmet"),
base_armour: 25.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 9.71,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 42.24,
hand: 0.0,
foot: 0.0,
head: 93.54,
},
};
const KEVLAR_GLOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 640,
name: Cow::Borrowed("Kevlar Gloves"),
base_armour: 32.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 14.34,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.32,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
const WWII_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 641,
name: Cow::Borrowed("WWII Helmet"),
base_armour: 34.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 4.64,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 64.85,
},
};
const MOTORCYCLE_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 642,
name: Cow::Borrowed("Motorcycle Helmet"),
base_armour: 30.0,
armour: None,
immunities: Cow::Borrowed(&[Immunity::PepperSpray]),
bonus: None,
coverage: CoverageDto {
body: 7.76,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 23.19,
hand: 0.0,
foot: 0.0,
head: 85.35,
},
};
const CONSTRUCTION_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 643,
name: Cow::Borrowed("Construction Helmet"),
base_armour: 30.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 2.84,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 39.68,
},
};
const WELDING_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 644,
name: Cow::Borrowed("Welding Helmet"),
base_armour: 34.0,
armour: None,
immunities: Cow::Borrowed(&[Immunity::FlashGrenade, Immunity::PepperSpray]),
bonus: None,
coverage: CoverageDto {
body: 10.7,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 49.53,
hand: 0.0,
foot: 0.0,
head: 100.0,
},
};
const SAFETY_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 645,
name: Cow::Borrowed("Safety Boots"),
base_armour: 30.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 14.96,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 4.74,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const HIKING_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 646,
name: Cow::Borrowed("Hiking Boots"),
base_armour: 24.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 15.03,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 5.22,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const LEATHER_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 647,
name: Cow::Borrowed("Leather Helmet"),
base_armour: 20.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
#[allow(clippy::approx_constant)]
body: 3.14,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 8.84,
hand: 0.0,
foot: 0.0,
head: 35.12,
},
};
const LEATHER_PANTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Legs,
id: 648,
name: Cow::Borrowed("Leather Pants"),
base_armour: 20.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 24.17,
heart: 0.0,
stomach: 7.5,
chest: 0.0,
arm: 0.0,
groin: 100.0,
leg: 100.0,
throat: 0.0,
hand: 0.0,
foot: 15.49,
head: 0.0,
},
};
const LEATHER_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 649,
name: Cow::Borrowed("Leather Boots"),
base_armour: 20.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 15.54,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 8.77,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const LEATHER_GLOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 650,
name: Cow::Borrowed("Leather Gloves"),
base_armour: 20.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 14.3,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
const COMBAT_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 651,
name: Cow::Borrowed("Combat Helmet"),
base_armour: 38.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 4.83,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 67.49,
},
};
const COMBAT_PANTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Legs,
id: 652,
name: Cow::Borrowed("Combat Pants"),
base_armour: 38.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 24.29,
heart: 0.0,
stomach: 7.62,
chest: 0.0,
arm: 0.0,
groin: 100.0,
leg: 100.0,
throat: 0.0,
hand: 0.0,
foot: 16.28,
head: 0.0,
},
};
const COMBAT_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 653,
name: Cow::Borrowed("Combat Boots"),
base_armour: 38.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 15.42,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 7.92,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const COMBAT_GLOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 654,
name: Cow::Borrowed("Combat Gloves"),
base_armour: 38.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 14.34,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.32,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
const RIOT_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 655,
name: Cow::Borrowed("Riot Helmet"),
base_armour: 35.0,
armour: None,
immunities: Cow::Borrowed(&[Immunity::PepperSpray]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impregnable,
value: None,
}),
coverage: CoverageDto {
body: 7.13,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 99.61,
},
};
const RIOT_BODY: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 656,
name: Cow::Borrowed("Riot Body"),
base_armour: 45.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impregnable,
value: None,
}),
coverage: CoverageDto {
body: 51.99,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 100.0,
groin: 99.9,
leg: 3.01,
throat: 79.06,
hand: 21.6,
foot: 0.0,
head: 0.0,
},
};
const RIOT_PANTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Legs,
id: 657,
name: Cow::Borrowed("Riot Pants"),
base_armour: 45.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impregnable,
value: None,
}),
coverage: CoverageDto {
body: 27.28,
heart: 0.0,
stomach: 2.12,
chest: 0.0,
arm: 0.0,
groin: 100.0,
leg: 100.0,
throat: 0.0,
hand: 0.0,
foot: 39.96,
head: 0.0,
},
};
const RIOT_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 658,
name: Cow::Borrowed("Riot Boots"),
base_armour: 45.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impregnable,
value: None,
}),
coverage: CoverageDto {
body: 15.95,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 11.62,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const RIOT_GLOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 659,
name: Cow::Borrowed("Riot Gloves"),
base_armour: 45.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impregnable,
value: None,
}),
coverage: CoverageDto {
body: 14.41,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.78,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
const DUNE_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 660,
name: Cow::Borrowed("Dune Helmet"),
base_armour: 44.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Insurmountable,
value: None,
}),
coverage: CoverageDto {
body: 4.64,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 64.83,
},
};
const DUNE_VEST: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 661,
name: Cow::Borrowed("Dune Vest"),
base_armour: 44.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Insurmountable,
value: None,
}),
coverage: CoverageDto {
body: 45.49,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 100.0,
groin: 9.05,
leg: 0.46,
throat: 83.93,
hand: 21.6,
foot: 0.0,
head: 0.0,
},
};
const DUNE_PANTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Legs,
id: 662,
name: Cow::Borrowed("Dune Pants"),
base_armour: 44.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Insurmountable,
value: None,
}),
coverage: CoverageDto {
body: 24.03,
heart: 0.0,
stomach: 12.28,
chest: 0.0,
arm: 0.0,
groin: 100.0,
leg: 100.0,
throat: 0.0,
hand: 0.0,
foot: 12.1,
head: 0.0,
},
};
const DUNE_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 663,
name: Cow::Borrowed("Dune Boots"),
base_armour: 44.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Insurmountable,
value: None,
}),
coverage: CoverageDto {
body: 15.78,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 10.47,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const DUNE_GLOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 664,
name: Cow::Borrowed("Dune Gloves"),
base_armour: 44.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Insurmountable,
value: None,
}),
coverage: CoverageDto {
body: 14.36,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.42,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
const ASSAULT_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 665,
name: Cow::Borrowed("Assault Helmet"),
base_armour: 46.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impenetrable,
value: None,
}),
coverage: CoverageDto {
body: 5.05,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 3.99,
hand: 0.0,
foot: 0.0,
head: 66.53,
},
};
const ASSAULT_BODY: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 666,
name: Cow::Borrowed("Assault Body"),
base_armour: 46.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impenetrable,
value: None,
}),
coverage: CoverageDto {
body: 45.55,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 100.0,
groin: 14.15,
leg: 0.56,
throat: 81.16,
hand: 20.73,
foot: 0.0,
head: 0.0,
},
};
const ASSAULT_PANTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Legs,
id: 667,
name: Cow::Borrowed("Assault Pants"),
base_armour: 46.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impenetrable,
value: None,
}),
coverage: CoverageDto {
body: 26.44,
heart: 0.0,
stomach: 3.84,
chest: 0.0,
arm: 0.0,
groin: 100.0,
leg: 100.0,
throat: 0.0,
hand: 0.0,
foot: 33.25,
head: 0.0,
},
};
const ASSAULT_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 668,
name: Cow::Borrowed("Assault Boots"),
base_armour: 46.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impenetrable,
value: None,
}),
coverage: CoverageDto {
body: 15.58,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 9.07,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const ASSAULT_GLOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 669,
name: Cow::Borrowed("Assault Gloves"),
base_armour: 46.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impenetrable,
value: None,
}),
coverage: CoverageDto {
body: 14.37,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.5,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
const DELTA_GAS_MASK: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 670,
name: Cow::Borrowed("Delta Gas Mask"),
base_armour: 49.0,
armour: None,
immunities: Cow::Borrowed(&[Immunity::NerveGas, Immunity::TearGas, Immunity::PepperSpray]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Invulnerable,
value: None,
}),
coverage: CoverageDto {
body: 1.94,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 27.13,
},
};
const DELTA_BODY: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 671,
name: Cow::Borrowed("Delta Body"),
base_armour: 49.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Invulnerable,
value: None,
}),
coverage: CoverageDto {
body: 46.24,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 100.0,
groin: 30.7,
leg: 0.64,
throat: 88.81,
hand: 13.4,
foot: 0.0,
head: 0.0,
},
};
const DELTA_PANTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Legs,
id: 672,
name: Cow::Borrowed("Delta Pants"),
base_armour: 49.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Invulnerable,
value: None,
}),
coverage: CoverageDto {
body: 26.18,
heart: 0.0,
stomach: 8.59,
chest: 0.0,
arm: 0.0,
groin: 100.0,
leg: 100.0,
throat: 0.0,
hand: 0.0,
foot: 29.06,
head: 0.0,
},
};
const DELTA_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 673,
name: Cow::Borrowed("Delta Boots"),
base_armour: 49.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Invulnerable,
value: None,
}),
coverage: CoverageDto {
body: 15.75,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 10.25,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const DELTA_GLOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 674,
name: Cow::Borrowed("Delta Gloves"),
base_armour: 49.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Invulnerable,
value: None,
}),
coverage: CoverageDto {
body: 14.37,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.5,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
const MARAUDER_FACE_MASK: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 675,
name: Cow::Borrowed("Marauder Face Mask"),
base_armour: 40.0,
armour: None,
immunities: Cow::Borrowed(&[Immunity::PepperSpray]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Invulnerable,
value: None,
}),
coverage: CoverageDto {
body: 11.49,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 60.57,
hand: 0.0,
foot: 0.0,
head: 100.0,
},
};
const MARAUDER_BODY: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 676,
name: Cow::Borrowed("Marauder Body"),
base_armour: 52.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Imperviable,
value: None,
}),
coverage: CoverageDto {
body: 42.47,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 100.0,
groin: 0.0,
leg: 0.0,
throat: 84.72,
hand: 5.05,
foot: 0.0,
head: 0.0,
},
};
const MARAUDER_PANTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Legs,
id: 677,
name: Cow::Borrowed("Marauder Pants"),
base_armour: 52.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Imperviable,
value: None,
}),
coverage: CoverageDto {
body: 20.99,
heart: 0.0,
stomach: 0.52,
chest: 0.0,
arm: 0.0,
groin: 100.0,
leg: 96.69,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const MARAUDER_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 678,
name: Cow::Borrowed("Marauder Boots"),
base_armour: 52.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Invulnerable,
value: None,
}),
coverage: CoverageDto {
body: 15.65,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 9.53,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const MARAUDER_GLOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 679,
name: Cow::Borrowed("Marauder Gloves"),
base_armour: 52.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Invulnerable,
value: None,
}),
coverage: CoverageDto {
body: 14.37,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.5,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
const EOD_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 680,
name: Cow::Borrowed("EOD Helmet"),
base_armour: 55.0,
armour: None,
immunities: Cow::Borrowed(&[Immunity::ConcussionGrenade, Immunity::PepperSpray]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impassable,
value: None,
}),
coverage: CoverageDto {
body: 10.22,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 42.9,
hand: 0.0,
foot: 0.0,
head: 100.0,
},
};
const EOD_APRON: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 681,
name: Cow::Borrowed("EOD Apron"),
base_armour: 55.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impassable,
value: None,
}),
coverage: CoverageDto {
body: 55.24,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 100.0,
groin: 100.0,
leg: 17.58,
throat: 100.0,
hand: 16.88,
foot: 0.0,
head: 4.68,
},
};
const EOD_PANTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Legs,
id: 682,
name: Cow::Borrowed("EOD Pants"),
base_armour: 55.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impassable,
value: None,
}),
coverage: CoverageDto {
body: 26.01,
heart: 0.0,
stomach: 23.94,
chest: 0.0,
arm: 0.0,
groin: 100.0,
leg: 100.0,
throat: 0.0,
hand: 0.0,
foot: 20.13,
head: 0.0,
},
};
const EOD_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 683,
name: Cow::Borrowed("EOD Boots"),
base_armour: 55.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impassable,
value: None,
}),
coverage: CoverageDto {
body: 15.17,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 6.19,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const EOD_GLOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 684,
name: Cow::Borrowed("EOD Gloves"),
base_armour: 55.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Impassable,
value: None,
}),
coverage: CoverageDto {
body: 14.37,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.5,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
const KEVLAR_LAB_COAT: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 848,
name: Cow::Borrowed("Kevlar Lab Coat"),
base_armour: 32.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: None,
coverage: CoverageDto {
body: 29.15,
heart: 0.0,
stomach: 14.4,
chest: 31.69,
arm: 100.0,
groin: 12.05,
leg: 44.1,
throat: 0.0,
hand: 31.0,
foot: 0.0,
head: 0.0,
},
};
const M_AOL_VISAGE: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 1164,
name: Cow::Borrowed("M'aol Visage"),
base_armour: 38.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Kinetokinesis,
value: None,
}),
coverage: CoverageDto {
body: 37.76,
heart: 70.75,
stomach: 18.22,
chest: 81.03,
arm: 7.22,
groin: 0.33,
leg: 0.0,
throat: 100.0,
hand: 0.0,
foot: 0.0,
head: 100.0,
},
};
const M_AOL_SPATHE: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 1165,
name: Cow::Borrowed("M'aol Spathe"),
base_armour: 50.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Kinetokinesis,
value: None,
}),
coverage: CoverageDto {
body: 46.94,
heart: 100.0,
stomach: 95.91,
chest: 100.0,
arm: 99.35,
groin: 5.14,
leg: 0.0,
throat: 68.97,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const M_AOL_BRITCHES: ArmourDto = ArmourDto {
slot: ArmourSlot::Legs,
id: 1166,
name: Cow::Borrowed("M'aol Britches"),
base_armour: 50.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Kinetokinesis,
value: None,
}),
coverage: CoverageDto {
body: 19.47,
heart: 0.0,
stomach: 4.46,
chest: 0.0,
arm: 0.0,
groin: 100.0,
leg: 90.19,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const M_AOL_HOOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 1167,
name: Cow::Borrowed("M'aol Hooves"),
base_armour: 50.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Kinetokinesis,
value: None,
}),
coverage: CoverageDto {
body: 10.99,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 9.9,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const M_AOL_CLAWSHIELDS: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 1168,
name: Cow::Borrowed("M'aol Clawshields"),
base_armour: 50.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Kinetokinesis,
value: None,
}),
coverage: CoverageDto {
body: 10.18,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 1.81,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
const STARSHIELD_BREASTPLATE: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 1174,
name: Cow::Borrowed("Starshield Breastplate"),
base_armour: 39.0,
armour: None,
immunities: Cow::Borrowed(&[Immunity::Insanity]),
bonus: None,
coverage: CoverageDto {
body: 33.43,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 10.89,
groin: 8.17,
leg: 0.0,
throat: 15.19,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const SENTINEL_HELMET: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 1307,
name: Cow::Borrowed("Sentinel Helmet"),
base_armour: 53.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Immmutable,
value: None,
}),
coverage: CoverageDto {
body: 5.33,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 74.24,
},
};
const SENTINEL_APRON: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 1308,
name: Cow::Borrowed("Sentinel Apron"),
base_armour: 53.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Immmutable,
value: None,
}),
coverage: CoverageDto {
body: 42.69,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 100.0,
groin: 0.0,
leg: 2.24,
throat: 95.91,
hand: 0.0,
foot: 0.0,
head: 0.0,
},
};
const SENTINEL_PANTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Legs,
id: 1309,
name: Cow::Borrowed("Sentinel Pants"),
base_armour: 53.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Immmutable,
value: None,
}),
coverage: CoverageDto {
body: 24.74,
heart: 0.0,
stomach: 4.71,
chest: 0.0,
arm: 0.0,
groin: 100.0,
leg: 100.0,
throat: 0.0,
hand: 0.0,
foot: 20.84,
head: 0.0,
},
};
const SENTINEL_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 1310,
name: Cow::Borrowed("Sentinel Boots"),
base_armour: 53.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Immmutable,
value: None,
}),
coverage: CoverageDto {
body: 15.11,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 5.63,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const SENTINEL_GLOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 1311,
name: Cow::Borrowed("Sentinel Gloves"),
base_armour: 53.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Immmutable,
value: None,
}),
coverage: CoverageDto {
body: 14.37,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.55,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
const VANGUARD_RESPIRATOR: ArmourDto = ArmourDto {
slot: ArmourSlot::Head,
id: 1355,
name: Cow::Borrowed("Vanguard Respirator"),
base_armour: 48.0,
armour: None,
immunities: Cow::Borrowed(&[Immunity::PepperSpray, Immunity::NerveGas, Immunity::TearGas]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Irrepressible,
value: None,
}),
coverage: CoverageDto {
body: 2.82,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 0.0,
foot: 0.0,
head: 39.6,
},
};
const VANGUARD_BODY: ArmourDto = ArmourDto {
slot: ArmourSlot::Body,
id: 1356,
name: Cow::Borrowed("Vanguard Body"),
base_armour: 48.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Irrepressible,
value: None,
}),
coverage: CoverageDto {
body: 44.28,
heart: 100.0,
stomach: 100.0,
chest: 100.0,
arm: 100.0,
groin: 35.39,
leg: 0.28,
throat: 83.53,
hand: 0.13,
foot: 0.0,
head: 0.0,
},
};
const VANGUARD_PANTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Legs,
id: 1357,
name: Cow::Borrowed("Vanguard Pants"),
base_armour: 48.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Irrepressible,
value: None,
}),
coverage: CoverageDto {
body: 24.96,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 99.07,
leg: 100.0,
throat: 0.0,
hand: 0.0,
foot: 25.2,
head: 0.0,
},
};
const VANGUARD_BOOTS: ArmourDto = ArmourDto {
slot: ArmourSlot::Feet,
id: 1358,
name: Cow::Borrowed("Vanguard Boots"),
base_armour: 48.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Irrepressible,
value: None,
}),
coverage: CoverageDto {
body: 15.13,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.0,
groin: 0.0,
leg: 5.83,
throat: 0.0,
hand: 0.0,
foot: 100.0,
head: 0.0,
},
};
const VANGUARD_GLOVES: ArmourDto = ArmourDto {
slot: ArmourSlot::Hands,
id: 1359,
name: Cow::Borrowed("Vanguard Gloves"),
base_armour: 48.0,
armour: None,
immunities: Cow::Borrowed(&[]),
bonus: Some(ArmourBonusInfo {
kind: ArmourBonusType::Irrepressible,
value: None,
}),
coverage: CoverageDto {
body: 14.4,
heart: 0.0,
stomach: 0.0,
chest: 0.0,
arm: 0.73,
groin: 0.0,
leg: 0.0,
throat: 0.0,
hand: 100.0,
foot: 0.0,
head: 0.0,
},
};
}