skill doesn't count towards colours, 0 colour skill case, fk tutorial

This commit is contained in:
Mashy 2021-03-20 13:53:39 +10:00
parent 7576081c52
commit a280c4686e
3 changed files with 44 additions and 41 deletions

View File

@ -177,14 +177,15 @@ function registerEvents(store) {
}
function setInstance(v) {
const { account, ws, tutorial } = store.getState();
const { account, ws } = store.getState();
if (v) {
setInvite(null);
setPvp(false);
clearTutorial();
const player = v.players.find(p => p.id === account.id);
store.dispatch(actions.setPlayer(player));
if (tutorial && v.rounds.length === 1 && v.time_control === 'Practice') tutorialVbox(player, store, tutorial);
// if (tutorial && v.rounds.length === 1 && v.time_control === 'Practice') tutorialVbox(player, store, tutorial);
if (v.phase === 'Finished') {
ws.sendAccountInstances();

View File

@ -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
}

View File

@ -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