From ef6a12edc2c44f3d67e21d81b697286fc04f04de Mon Sep 17 00:00:00 2001 From: juliancoffee Date: Sun, 27 Jun 2021 14:59:34 +0300 Subject: [PATCH] bumb Biped Cultist armour --- .../items/npc_armor/biped_large/warlock.ron | 17 ++ .../items/npc_armor/biped_large/warlord.ron | 17 ++ common/src/comp/inventory/loadout_builder.rs | 145 ++++++++---------- 3 files changed, 99 insertions(+), 80 deletions(-) create mode 100644 assets/common/items/npc_armor/biped_large/warlock.ron create mode 100644 assets/common/items/npc_armor/biped_large/warlord.ron diff --git a/assets/common/items/npc_armor/biped_large/warlock.ron b/assets/common/items/npc_armor/biped_large/warlock.ron new file mode 100644 index 0000000000..c144ad8c1a --- /dev/null +++ b/assets/common/items/npc_armor/biped_large/warlock.ron @@ -0,0 +1,17 @@ +ItemDef( + name: "Giant Warlock Chest", + description: "Made of darkest silk.", + kind: Armor(( + kind: Chest("GiantWarlock"), + stats: ( + protection: Normal(250.0), + poise_resilience: Normal(1.0), + energy_max: 1000, + energy_reward: 1.0, + crit_power: 0.0, + stealth: 0.0, + ), + )), + quality: Moderate, + tags: [], +) diff --git a/assets/common/items/npc_armor/biped_large/warlord.ron b/assets/common/items/npc_armor/biped_large/warlord.ron new file mode 100644 index 0000000000..cb5bf1dbce --- /dev/null +++ b/assets/common/items/npc_armor/biped_large/warlord.ron @@ -0,0 +1,17 @@ +ItemDef( + name: "Giant Warlord Chest", + description: "Made of darkest steel.", + kind: Armor(( + kind: Chest("GiantWarlord"), + stats: ( + protection: Normal(300.0), + poise_resilience: Normal(1.0), + energy_max: 0, + energy_reward: 0.0, + crit_power: 0.0, + stealth: 0.0, + ), + )), + quality: Moderate, + tags: [], +) diff --git a/common/src/comp/inventory/loadout_builder.rs b/common/src/comp/inventory/loadout_builder.rs index 129a8d2b5e..28def5a7e1 100644 --- a/common/src/comp/inventory/loadout_builder.rs +++ b/common/src/comp/inventory/loadout_builder.rs @@ -398,88 +398,73 @@ impl LoadoutBuilder { #[must_use] /// Set default equipement based on `body` - pub fn with_default_equipment(mut self, body: &Body) -> Self { - self = match body { - Body::BipedLarge(biped_large::Body { - species: biped_large::Species::Mindflayer, - .. - }) => self.chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.biped_large.mindflayer", - ))), - Body::BipedLarge(biped_large::Body { - species: biped_large::Species::Minotaur, - .. - }) => self.chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.biped_large.minotaur", - ))), - Body::BipedLarge(biped_large::Body { - species: biped_large::Species::Tidalwarrior, - .. - }) => self.chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.biped_large.tidal_warrior", - ))), - Body::BipedLarge(biped_large::Body { - species: biped_large::Species::Yeti, - .. - }) => self.chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.biped_large.yeti", - ))), - Body::BipedLarge(biped_large::Body { - species: biped_large::Species::Harvester, - .. - }) => self.chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.biped_large.harvester", - ))), - Body::BipedLarge(biped_large::Body { - species: - biped_large::Species::Ogre - | biped_large::Species::Cyclops - | biped_large::Species::Blueoni - | biped_large::Species::Redoni - | biped_large::Species::Cavetroll - | biped_large::Species::Wendigo, - .. - }) => self.chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.biped_large.generic", - ))), - Body::Golem(golem::Body { - species: golem::Species::ClayGolem, - .. - }) => self.chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.golem.claygolem", - ))), - Body::QuadrupedLow(quadruped_low::Body { - species: - quadruped_low::Species::Basilisk - | quadruped_low::Species::Asp - | quadruped_low::Species::Lavadrake - | quadruped_low::Species::Maneater - | quadruped_low::Species::Rocksnapper - | quadruped_low::Species::Sandshark, - .. - }) => self.chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.quadruped_low.generic", - ))), - Body::QuadrupedLow(quadruped_low::Body { - species: quadruped_low::Species::Tortoise, - .. - }) => self.chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.quadruped_low.shell", - ))), - Body::Theropod(theropod::Body { - species: - theropod::Species::Archaeos - | theropod::Species::Yale - | theropod::Species::Ntouka - | theropod::Species::Odonto, - .. - }) => self.chest(Some(Item::new_from_asset_expect( - "common.items.npc_armor.theropod.rugged", - ))), - _ => self, + pub fn with_default_equipment(self, body: &Body) -> Self { + let chest = match body { + Body::BipedLarge(body) => match body.species { + biped_large::Species::Mindflayer => { + Some("common.items.npc_armor.biped_large.mindflayer") + }, + biped_large::Species::Minotaur => { + Some("common.items.npc_armor.biped_large.minotaur") + }, + biped_large::Species::Tidalwarrior => { + Some("common.items.npc_armor.biped_large.tidal_warrior") + }, + biped_large::Species::Yeti => Some("common.items.npc_armor.biped_large.yeti"), + biped_large::Species::Harvester => { + Some("common.items.npc_armor.biped_large.harvester") + }, + biped_large::Species::Ogre + | biped_large::Species::Cyclops + | biped_large::Species::Blueoni + | biped_large::Species::Redoni + | biped_large::Species::Cavetroll + | biped_large::Species::Wendigo => { + Some("common.items.npc_armor.biped_large.generic") + }, + biped_large::Species::Cultistwarlord => { + Some("common.items.npc_armor.biped_large.warlord") + }, + biped_large::Species::Cultistwarlock => { + Some("common.items.npc_armor.biped_large.warlock") + }, + _ => None, + }, + Body::Golem(body) => match body.species { + golem::Species::ClayGolem => Some("common.items.npc_armor.golem.claygolem"), + _ => None, + }, + Body::QuadrupedLow(body) => match body.species { + quadruped_low::Species::Basilisk + | quadruped_low::Species::Asp + | quadruped_low::Species::Lavadrake + | quadruped_low::Species::Maneater + | quadruped_low::Species::Rocksnapper + | quadruped_low::Species::Sandshark => { + Some("common.items.npc_armor.quadruped_low.generic") + }, + quadruped_low::Species::Tortoise => { + Some("common.items.npc_armor.quadruped_low.shell") + }, + _ => None, + }, + Body::Theropod(body) => match body.species { + theropod::Species::Archaeos + | theropod::Species::Yale + | theropod::Species::Ntouka + | theropod::Species::Odonto => Some("common.items.npc_armor.theropod.rugged"), + _ => None, + }, + _ => None, }; - self + // closures can't be used here, because it moves value + #[allow(clippy::option_if_let_else)] + if let Some(chest) = chest { + self.chest(Some(Item::new_from_asset_expect(chest))) + } else { + self + } } #[must_use]