skill doesn't count towards colours, 0 colour skill case, fk tutorial
This commit is contained in:
@@ -30,10 +30,10 @@ impl Colours {
|
||||
v.colours(&mut count);
|
||||
}
|
||||
|
||||
for cs in construct.skills.iter() {
|
||||
let v = Item::from(cs.skill);
|
||||
v.colours(&mut count);
|
||||
}
|
||||
// for cs in construct.skills.iter() {
|
||||
// let v = Item::from(cs.skill);
|
||||
// v.colours(&mut count);
|
||||
// }
|
||||
|
||||
count
|
||||
}
|
||||
|
||||
+37
-35
@@ -336,48 +336,50 @@ impl Player {
|
||||
println!("{:?}", colour_counts);
|
||||
|
||||
let total = (construct.colours.red + construct.colours.green + construct.colours.blue) as f64;
|
||||
let colour_pcts = colour_counts.iter_mut()
|
||||
.map(|cc| (cc.0, cc.1 as f64 / total))
|
||||
.collect::<Vec<_>>();
|
||||
if total != 0.0 {
|
||||
let colour_pcts = colour_counts.iter_mut()
|
||||
.map(|cc| (cc.0, cc.1 as f64 / total))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
println!("{:?}", colour_pcts);
|
||||
println!("{:?}", colour_pcts);
|
||||
|
||||
let skill_item = match item.into_skill().is_some() {
|
||||
true => item,
|
||||
false => construct.skills[0].skill.base(),
|
||||
};
|
||||
let skill_item = match item.into_skill().is_some() {
|
||||
true => item,
|
||||
false => construct.skills[0].skill.base(),
|
||||
};
|
||||
|
||||
let colour_skill = {
|
||||
// no colours
|
||||
if colour_pcts[0].1.is_infinite() {
|
||||
construct.skills[0].skill
|
||||
} else {
|
||||
let mut skill_item_combo = {
|
||||
if colour_pcts[0].1 > 0.75 {
|
||||
vec![skill_item, colour_pcts[0].0, colour_pcts[0].0]
|
||||
} else if colour_pcts[1].1 > 0.4 {
|
||||
vec![skill_item, colour_pcts[0].0, colour_pcts[1].0]
|
||||
} else {
|
||||
// special triple skill_item
|
||||
vec![skill_item, colour_pcts[0].0, colour_pcts[1].0]
|
||||
}
|
||||
};
|
||||
let colour_skill = {
|
||||
// no colours
|
||||
if colour_pcts[0].1.is_infinite() {
|
||||
construct.skills[0].skill
|
||||
} else {
|
||||
let mut skill_item_combo = {
|
||||
if colour_pcts[0].1 > 0.70 {
|
||||
vec![skill_item, colour_pcts[0].0, colour_pcts[0].0]
|
||||
} else if colour_pcts[1].1 > 0.4 {
|
||||
vec![skill_item, colour_pcts[0].0, colour_pcts[1].0]
|
||||
} else {
|
||||
// special triple skill_item
|
||||
vec![skill_item, colour_pcts[0].0, colour_pcts[1].0]
|
||||
}
|
||||
};
|
||||
|
||||
skill_item_combo.sort_unstable();
|
||||
skill_item_combo.sort_unstable();
|
||||
|
||||
println!("{:?}", skill_item_combo);
|
||||
let combos = get_combos();
|
||||
let combo = combos.iter().find(|c| c.components == skill_item_combo)
|
||||
.ok_or(err_msg("no combo for colour skill"))?;
|
||||
println!("{:?}", skill_item_combo);
|
||||
let combos = get_combos();
|
||||
let combo = combos.iter().find(|c| c.components == skill_item_combo)
|
||||
.ok_or(err_msg("no combo for colour skill"))?;
|
||||
|
||||
combo.item.into_skill()
|
||||
.ok_or(format_err!("item {:?} has no associated skill", combo.item))?
|
||||
}
|
||||
};
|
||||
combo.item.into_skill()
|
||||
.ok_or(format_err!("item {:?} has no associated skill", combo.item))?
|
||||
}
|
||||
};
|
||||
|
||||
// unlearn everything
|
||||
construct.skills = vec![];
|
||||
construct.learn_mut(colour_skill);
|
||||
// unlearn everything
|
||||
construct.skills = vec![];
|
||||
construct.learn_mut(colour_skill);
|
||||
}
|
||||
|
||||
// // now the item has been applied
|
||||
// // recalculate the stats of the whole player
|
||||
|
||||
Reference in New Issue
Block a user