move combos

This commit is contained in:
ntr 2019-05-22 17:44:42 +10:00
parent cf3cef3f31
commit caaca4fb05
2 changed files with 121 additions and 56 deletions

View File

@ -248,10 +248,10 @@ function resoCrypHealth(resolution, currentGame) {
if (type === 'Damage') {
const { amount, mitigation, colour } = event;
cryp.green_life.value -= amount;
if (colour === 'RedDamage') {
if (colour === 'Red') {
cryp.red_life.value -= mitigation;
}
if (colour === 'BlueDamage') {
if (colour === 'Blue') {
cryp.blue_life.value -= mitigation;
}
}
@ -312,13 +312,13 @@ function eventClasses(resolution, cryp) {
// Deal damage to cryp and return effect
if (target && postSkill) {
if (colour === 'RedDamage') {
if (colour === 'Red') {
return 'red-damage';
}
if (colour === 'BlueDamage') {
if (colour === 'Blue') {
return 'blue-damage';
}
if (colour === 'GreenDamage') return 'green-damage';
if (colour === 'Green') return 'green-damage';
}
}
@ -399,7 +399,7 @@ function getCombatSequence(event) {
|| (event[1].skill === 'Decay' && event[1].effect === 'Wither'))) return ['POST_SKILL'];
if (['Damage'].includes(event[0])
&& ((event[1].skill === 'Chaos' && event[1].colour === 'RedDamage')
&& ((event[1].skill === 'Chaos' && event[1].colour === 'Red')
|| event[1].skill === 'Silence'
|| event[1].skill === 'Snare')) return ['POST_SKILL'];

View File

@ -467,6 +467,71 @@ impl Item {
_ => format!("..."),
}
}
fn combo(&self) -> Vec<Item> {
match self {
Item::Taunt => vec![Item::Buff, Item::Red, Item::Red],
Item::Triage => vec![Item::Buff, Item::Green, Item::Green],
Item::Scatter => vec![Item::Buff, Item::Blue, Item::Blue], //To be impl
Item::Haste => vec![Item::Buff, Item::Red, Item::Green],
Item::Impurity => vec![Item::Buff, Item::Green, Item::Blue],
Item::Amplify => vec![Item::Buff, Item::Red, Item::Blue], // Some flavour
Item::Snare => vec![Item::Debuff, Item::Red, Item::Red],
Item::Purge => vec![Item::Debuff, Item::Green, Item::Green], // Needs flavour
Item::Silence => vec![Item::Debuff, Item::Blue, Item::Blue],
Item::Curse => vec![Item::Debuff, Item::Red, Item::Green], // To be reworked
Item::Decay => vec![Item::Debuff, Item::Green, Item::Blue],
Item::Invert => vec![Item::Debuff, Item::Red, Item::Blue],
Item::Parry => vec![Item::Block, Item::Red, Item::Red], // Add red recharge
Item::Purify => vec![Item::Block, Item::Green, Item::Green],
Item::Corrupt => vec![Item::Block, Item::Blue, Item::Blue],
Item::Clutch => vec![Item::Block, Item::Red, Item::Green],
Item::Reflect => vec![Item::Block, Item::Green, Item::Blue],
Item::Recharge => vec![Item::Block, Item::Red, Item::Blue],
Item::Strangle => vec![Item::Stun, Item::Red, Item::Red],
Item::Sleep => vec![Item::Stun, Item::Green, Item::Green],
Item::Ruin => vec![Item::Stun, Item::Blue, Item::Blue],
Item::Throw => vec![Item::Stun, Item::Red, Item::Green],
Item::Hex => vec![Item::Stun, Item::Green, Item::Blue],
Item::Banish => vec![Item::Stun, Item::Red, Item::Blue],
Item::Strike => vec![Item::Attack, Item::Red, Item::Red],
Item::StrikeII => vec![Item::Strike, Item::Strike, Item::Strike],
Item::StrikeIII => vec![Item::StrikeII, Item::StrikeII, Item::StrikeII],
Item::Heal => vec![Item::Attack, Item::Green, Item::Green],
Item::Blast => vec![Item::Attack, Item::Blue, Item::Blue],
Item::Slay => vec![Item::Attack, Item::Red, Item::Green],
Item::Siphon => vec![Item::Attack, Item::Green, Item::Blue],
Item::Chaos => vec![Item::Attack, Item::Red, Item::Blue],
Item::RedDamageI => vec![Item::Damage, Item::Red, Item::Red],
Item::GreenDamageI => vec![Item::Damage, Item::Green, Item::Green],
Item::BlueDamageI => vec![Item::Damage, Item::Blue, Item::Blue],
Item::GRDI => vec![Item::Damage, Item::Red, Item::Green],
Item::GBDI => vec![Item::Damage, Item::Green, Item::Blue],
Item::RBDI => vec![Item::Damage, Item::Red, Item::Blue],
Item::RedLifeI => vec![Item::Life, Item::Red, Item::Red],
Item::GreenLifeI => vec![Item::Life, Item::Green, Item::Green],
Item::BlueLifeI => vec![Item::Life, Item::Blue, Item::Blue],
Item::GRLI => vec![Item::Life, Item::Red, Item::Green],
Item::GBLI => vec![Item::Life, Item::Green, Item::Blue],
Item::RBLI => vec![Item::Life, Item::Red, Item::Blue],
Item::RedSpeedI => vec![Item::Speed, Item::Red, Item::Red],
Item::GreenSpeedI => vec![Item::Speed, Item::Green, Item::Green],
Item::BlueSpeedI => vec![Item::Speed, Item::Blue, Item::Blue],
Item::GRSpeedI => vec![Item::Speed, Item::Red, Item::Green],
Item::GBSpeedI => vec![Item::Speed, Item::Green, Item::Blue],
Item::RBSpeedI => vec![Item::Speed, Item::Red, Item::Blue],
_ => vec![*self],
}
}
}
impl From<Skill> for Item {
@ -567,64 +632,64 @@ pub struct Combo {
pub fn get_combos() -> Vec<Combo> {
let mut combinations = vec![
Combo { components: vec![Item::Buff, Item::Red, Item::Red], item: Item::Taunt },
Combo { components: vec![Item::Buff, Item::Green, Item::Green], item: Item::Triage },
Combo { components: vec![Item::Buff, Item::Blue, Item::Blue], item: Item::Scatter }, //To be impl
Combo { components: vec![Item::Buff, Item::Red, Item::Green], item: Item::Haste },
Combo { components: vec![Item::Buff, Item::Green, Item::Blue], item: Item::Impurity },
Combo { components: vec![Item::Buff, Item::Red, Item::Blue], item: Item::Amplify }, // Some flavour
Combo { components: Item::Taunt.combo(), item: Item::Taunt },
Combo { components: Item::Triage.combo(), item: Item::Triage },
Combo { components: Item::Scatter.combo(), item: Item::Scatter }, //To be impl
Combo { components: Item::Haste.combo(), item: Item::Haste },
Combo { components: Item::Impurity.combo(), item: Item::Impurity },
Combo { components: Item::Amplify.combo(), item: Item::Amplify }, // Some flavour
Combo { components: vec![Item::Debuff, Item::Red, Item::Red], item: Item::Snare },
Combo { components: vec![Item::Debuff, Item::Green, Item::Green], item: Item::Purge }, // Needs flavour
Combo { components: vec![Item::Debuff, Item::Blue, Item::Blue], item: Item::Silence },
Combo { components: vec![Item::Debuff, Item::Red, Item::Green], item: Item::Curse }, // To be reworked
Combo { components: vec![Item::Debuff, Item::Green, Item::Blue], item: Item::Decay },
Combo { components: vec![Item::Debuff, Item::Red, Item::Blue], item: Item::Invert },
Combo { components: Item::Snare.combo(), item: Item::Snare },
Combo { components: Item::Purge.combo(), item: Item::Purge }, // Needs flavour
Combo { components: Item::Silence.combo(), item: Item::Silence },
Combo { components: Item::Curse.combo(), item: Item::Curse }, // To be reworked
Combo { components: Item::Decay.combo(), item: Item::Decay },
Combo { components: Item::Invert.combo(), item: Item::Invert },
Combo { components: vec![Item::Block, Item::Red, Item::Red], item: Item::Parry }, // Add red recharge
Combo { components: vec![Item::Block, Item::Green, Item::Green], item: Item::Purify },
Combo { components: vec![Item::Block, Item::Blue, Item::Blue], item: Item::Corrupt },
Combo { components: vec![Item::Block, Item::Red, Item::Green], item: Item::Clutch },
Combo { components: vec![Item::Block, Item::Green, Item::Blue], item: Item::Reflect },
Combo { components: vec![Item::Block, Item::Red, Item::Blue], item: Item::Recharge },
Combo { components: Item::Parry.combo(), item: Item::Parry }, // Add red recharge
Combo { components: Item::Purify.combo(), item: Item::Purify },
Combo { components: Item::Corrupt.combo(), item: Item::Corrupt },
Combo { components: Item::Clutch.combo(), item: Item::Clutch },
Combo { components: Item::Reflect.combo(), item: Item::Reflect },
Combo { components: Item::Recharge.combo(), item: Item::Recharge },
Combo { components: vec![Item::Stun, Item::Red, Item::Red], item: Item::Strangle },
Combo { components: vec![Item::Stun, Item::Green, Item::Green], item: Item::Sleep },
Combo { components: vec![Item::Stun, Item::Blue, Item::Blue], item: Item::Ruin },
Combo { components: vec![Item::Stun, Item::Red, Item::Green], item: Item::Throw },
Combo { components: vec![Item::Stun, Item::Green, Item::Blue], item: Item::Hex },
Combo { components: vec![Item::Stun, Item::Red, Item::Blue], item: Item::Banish },
Combo { components: Item::Strangle.combo(), item: Item::Strangle },
Combo { components: Item::Sleep.combo(), item: Item::Sleep },
Combo { components: Item::Ruin.combo(), item: Item::Ruin },
Combo { components: Item::Throw.combo(), item: Item::Throw },
Combo { components: Item::Hex.combo(), item: Item::Hex },
Combo { components: Item::Banish.combo(), item: Item::Banish },
Combo { components: vec![Item::Attack, Item::Red, Item::Red], item: Item::Strike },
Combo { components: vec![Item::Strike, Item::Strike, Item::Strike], item: Item::StrikeII },
Combo { components: vec![Item::StrikeII, Item::StrikeII, Item::StrikeII], item: Item::StrikeIII },
Combo { components: Item::Strike.combo(), item: Item::Strike },
Combo { components: Item::StrikeII.combo(), item: Item::StrikeII },
Combo { components: Item::StrikeIII.combo(), item: Item::StrikeIII },
Combo { components: vec![Item::Attack, Item::Green, Item::Green], item: Item::Heal },
Combo { components: vec![Item::Attack, Item::Blue, Item::Blue], item: Item::Blast },
Combo { components: vec![Item::Attack, Item::Red, Item::Green], item: Item::Slay },
Combo { components: vec![Item::Attack, Item::Green, Item::Blue], item: Item::Siphon },
Combo { components: vec![Item::Attack, Item::Red, Item::Blue], item: Item::Chaos },
Combo { components: Item::Heal.combo(), item: Item::Heal },
Combo { components: Item::Blast.combo(), item: Item::Blast },
Combo { components: Item::Slay.combo(), item: Item::Slay },
Combo { components: Item::Siphon.combo(), item: Item::Siphon },
Combo { components: Item::Chaos.combo(), item: Item::Chaos },
Combo { components: vec![Item::Damage, Item::Red, Item::Red], item: Item::RedDamageI },
Combo { components: vec![Item::Damage, Item::Green, Item::Green], item: Item::GreenDamageI },
Combo { components: vec![Item::Damage, Item::Blue, Item::Blue], item: Item::BlueDamageI },
Combo { components: vec![Item::Damage, Item::Red, Item::Green], item: Item::GRDI },
Combo { components: vec![Item::Damage, Item::Green, Item::Blue], item: Item::GBDI },
Combo { components: vec![Item::Damage, Item::Red, Item::Blue], item: Item::RBDI },
Combo { components: Item::RedDamageI.combo(), item: Item::RedDamageI },
Combo { components: Item::GreenDamageI.combo(), item: Item::GreenDamageI },
Combo { components: Item::BlueDamageI.combo(), item: Item::BlueDamageI },
Combo { components: Item::GRDI.combo(), item: Item::GRDI },
Combo { components: Item::GBDI.combo(), item: Item::GBDI },
Combo { components: Item::RBDI.combo(), item: Item::RBDI },
Combo { components: vec![Item::Life, Item::Red, Item::Red], item: Item::RedLifeI },
Combo { components: vec![Item::Life, Item::Green, Item::Green], item: Item::GreenLifeI },
Combo { components: vec![Item::Life, Item::Blue, Item::Blue], item: Item::BlueLifeI },
Combo { components: vec![Item::Life, Item::Red, Item::Green], item: Item::GRLI },
Combo { components: vec![Item::Life, Item::Green, Item::Blue], item: Item::GBLI },
Combo { components: vec![Item::Life, Item::Red, Item::Blue], item: Item::RBLI },
Combo { components: Item::RedLifeI.combo(), item: Item::RedLifeI },
Combo { components: Item::GreenLifeI.combo(), item: Item::GreenLifeI },
Combo { components: Item::BlueLifeI.combo(), item: Item::BlueLifeI },
Combo { components: Item::GRLI.combo(), item: Item::GRLI },
Combo { components: Item::GBLI.combo(), item: Item::GBLI },
Combo { components: Item::RBLI.combo(), item: Item::RBLI },
Combo { components: vec![Item::Speed, Item::Red, Item::Red], item: Item::RedSpeedI },
Combo { components: vec![Item::Speed, Item::Green, Item::Green], item: Item::GreenSpeedI },
Combo { components: vec![Item::Speed, Item::Blue, Item::Blue], item: Item::BlueSpeedI },
Combo { components: vec![Item::Speed, Item::Red, Item::Green], item: Item::GRSpeedI },
Combo { components: vec![Item::Speed, Item::Green, Item::Blue], item: Item::GBSpeedI },
Combo { components: vec![Item::Speed, Item::Red, Item::Blue], item: Item::RBSpeedI },
Combo { components: Item::RedSpeedI.combo(), item: Item::RedSpeedI },
Combo { components: Item::GreenSpeedI.combo(), item: Item::GreenSpeedI },
Combo { components: Item::BlueSpeedI.combo(), item: Item::BlueSpeedI },
Combo { components: Item::GRSpeedI.combo(), item: Item::GRSpeedI },
Combo { components: Item::GBSpeedI.combo(), item: Item::GBSpeedI },
Combo { components: Item::RBSpeedI.combo(), item: Item::RBSpeedI },
];