rename III -> ++
This commit is contained in:
parent
627653924b
commit
c8c2d08522
@ -17,7 +17,7 @@ ssh -q mnml ls -lah "$SERVER_BIN_DIR"
|
||||
|
||||
# client updates
|
||||
echo "syncing client $VERSION"
|
||||
rsync -a --delete --delete-excluded "$MNML_PATH/client/dist" mnml:"$CLIENT_DIST_DIR/$VERSION"
|
||||
rsync -a --delete --delete-excluded "$MNML_PATH/client/dist/" mnml:"$CLIENT_DIST_DIR/$VERSION/"
|
||||
ssh -q mnml ln -nfs "$CLIENT_DIST_DIR/$VERSION" "$CLIENT_PUBLIC_DIR"
|
||||
ssh -q mnml ls -lah "/var/lib/mnml/public"
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
"docco": "^0.7.0",
|
||||
"izitoast": "^1.4.0",
|
||||
"keymaster": "^1.6.2",
|
||||
"lodash": "^4.17.11",
|
||||
"lodash": "^4.17.15",
|
||||
"node-sass": "^4.12.0",
|
||||
"parcel": "^1.12.3",
|
||||
"preact": "^8.4.2",
|
||||
|
||||
@ -48,7 +48,7 @@ pub struct ConstructSkill {
|
||||
pub skill: Skill,
|
||||
pub self_targeting: bool,
|
||||
pub cd: Cooldown,
|
||||
// used for UI on client
|
||||
// used for Uon client
|
||||
pub disabled: bool,
|
||||
}
|
||||
|
||||
@ -946,13 +946,12 @@ mod tests {
|
||||
let mut construct = Construct::new()
|
||||
.named(&"redboi".to_string());
|
||||
|
||||
construct.learn_mut(Skill::StrikeI);
|
||||
construct.spec_add(Spec::LifeGGI).unwrap();
|
||||
construct.spec_add(Spec::PowerRRI).unwrap();
|
||||
construct.spec_add(Spec::PowerRRI).unwrap();
|
||||
construct.spec_add(Spec::LifeBBI).unwrap();
|
||||
construct.learn_mut(Skill::Strike);
|
||||
construct.spec_add(Spec::LifeGG).unwrap();
|
||||
construct.spec_add(Spec::PowerRR).unwrap();
|
||||
construct.spec_add(Spec::LifeBB).unwrap();
|
||||
|
||||
assert_eq!(construct.colours.red, 6);
|
||||
assert_eq!(construct.colours.red, 4);
|
||||
assert_eq!(construct.colours.green, 2);
|
||||
assert_eq!(construct.colours.blue, 2);
|
||||
|
||||
@ -964,10 +963,10 @@ mod tests {
|
||||
let mut construct = Construct::new()
|
||||
.named(&"player player".to_string());
|
||||
|
||||
construct.spec_add(Spec::PowerRRI).unwrap();
|
||||
construct.spec_add(Spec::PowerGGI).unwrap();
|
||||
construct.spec_add(Spec::PowerBBI).unwrap();
|
||||
construct.learn_mut(Skill::StrikeIII); // 18 reds (24 total)
|
||||
construct.spec_add(Spec::PowerRR).unwrap();
|
||||
construct.spec_add(Spec::PowerGG).unwrap();
|
||||
construct.spec_add(Spec::PowerBB).unwrap();
|
||||
construct.learn_mut(Skill::StrikePlusPlus); // 18 reds (24 total)
|
||||
|
||||
let player_colours = Colours {
|
||||
red: 5,
|
||||
@ -1013,9 +1012,9 @@ mod tests {
|
||||
let mut construct = Construct::new()
|
||||
.named(&"player player".to_string());
|
||||
|
||||
construct.spec_add(Spec::PowerRRI).unwrap();
|
||||
construct.spec_add(Spec::PowerGGI).unwrap();
|
||||
construct.spec_add(Spec::PowerBBI).unwrap();
|
||||
construct.spec_add(Spec::PowerRR).unwrap();
|
||||
construct.spec_add(Spec::PowerGG).unwrap();
|
||||
construct.spec_add(Spec::PowerBB).unwrap();
|
||||
|
||||
let colours = Colours::from_construct(&construct);
|
||||
assert!(colours.red == 2);
|
||||
@ -1023,8 +1022,8 @@ mod tests {
|
||||
assert!(colours.green == 2);
|
||||
|
||||
let construct = construct
|
||||
.learn(Skill::StrikeI)
|
||||
.learn(Skill::BlastIII);
|
||||
.learn(Skill::Strike)
|
||||
.learn(Skill::BlastPlusPlus);
|
||||
|
||||
let colours = Colours::from_construct(&construct);
|
||||
assert!(colours.red == 4);
|
||||
@ -1037,9 +1036,9 @@ mod tests {
|
||||
let mut construct = Construct::new()
|
||||
.named(&"player player".to_string());
|
||||
|
||||
construct.spec_add(Spec::PowerRRI).unwrap();
|
||||
construct.spec_add(Spec::PowerGGI).unwrap();
|
||||
construct.spec_add(Spec::PowerBBI).unwrap();
|
||||
construct.spec_add(Spec::PowerRR).unwrap();
|
||||
construct.spec_add(Spec::PowerGG).unwrap();
|
||||
construct.spec_add(Spec::PowerBB).unwrap();
|
||||
|
||||
let player_colours = Colours {
|
||||
red: 5,
|
||||
|
||||
@ -74,18 +74,18 @@ impl Effect {
|
||||
Effect::Banish => true,
|
||||
Effect::Sustain => [
|
||||
Skill::Stun,
|
||||
Skill::HexI,
|
||||
Skill::HexII,
|
||||
Skill::HexIII,
|
||||
Skill::SilenceI,
|
||||
Skill::SilenceII,
|
||||
Skill::SilenceIII,
|
||||
Skill::RuinI,
|
||||
Skill::RuinII,
|
||||
Skill::RuinIII,
|
||||
Skill::RestrictI,
|
||||
Skill::RestrictII,
|
||||
Skill::RestrictIII
|
||||
Skill::Hex,
|
||||
Skill::HexPlus,
|
||||
Skill::HexPlusPlus,
|
||||
Skill::Silence,
|
||||
Skill::SilencePlus,
|
||||
Skill::SilencePlusPlus,
|
||||
Skill::Ruin,
|
||||
Skill::RuinPlus,
|
||||
Skill::RuinPlusPlus,
|
||||
Skill::Restrict,
|
||||
Skill::RestrictPlus,
|
||||
Skill::RestrictPlusPlus
|
||||
].contains(&skill),
|
||||
_ => false,
|
||||
}
|
||||
|
||||
@ -854,9 +854,9 @@ mod tests {
|
||||
.learn(Skill::Stun)
|
||||
.learn(Skill::Attack)
|
||||
.learn(Skill::Block)
|
||||
.learn(Skill::CounterI)
|
||||
.learn(Skill::SiphonI)
|
||||
.learn(Skill::AmplifyI)
|
||||
.learn(Skill::Counter)
|
||||
.learn(Skill::Siphon)
|
||||
.learn(Skill::Amplify)
|
||||
.learn(Skill::Stun)
|
||||
.learn(Skill::Block);
|
||||
|
||||
@ -866,9 +866,9 @@ mod tests {
|
||||
.learn(Skill::Stun)
|
||||
.learn(Skill::Attack)
|
||||
.learn(Skill::Block)
|
||||
.learn(Skill::CounterI)
|
||||
.learn(Skill::SiphonI)
|
||||
.learn(Skill::AmplifyI)
|
||||
.learn(Skill::Counter)
|
||||
.learn(Skill::Siphon)
|
||||
.learn(Skill::Amplify)
|
||||
.learn(Skill::Stun)
|
||||
.learn(Skill::Block);
|
||||
|
||||
@ -1087,11 +1087,11 @@ mod tests {
|
||||
game.construct_by_id(y_construct.id).unwrap().reduce_cooldowns();
|
||||
}
|
||||
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::CounterI).is_some() {
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::Counter).is_some() {
|
||||
game.construct_by_id(x_construct.id).unwrap().reduce_cooldowns();
|
||||
}
|
||||
|
||||
game.add_skill(x_player.id, x_construct.id, None, Skill::CounterI).unwrap();
|
||||
game.add_skill(x_player.id, x_construct.id, None, Skill::Counter).unwrap();
|
||||
game.add_skill(y_player.id, y_construct.id, Some(x_construct.id), Skill::Stun).unwrap();
|
||||
|
||||
game.player_ready(x_player.id).unwrap();
|
||||
@ -1102,7 +1102,7 @@ mod tests {
|
||||
// should not be stunned because of counter
|
||||
assert!(game.player_by_id(x_player.id).unwrap().constructs[0].is_stunned() == false);
|
||||
// riposte
|
||||
assert_eq!(game.player_by_id(y_player.id).unwrap().constructs[0].green_life(), (1024 - x_construct.red_power().pct(Skill::CounterAttackI.multiplier())));
|
||||
assert_eq!(game.player_by_id(y_player.id).unwrap().constructs[0].green_life(), (1024 - x_construct.red_power().pct(Skill::CounterAttack.multiplier())));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1115,14 +1115,14 @@ mod tests {
|
||||
let x_construct = x_player.constructs[0].clone();
|
||||
let y_construct = y_player.constructs[0].clone();
|
||||
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::ElectrifyI);
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::Electrify);
|
||||
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::ElectrifyI).is_some() {
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::Electrify).is_some() {
|
||||
game.construct_by_id(x_construct.id).unwrap().reduce_cooldowns();
|
||||
}
|
||||
|
||||
// apply buff
|
||||
game.add_skill(x_player.id, x_construct.id, Some(x_construct.id), Skill::ElectrifyI).unwrap();
|
||||
game.add_skill(x_player.id, x_construct.id, Some(x_construct.id), Skill::Electrify).unwrap();
|
||||
game.player_ready(x_player.id).unwrap();
|
||||
game.player_ready(y_player.id).unwrap();
|
||||
game = game.resolve_phase_start();
|
||||
@ -1147,14 +1147,14 @@ mod tests {
|
||||
let x_construct = x_player.constructs[0].clone();
|
||||
let y_construct = y_player.constructs[0].clone();
|
||||
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::LinkI);
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::Link);
|
||||
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::LinkI).is_some() {
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::Link).is_some() {
|
||||
game.construct_by_id(x_construct.id).unwrap().reduce_cooldowns();
|
||||
}
|
||||
|
||||
// apply buff
|
||||
game.add_skill(x_player.id, x_construct.id, Some(y_construct.id), Skill::LinkI).unwrap();
|
||||
game.add_skill(x_player.id, x_construct.id, Some(y_construct.id), Skill::Link).unwrap();
|
||||
game.player_ready(x_player.id).unwrap();
|
||||
game.player_ready(y_player.id).unwrap();
|
||||
game = game.resolve_phase_start();
|
||||
@ -1232,15 +1232,15 @@ mod tests {
|
||||
let x_construct = x_player.constructs[0].clone();
|
||||
let y_construct = x_player.constructs[1].clone();
|
||||
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::RuinI);
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::Ruin);
|
||||
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::RuinI).is_some() {
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::Ruin).is_some() {
|
||||
game.construct_by_id(x_construct.id).unwrap().reduce_cooldowns();
|
||||
}
|
||||
|
||||
game.add_skill(i_player.id, i_construct.id, Some(x_construct.id), Skill::Attack).unwrap();
|
||||
game.add_skill(i_player.id, j_construct.id, Some(x_construct.id), Skill::Attack).unwrap();
|
||||
game.add_skill(x_player.id, x_construct.id, Some(i_construct.id), Skill::RuinI).unwrap();
|
||||
game.add_skill(x_player.id, x_construct.id, Some(i_construct.id), Skill::Ruin).unwrap();
|
||||
game.add_skill(x_player.id, y_construct.id, Some(i_construct.id), Skill::Attack).unwrap();
|
||||
|
||||
game.player_ready(i_player.id).unwrap();
|
||||
@ -1282,15 +1282,15 @@ mod tests {
|
||||
let x_construct = x_player.constructs[0].clone();
|
||||
let y_construct = x_player.constructs[1].clone();
|
||||
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::InterceptI);
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::Intercept);
|
||||
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::InterceptI).is_some() {
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::Intercept).is_some() {
|
||||
game.construct_by_id(x_construct.id).unwrap().reduce_cooldowns();
|
||||
}
|
||||
|
||||
game.add_skill(i_player.id, i_construct.id, Some(x_construct.id), Skill::Attack).unwrap();
|
||||
game.add_skill(i_player.id, j_construct.id, Some(x_construct.id), Skill::Attack).unwrap();
|
||||
game.add_skill(x_player.id, x_construct.id, Some(i_construct.id), Skill::InterceptI).unwrap();
|
||||
game.add_skill(x_player.id, x_construct.id, Some(i_construct.id), Skill::Intercept).unwrap();
|
||||
game.add_skill(x_player.id, y_construct.id, Some(i_construct.id), Skill::Attack).unwrap();
|
||||
|
||||
game.player_ready(i_player.id).unwrap();
|
||||
@ -1367,23 +1367,23 @@ mod tests {
|
||||
// make the purify construct super fast so it beats out decay
|
||||
game.construct_by_id(y_construct.id).unwrap().speed.force(10000000);
|
||||
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::DecayI);
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::DecayI).is_some() {
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::Decay);
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::Decay).is_some() {
|
||||
game.construct_by_id(x_construct.id).unwrap().reduce_cooldowns();
|
||||
}
|
||||
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::SiphonI);
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::SiphonI).is_some() {
|
||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::Siphon);
|
||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::Siphon).is_some() {
|
||||
game.construct_by_id(x_construct.id).unwrap().reduce_cooldowns();
|
||||
}
|
||||
|
||||
game.construct_by_id(y_construct.id).unwrap().learn_mut(Skill::PurifyI);
|
||||
while game.construct_by_id(y_construct.id).unwrap().skill_on_cd(Skill::PurifyI).is_some() {
|
||||
game.construct_by_id(y_construct.id).unwrap().learn_mut(Skill::Purify);
|
||||
while game.construct_by_id(y_construct.id).unwrap().skill_on_cd(Skill::Purify).is_some() {
|
||||
game.construct_by_id(y_construct.id).unwrap().reduce_cooldowns();
|
||||
}
|
||||
|
||||
// apply buff
|
||||
game.add_skill(x_player.id, x_construct.id, Some(y_construct.id), Skill::DecayI).unwrap();
|
||||
game.add_skill(x_player.id, x_construct.id, Some(y_construct.id), Skill::Decay).unwrap();
|
||||
game.player_ready(x_player.id).unwrap();
|
||||
game.player_ready(y_player.id).unwrap();
|
||||
game = game.resolve_phase_start();
|
||||
@ -1391,14 +1391,14 @@ mod tests {
|
||||
|
||||
let Resolution { source: _, target: _, event, stages: _ } = game.resolved.pop().unwrap();
|
||||
match event {
|
||||
Event::Damage { amount: _, skill, mitigation: _, colour: _ } => assert_eq!(skill, Skill::DecayTickI),
|
||||
Event::Damage { amount: _, skill, mitigation: _, colour: _ } => assert_eq!(skill, Skill::DecayTick),
|
||||
_ => panic!("not decay"),
|
||||
};
|
||||
|
||||
game.resolved.clear();
|
||||
|
||||
// remove
|
||||
game.add_skill(y_player.id, y_construct.id, Some(y_construct.id), Skill::PurifyI).unwrap();
|
||||
game.add_skill(y_player.id, y_construct.id, Some(y_construct.id), Skill::Purify).unwrap();
|
||||
game.player_ready(x_player.id).unwrap();
|
||||
game.player_ready(y_player.id).unwrap();
|
||||
game = game.resolve_phase_start();
|
||||
@ -1411,14 +1411,14 @@ mod tests {
|
||||
}
|
||||
};
|
||||
|
||||
game.add_skill(y_player.id, x_construct.id, Some(y_construct.id), Skill::SiphonI).unwrap();
|
||||
game.add_skill(y_player.id, x_construct.id, Some(y_construct.id), Skill::Siphon).unwrap();
|
||||
game.player_ready(x_player.id).unwrap();
|
||||
game.player_ready(y_player.id).unwrap();
|
||||
game = game.resolve_phase_start();
|
||||
|
||||
game.resolved.clear();
|
||||
|
||||
game.add_skill(y_player.id, y_construct.id, Some(y_construct.id), Skill::PurifyI).unwrap();
|
||||
game.add_skill(y_player.id, y_construct.id, Some(y_construct.id), Skill::Purify).unwrap();
|
||||
game.player_ready(x_player.id).unwrap();
|
||||
game.player_ready(y_player.id).unwrap();
|
||||
game = game.resolve_phase_start();
|
||||
|
||||
1804
server/src/item.rs
1804
server/src/item.rs
File diff suppressed because it is too large
Load Diff
1258
server/src/skill.rs
1258
server/src/skill.rs
File diff suppressed because it is too large
Load Diff
@ -38,66 +38,66 @@ impl SpecValues {
|
||||
#[derive(Debug,Copy,Clone,Serialize,Deserialize,PartialEq,PartialOrd,Ord,Eq)]
|
||||
pub enum Spec {
|
||||
Speed,
|
||||
SpeedRRI,
|
||||
SpeedBBI,
|
||||
SpeedGGI,
|
||||
SpeedRGI,
|
||||
SpeedGBI,
|
||||
SpeedRBI,
|
||||
SpeedRR,
|
||||
SpeedBB,
|
||||
SpeedGG,
|
||||
SpeedRG,
|
||||
SpeedGB,
|
||||
SpeedRB,
|
||||
|
||||
SpeedRRII,
|
||||
SpeedBBII,
|
||||
SpeedGGII,
|
||||
SpeedRGII,
|
||||
SpeedGBII,
|
||||
SpeedRBII,
|
||||
SpeedRRPlus,
|
||||
SpeedBBPlus,
|
||||
SpeedGGPlus,
|
||||
SpeedRGPlus,
|
||||
SpeedGBPlus,
|
||||
SpeedRBPlus,
|
||||
|
||||
SpeedRRIII,
|
||||
SpeedBBIII,
|
||||
SpeedGGIII,
|
||||
SpeedRGIII,
|
||||
SpeedGBIII,
|
||||
SpeedRBIII,
|
||||
SpeedRRPlusPlus,
|
||||
SpeedBBPlusPlus,
|
||||
SpeedGGPlusPlus,
|
||||
SpeedRGPlusPlus,
|
||||
SpeedGBPlusPlus,
|
||||
SpeedRBPlusPlus,
|
||||
|
||||
Life,
|
||||
LifeGGI,
|
||||
LifeRRI,
|
||||
LifeBBI,
|
||||
LifeRGI,
|
||||
LifeGBI,
|
||||
LifeRBI,
|
||||
LifeGGII,
|
||||
LifeRRII,
|
||||
LifeBBII,
|
||||
LifeRGII,
|
||||
LifeGBII,
|
||||
LifeRBII,
|
||||
LifeGGIII,
|
||||
LifeRRIII,
|
||||
LifeBBIII,
|
||||
LifeRGIII,
|
||||
LifeGBIII,
|
||||
LifeRBIII,
|
||||
LifeGG,
|
||||
LifeRR,
|
||||
LifeBB,
|
||||
LifeRG,
|
||||
LifeGB,
|
||||
LifeRB,
|
||||
LifeGGPlus,
|
||||
LifeRRPlus,
|
||||
LifeBBPlus,
|
||||
LifeRGPlus,
|
||||
LifeGBPlus,
|
||||
LifeRBPlus,
|
||||
LifeGGPlusPlus,
|
||||
LifeRRPlusPlus,
|
||||
LifeBBPlusPlus,
|
||||
LifeRGPlusPlus,
|
||||
LifeGBPlusPlus,
|
||||
LifeRBPlusPlus,
|
||||
|
||||
Power,
|
||||
PowerRRI,
|
||||
PowerGGI,
|
||||
PowerBBI,
|
||||
PowerRGI,
|
||||
PowerGBI,
|
||||
PowerRBI,
|
||||
PowerRRII,
|
||||
PowerGGII,
|
||||
PowerBBII,
|
||||
PowerRGII,
|
||||
PowerGBII,
|
||||
PowerRBII,
|
||||
PowerRRIII,
|
||||
PowerGGIII,
|
||||
PowerBBIII,
|
||||
PowerRGIII,
|
||||
PowerGBIII,
|
||||
PowerRBIII,
|
||||
PowerRR,
|
||||
PowerGG,
|
||||
PowerBB,
|
||||
PowerRG,
|
||||
PowerGB,
|
||||
PowerRB,
|
||||
PowerRRPlus,
|
||||
PowerGGPlus,
|
||||
PowerBBPlus,
|
||||
PowerRGPlus,
|
||||
PowerGBPlus,
|
||||
PowerRBPlus,
|
||||
PowerRRPlusPlus,
|
||||
PowerGGPlusPlus,
|
||||
PowerBBPlusPlus,
|
||||
PowerRGPlusPlus,
|
||||
PowerGBPlusPlus,
|
||||
PowerRBPlusPlus,
|
||||
|
||||
}
|
||||
|
||||
@ -105,66 +105,66 @@ impl Spec {
|
||||
pub fn affects(&self) -> Vec<Stat> {
|
||||
match *self {
|
||||
Spec::Power => vec![Stat::BluePower, Stat::RedPower, Stat::GreenPower],
|
||||
Spec::PowerRRI => vec![Stat::RedPower],
|
||||
Spec::PowerGGI => vec![Stat::GreenPower],
|
||||
Spec::PowerBBI => vec![Stat::BluePower],
|
||||
Spec::PowerRGI => vec![Stat::GreenPower, Stat::RedPower],
|
||||
Spec::PowerGBI => vec![Stat::GreenPower, Stat::BluePower],
|
||||
Spec::PowerRBI => vec![Stat::RedPower, Stat::BluePower],
|
||||
Spec::PowerRRII => vec![Stat::RedPower],
|
||||
Spec::PowerGGII => vec![Stat::GreenPower],
|
||||
Spec::PowerBBII => vec![Stat::BluePower],
|
||||
Spec::PowerRGII => vec![Stat::GreenPower, Stat::RedPower],
|
||||
Spec::PowerGBII => vec![Stat::GreenPower, Stat::BluePower],
|
||||
Spec::PowerRBII => vec![Stat::RedPower, Stat::BluePower],
|
||||
Spec::PowerRRIII => vec![Stat::RedPower],
|
||||
Spec::PowerGGIII => vec![Stat::GreenPower],
|
||||
Spec::PowerBBIII => vec![Stat::BluePower],
|
||||
Spec::PowerRGIII => vec![Stat::GreenPower, Stat::RedPower],
|
||||
Spec::PowerGBIII => vec![Stat::GreenPower, Stat::BluePower],
|
||||
Spec::PowerRBIII => vec![Stat::RedPower, Stat::BluePower],
|
||||
Spec::PowerRR => vec![Stat::RedPower],
|
||||
Spec::PowerGG => vec![Stat::GreenPower],
|
||||
Spec::PowerBB => vec![Stat::BluePower],
|
||||
Spec::PowerRG => vec![Stat::GreenPower, Stat::RedPower],
|
||||
Spec::PowerGB => vec![Stat::GreenPower, Stat::BluePower],
|
||||
Spec::PowerRB => vec![Stat::RedPower, Stat::BluePower],
|
||||
Spec::PowerRRPlus => vec![Stat::RedPower],
|
||||
Spec::PowerGGPlus => vec![Stat::GreenPower],
|
||||
Spec::PowerBBPlus => vec![Stat::BluePower],
|
||||
Spec::PowerRGPlus => vec![Stat::GreenPower, Stat::RedPower],
|
||||
Spec::PowerGBPlus => vec![Stat::GreenPower, Stat::BluePower],
|
||||
Spec::PowerRBPlus => vec![Stat::RedPower, Stat::BluePower],
|
||||
Spec::PowerRRPlusPlus => vec![Stat::RedPower],
|
||||
Spec::PowerGGPlusPlus => vec![Stat::GreenPower],
|
||||
Spec::PowerBBPlusPlus => vec![Stat::BluePower],
|
||||
Spec::PowerRGPlusPlus => vec![Stat::GreenPower, Stat::RedPower],
|
||||
Spec::PowerGBPlusPlus => vec![Stat::GreenPower, Stat::BluePower],
|
||||
Spec::PowerRBPlusPlus => vec![Stat::RedPower, Stat::BluePower],
|
||||
|
||||
Spec::Speed => vec![Stat::Speed],
|
||||
Spec::SpeedRRI => vec![Stat::Speed],
|
||||
Spec::SpeedBBI => vec![Stat::Speed],
|
||||
Spec::SpeedGGI => vec![Stat::Speed],
|
||||
Spec::SpeedRGI => vec![Stat::Speed],
|
||||
Spec::SpeedGBI => vec![Stat::Speed],
|
||||
Spec::SpeedRBI => vec![Stat::Speed],
|
||||
Spec::SpeedRRII => vec![Stat::Speed],
|
||||
Spec::SpeedBBII => vec![Stat::Speed],
|
||||
Spec::SpeedGGII => vec![Stat::Speed],
|
||||
Spec::SpeedRGII => vec![Stat::Speed],
|
||||
Spec::SpeedGBII => vec![Stat::Speed],
|
||||
Spec::SpeedRBII => vec![Stat::Speed],
|
||||
Spec::SpeedRRIII => vec![Stat::Speed],
|
||||
Spec::SpeedBBIII => vec![Stat::Speed],
|
||||
Spec::SpeedGGIII => vec![Stat::Speed],
|
||||
Spec::SpeedRGIII => vec![Stat::Speed],
|
||||
Spec::SpeedGBIII => vec![Stat::Speed],
|
||||
Spec::SpeedRBIII => vec![Stat::Speed],
|
||||
Spec::SpeedRR => vec![Stat::Speed],
|
||||
Spec::SpeedBB => vec![Stat::Speed],
|
||||
Spec::SpeedGG => vec![Stat::Speed],
|
||||
Spec::SpeedRG => vec![Stat::Speed],
|
||||
Spec::SpeedGB => vec![Stat::Speed],
|
||||
Spec::SpeedRB => vec![Stat::Speed],
|
||||
Spec::SpeedRRPlus => vec![Stat::Speed],
|
||||
Spec::SpeedBBPlus => vec![Stat::Speed],
|
||||
Spec::SpeedGGPlus => vec![Stat::Speed],
|
||||
Spec::SpeedRGPlus => vec![Stat::Speed],
|
||||
Spec::SpeedGBPlus => vec![Stat::Speed],
|
||||
Spec::SpeedRBPlus => vec![Stat::Speed],
|
||||
Spec::SpeedRRPlusPlus => vec![Stat::Speed],
|
||||
Spec::SpeedBBPlusPlus => vec![Stat::Speed],
|
||||
Spec::SpeedGGPlusPlus => vec![Stat::Speed],
|
||||
Spec::SpeedRGPlusPlus => vec![Stat::Speed],
|
||||
Spec::SpeedGBPlusPlus => vec![Stat::Speed],
|
||||
Spec::SpeedRBPlusPlus => vec![Stat::Speed],
|
||||
|
||||
|
||||
|
||||
Spec::Life => vec![Stat::GreenLife],
|
||||
Spec::LifeRRI => vec![Stat::RedLife],
|
||||
Spec::LifeBBI => vec![Stat::BlueLife],
|
||||
Spec::LifeGGI => vec![Stat::GreenLife],
|
||||
Spec::LifeRGI => vec![Stat::GreenLife, Stat::RedLife],
|
||||
Spec::LifeGBI => vec![Stat::GreenLife, Stat::BlueLife],
|
||||
Spec::LifeRBI => vec![Stat::BlueLife, Stat::RedLife],
|
||||
Spec::LifeRRII => vec![Stat::RedLife],
|
||||
Spec::LifeBBII => vec![Stat::BlueLife],
|
||||
Spec::LifeGGII => vec![Stat::GreenLife],
|
||||
Spec::LifeRGII => vec![Stat::GreenLife, Stat::RedLife],
|
||||
Spec::LifeGBII => vec![Stat::GreenLife, Stat::BlueLife],
|
||||
Spec::LifeRBII => vec![Stat::BlueLife, Stat::RedLife],
|
||||
Spec::LifeRRIII => vec![Stat::RedLife],
|
||||
Spec::LifeBBIII => vec![Stat::BlueLife],
|
||||
Spec::LifeGGIII => vec![Stat::GreenLife],
|
||||
Spec::LifeRGIII => vec![Stat::GreenLife, Stat::RedLife],
|
||||
Spec::LifeGBIII => vec![Stat::GreenLife, Stat::BlueLife],
|
||||
Spec::LifeRBIII => vec![Stat::BlueLife, Stat::RedLife],
|
||||
Spec::LifeRR => vec![Stat::RedLife],
|
||||
Spec::LifeBB => vec![Stat::BlueLife],
|
||||
Spec::LifeGG => vec![Stat::GreenLife],
|
||||
Spec::LifeRG => vec![Stat::GreenLife, Stat::RedLife],
|
||||
Spec::LifeGB => vec![Stat::GreenLife, Stat::BlueLife],
|
||||
Spec::LifeRB => vec![Stat::BlueLife, Stat::RedLife],
|
||||
Spec::LifeRRPlus => vec![Stat::RedLife],
|
||||
Spec::LifeBBPlus => vec![Stat::BlueLife],
|
||||
Spec::LifeGGPlus => vec![Stat::GreenLife],
|
||||
Spec::LifeRGPlus => vec![Stat::GreenLife, Stat::RedLife],
|
||||
Spec::LifeGBPlus => vec![Stat::GreenLife, Stat::BlueLife],
|
||||
Spec::LifeRBPlus => vec![Stat::BlueLife, Stat::RedLife],
|
||||
Spec::LifeRRPlusPlus => vec![Stat::RedLife],
|
||||
Spec::LifeBBPlusPlus => vec![Stat::BlueLife],
|
||||
Spec::LifeGGPlusPlus => vec![Stat::GreenLife],
|
||||
Spec::LifeRGPlusPlus => vec![Stat::GreenLife, Stat::RedLife],
|
||||
Spec::LifeGBPlusPlus => vec![Stat::GreenLife, Stat::BlueLife],
|
||||
Spec::LifeRBPlusPlus => vec![Stat::BlueLife, Stat::RedLife],
|
||||
}
|
||||
}
|
||||
|
||||
@ -175,7 +175,7 @@ impl Spec {
|
||||
bonuses: vec![]
|
||||
},
|
||||
|
||||
Spec::PowerRRI => SpecValues {
|
||||
Spec::PowerRR=> SpecValues {
|
||||
multi: 10, base: 25,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 25 },
|
||||
@ -184,7 +184,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerGGI => SpecValues {
|
||||
Spec::PowerGG=> SpecValues {
|
||||
multi: 10, base: 25,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 25 },
|
||||
@ -193,7 +193,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerBBI => SpecValues {
|
||||
Spec::PowerBB=> SpecValues {
|
||||
multi: 10, base: 25,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 25 },
|
||||
@ -202,7 +202,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerRGI => SpecValues {
|
||||
Spec::PowerRG=> SpecValues {
|
||||
multi: 5, base: 15,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 15 },
|
||||
@ -211,7 +211,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerGBI => SpecValues {
|
||||
Spec::PowerGB=> SpecValues {
|
||||
multi: 5, base: 15,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 15 },
|
||||
@ -220,7 +220,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerRBI => SpecValues {
|
||||
Spec::PowerRB=> SpecValues {
|
||||
multi: 5, base: 15,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 15 },
|
||||
@ -229,7 +229,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerRRII => SpecValues {
|
||||
Spec::PowerRRPlus => SpecValues {
|
||||
multi: 10, base: 40,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 40 },
|
||||
@ -238,7 +238,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerGGII => SpecValues {
|
||||
Spec::PowerGGPlus => SpecValues {
|
||||
multi: 10, base: 40,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 40 },
|
||||
@ -247,7 +247,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerBBII => SpecValues {
|
||||
Spec::PowerBBPlus => SpecValues {
|
||||
multi: 10, base: 40,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 40 },
|
||||
@ -256,7 +256,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerRGII => SpecValues {
|
||||
Spec::PowerRGPlus => SpecValues {
|
||||
multi: 7, base: 25,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 25 },
|
||||
@ -265,7 +265,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerGBII => SpecValues {
|
||||
Spec::PowerGBPlus => SpecValues {
|
||||
multi: 7, base: 25,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 25 },
|
||||
@ -274,7 +274,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerRBII => SpecValues {
|
||||
Spec::PowerRBPlus => SpecValues {
|
||||
multi: 7, base: 25,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 25 },
|
||||
@ -282,7 +282,7 @@ impl Spec {
|
||||
SpecBonus { req: Colours { red: 10, green: 0, blue: 10 }, bonus: 25 }
|
||||
],
|
||||
},
|
||||
Spec::PowerRRIII => SpecValues {
|
||||
Spec::PowerRRPlusPlus => SpecValues {
|
||||
multi: 20, base: 60,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 60 },
|
||||
@ -291,7 +291,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerGGIII => SpecValues {
|
||||
Spec::PowerGGPlusPlus => SpecValues {
|
||||
multi: 20, base: 60,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 60 },
|
||||
@ -300,7 +300,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerBBIII => SpecValues {
|
||||
Spec::PowerBBPlusPlus => SpecValues {
|
||||
multi: 20, base: 60,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 60 },
|
||||
@ -309,7 +309,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerRGIII => SpecValues {
|
||||
Spec::PowerRGPlusPlus => SpecValues {
|
||||
multi: 20, base: 40,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 40 },
|
||||
@ -318,7 +318,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerGBIII => SpecValues {
|
||||
Spec::PowerGBPlusPlus => SpecValues {
|
||||
multi: 20, base: 40,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 25 },
|
||||
@ -327,7 +327,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::PowerRBIII => SpecValues {
|
||||
Spec::PowerRBPlusPlus => SpecValues {
|
||||
multi: 20, base: 40,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 25 },
|
||||
@ -341,7 +341,7 @@ impl Spec {
|
||||
bonuses: vec![]
|
||||
},
|
||||
|
||||
Spec::SpeedRRI => SpecValues {
|
||||
Spec::SpeedRR=> SpecValues {
|
||||
multi: 20, base: 80,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 80 },
|
||||
@ -350,7 +350,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedGGI => SpecValues {
|
||||
Spec::SpeedGG=> SpecValues {
|
||||
multi: 20, base: 80,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 80 },
|
||||
@ -359,7 +359,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedBBI => SpecValues {
|
||||
Spec::SpeedBB=> SpecValues {
|
||||
multi: 20, base: 80,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 80 },
|
||||
@ -368,7 +368,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedRGI => SpecValues {
|
||||
Spec::SpeedRG=> SpecValues {
|
||||
multi: 15, base: 60,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 60 },
|
||||
@ -377,7 +377,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedGBI => SpecValues {
|
||||
Spec::SpeedGB=> SpecValues {
|
||||
multi: 15, base: 60,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 60 },
|
||||
@ -386,7 +386,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedRBI => SpecValues {
|
||||
Spec::SpeedRB=> SpecValues {
|
||||
multi: 15, base: 60,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 60 },
|
||||
@ -395,7 +395,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedRRII => SpecValues {
|
||||
Spec::SpeedRRPlus => SpecValues {
|
||||
multi: 20, base: 120,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 120 },
|
||||
@ -404,7 +404,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedGGII => SpecValues {
|
||||
Spec::SpeedGGPlus => SpecValues {
|
||||
multi: 20, base: 120,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 120 },
|
||||
@ -413,7 +413,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedBBII => SpecValues {
|
||||
Spec::SpeedBBPlus => SpecValues {
|
||||
multi: 20, base: 120,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 120 },
|
||||
@ -422,7 +422,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedRGII => SpecValues {
|
||||
Spec::SpeedRGPlus => SpecValues {
|
||||
multi: 15, base: 80,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 80 },
|
||||
@ -431,7 +431,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedGBII => SpecValues {
|
||||
Spec::SpeedGBPlus => SpecValues {
|
||||
multi: 15, base: 80,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 80 },
|
||||
@ -440,7 +440,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedRBII => SpecValues {
|
||||
Spec::SpeedRBPlus => SpecValues {
|
||||
multi: 15, base: 80,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 80 },
|
||||
@ -449,7 +449,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedRRIII => SpecValues {
|
||||
Spec::SpeedRRPlusPlus => SpecValues {
|
||||
multi: 20, base: 160,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 160 },
|
||||
@ -458,7 +458,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedGGIII => SpecValues {
|
||||
Spec::SpeedGGPlusPlus => SpecValues {
|
||||
multi: 20, base: 160,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 160 },
|
||||
@ -467,7 +467,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedBBIII => SpecValues {
|
||||
Spec::SpeedBBPlusPlus => SpecValues {
|
||||
multi: 20, base: 160,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 160 },
|
||||
@ -476,7 +476,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedRGIII => SpecValues {
|
||||
Spec::SpeedRGPlusPlus => SpecValues {
|
||||
multi: 15, base: 120,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 120 },
|
||||
@ -485,7 +485,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedGBIII => SpecValues {
|
||||
Spec::SpeedGBPlusPlus => SpecValues {
|
||||
multi: 15, base: 120,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 120 },
|
||||
@ -494,7 +494,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::SpeedRBIII => SpecValues {
|
||||
Spec::SpeedRBPlusPlus => SpecValues {
|
||||
multi: 15, base: 120,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 120 },
|
||||
@ -507,7 +507,7 @@ impl Spec {
|
||||
multi: 0, base: 100,
|
||||
bonuses: vec![]},
|
||||
|
||||
Spec::LifeRRI => SpecValues {
|
||||
Spec::LifeRR=> SpecValues {
|
||||
multi: 50, base: 200,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 100 },
|
||||
@ -516,7 +516,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeGGI => SpecValues {
|
||||
Spec::LifeGG=> SpecValues {
|
||||
multi: 50, base: 200,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 100 },
|
||||
@ -525,7 +525,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeBBI => SpecValues {
|
||||
Spec::LifeBB=> SpecValues {
|
||||
multi: 50, base: 200,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 100 },
|
||||
@ -534,7 +534,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeRGI => SpecValues {
|
||||
Spec::LifeRG=> SpecValues {
|
||||
multi: 40, base: 150,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 75 },
|
||||
@ -543,7 +543,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeGBI => SpecValues {
|
||||
Spec::LifeGB=> SpecValues {
|
||||
multi: 40, base: 150,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 75 },
|
||||
@ -552,7 +552,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeRBI => SpecValues {
|
||||
Spec::LifeRB=> SpecValues {
|
||||
multi: 40, base: 150,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 75 },
|
||||
@ -561,7 +561,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeRRII => SpecValues {
|
||||
Spec::LifeRRPlus => SpecValues {
|
||||
multi: 50, base: 300,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 150 },
|
||||
@ -570,7 +570,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeGGII => SpecValues {
|
||||
Spec::LifeGGPlus => SpecValues {
|
||||
multi: 50, base: 300,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 150 },
|
||||
@ -579,7 +579,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeBBII => SpecValues {
|
||||
Spec::LifeBBPlus => SpecValues {
|
||||
multi: 50, base: 300,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 150 },
|
||||
@ -588,7 +588,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeRGII => SpecValues {
|
||||
Spec::LifeRGPlus => SpecValues {
|
||||
multi: 40, base: 200,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 100 },
|
||||
@ -597,7 +597,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeGBII => SpecValues {
|
||||
Spec::LifeGBPlus => SpecValues {
|
||||
multi: 40, base: 200,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 100 },
|
||||
@ -606,7 +606,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeRBII => SpecValues {
|
||||
Spec::LifeRBPlus => SpecValues {
|
||||
multi: 40, base: 200,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 100 },
|
||||
@ -614,7 +614,7 @@ impl Spec {
|
||||
SpecBonus { req: Colours { red: 10, green: 0, blue: 10 }, bonus: 100 }
|
||||
],
|
||||
},
|
||||
Spec::LifeRRIII => SpecValues {
|
||||
Spec::LifeRRPlusPlus => SpecValues {
|
||||
multi: 40, base: 300,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 300 },
|
||||
@ -623,7 +623,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeGGIII => SpecValues {
|
||||
Spec::LifeGGPlusPlus => SpecValues {
|
||||
multi: 40, base: 300,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 300 },
|
||||
@ -632,7 +632,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeBBIII => SpecValues {
|
||||
Spec::LifeBBPlusPlus => SpecValues {
|
||||
multi: 40, base: 300,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 300 },
|
||||
@ -641,7 +641,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeRGIII => SpecValues {
|
||||
Spec::LifeRGPlusPlus => SpecValues {
|
||||
multi: 40, base: 200,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 200 },
|
||||
@ -650,7 +650,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeGBIII => SpecValues {
|
||||
Spec::LifeGBPlusPlus => SpecValues {
|
||||
multi: 40, base: 200,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 200 },
|
||||
@ -659,7 +659,7 @@ impl Spec {
|
||||
],
|
||||
},
|
||||
|
||||
Spec::LifeRBIII => SpecValues {
|
||||
Spec::LifeRBPlusPlus => SpecValues {
|
||||
multi: 40, base: 200,
|
||||
bonuses: vec![
|
||||
SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 200 },
|
||||
@ -675,67 +675,67 @@ impl Spec {
|
||||
// Percentage multipliers based on base value
|
||||
Spec::Power |
|
||||
Spec::Speed => modified + base.pct(self.values().base),
|
||||
Spec::PowerRRI |
|
||||
Spec::PowerGGI |
|
||||
Spec::PowerBBI |
|
||||
Spec::PowerRGI |
|
||||
Spec::PowerGBI |
|
||||
Spec::PowerRBI |
|
||||
Spec::PowerRRII |
|
||||
Spec::PowerGGII |
|
||||
Spec::PowerBBII |
|
||||
Spec::PowerRGII |
|
||||
Spec::PowerGBII |
|
||||
Spec::PowerRBII |
|
||||
Spec::PowerRRIII |
|
||||
Spec::PowerGGIII |
|
||||
Spec::PowerBBIII |
|
||||
Spec::PowerRGIII |
|
||||
Spec::PowerGBIII |
|
||||
Spec::PowerRBIII |
|
||||
Spec::PowerRR|
|
||||
Spec::PowerGG|
|
||||
Spec::PowerBB|
|
||||
Spec::PowerRG|
|
||||
Spec::PowerGB|
|
||||
Spec::PowerRB|
|
||||
Spec::PowerRRPlus |
|
||||
Spec::PowerGGPlus |
|
||||
Spec::PowerBBPlus |
|
||||
Spec::PowerRGPlus |
|
||||
Spec::PowerGBPlus |
|
||||
Spec::PowerRBPlus |
|
||||
Spec::PowerRRPlusPlus |
|
||||
Spec::PowerGGPlusPlus |
|
||||
Spec::PowerBBPlusPlus |
|
||||
Spec::PowerRGPlusPlus |
|
||||
Spec::PowerGBPlusPlus |
|
||||
Spec::PowerRBPlusPlus |
|
||||
|
||||
Spec::SpeedRRI |
|
||||
Spec::SpeedGGI |
|
||||
Spec::SpeedBBI |
|
||||
Spec::SpeedRGI |
|
||||
Spec::SpeedGBI |
|
||||
Spec::SpeedRBI |
|
||||
Spec::SpeedRRII |
|
||||
Spec::SpeedGGII |
|
||||
Spec::SpeedBBII |
|
||||
Spec::SpeedRGII |
|
||||
Spec::SpeedGBII |
|
||||
Spec::SpeedRBII |
|
||||
Spec::SpeedRRIII |
|
||||
Spec::SpeedGGIII |
|
||||
Spec::SpeedBBIII |
|
||||
Spec::SpeedRGIII |
|
||||
Spec::SpeedGBIII |
|
||||
Spec::SpeedRBIII => modified + {
|
||||
Spec::SpeedRR|
|
||||
Spec::SpeedGG|
|
||||
Spec::SpeedBB|
|
||||
Spec::SpeedRG|
|
||||
Spec::SpeedGB|
|
||||
Spec::SpeedRB|
|
||||
Spec::SpeedRRPlus |
|
||||
Spec::SpeedGGPlus |
|
||||
Spec::SpeedBBPlus |
|
||||
Spec::SpeedRGPlus |
|
||||
Spec::SpeedGBPlus |
|
||||
Spec::SpeedRBPlus |
|
||||
Spec::SpeedRRPlusPlus |
|
||||
Spec::SpeedGGPlusPlus |
|
||||
Spec::SpeedBBPlusPlus |
|
||||
Spec::SpeedRGPlusPlus |
|
||||
Spec::SpeedGBPlusPlus |
|
||||
Spec::SpeedRBPlusPlus => modified + {
|
||||
base.pct(cmp::min(self.values().calc_multi(construct_colours),
|
||||
self.values().max_value(player_colours)))
|
||||
},
|
||||
// Flat bonus
|
||||
Spec::Life => modified + self.values().base,
|
||||
Spec::LifeRRI |
|
||||
Spec::LifeGGI |
|
||||
Spec::LifeBBI |
|
||||
Spec::LifeRGI |
|
||||
Spec::LifeGBI |
|
||||
Spec::LifeRBI |
|
||||
Spec::LifeRRII |
|
||||
Spec::LifeGGII |
|
||||
Spec::LifeBBII |
|
||||
Spec::LifeRGII |
|
||||
Spec::LifeGBII |
|
||||
Spec::LifeRBII |
|
||||
Spec::LifeRRIII |
|
||||
Spec::LifeGGIII |
|
||||
Spec::LifeBBIII |
|
||||
Spec::LifeRGIII |
|
||||
Spec::LifeGBIII |
|
||||
Spec::LifeRBIII => modified + {
|
||||
cmp::min(self.values().calc_multi(construct_colours),
|
||||
Spec::LifeRR|
|
||||
Spec::LifeGG|
|
||||
Spec::LifeBB|
|
||||
Spec::LifeRG|
|
||||
Spec::LifeGB|
|
||||
Spec::LifeRB|
|
||||
Spec::LifeRRPlus |
|
||||
Spec::LifeGGPlus |
|
||||
Spec::LifeBBPlus |
|
||||
Spec::LifeRGPlus |
|
||||
Spec::LifeGBPlus |
|
||||
Spec::LifeRBPlus |
|
||||
Spec::LifeRRPlusPlus |
|
||||
Spec::LifeGGPlusPlus |
|
||||
Spec::LifeBBPlusPlus |
|
||||
Spec::LifeRGPlusPlus |
|
||||
Spec::LifeGBPlusPlus |
|
||||
Spec::LifeRBPlusPlus => modified + {
|
||||
cmp::min(self.values().calc_multi(construct_colours),
|
||||
self.values().max_value(player_colours))
|
||||
},
|
||||
}
|
||||
|
||||
@ -210,7 +210,7 @@ mod tests {
|
||||
let mut vbox = Vbox::new();
|
||||
vbox.bound = vec![Item::Attack, Item::Green, Item::Green];
|
||||
vbox.combine(vec![1,2,0]).unwrap();
|
||||
assert_eq!(vbox.bound[0], Item::HealI);
|
||||
assert_eq!(vbox.bound[0], Item::Heal);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -228,14 +228,14 @@ mod tests {
|
||||
#[test]
|
||||
fn reclaim_test() {
|
||||
let mut vbox = Vbox::new();
|
||||
vbox.bound = vec![Item::StrikeI];
|
||||
vbox.bound = vec![Item::Strike];
|
||||
vbox.reclaim(0).unwrap();
|
||||
assert_eq!(vbox.bits, 22);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn colours_count_test() {
|
||||
let strike = Item::StrikeI;
|
||||
let strike = Item::Strike;
|
||||
|
||||
let mut count = Colours::new();
|
||||
strike.colours(&mut count);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user