Merge branch 'master' of ssh://cryps.gg:40022/~/cryps
This commit is contained in:
commit
d71fd68a87
@ -14,6 +14,9 @@ pub enum Spec {
|
|||||||
LRSI,
|
LRSI,
|
||||||
LBSI,
|
LBSI,
|
||||||
RBSI,
|
RBSI,
|
||||||
|
GRDI,
|
||||||
|
GBDI,
|
||||||
|
RBDI,
|
||||||
|
|
||||||
RedDamageI,
|
RedDamageI,
|
||||||
GreenDamageI,
|
GreenDamageI,
|
||||||
@ -36,6 +39,9 @@ impl Spec {
|
|||||||
Spec::RedDamageI => vec![Stat::RedDamage],
|
Spec::RedDamageI => vec![Stat::RedDamage],
|
||||||
Spec::GreenDamageI => vec![Stat::GreenDamage],
|
Spec::GreenDamageI => vec![Stat::GreenDamage],
|
||||||
Spec::BlueDamageI => vec![Stat::BlueDamage],
|
Spec::BlueDamageI => vec![Stat::BlueDamage],
|
||||||
|
Spec::GRDI => vec![Stat::GreenDamage, Stat::RedDamage],
|
||||||
|
Spec::GBDI => vec![Stat::GreenDamage, Stat::BlueDamage],
|
||||||
|
Spec::RBDI => vec![Stat::RedDamage, Stat::BlueDamage],
|
||||||
|
|
||||||
Spec::SpeedI => vec![Stat::Speed],
|
Spec::SpeedI => vec![Stat::Speed],
|
||||||
|
|
||||||
@ -54,42 +60,77 @@ 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 bonus = base.pct(5);
|
||||||
if team_colours.red >= 5 { pct += 5 };
|
bonus + apply_bonus(vec![team_colours.red], vec![5, 10, 20],
|
||||||
if team_colours.red >= 10 { pct += 10 };
|
vec![base.pct(5), base.pct(10), base.pct(20)])
|
||||||
if team_colours.red >= 20 { pct += 20 };
|
|
||||||
base.pct(pct)
|
|
||||||
},
|
},
|
||||||
Spec::GreenDamageI => modified + {
|
Spec::GreenDamageI => modified + {
|
||||||
let mut pct = 5;
|
let mut bonus = base.pct(5) as u64;
|
||||||
if team_colours.green >= 5 { pct += 5 };
|
bonus + apply_bonus(vec![team_colours.green], vec![5, 10, 20],
|
||||||
if team_colours.green >= 10 { pct += 10 };
|
vec![base.pct(5), base.pct(10), base.pct(20)])
|
||||||
if team_colours.green >= 20 { pct += 20 };
|
|
||||||
base.pct(pct)
|
|
||||||
},
|
},
|
||||||
Spec::BlueDamageI => modified + {
|
Spec::BlueDamageI => modified + {
|
||||||
let mut pct = 5;
|
let mut bonus = base.pct(5) as u64;
|
||||||
if team_colours.blue >= 5 { pct += 10 };
|
bonus + apply_bonus(vec![team_colours.blue], vec![5, 10, 20],
|
||||||
if team_colours.blue >= 10 { pct += 20 };
|
vec![base.pct(5), base.pct(10), base.pct(20)])
|
||||||
if team_colours.blue >= 20 { pct += 30 };
|
},
|
||||||
base.pct(pct)
|
Spec::GRDI => modified + {
|
||||||
|
let mut bonus = base.pct(5) as u64;
|
||||||
|
bonus + apply_bonus(vec![team_colours.green, team_colours.red],
|
||||||
|
vec![2, 5, 10], vec![base.pct(5), base.pct(10), base.pct(20)])
|
||||||
|
},
|
||||||
|
Spec::GBDI => modified + {
|
||||||
|
let mut bonus = base.pct(5) as u64;
|
||||||
|
bonus + apply_bonus(vec![team_colours.green, team_colours.blue],
|
||||||
|
vec![2, 5, 10], vec![base.pct(5), base.pct(10), base.pct(20)])
|
||||||
|
},
|
||||||
|
Spec::RBDI => modified + {
|
||||||
|
let mut bonus = base.pct(5) as u64;
|
||||||
|
bonus + apply_bonus(vec![team_colours.red, team_colours.blue],
|
||||||
|
vec![2, 5, 10], vec![base.pct(5), base.pct(10), base.pct(20)])
|
||||||
},
|
},
|
||||||
|
|
||||||
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![2, 5, 10], 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![2, 5, 10], 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![2, 5, 10], vec![bonus, bonus * 2, bonus * 3])
|
||||||
},
|
},
|
||||||
Spec::LBSI => modified + base.pct(5),
|
|
||||||
Spec::RBSI => modified + base.pct(5),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,20 +33,26 @@ pub enum Var {
|
|||||||
Debuff,
|
Debuff,
|
||||||
|
|
||||||
// specs
|
// specs
|
||||||
|
// Base
|
||||||
Damage,
|
Damage,
|
||||||
Hp,
|
Hp,
|
||||||
SpeedI,
|
SpeedI,
|
||||||
|
|
||||||
|
// Shields Upgrades
|
||||||
LifeI,
|
LifeI,
|
||||||
|
RedShieldI,
|
||||||
|
BlueShieldI,
|
||||||
LRSI,
|
LRSI,
|
||||||
LBSI,
|
LBSI,
|
||||||
RBSI,
|
RBSI,
|
||||||
|
|
||||||
|
// Damage Upgrades
|
||||||
RedDamageI,
|
RedDamageI,
|
||||||
BlueDamageI,
|
BlueDamageI,
|
||||||
GreenDamageI,
|
GreenDamageI,
|
||||||
RedShieldI,
|
GRDI,
|
||||||
BlueShieldI,
|
GBDI,
|
||||||
|
RBDI,
|
||||||
|
|
||||||
Amplify,
|
Amplify,
|
||||||
Banish,
|
Banish,
|
||||||
@ -182,6 +188,9 @@ impl Var {
|
|||||||
Var::RedDamageI => Some(Spec::RedDamageI),
|
Var::RedDamageI => Some(Spec::RedDamageI),
|
||||||
Var::BlueDamageI => Some(Spec::BlueDamageI),
|
Var::BlueDamageI => Some(Spec::BlueDamageI),
|
||||||
Var::GreenDamageI => Some(Spec::GreenDamageI),
|
Var::GreenDamageI => Some(Spec::GreenDamageI),
|
||||||
|
Var::GRDI => Some(Spec::GRDI),
|
||||||
|
Var::GBDI => Some(Spec::GBDI),
|
||||||
|
Var::RBDI => Some(Spec::RBDI),
|
||||||
|
|
||||||
Var::LifeI => Some(Spec::LifeI),
|
Var::LifeI => Some(Spec::LifeI),
|
||||||
Var::LRSI => Some(Spec::LRSI),
|
Var::LRSI => Some(Spec::LRSI),
|
||||||
@ -241,6 +250,9 @@ impl From<Spec> for Var {
|
|||||||
Spec::RedDamageI => Var::RedDamageI,
|
Spec::RedDamageI => Var::RedDamageI,
|
||||||
Spec::BlueDamageI => Var::BlueDamageI,
|
Spec::BlueDamageI => Var::BlueDamageI,
|
||||||
Spec::GreenDamageI => Var::GreenDamageI,
|
Spec::GreenDamageI => Var::GreenDamageI,
|
||||||
|
Spec::GRDI => Var::GRDI,
|
||||||
|
Spec::GBDI => Var::GBDI,
|
||||||
|
Spec::RBDI => Var::RBDI,
|
||||||
|
|
||||||
Spec::LifeI => Var::LifeI,
|
Spec::LifeI => Var::LifeI,
|
||||||
Spec::LRSI => Var::LRSI,
|
Spec::LRSI => Var::LRSI,
|
||||||
@ -299,9 +311,9 @@ fn get_combos() -> Vec<Combo> {
|
|||||||
Combo { units: vec![Var::Damage, Var::Red, Var::Red], var: Var::RedDamageI },
|
Combo { units: vec![Var::Damage, Var::Red, Var::Red], var: Var::RedDamageI },
|
||||||
Combo { units: vec![Var::Damage, Var::Green, Var::Green], var: Var::GreenDamageI },
|
Combo { units: vec![Var::Damage, Var::Green, Var::Green], var: Var::GreenDamageI },
|
||||||
Combo { units: vec![Var::Damage, Var::Blue, Var::Blue], var: Var::BlueDamageI },
|
Combo { units: vec![Var::Damage, Var::Blue, Var::Blue], var: Var::BlueDamageI },
|
||||||
// Combo { units: vec![Var::Damage, Var::Red, Var::Green], var: Var::Strike },
|
Combo { units: vec![Var::Damage, Var::Red, Var::Green], var: Var::GRDI },
|
||||||
// Combo { units: vec![Var::Damage, Var::Green, Var::Blue], var: Var::Silence },
|
Combo { units: vec![Var::Damage, Var::Green, Var::Blue], var: Var::GBDI },
|
||||||
// Combo { units: vec![Var::Damage, Var::Red, Var::Blue], var: Var::Hex },
|
Combo { units: vec![Var::Damage, Var::Red, Var::Blue], var: Var::RBDI },
|
||||||
|
|
||||||
Combo { units: vec![Var::Hp, Var::Red, Var::Red], var: Var::RedShieldI },
|
Combo { units: vec![Var::Hp, Var::Red, Var::Red], var: Var::RedShieldI },
|
||||||
Combo { units: vec![Var::Hp, Var::Green, Var::Green], var: Var::LifeI },
|
Combo { units: vec![Var::Hp, Var::Green, Var::Green], var: Var::LifeI },
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user