Merge branch 'develop' into mobile-fixes

This commit is contained in:
ntr 2019-09-24 13:50:06 +10:00
commit c19e8ac30e
4 changed files with 125 additions and 136 deletions

View File

@ -1,65 +1,56 @@
# WORK WORK # WORK WORK
## NOW ## NOW (Before PAX)
*PRODUCTION* *PRODUCTION*
* mobile styles
* mobile info page
* Add TOS and accept to register page
* can't reset password without knowing password =\
## SOON (Before or After PAX)
* bot game grind
* ACP * ACP
* essential * essential
* serde serialize privatise * serde serialize privatise
* mobile styles * msg pane / chatwheel
* can't reset password without knowing password =\ * audio
* treats * treats
* susbcriber gold name in instance
* client animation bpm * client animation bpm
* background colour changes depending on time of day * background colour changes depending on time of day
* susbcriber gold name in instance
* bot game grind
* msg pane
* audio
## SOON
*SERVER*
* modules
* troll life -> dmg
* prince of peace
* bonus healing / no damage
* fuck magic
* empower on ko
* rework vecs into sets * rework vecs into sets
* remove names so games/instances are copy * remove names so games/instances are copy
*$$$* *$$$*
* chatwheel * chatwheel
* eth adapter * eth adapter
* illusions * illusions
* vaporwave * vaporwave
* crop circles * crop circles
* insects * insects
* sacred geometry * sacred geometry
* skulls / day of the dead * skulls / day of the dead
* Aztec * Aztec
* youkai * youkai
* Industrial * Industrial
*CLIENT* *CLIENT*
fix info highlighting theme toasts
theme toasts
mobile info page
reconnect based on time delta
consolidate game and instance
*SERVER* reconnect based on time delta
* vbox drops chances consolidate game and instance
* 50% spec, 25% colour etc
* mnml tv * elo + leaderboards
* mnml tv
## LATER ## LATER
* elo + leaderboards
* constants * constants
* change to ownership pattern
$$$ $$$
* Items * Items
@ -69,6 +60,13 @@ $$$
* Highlight (dota) colour * Highlight (dota) colour
* fx colours + styles * fx colours + styles
* modules
* troll life -> dmg
* prince of peace
* bonus healing / no damage
* fuck magic
* empower on ko
# Mechanics # Mechanics
* 10d chaos maths, not rock paper scissors * 10d chaos maths, not rock paper scissors
* phys is faster and chaotic * phys is faster and chaotic

View File

