From 58ff97a0714df736c8f69c440641dc00c00feec7 Mon Sep 17 00:00:00 2001 From: Mashy Date: Mon, 23 Sep 2019 15:31:05 +1000 Subject: [PATCH] remove spec multi --- server/src/construct.rs | 18 +++--- server/src/spec.rs | 125 +++++++++++++++++++--------------------- 2 files changed, 67 insertions(+), 76 deletions(-) diff --git a/server/src/construct.rs b/server/src/construct.rs index 21647aef..fae3f1e7 100644 --- a/server/src/construct.rs +++ b/server/src/construct.rs @@ -145,7 +145,7 @@ impl ConstructStat { // self.recalculate(specs) // } - pub fn recalculate(&mut self, specs: &Vec, construct_colours: &Colours, player_colours: &Colours) -> &mut ConstructStat { + pub fn recalculate(&mut self, specs: &Vec, player_colours: &Colours) -> &mut ConstructStat { let specs = specs .iter() .filter(|s| s.affects().contains(&self.stat)) @@ -154,7 +154,7 @@ impl ConstructStat { // applied with fold because it can be zeroed or multiplied // but still needs access to the base amount - let value = specs.iter().fold(self.base, |acc, s| s.apply(acc, self.base, construct_colours, player_colours)); + let value = specs.iter().fold(self.base, |acc, s| s.apply(acc, self.base, player_colours)); self.value = value; self.max = value; @@ -325,14 +325,14 @@ impl Construct { pub fn apply_modifiers(&mut self, player_colours: &Colours) -> &mut Construct { self.specs.sort_unstable(); - self.red_power.recalculate(&self.specs, &self.colours, player_colours); - self.red_life.recalculate(&self.specs, &self.colours, player_colours); - self.blue_power.recalculate(&self.specs, &self.colours, player_colours); - self.blue_life.recalculate(&self.specs, &self.colours, player_colours); + self.red_power.recalculate(&self.specs, player_colours); + self.red_life.recalculate(&self.specs, player_colours); + self.blue_power.recalculate(&self.specs, player_colours); + self.blue_life.recalculate(&self.specs, player_colours); // self.evasion.recalculate(&self.specs, &self.colours, player_colours); - self.speed.recalculate(&self.specs, &self.colours, player_colours); - self.green_power.recalculate(&self.specs, &self.colours, player_colours); - self.green_life.recalculate(&self.specs, &self.colours, player_colours); + self.speed.recalculate(&self.specs, player_colours); + self.green_power.recalculate(&self.specs, player_colours); + self.green_life.recalculate(&self.specs, player_colours); self } diff --git a/server/src/spec.rs b/server/src/spec.rs index 28a842f7..53a7c27f 100644 --- a/server/src/spec.rs +++ b/server/src/spec.rs @@ -19,7 +19,6 @@ impl SpecBonus { #[derive(Debug,Clone,Serialize,Deserialize)] pub struct SpecValues { pub base: u64, - pub multi: u64, pub bonuses: Vec, } @@ -31,12 +30,6 @@ impl SpecValues { pub fn base (self) -> u64 { self.base } - -/* - pub fn calc_multi (&self, c: &Colours) -> u64 { - self.multi * (c.red + c.green + c.blue) as u64 - } -*/ } @@ -149,8 +142,6 @@ impl Spec { Spec::SpeedGBPlusPlus => vec![Stat::Speed], Spec::SpeedRBPlusPlus => vec![Stat::Speed], - - Spec::Life => vec![Stat::GreenLife], Spec::LifeRR => vec![Stat::RedLife], Spec::LifeBB => vec![Stat::BlueLife], @@ -176,12 +167,12 @@ impl Spec { pub fn values(&self) -> SpecValues { match *self { Spec::Power => SpecValues { - multi: 0, base: 10, + base: 10, bonuses: vec![] }, Spec::PowerRR=> SpecValues { - multi: 10, base: 25, + base: 25, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 25 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 25 }, @@ -190,7 +181,7 @@ impl Spec { }, Spec::PowerGG=> SpecValues { - multi: 10, base: 25, + base: 25, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 25 }, @@ -199,7 +190,7 @@ impl Spec { }, Spec::PowerBB=> SpecValues { - multi: 10, base: 25, + base: 25, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 25 }, @@ -208,7 +199,7 @@ impl Spec { }, Spec::PowerRG=> SpecValues { - multi: 5, base: 15, + base: 15, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 15 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 15 }, @@ -217,7 +208,7 @@ impl Spec { }, Spec::PowerGB=> SpecValues { - multi: 5, base: 15, + base: 15, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 15 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 15 }, @@ -226,7 +217,7 @@ impl Spec { }, Spec::PowerRB=> SpecValues { - multi: 5, base: 15, + base: 15, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 15 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 15 }, @@ -235,7 +226,7 @@ impl Spec { }, Spec::PowerRRPlus => SpecValues { - multi: 10, base: 40, + base: 40, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 40 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 40 }, @@ -244,7 +235,7 @@ impl Spec { }, Spec::PowerGGPlus => SpecValues { - multi: 10, base: 40, + base: 40, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 40 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 40 }, @@ -253,7 +244,7 @@ impl Spec { }, Spec::PowerBBPlus => SpecValues { - multi: 10, base: 40, + base: 40, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 40 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 40 }, @@ -262,7 +253,7 @@ impl Spec { }, Spec::PowerRGPlus => SpecValues { - multi: 7, base: 25, + base: 25, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 25 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 25 }, @@ -271,7 +262,7 @@ impl Spec { }, Spec::PowerGBPlus => SpecValues { - multi: 7, base: 25, + base: 25, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 25 }, @@ -280,7 +271,7 @@ impl Spec { }, Spec::PowerRBPlus => SpecValues { - multi: 7, base: 25, + base: 25, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 25 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 25 }, @@ -288,7 +279,7 @@ impl Spec { ], }, Spec::PowerRRPlusPlus => SpecValues { - multi: 20, base: 60, + base: 60, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 60 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 60 }, @@ -297,7 +288,7 @@ impl Spec { }, Spec::PowerGGPlusPlus => SpecValues { - multi: 20, base: 60, + base: 60, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 60 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 60 }, @@ -306,7 +297,7 @@ impl Spec { }, Spec::PowerBBPlusPlus => SpecValues { - multi: 20, base: 60, + base: 60, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 60 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 60 }, @@ -315,7 +306,7 @@ impl Spec { }, Spec::PowerRGPlusPlus => SpecValues { - multi: 20, base: 40, + base: 40, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 40 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 40 }, @@ -324,7 +315,7 @@ impl Spec { }, Spec::PowerGBPlusPlus => SpecValues { - multi: 20, base: 40, + base: 40, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 25 }, @@ -333,7 +324,7 @@ impl Spec { }, Spec::PowerRBPlusPlus => SpecValues { - multi: 20, base: 40, + base: 40, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 25 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 25 }, @@ -342,12 +333,12 @@ impl Spec { }, Spec::Speed => SpecValues { - multi: 0, base: 40, + base: 40, bonuses: vec![] }, Spec::SpeedRR=> SpecValues { - multi: 20, base: 80, + base: 80, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 80 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 80 }, @@ -356,7 +347,7 @@ impl Spec { }, Spec::SpeedGG=> SpecValues { - multi: 20, base: 80, + base: 80, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 80 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 80 }, @@ -365,7 +356,7 @@ impl Spec { }, Spec::SpeedBB=> SpecValues { - multi: 20, base: 80, + base: 80, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 80 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 80 }, @@ -374,7 +365,7 @@ impl Spec { }, Spec::SpeedRG=> SpecValues { - multi: 15, base: 60, + base: 60, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 60 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 60 }, @@ -383,7 +374,7 @@ impl Spec { }, Spec::SpeedGB=> SpecValues { - multi: 15, base: 60, + base: 60, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 60 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 60 }, @@ -392,7 +383,7 @@ impl Spec { }, Spec::SpeedRB=> SpecValues { - multi: 15, base: 60, + base: 60, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 60 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 60 }, @@ -401,7 +392,7 @@ impl Spec { }, Spec::SpeedRRPlus => SpecValues { - multi: 20, base: 120, + base: 120, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 120 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 120 }, @@ -410,7 +401,7 @@ impl Spec { }, Spec::SpeedGGPlus => SpecValues { - multi: 20, base: 120, + base: 120, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 120 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 120 }, @@ -419,7 +410,7 @@ impl Spec { }, Spec::SpeedBBPlus => SpecValues { - multi: 20, base: 120, + base: 120, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 120 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 120 }, @@ -428,7 +419,7 @@ impl Spec { }, Spec::SpeedRGPlus => SpecValues { - multi: 15, base: 80, + base: 80, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 80 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 80 }, @@ -437,7 +428,7 @@ impl Spec { }, Spec::SpeedGBPlus => SpecValues { - multi: 15, base: 80, + base: 80, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 80 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 80 }, @@ -446,7 +437,7 @@ impl Spec { }, Spec::SpeedRBPlus => SpecValues { - multi: 15, base: 80, + base: 80, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 80 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 80 }, @@ -455,7 +446,7 @@ impl Spec { }, Spec::SpeedRRPlusPlus => SpecValues { - multi: 20, base: 160, + base: 160, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 160 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 160 }, @@ -464,7 +455,7 @@ impl Spec { }, Spec::SpeedGGPlusPlus => SpecValues { - multi: 20, base: 160, + base: 160, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 160 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 160 }, @@ -473,7 +464,7 @@ impl Spec { }, Spec::SpeedBBPlusPlus => SpecValues { - multi: 20, base: 160, + base: 160, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 160 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 160 }, @@ -482,7 +473,7 @@ impl Spec { }, Spec::SpeedRGPlusPlus => SpecValues { - multi: 15, base: 120, + base: 120, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 120 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 120 }, @@ -491,7 +482,7 @@ impl Spec { }, Spec::SpeedGBPlusPlus => SpecValues { - multi: 15, base: 120, + base: 120, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 120 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 120 }, @@ -500,7 +491,7 @@ impl Spec { }, Spec::SpeedRBPlusPlus => SpecValues { - multi: 15, base: 120, + base: 120, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 120 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 120 }, @@ -509,11 +500,11 @@ impl Spec { }, Spec::Life => SpecValues { - multi: 0, base: 100, + base: 100, bonuses: vec![]}, Spec::LifeRR=> SpecValues { - multi: 50, base: 200, + base: 200, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 100 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 100 }, @@ -522,7 +513,7 @@ impl Spec { }, Spec::LifeGG=> SpecValues { - multi: 50, base: 200, + base: 200, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 100 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 100 }, @@ -531,7 +522,7 @@ impl Spec { }, Spec::LifeBB=> SpecValues { - multi: 50, base: 200, + base: 200, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 100 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 100 }, @@ -540,7 +531,7 @@ impl Spec { }, Spec::LifeRG=> SpecValues { - multi: 40, base: 150, + base: 150, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 75 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 75 }, @@ -549,7 +540,7 @@ impl Spec { }, Spec::LifeGB=> SpecValues { - multi: 40, base: 150, + base: 150, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 75 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 75 }, @@ -558,7 +549,7 @@ impl Spec { }, Spec::LifeRB=> SpecValues { - multi: 40, base: 150, + base: 150, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 75 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 75 }, @@ -567,7 +558,7 @@ impl Spec { }, Spec::LifeRRPlus => SpecValues { - multi: 50, base: 300, + base: 300, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 150 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 150 }, @@ -576,7 +567,7 @@ impl Spec { }, Spec::LifeGGPlus => SpecValues { - multi: 50, base: 300, + base: 300, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 150 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 150 }, @@ -585,7 +576,7 @@ impl Spec { }, Spec::LifeBBPlus => SpecValues { - multi: 50, base: 300, + base: 300, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 150 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 150 }, @@ -594,7 +585,7 @@ impl Spec { }, Spec::LifeRGPlus => SpecValues { - multi: 40, base: 200, + base: 200, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 100 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 100 }, @@ -603,7 +594,7 @@ impl Spec { }, Spec::LifeGBPlus => SpecValues { - multi: 40, base: 200, + base: 200, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 100 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 100 }, @@ -612,7 +603,7 @@ impl Spec { }, Spec::LifeRBPlus => SpecValues { - multi: 40, base: 200, + base: 200, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 100 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 100 }, @@ -620,7 +611,7 @@ impl Spec { ], }, Spec::LifeRRPlusPlus => SpecValues { - multi: 40, base: 300, + base: 300, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 300 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 300 }, @@ -629,7 +620,7 @@ impl Spec { }, Spec::LifeGGPlusPlus => SpecValues { - multi: 40, base: 300, + base: 300, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 300 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 300 }, @@ -638,7 +629,7 @@ impl Spec { }, Spec::LifeBBPlusPlus => SpecValues { - multi: 40, base: 300, + base: 300, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 300 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 300 }, @@ -647,7 +638,7 @@ impl Spec { }, Spec::LifeRGPlusPlus => SpecValues { - multi: 40, base: 200, + base: 200, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 200 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 200 }, @@ -656,7 +647,7 @@ impl Spec { }, Spec::LifeGBPlusPlus => SpecValues { - multi: 40, base: 200, + base: 200, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 200 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 200 }, @@ -665,7 +656,7 @@ impl Spec { }, Spec::LifeRBPlusPlus => SpecValues { - multi: 40, base: 200, + base: 200, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 200 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 200 }, @@ -675,7 +666,7 @@ impl Spec { } } - pub fn apply(&self, modified: u64, base: u64, construct_colours: &Colours, player_colours: &Colours) -> u64 { + pub fn apply(&self, modified: u64, base: u64, player_colours: &Colours) -> u64 { match *self { // Percentage multipliers based on base value Spec::Power |