From a280c4686e0d2f36964fa37867d2392cea56b433 Mon Sep 17 00:00:00 2001 From: Mashy Date: Sat, 20 Mar 2021 13:53:39 +1000 Subject: [PATCH] skill doesn't count towards colours, 0 colour skill case, fk tutorial --- client/src/events.jsx | 5 +-- core/src/construct.rs | 8 ++--- core/src/player.rs | 72 ++++++++++++++++++++++--------------------- 3 files changed, 44 insertions(+), 41 deletions(-) diff --git a/client/src/events.jsx b/client/src/events.jsx index 6af704bd..f28427cf 100644 --- a/client/src/events.jsx +++ b/client/src/events.jsx @@ -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(); diff --git a/core/src/construct.rs b/core/src/construct.rs index 7adf0d54..d15aaa74 100644 --- a/core/src/construct.rs +++ b/core/src/construct.rs @@ -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 } diff --git a/core/src/player.rs b/core/src/player.rs index a29e90fa..2d61e24f 100644 --- a/core/src/player.rs +++ b/core/src/player.rs @@ -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::>(); + if total != 0.0 { + let colour_pcts = colour_counts.iter_mut() + .map(|cc| (cc.0, cc.1 as f64 / total)) + .collect::>(); - 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