@ -145,7 +145,7 @@ impl ConstructStat {
// self.recalculate(specs) // self.recalculate(specs)
// } // }
pub fn recalculate(&mut self, specs: &Vec<Spec>, construct_colours: &Colours, player_colours: &Colours) -> &mut ConstructStat { pub fn recalculate(&mut self, specs: &Vec<Spec>, player_colours: &Colours) -> &mut ConstructStat {
let specs = specs let specs = specs
.iter() .iter()
.filter(|s| s.affects().contains(&self.stat)) .filter(|s| s.affects().contains(&self.stat))
@ -154,7 +154,7 @@ impl ConstructStat {
// applied with fold because it can be zeroed or multiplied // applied with fold because it can be zeroed or multiplied
// but still needs access to the base amount // 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.value = value;
self.max = value; self.max = value;
@ -223,7 +223,7 @@ impl Construct {
red_life: ConstructStat { base: 0, value: 0, max: 0, stat: Stat::RedLife }, red_life: ConstructStat { base: 0, value: 0, max: 0, stat: Stat::RedLife },
blue_power: ConstructStat { base: 320, value: 320, max: 320, stat: Stat::BluePower }, blue_power: ConstructStat { base: 320, value: 320, max: 320, stat: Stat::BluePower },
blue_life: ConstructStat { base: 0, value: 0, max: 0, stat: Stat::BlueLife }, blue_life: ConstructStat { base: 0, value: 0, max: 0, stat: Stat::BlueLife },
green_power: ConstructStat { base: 320, value: 300, max: 300, stat: Stat::GreenPower }, green_power: ConstructStat { base: 300, value: 300, max: 300, stat: Stat::GreenPower },
green_life: ConstructStat { base: 950, value: 950, max: 950, stat: Stat::GreenLife }, green_life: ConstructStat { base: 950, value: 950, max: 950, stat: Stat::GreenLife },
speed: ConstructStat { base: 100, value: 100, max: 100, stat: Stat::Speed }, speed: ConstructStat { base: 100, value: 100, max: 100, stat: Stat::Speed },
// evasion: ConstructStat { base: 0, value: 0, max: 0, stat: Stat::Evasion }, // evasion: ConstructStat { base: 0, value: 0, max: 0, stat: Stat::Evasion },
@ -325,14 +325,14 @@ impl Construct {
pub fn apply_modifiers(&mut self, player_colours: &Colours) -> &mut Construct { pub fn apply_modifiers(&mut self, player_colours: &Colours) -> &mut Construct {
self.specs.sort_unstable(); self.specs.sort_unstable();
self.red_power.recalculate(&self.specs, &self.colours, player_colours); self.red_power.recalculate(&self.specs, player_colours);
self.red_life.recalculate(&self.specs, &self.colours, player_colours); self.red_life.recalculate(&self.specs, player_colours);
self.blue_power.recalculate(&self.specs, &self.colours, player_colours); self.blue_power.recalculate(&self.specs, player_colours);
self.blue_life.recalculate(&self.specs, &self.colours, player_colours); self.blue_life.recalculate(&self.specs, player_colours);
// self.evasion.recalculate(&self.specs, &self.colours, player_colours); // self.evasion.recalculate(&self.specs, &self.colours, player_colours);
self.speed.recalculate(&self.specs, &self.colours, player_colours); self.speed.recalculate(&self.specs, player_colours);
self.green_power.recalculate(&self.specs, &self.colours, player_colours); self.green_power.recalculate(&self.specs, player_colours);
self.green_life.recalculate(&self.specs, &self.colours, player_colours); self.green_life.recalculate(&self.specs, player_colours);
self self
} }

View File

@ -737,8 +737,8 @@ impl Item {
Item::Electrify| Item::Electrify|
Item::ElectrifyPlus | Item::ElectrifyPlus |
Item::ElectrifyPlusPlus => format!( Item::ElectrifyPlusPlus => format!(
"Self targetting defensive for {:?}T. Applies Electric to attackers dealing BlueDamage {:?}% \ "Applies electrify for {:?}T. If a construct with electrify takes damage they will apply an electrocute debuff to the caster dealing {:?}% \
BluePower per turn for {:?}T.", BluePower as BlueDamage per turn for {:?}T.",
self.into_skill().unwrap().effect()[0].get_duration(), self.into_skill().unwrap().effect()[0].get_duration(),
self.into_skill().unwrap().effect()[0].get_skill().unwrap().effect()[0].get_skill().unwrap().multiplier(), self.into_skill().unwrap().effect()[0].get_skill().unwrap().effect()[0].get_skill().unwrap().multiplier(),
self.into_skill().unwrap().effect()[0].get_skill().unwrap().effect()[0].get_duration()), self.into_skill().unwrap().effect()[0].get_skill().unwrap().effect()[0].get_duration()),
@ -790,20 +790,20 @@ impl Item {
Item::Invert| Item::Invert|
Item::InvertPlus | Item::InvertPlus |
Item::InvertPlusPlus => format!( Item::InvertPlusPlus => format!(
"Reverse healing into damage and damage into healing. "Reverse healing into damage and damage into healing. Any excess red or blue damage is converted into shield recharge. Lasts {:?}T.",
Any excess red or blue damage is converted into shield recharge."), self.into_skill().unwrap().effect()[0].get_duration()),
Item::Counter| Item::Counter|
Item::CounterPlus | Item::CounterPlus |
Item::CounterPlusPlus => format!("Self targetting skill. Recharges RedLife for {:?}% RedPower and blocks red skills for {:?}T. Item::CounterPlusPlus => format!("Applies counter and block {:?}T. Block reduces incoming red damage by {:?}%.
If a red skill is parried the construct will riposte the source dealing {:?}% RedPower as red damage.", Red damage taken during counter will trigger a counter attack dealing {:?}% RedPower as red damage.",
self.into_skill().unwrap().multiplier(),
self.into_skill().unwrap().effect()[0].get_duration(), self.into_skill().unwrap().effect()[0].get_duration(),
100 - self.into_skill().unwrap().effect()[1].get_multiplier(),
self.into_skill().unwrap().effect()[0].get_skill().unwrap().multiplier()), self.into_skill().unwrap().effect()[0].get_skill().unwrap().multiplier()),
Item::Purge| Item::Purge|
Item::PurgePlus | Item::PurgePlus |
Item::PurgePlusPlus => format!("Remove buffs from target construct. Applies purge which disables target green skills for {:?}T.", Item::PurgePlusPlus => format!("Remove buffs from target construct. Applies purge disabling target green skills for {:?}T.",
self.into_skill().unwrap().effect()[0].get_duration()), self.into_skill().unwrap().effect()[0].get_duration()),
Item::Purify| Item::Purify|

View File

@ -19,7 +19,6 @@ impl SpecBonus {
#[derive(Debug,Clone,Serialize,Deserialize)] #[derive(Debug,Clone,Serialize,Deserialize)]
pub struct SpecValues { pub struct SpecValues {
pub base: u64, pub base: u64,
pub multi: u64,
pub bonuses: Vec<SpecBonus>, pub bonuses: Vec<SpecBonus>,
} }
@ -31,12 +30,6 @@ impl SpecValues {
pub fn base (self) -> u64 { pub fn base (self) -> u64 {
self.base 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::SpeedGBPlusPlus => vec![Stat::Speed],
Spec::SpeedRBPlusPlus => vec![Stat::Speed], Spec::SpeedRBPlusPlus => vec![Stat::Speed],
Spec::Life => vec![Stat::GreenLife], Spec::Life => vec![Stat::GreenLife],
Spec::LifeRR => vec![Stat::RedLife], Spec::LifeRR => vec![Stat::RedLife],
Spec::LifeBB => vec![Stat::BlueLife], Spec::LifeBB => vec![Stat::BlueLife],
@ -176,12 +167,12 @@ impl Spec {
pub fn values(&self) -> SpecValues { pub fn values(&self) -> SpecValues {
match *self { match *self {
Spec::Power => SpecValues { Spec::Power => SpecValues {
multi: 0, base: 10, base: 10,
bonuses: vec![] bonuses: vec![]
}, },
Spec::PowerRR=> SpecValues { Spec::PowerRR=> SpecValues {
multi: 10, base: 25, base: 25,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 25 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 25 },
SpecBonus { req: Colours { red: 10, 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 { Spec::PowerGG=> SpecValues {
multi: 10, base: 25, base: 25,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 25 },
SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 25 },
@ -199,7 +190,7 @@ impl Spec {
}, },
Spec::PowerBB=> SpecValues { Spec::PowerBB=> SpecValues {
multi: 10, base: 25, base: 25,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 25 },
SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 25 },
@ -208,7 +199,7 @@ impl Spec {
}, },
Spec::PowerRG=> SpecValues { Spec::PowerRG=> SpecValues {
multi: 5, base: 15, base: 15,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 15 }, SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 15 },
SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 15 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 15 },
@ -217,7 +208,7 @@ impl Spec {
}, },
Spec::PowerGB=> SpecValues { Spec::PowerGB=> SpecValues {
multi: 5, base: 15, base: 15,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 15 }, SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 15 },
SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 15 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 15 },
@ -226,7 +217,7 @@ impl Spec {
}, },
Spec::PowerRB=> SpecValues { Spec::PowerRB=> SpecValues {
multi: 5, base: 15, base: 15,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 15 }, SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 15 },
SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 15 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 15 },
@ -235,7 +226,7 @@ impl Spec {
}, },
Spec::PowerRRPlus => SpecValues { Spec::PowerRRPlus => SpecValues {
multi: 10, base: 40, base: 40,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 40 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 40 },
SpecBonus { req: Colours { red: 10, 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 { Spec::PowerGGPlus => SpecValues {
multi: 10, base: 40, base: 40,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 40 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 40 },
SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 40 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 40 },
@ -253,7 +244,7 @@ impl Spec {
}, },
Spec::PowerBBPlus => SpecValues { Spec::PowerBBPlus => SpecValues {
multi: 10, base: 40, base: 40,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 40 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 40 },
SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 40 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 40 },
@ -262,7 +253,7 @@ impl Spec {
}, },
Spec::PowerRGPlus => SpecValues { Spec::PowerRGPlus => SpecValues {
multi: 7, base: 25, base: 25,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 25 }, SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 25 },
SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 25 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 25 },
@ -271,7 +262,7 @@ impl Spec {
}, },
Spec::PowerGBPlus => SpecValues { Spec::PowerGBPlus => SpecValues {
multi: 7, base: 25, base: 25,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 25 },
SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 25 },
@ -280,7 +271,7 @@ impl Spec {
}, },
Spec::PowerRBPlus => SpecValues { Spec::PowerRBPlus => SpecValues {
multi: 7, base: 25, base: 25,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 25 }, SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 25 },
SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 25 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 25 },
@ -288,7 +279,7 @@ impl Spec {
], ],
}, },
Spec::PowerRRPlusPlus => SpecValues { Spec::PowerRRPlusPlus => SpecValues {
multi: 20, base: 60, base: 60,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 60 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 60 },
SpecBonus { req: Colours { red: 10, 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 { Spec::PowerGGPlusPlus => SpecValues {
multi: 20, base: 60, base: 60,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 60 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 60 },
SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 60 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 60 },
@ -306,7 +297,7 @@ impl Spec {
}, },
Spec::PowerBBPlusPlus => SpecValues { Spec::PowerBBPlusPlus => SpecValues {
multi: 20, base: 60, base: 60,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 60 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 60 },
SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 60 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 60 },
@ -315,7 +306,7 @@ impl Spec {
}, },
Spec::PowerRGPlusPlus => SpecValues { Spec::PowerRGPlusPlus => SpecValues {
multi: 20, base: 40, base: 40,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 40 }, SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 40 },
SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 40 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 40 },
@ -324,30 +315,30 @@ impl Spec {
}, },
Spec::PowerGBPlusPlus => SpecValues { Spec::PowerGBPlusPlus => SpecValues {
multi: 20, base: 40, base: 40,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 40 },
SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 25 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 40 },
SpecBonus { req: Colours { red: 0, green: 10, blue: 10 }, bonus: 25 } SpecBonus { req: Colours { red: 0, green: 10, blue: 10 }, bonus: 40 }
], ],
}, },
Spec::PowerRBPlusPlus => SpecValues { Spec::PowerRBPlusPlus => SpecValues {
multi: 20, base: 40, base: 40,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 25 }, SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 40 },
SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 25 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 40 },
SpecBonus { req: Colours { red: 10, green: 0, blue: 10 }, bonus: 25 } SpecBonus { req: Colours { red: 10, green: 0, blue: 10 }, bonus: 40 }
], ],
}, },
Spec::Speed => SpecValues { Spec::Speed => SpecValues {
multi: 0, base: 40, base: 40,
bonuses: vec![] bonuses: vec![]
}, },
Spec::SpeedRR=> SpecValues { Spec::SpeedRR=> SpecValues {
multi: 20, base: 80, base: 80,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 80 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 80 },
SpecBonus { req: Colours { red: 10, 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 { Spec::SpeedGG=> SpecValues {
multi: 20, base: 80, base: 80,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 80 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 80 },
SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 80 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 80 },
@ -365,7 +356,7 @@ impl Spec {
}, },
Spec::SpeedBB=> SpecValues { Spec::SpeedBB=> SpecValues {
multi: 20, base: 80, base: 80,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 80 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 80 },
SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 80 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 80 },
@ -374,7 +365,7 @@ impl Spec {
}, },
Spec::SpeedRG=> SpecValues { Spec::SpeedRG=> SpecValues {
multi: 15, base: 60, base: 60,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 60 }, SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 60 },
SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 60 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 60 },
@ -383,7 +374,7 @@ impl Spec {
}, },
Spec::SpeedGB=> SpecValues { Spec::SpeedGB=> SpecValues {
multi: 15, base: 60, base: 60,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 60 }, SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 60 },
SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 60 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 60 },
@ -392,7 +383,7 @@ impl Spec {
}, },
Spec::SpeedRB=> SpecValues { Spec::SpeedRB=> SpecValues {
multi: 15, base: 60, base: 60,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 60 }, SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 60 },
SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 60 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 60 },
@ -401,7 +392,7 @@ impl Spec {
}, },
Spec::SpeedRRPlus => SpecValues { Spec::SpeedRRPlus => SpecValues {
multi: 20, base: 120, base: 120,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 120 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 120 },
SpecBonus { req: Colours { red: 10, 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 { Spec::SpeedGGPlus => SpecValues {
multi: 20, base: 120, base: 120,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 120 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 120 },
SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 120 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 120 },
@ -419,7 +410,7 @@ impl Spec {
}, },
Spec::SpeedBBPlus => SpecValues { Spec::SpeedBBPlus => SpecValues {
multi: 20, base: 120, base: 120,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 120 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 120 },
SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 120 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 120 },
@ -428,7 +419,7 @@ impl Spec {
}, },
Spec::SpeedRGPlus => SpecValues { Spec::SpeedRGPlus => SpecValues {
multi: 15, base: 80, base: 80,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 80 }, SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 80 },
SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 80 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 80 },
@ -437,7 +428,7 @@ impl Spec {
}, },
Spec::SpeedGBPlus => SpecValues { Spec::SpeedGBPlus => SpecValues {
multi: 15, base: 80, base: 80,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 80 }, SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 80 },
SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 80 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 80 },
@ -446,7 +437,7 @@ impl Spec {
}, },
Spec::SpeedRBPlus => SpecValues { Spec::SpeedRBPlus => SpecValues {
multi: 15, base: 80, base: 80,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 80 }, SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 80 },
SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 80 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 80 },
@ -455,7 +446,7 @@ impl Spec {
}, },
Spec::SpeedRRPlusPlus => SpecValues { Spec::SpeedRRPlusPlus => SpecValues {
multi: 20, base: 160, base: 160,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 160 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 160 },
SpecBonus { req: Colours { red: 10, 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 { Spec::SpeedGGPlusPlus => SpecValues {
multi: 20, base: 160, base: 160,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 160 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 160 },
SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 160 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 160 },
@ -473,7 +464,7 @@ impl Spec {
}, },
Spec::SpeedBBPlusPlus => SpecValues { Spec::SpeedBBPlusPlus => SpecValues {
multi: 20, base: 160, base: 160,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 160 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 160 },
SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 160 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 160 },
@ -482,7 +473,7 @@ impl Spec {
}, },
Spec::SpeedRGPlusPlus => SpecValues { Spec::SpeedRGPlusPlus => SpecValues {
multi: 15, base: 120, base: 120,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 120 }, SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 120 },
SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 120 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 120 },
@ -491,7 +482,7 @@ impl Spec {
}, },
Spec::SpeedGBPlusPlus => SpecValues { Spec::SpeedGBPlusPlus => SpecValues {
multi: 15, base: 120, base: 120,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 120 }, SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 120 },
SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 120 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 120 },
@ -500,7 +491,7 @@ impl Spec {
}, },
Spec::SpeedRBPlusPlus => SpecValues { Spec::SpeedRBPlusPlus => SpecValues {
multi: 15, base: 120, base: 120,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 120 }, SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 120 },
SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 120 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 120 },
@ -509,11 +500,11 @@ impl Spec {
}, },
Spec::Life => SpecValues { Spec::Life => SpecValues {
multi: 0, base: 100, base: 100,
bonuses: vec![]}, bonuses: vec![]},
Spec::LifeRR=> SpecValues { Spec::LifeRR=> SpecValues {
multi: 50, base: 200, base: 200,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 100 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 100 },
SpecBonus { req: Colours { red: 10, 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 { Spec::LifeGG=> SpecValues {
multi: 50, base: 200, base: 200,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 100 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 100 },
SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 100 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 100 },
@ -531,7 +522,7 @@ impl Spec {
}, },
Spec::LifeBB=> SpecValues { Spec::LifeBB=> SpecValues {
multi: 50, base: 200, base: 200,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 100 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 100 },
SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 100 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 100 },
@ -540,7 +531,7 @@ impl Spec {
}, },
Spec::LifeRG=> SpecValues { Spec::LifeRG=> SpecValues {
multi: 40, base: 150, base: 150,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 75 }, SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 75 },
SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 75 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 75 },
@ -549,7 +540,7 @@ impl Spec {
}, },
Spec::LifeGB=> SpecValues { Spec::LifeGB=> SpecValues {
multi: 40, base: 150, base: 150,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 75 }, SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 75 },
SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 75 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 75 },
@ -558,7 +549,7 @@ impl Spec {
}, },
Spec::LifeRB=> SpecValues { Spec::LifeRB=> SpecValues {
multi: 40, base: 150, base: 150,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 75 }, SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 75 },
SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 75 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 75 },
@ -567,7 +558,7 @@ impl Spec {
}, },
Spec::LifeRRPlus => SpecValues { Spec::LifeRRPlus => SpecValues {
multi: 50, base: 300, base: 300,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 150 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 150 },
SpecBonus { req: Colours { red: 10, 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 { Spec::LifeGGPlus => SpecValues {
multi: 50, base: 300, base: 300,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 150 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 150 },
SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 150 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 150 },
@ -585,7 +576,7 @@ impl Spec {
}, },
Spec::LifeBBPlus => SpecValues { Spec::LifeBBPlus => SpecValues {
multi: 50, base: 300, base: 300,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 150 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 150 },
SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 150 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 150 },
@ -594,7 +585,7 @@ impl Spec {
}, },
Spec::LifeRGPlus => SpecValues { Spec::LifeRGPlus => SpecValues {
multi: 40, base: 200, base: 200,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 100 }, SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 100 },
SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 100 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 100 },
@ -603,7 +594,7 @@ impl Spec {
}, },
Spec::LifeGBPlus => SpecValues { Spec::LifeGBPlus => SpecValues {
multi: 40, base: 200, base: 200,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 100 }, SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 100 },
SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 100 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 100 },
@ -612,7 +603,7 @@ impl Spec {
}, },
Spec::LifeRBPlus => SpecValues { Spec::LifeRBPlus => SpecValues {
multi: 40, base: 200, base: 200,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 100 }, SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 100 },
SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 100 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 100 },
@ -620,7 +611,7 @@ impl Spec {
], ],
}, },
Spec::LifeRRPlusPlus => SpecValues { Spec::LifeRRPlusPlus => SpecValues {
multi: 40, base: 300, base: 300,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 300 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 300 },
SpecBonus { req: Colours { red: 10, 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 { Spec::LifeGGPlusPlus => SpecValues {
multi: 40, base: 300, base: 300,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 300 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 300 },
SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 300 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 300 },
@ -638,7 +629,7 @@ impl Spec {
}, },
Spec::LifeBBPlusPlus => SpecValues { Spec::LifeBBPlusPlus => SpecValues {
multi: 40, base: 300, base: 300,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 300 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 300 },
SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 300 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 300 },
@ -647,7 +638,7 @@ impl Spec {
}, },
Spec::LifeRGPlusPlus => SpecValues { Spec::LifeRGPlusPlus => SpecValues {
multi: 40, base: 200, base: 200,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 200 }, SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 200 },
SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 200 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 200 },
@ -656,7 +647,7 @@ impl Spec {
}, },
Spec::LifeGBPlusPlus => SpecValues { Spec::LifeGBPlusPlus => SpecValues {
multi: 40, base: 200, base: 200,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 200 }, SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 200 },
SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 200 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 200 },
@ -665,7 +656,7 @@ impl Spec {
}, },
Spec::LifeRBPlusPlus => SpecValues { Spec::LifeRBPlusPlus => SpecValues {
multi: 40, base: 200, base: 200,
bonuses: vec![ bonuses: vec![
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 200 }, SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 200 },
SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, 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 { match *self {
// Percentage multipliers based on base value // Percentage multipliers based on base value
Spec::Power | Spec::Power |