added chaos, slay, moved purify
This commit is contained in:
parent
0a96adac4e
commit
8c68f7fec9
@ -216,6 +216,10 @@ function getCombatSequence(event) {
|
|||||||
if (dotTicks.includes(event[1].skill)) return ['END_SKILL', 'POST_SKILL'];
|
if (dotTicks.includes(event[1].skill)) return ['END_SKILL', 'POST_SKILL'];
|
||||||
|
|
||||||
if (['Immunity'].includes(event[0])) return ['START_SKILL', 'POST_SKILL'];
|
if (['Immunity'].includes(event[0])) return ['START_SKILL', 'POST_SKILL'];
|
||||||
|
if (['Healing'].includes(event[0]) && event[1].skill === 'Slay') return ['POST_SKILL'];
|
||||||
|
|
||||||
|
if (['Damage'].includes(event[0])
|
||||||
|
&& event[1].skill === 'Chaos' && event[1].colour === 'RedDamage') return ['POST_SKILL'];
|
||||||
|
|
||||||
if (['Ko'].includes(event[0])
|
if (['Ko'].includes(event[0])
|
||||||
|| (event[1].skill === 'Throw' && event[1].effect === 'Vulnerable')) return ['POST_SKILL'];
|
|| (event[1].skill === 'Throw' && event[1].effect === 'Vulnerable')) return ['POST_SKILL'];
|
||||||
|
|||||||
@ -41,6 +41,7 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
|
|||||||
Skill::Banish => banish(source, target, resolutions, Skill::Banish), // TODO prevent all actions
|
Skill::Banish => banish(source, target, resolutions, Skill::Banish), // TODO prevent all actions
|
||||||
Skill::Blast => blast(source, target, resolutions, Skill::Blast),
|
Skill::Blast => blast(source, target, resolutions, Skill::Blast),
|
||||||
Skill::Block => block(source, target, resolutions, Skill::Block),
|
Skill::Block => block(source, target, resolutions, Skill::Block),
|
||||||
|
Skill::Chaos => chaos(source, target, resolutions, Skill::Chaos),
|
||||||
Skill::Clutch => clutch(source, target, resolutions, Skill::Clutch),
|
Skill::Clutch => clutch(source, target, resolutions, Skill::Clutch),
|
||||||
Skill::Corrupt => corrupt(source, target, resolutions, Skill::Corrupt),
|
Skill::Corrupt => corrupt(source, target, resolutions, Skill::Corrupt),
|
||||||
Skill::CorruptionTick => corruption_tick(source, target, resolutions, Skill::CorruptionTick),
|
Skill::CorruptionTick => corruption_tick(source, target, resolutions, Skill::CorruptionTick),
|
||||||
@ -65,7 +66,7 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
|
|||||||
Skill::Silence => silence(source, target, resolutions, Skill::Silence), // target cannot cast spells
|
Skill::Silence => silence(source, target, resolutions, Skill::Silence), // target cannot cast spells
|
||||||
Skill::Siphon => siphon(source, target, resolutions, Skill::Siphon),
|
Skill::Siphon => siphon(source, target, resolutions, Skill::Siphon),
|
||||||
Skill::SiphonTick => siphon_tick(source, target, resolutions, Skill::SiphonTick), // hot
|
Skill::SiphonTick => siphon_tick(source, target, resolutions, Skill::SiphonTick), // hot
|
||||||
Skill::Slay => unimplemented!(),
|
Skill::Slay => slay(source, target, resolutions, Skill::Slay), // hybrid dmg self heal
|
||||||
Skill::Slow => slow(source, target, resolutions, Skill::Slow), // speed slow
|
Skill::Slow => slow(source, target, resolutions, Skill::Slow), // speed slow
|
||||||
Skill::Snare => snare(source, target, resolutions, Skill::Snare),
|
Skill::Snare => snare(source, target, resolutions, Skill::Snare),
|
||||||
Skill::Strangle => strangle(source, target, resolutions, Skill::Strangle),
|
Skill::Strangle => strangle(source, target, resolutions, Skill::Strangle),
|
||||||
@ -526,6 +527,7 @@ pub enum Skill {
|
|||||||
// Chaos
|
// Chaos
|
||||||
// -----------------
|
// -----------------
|
||||||
Banish,
|
Banish,
|
||||||
|
Chaos,
|
||||||
Hex,
|
Hex,
|
||||||
Haste,
|
Haste,
|
||||||
Slow,
|
Slow,
|
||||||
@ -541,18 +543,23 @@ pub enum Skill {
|
|||||||
impl Skill {
|
impl Skill {
|
||||||
pub fn multiplier(&self) -> u64 {
|
pub fn multiplier(&self) -> u64 {
|
||||||
match self {
|
match self {
|
||||||
|
// Attack Base
|
||||||
Skill::Attack => 100, // 1.0 to pass tests
|
Skill::Attack => 100, // 1.0 to pass tests
|
||||||
Skill::Strike => 110,
|
Skill::Blast => 130, // BB
|
||||||
|
Skill::Chaos => 50, // BR
|
||||||
|
Skill::Heal => 100, //GG 1.0 to pass tests
|
||||||
|
Skill::Slay => 70, // RG
|
||||||
|
Skill::Strike => 110, //RR
|
||||||
Skill::StrikeII => 130,
|
Skill::StrikeII => 130,
|
||||||
Skill::StrikeIII => 150,
|
Skill::StrikeIII => 150,
|
||||||
Skill::StrangleTick => 30,
|
|
||||||
Skill::Riposte => 100,
|
// Others
|
||||||
Skill::Heal => 100, // 1.0 to pass tests
|
|
||||||
Skill::TriageTick => 65,
|
|
||||||
Skill::Blast => 130,
|
|
||||||
Skill::CorruptionTick => 80,
|
Skill::CorruptionTick => 80,
|
||||||
Skill::DecayTick => 60,
|
Skill::DecayTick => 60,
|
||||||
|
Skill::Riposte => 100,
|
||||||
Skill::SiphonTick => 100, // 1.0 to pass tests
|
Skill::SiphonTick => 100, // 1.0 to pass tests
|
||||||
|
Skill::StrangleTick => 30,
|
||||||
|
Skill::TriageTick => 65,
|
||||||
_ => 100,
|
_ => 100,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -635,6 +642,7 @@ impl Skill {
|
|||||||
Skill::TriageTick => None,
|
Skill::TriageTick => None,
|
||||||
Skill::Throw => Some(1), // no damage stun, adds vulnerable
|
Skill::Throw => Some(1), // no damage stun, adds vulnerable
|
||||||
Skill::Blast => None,
|
Skill::Blast => None,
|
||||||
|
Skill::Chaos => None,
|
||||||
Skill::Amplify => Some(1),
|
Skill::Amplify => Some(1),
|
||||||
Skill::Invert => Some(2),
|
Skill::Invert => Some(2),
|
||||||
Skill::Decay => None, // dot
|
Skill::Decay => None, // dot
|
||||||
@ -708,6 +716,7 @@ impl Skill {
|
|||||||
Skill::Invert => Category::Green,
|
Skill::Invert => Category::Green,
|
||||||
|
|
||||||
Skill::Blast => Category::Blue,
|
Skill::Blast => Category::Blue,
|
||||||
|
Skill::Chaos => Category::Red,
|
||||||
Skill::Amplify => Category::Blue,
|
Skill::Amplify => Category::Blue,
|
||||||
Skill::Decay => Category::Blue, // dot
|
Skill::Decay => Category::Blue, // dot
|
||||||
Skill::DecayTick => Category::BlueTick, // hot
|
Skill::DecayTick => Category::BlueTick, // hot
|
||||||
@ -947,6 +956,19 @@ fn empower(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn slay(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||||
|
let amount = source.red_damage().pct(skill.multiplier());
|
||||||
|
target.deal_red_damage(skill, amount)
|
||||||
|
.into_iter()
|
||||||
|
.for_each(|e| results.push(Resolution::new(source, target).event(e)));
|
||||||
|
|
||||||
|
source.deal_green_damage(skill, amount)
|
||||||
|
.into_iter()
|
||||||
|
.for_each(|e| results.push(Resolution::new(source, source).event(e)));
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
fn heal(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
fn heal(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||||
let amount = source.green_damage().pct(skill.multiplier());
|
let amount = source.green_damage().pct(skill.multiplier());
|
||||||
target.deal_green_damage(skill, amount)
|
target.deal_green_damage(skill, amount)
|
||||||
@ -971,6 +993,21 @@ fn triage_tick(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, s
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn chaos(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||||
|
let mut rng = thread_rng();
|
||||||
|
let b_rng: u64 = rng.gen_range(0, 20);
|
||||||
|
let amount = source.blue_damage().pct(skill.multiplier()) + b_rng;
|
||||||
|
target.deal_blue_damage(skill, amount)
|
||||||
|
.into_iter()
|
||||||
|
.for_each(|e| results.push(Resolution::new(source, target).event(e)));
|
||||||
|
let r_rng: u64 = rng.gen_range(0, 20);
|
||||||
|
let amount = source.red_damage().pct(skill.multiplier()) + r_rng;
|
||||||
|
target.deal_red_damage(skill, amount)
|
||||||
|
.into_iter()
|
||||||
|
.for_each(|e| results.push(Resolution::new(source, target).event(e)));
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
fn blast(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
fn blast(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||||
let amount = source.blue_damage().pct(skill.multiplier());
|
let amount = source.blue_damage().pct(skill.multiplier());
|
||||||
target.deal_blue_damage(skill, amount)
|
target.deal_blue_damage(skill, amount)
|
||||||
|
|||||||
@ -65,6 +65,7 @@ pub enum Var {
|
|||||||
Amplify,
|
Amplify,
|
||||||
Banish,
|
Banish,
|
||||||
Blast,
|
Blast,
|
||||||
|
Chaos,
|
||||||
Curse,
|
Curse,
|
||||||
Decay,
|
Decay,
|
||||||
Empower,
|
Empower,
|
||||||
@ -192,6 +193,7 @@ impl Var {
|
|||||||
Var::Banish => Some(Skill::Banish),
|
Var::Banish => Some(Skill::Banish),
|
||||||
Var::Blast => Some(Skill::Blast),
|
Var::Blast => Some(Skill::Blast),
|
||||||
Var::Block => Some(Skill::Block),
|
Var::Block => Some(Skill::Block),
|
||||||
|
Var::Chaos => Some(Skill::Chaos),
|
||||||
Var::Curse => Some(Skill::Curse),
|
Var::Curse => Some(Skill::Curse),
|
||||||
Var::Decay => Some(Skill::Decay),
|
Var::Decay => Some(Skill::Decay),
|
||||||
Var::Empower => Some(Skill::Empower),
|
Var::Empower => Some(Skill::Empower),
|
||||||
@ -208,7 +210,7 @@ impl Var {
|
|||||||
Var::Ruin => Some(Skill::Ruin),
|
Var::Ruin => Some(Skill::Ruin),
|
||||||
Var::Shield => Some(Skill::Shield),
|
Var::Shield => Some(Skill::Shield),
|
||||||
Var::Silence => Some(Skill::Silence),
|
Var::Silence => Some(Skill::Silence),
|
||||||
// Var::Slay => Some(Skill::Slay),
|
Var::Slay => Some(Skill::Slay),
|
||||||
Var::Slow => Some(Skill::Slow),
|
Var::Slow => Some(Skill::Slow),
|
||||||
Var::Siphon => Some(Skill::Siphon),
|
Var::Siphon => Some(Skill::Siphon),
|
||||||
Var::Snare => Some(Skill::Snare),
|
Var::Snare => Some(Skill::Snare),
|
||||||
@ -265,6 +267,7 @@ impl From<Skill> for Var {
|
|||||||
Skill::Banish => Var::Banish,
|
Skill::Banish => Var::Banish,
|
||||||
Skill::Blast => Var::Blast,
|
Skill::Blast => Var::Blast,
|
||||||
Skill::Block => Var::Block,
|
Skill::Block => Var::Block,
|
||||||
|
Skill::Chaos => Var::Chaos,
|
||||||
Skill::Curse => Var::Curse,
|
Skill::Curse => Var::Curse,
|
||||||
Skill::Clutch => Var::Clutch,
|
Skill::Clutch => Var::Clutch,
|
||||||
Skill::Decay => Var::Decay,
|
Skill::Decay => Var::Decay,
|
||||||
@ -283,6 +286,7 @@ impl From<Skill> for Var {
|
|||||||
Skill::Shield => Var::Shield,
|
Skill::Shield => Var::Shield,
|
||||||
Skill::Silence => Var::Silence,
|
Skill::Silence => Var::Silence,
|
||||||
Skill::Siphon => Var::Siphon,
|
Skill::Siphon => Var::Siphon,
|
||||||
|
Skill::Slay => Var::Slay,
|
||||||
Skill::Slow => Var::Slow,
|
Skill::Slow => Var::Slow,
|
||||||
Skill::Snare => Var::Snare,
|
Skill::Snare => Var::Snare,
|
||||||
Skill::Strangle => Var::Strangle,
|
Skill::Strangle => Var::Strangle,
|
||||||
@ -362,7 +366,7 @@ fn get_combos() -> Vec<Combo> {
|
|||||||
Combo { units: vec![Var::Block, Var::Green, Var::Green], var: Var::Reflect },
|
Combo { units: vec![Var::Block, Var::Green, Var::Green], var: Var::Reflect },
|
||||||
Combo { units: vec![Var::Block, Var::Blue, Var::Blue], var: Var::Corrupt },
|
Combo { units: vec![Var::Block, Var::Blue, Var::Blue], var: Var::Corrupt },
|
||||||
Combo { units: vec![Var::Block, Var::Red, Var::Green], var: Var::Taunt },
|
Combo { units: vec![Var::Block, Var::Red, Var::Green], var: Var::Taunt },
|
||||||
Combo { units: vec![Var::Block, Var::Green, Var::Blue], var: Var::Recharge }, // was life before (clash)
|
Combo { units: vec![Var::Block, Var::Green, Var::Blue], var: Var::Purify },
|
||||||
Combo { units: vec![Var::Block, Var::Red, Var::Blue], var: Var::Recharge },
|
Combo { units: vec![Var::Block, Var::Red, Var::Blue], var: Var::Recharge },
|
||||||
|
|
||||||
Combo { units: vec![Var::Stun, Var::Red, Var::Red], var: Var::Strangle },
|
Combo { units: vec![Var::Stun, Var::Red, Var::Red], var: Var::Strangle },
|
||||||
@ -378,9 +382,9 @@ fn get_combos() -> Vec<Combo> {
|
|||||||
|
|
||||||
Combo { units: vec![Var::Attack, Var::Green, Var::Green], var: Var::Heal },
|
Combo { units: vec![Var::Attack, Var::Green, Var::Green], var: Var::Heal },
|
||||||
Combo { units: vec![Var::Attack, Var::Blue, Var::Blue], var: Var::Blast },
|
Combo { units: vec![Var::Attack, Var::Blue, Var::Blue], var: Var::Blast },
|
||||||
Combo { units: vec![Var::Attack, Var::Red, Var::Green], var: Var::Purify },
|
Combo { units: vec![Var::Attack, Var::Red, Var::Green], var: Var::Slay },
|
||||||
Combo { units: vec![Var::Attack, Var::Green, Var::Blue], var: Var::Decay },
|
Combo { units: vec![Var::Attack, Var::Green, Var::Blue], var: Var::Decay },
|
||||||
Combo { units: vec![Var::Attack, Var::Red, Var::Blue], var: Var::Blast }, // AAAAAAAAAAAAAAAAAA
|
Combo { units: vec![Var::Attack, Var::Red, Var::Blue], var: Var::Chaos },
|
||||||
|
|
||||||
Combo { units: vec![Var::Damage, Var::Red, Var::Red], var: Var::RedDamageI },
|
Combo { units: vec![Var::Damage, Var::Red, Var::Red], var: Var::RedDamageI },
|
||||||
Combo { units: vec![Var::Damage, Var::Green, Var::Green], var: Var::GreenDamageI },
|
Combo { units: vec![Var::Damage, Var::Green, Var::Green], var: Var::GreenDamageI },
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user