Added sleep, changed recipe for clutch, taunt, hex, banish, throw

This commit is contained in:
Mashy
2019-05-03 14:08:56 +10:00
parent b2f3c147a1
commit 91e150ecec
4 changed files with 65 additions and 26 deletions
Regular → Executable
+21 -2
View File
@@ -67,6 +67,7 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
Skill::Siphon => siphon(source, target, resolutions, Skill::Siphon),
Skill::SiphonTick => siphon_tick(source, target, resolutions, Skill::SiphonTick), // hot
Skill::Slay => slay(source, target, resolutions, Skill::Slay), // hybrid dmg self heal
Skill::Sleep => sleep(source, target, resolutions, Skill::Sleep), // speed slow
Skill::Slow => slow(source, target, resolutions, Skill::Slow), // speed slow
Skill::Snare => snare(source, target, resolutions, Skill::Snare),
Skill::Strangle => strangle(source, target, resolutions, Skill::Strangle),
@@ -481,6 +482,7 @@ pub enum Skill {
Reflect,
Ruin,
Slay,
Sleep,
Clutch,
Taunt,
Invert,
@@ -564,7 +566,8 @@ impl Skill {
// Block Base
Skill::Purify => 45, //Green dmg (heal)
// Stun Base
Skill::Sleep => 240, //Green dmg (heal)
// Others
Skill::CorruptionTick => 80,
Skill::DecayTick => 25,
@@ -589,6 +592,8 @@ impl Skill {
Skill::Strangle => 2,
Skill::Stun => 2,
Skill::Sleep => 3,
Skill::Throw => 2,
Skill::Snare => 2,
@@ -675,6 +680,8 @@ impl Skill {
Skill::Recharge => Some(2),
Skill::Ruin => Some(3),
Skill::Slay => None,
Skill::Sleep => Some(3),
Skill::Strangle => Some(2),
Skill::StrangleTick => None,
Skill::Clutch => Some(2),
@@ -726,6 +733,7 @@ impl Skill {
Skill::Reflect => Category::Green,
Skill::Haste => Category::Green,
Skill::Invert => Category::Green,
Skill::Sleep => Category::Green,
Skill::Blast => Category::Blue,
Skill::Chaos => Category::Blue,
@@ -804,7 +812,7 @@ impl Skill {
Skill::Block => true,
Skill::Parry => true,
Skill::Clutch => true,
Skill::Taunt => true,
// Skill::Taunt => true,
Skill::Corrupt => true,
Skill::TestBlock => true,
@@ -883,6 +891,17 @@ fn stun(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: S
return results;
}
fn sleep(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
let effect = CrypEffect::new(Effect::Stun, skill.duration());
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)));
let amount = source.green_damage().pct(skill.multiplier());
target.deal_green_damage(skill, amount)
.into_iter()
.for_each(|e| results.push(Resolution::new(source, target).event(e)));
return results;
}
fn clutch(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
let effect = CrypEffect::new(Effect::Clutch, skill.duration());
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)));
Regular → Executable
+22 -19
View File
@@ -66,6 +66,8 @@ pub enum Var {
Banish,
Blast,
Chaos,
Clutch,
Corrupt,
Curse,
Decay,
Empower,
@@ -83,6 +85,7 @@ pub enum Var {
Shield,
Silence,
Slay,
Sleep,
Slow,
Snare,
Strangle,
@@ -90,10 +93,8 @@ pub enum Var {
StrikeII,
StrikeIII,
Siphon,
Clutch,
Taunt,
Throw,
Corrupt,
Triage,
@@ -211,6 +212,7 @@ impl Var {
Var::Shield => Some(Skill::Shield),
Var::Silence => Some(Skill::Silence),
Var::Slay => Some(Skill::Slay),
Var::Sleep => Some(Skill::Sleep),
Var::Slow => Some(Skill::Slow),
Var::Siphon => Some(Skill::Siphon),
Var::Snare => Some(Skill::Snare),
@@ -287,6 +289,7 @@ impl From<Skill> for Var {
Skill::Silence => Var::Silence,
Skill::Siphon => Var::Siphon,
Skill::Slay => Var::Slay,
Skill::Sleep => Var::Sleep,
Skill::Slow => Var::Slow,
Skill::Snare => Var::Snare,
Skill::Strangle => Var::Strangle,
@@ -348,42 +351,42 @@ struct Combo {
fn get_combos() -> Vec<Combo> {
let mut combinations = vec![
Combo { units: vec![Var::Buff, Var::Red, Var::Red], var: Var::Empower },
Combo { units: vec![Var::Buff, Var::Red, Var::Red], var: Var::Empower }, // Gereric red dmg buff
Combo { units: vec![Var::Buff, Var::Green, Var::Green], var: Var::Triage },
Combo { units: vec![Var::Buff, Var::Blue, Var::Blue], var: Var::Amplify },
Combo { units: vec![Var::Buff, Var::Red, Var::Green], var: Var::Clutch },
Combo { units: vec![Var::Buff, Var::Green, Var::Blue], var: Var::Curse },
Combo { units: vec![Var::Buff, Var::Red, Var::Blue], var: Var::Haste },
Combo { units: vec![Var::Buff, Var::Blue, Var::Blue], var: Var::Amplify }, // Gereric blue dmg buff
Combo { units: vec![Var::Buff, Var::Red, Var::Green], var: Var::Taunt },
Combo { units: vec![Var::Buff, Var::Green, Var::Blue], var: Var::Curse }, // Needs a buff
Combo { units: vec![Var::Buff, Var::Red, Var::Blue], var: Var::Haste }, // Needs a buff
Combo { units: vec![Var::Debuff, Var::Red, Var::Red], var: Var::Snare },
Combo { units: vec![Var::Debuff, Var::Green, Var::Green], var: Var::Purge },
Combo { units: vec![Var::Debuff, Var::Blue, Var::Blue], var: Var::Silence },
Combo { units: vec![Var::Debuff, Var::Red, Var::Green], var: Var::Slow },
Combo { units: vec![Var::Debuff, Var::Green, Var::Blue], var: Var::Decay },
Combo { units: vec![Var::Debuff, Var::Green, Var::Green], var: Var::Purge }, // Needs a buff
Combo { units: vec![Var::Debuff, Var::Blue, Var::Blue], var: Var::Silence },
Combo { units: vec![Var::Debuff, Var::Red, Var::Green], var: Var::Slow }, // Needs a buff
Combo { units: vec![Var::Debuff, Var::Green, Var::Blue], var: Var::Decay },
Combo { units: vec![Var::Debuff, Var::Red, Var::Blue], var: Var::Invert },
Combo { units: vec![Var::Block, Var::Red, Var::Red], var: Var::Parry },
Combo { units: vec![Var::Block, Var::Green, Var::Green], var: Var::Purify },
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::Clutch },
Combo { units: vec![Var::Block, Var::Green, Var::Blue], var: Var::Reflect },
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::Green, Var::Green], var: Var::Throw },
Combo { units: vec![Var::Stun, Var::Green, Var::Green], var: Var::Sleep },
Combo { units: vec![Var::Stun, Var::Blue, Var::Blue], var: Var::Ruin },
Combo { units: vec![Var::Stun, Var::Red, Var::Green], var: Var::Banish },
Combo { units: vec![Var::Stun, Var::Green, Var::Blue], var: Var::Silence },
Combo { units: vec![Var::Stun, Var::Red, Var::Blue], var: Var::Hex },
Combo { units: vec![Var::Stun, Var::Red, Var::Green], var: Var::Throw },
Combo { units: vec![Var::Stun, Var::Green, Var::Blue], var: Var::Hex },
Combo { units: vec![Var::Stun, Var::Red, Var::Blue], var: Var::Banish },
Combo { units: vec![Var::Attack, Var::Red, Var::Red], var: Var::Strike },
Combo { units: vec![Var::Strike, Var::Strike, Var::Strike], var: Var::StrikeII },
Combo { units: vec![Var::Attack, Var::Red, Var::Red], var: Var::Strike },
Combo { units: vec![Var::Strike, Var::Strike, Var::Strike], var: Var::StrikeII },
Combo { units: vec![Var::StrikeII, Var::StrikeII, Var::StrikeII], var: Var::StrikeIII },
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::Red, Var::Green], var: Var::Slay },
Combo { units: vec![Var::Attack, Var::Green, Var::Blue], var: Var::Siphon },
Combo { units: vec![Var::Attack, Var::Green, Var::Blue], var: Var::Siphon },
Combo { units: vec![Var::Attack, Var::Red, Var::Blue], var: Var::Chaos },
Combo { units: vec![Var::Damage, Var::Red, Var::Red], var: Var::RedDamageI },