Flat health spec and bonus fn
This commit is contained in:
parent
a4ccb087b1
commit
33941657f8
@ -55,6 +55,15 @@ impl Spec {
|
|||||||
let i_min = 32;
|
let i_min = 32;
|
||||||
let i_max = 64;
|
let i_max = 64;
|
||||||
|
|
||||||
|
fn apply_bonus(colours: Vec<u8>, reqs: Vec<u8>, bonuses: Vec<u64>) -> u64 {
|
||||||
|
bonuses.iter().enumerate().fold(0, |acc, (i, b)| {
|
||||||
|
acc + match (colours.iter().all(|colour| colour >= &reqs[i])) {
|
||||||
|
true => bonuses[i],
|
||||||
|
false => 0
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
match *self {
|
match *self {
|
||||||
Spec::RedDamageI => modified + {
|
Spec::RedDamageI => modified + {
|
||||||
let mut pct = 5;
|
let mut pct = 5;
|
||||||
@ -80,15 +89,33 @@ impl Spec {
|
|||||||
|
|
||||||
Spec::SpeedI => modified + base.pct(5),
|
Spec::SpeedI => modified + base.pct(5),
|
||||||
|
|
||||||
Spec::LifeI => modified + base.pct(5),
|
Spec::LifeI => modified + {
|
||||||
Spec::RedShieldI => modified + rng.gen_range(i_min, i_max),
|
let mut bonus = 10 * team_colours.green as u64;
|
||||||
Spec::BlueShieldI => modified + rng.gen_range(i_min, i_max),
|
bonus + apply_bonus(vec![team_colours.green], vec![5, 10, 20], vec![bonus, bonus * 2, bonus * 3])
|
||||||
Spec::LRSI => modified + {
|
},
|
||||||
if team_colours.red > 5 && team_colours.green > 5 { base.pct(10) }
|
Spec::RedShieldI => modified + {
|
||||||
else { base.pct(5) }
|
let mut bonus = 10 * team_colours.red as u64;
|
||||||
|
bonus + apply_bonus(vec![team_colours.red], vec![5, 10, 20], vec![bonus, bonus * 2, bonus * 3])
|
||||||
|
},
|
||||||
|
Spec::BlueShieldI => modified + {
|
||||||
|
let mut bonus = 10 * team_colours.blue as u64;
|
||||||
|
bonus + apply_bonus(vec![team_colours.blue], vec![5, 10, 20], vec![bonus, bonus * 2, bonus * 3])
|
||||||
|
},
|
||||||
|
Spec::LRSI => modified + {
|
||||||
|
let mut bonus = 5 * (team_colours.green + team_colours.red) as u64;
|
||||||
|
bonus + apply_bonus(vec![team_colours.green, team_colours.red],
|
||||||
|
vec![5, 10, 20], vec![bonus, bonus * 2, bonus * 3])
|
||||||
|
},
|
||||||
|
Spec::LBSI => modified + {
|
||||||
|
let mut bonus = 5 * (team_colours.green + team_colours.blue) as u64;
|
||||||
|
bonus + apply_bonus(vec![team_colours.green, team_colours.blue],
|
||||||
|
vec![5, 10, 20], vec![bonus, bonus * 2, bonus * 3])
|
||||||
|
},
|
||||||
|
Spec::RBSI => modified + {
|
||||||
|
let mut bonus = 5 * (team_colours.red + team_colours.blue) as u64;
|
||||||
|
bonus + apply_bonus(vec![team_colours.red, team_colours.blue],
|
||||||
|
vec![5, 10, 20], vec![bonus, bonus * 2, bonus * 3])
|
||||||
},
|
},
|
||||||
Spec::LBSI => modified + base.pct(5),
|
|
||||||
Spec::RBSI => modified + base.pct(5),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user