From d2f2c2bb671c99289564af28ea10803835249536 Mon Sep 17 00:00:00 2001 From: Mashy Date: Mon, 27 May 2019 18:28:49 +1000 Subject: [PATCH] added impurity / haste, all t2/t3s in --- server/src/item.rs | 51 ++++++++++++++++++++++++++++++++------------- server/src/skill.rs | 47 +++++++++++++++++++++++++++++++---------- 2 files changed, 73 insertions(+), 25 deletions(-) diff --git a/server/src/item.rs b/server/src/item.rs index 45018a76..66db8759 100644 --- a/server/src/item.rs +++ b/server/src/item.rs @@ -73,14 +73,18 @@ pub enum Item { HostilityI, HostilityII, HostilityIII, - Haste, + HasteI, + HasteII, + HasteIII, HealI, HealII, HealIII, HexI, HexII, HexIII, - Impurity, + ImpurityI, + ImpurityII, + ImpurityIII, InvertI, InvertII, InvertIII, @@ -259,8 +263,10 @@ impl Item { Item::Debuff => Some(Skill::Debuff), Item::DecayI => Some(Skill::DecayI), Item::DecayII => Some(Skill::DecayII), - Item::DecayIII => Some(Skill::DecayIII), - Item::Haste => Some(Skill::Haste), + Item::DecayIII => Some(Skill::DecayIII), + Item::HasteI => Some(Skill::HasteI), + Item::HasteII => Some(Skill::HasteII), + Item::HasteIII => Some(Skill::HasteIII), Item::HealI => Some(Skill::HealI), Item::HealII => Some(Skill::HealII), Item::HealIII => Some(Skill::HealIII), @@ -270,7 +276,9 @@ impl Item { Item::HostilityI => Some(Skill::HostilityI), Item::HostilityII => Some(Skill::HostilityII), Item::HostilityIII=> Some(Skill::HostilityIII), - Item::Impurity => Some(Skill::Impurity), + Item::ImpurityI => Some(Skill::ImpurityI), + Item::ImpurityII => Some(Skill::ImpurityII), + Item::ImpurityIII => Some(Skill::ImpurityIII), Item::InvertI => Some(Skill::InvertI), Item::InvertII => Some(Skill::InvertII), Item::InvertIII => Some(Skill::InvertIII), @@ -489,7 +497,9 @@ impl Item { "When attacked by Hostility you gain Hatred which increased red and blue power based on Damage taken.", self.into_skill().unwrap().effect().last().unwrap().get_duration()), - Item::Haste => format!( + Item::HasteI | + Item::HasteII | + Item::HasteIII => format!( "Haste increases Speed by {:?}%, Red based Attack skills will strike again dealing {:?}{}. Lasts {:?}T", self.into_skill().unwrap().effect().first().unwrap().get_multiplier() - 100, Skill::HasteStrike.multiplier(), @@ -506,7 +516,9 @@ impl Item { Hexed targets cannot cast any skills.", self.into_skill().unwrap().effect().first().unwrap().get_duration()), - Item::Impurity => format!( + Item::ImpurityI | + Item::ImpurityII | + Item::ImpurityIII => format!( "Impurity increases Green Power by {:?}%, Blue based Attack skills will blast again dealing {:?}{}. Lasts {:?}T", self.into_skill().unwrap().effect().first().unwrap().get_multiplier() - 100, Skill::ImpureBlast.multiplier(), @@ -651,9 +663,12 @@ impl Item { Item::ScatterII => vec![Item::ScatterI, Item::ScatterI, Item::ScatterI], Item::ScatterIII => vec![Item::ScatterIII, Item::ScatterIII, Item::ScatterIII], - Item::Haste => vec![Item::Buff, Item::Red, Item::Green], - Item::Impurity => vec![Item::Buff, Item::Green, Item::Blue], - + Item::HasteI => vec![Item::Buff, Item::Red, Item::Green], + Item::HasteII => vec![Item::HasteI, Item::HasteI, Item::HasteI], + Item::HasteIII => vec![Item::HasteII, Item::HasteII, Item::HasteII], + Item::ImpurityI => vec![Item::Buff, Item::Green, Item::Blue], + Item::ImpurityII => vec![Item::ImpurityI, Item::ImpurityI, Item::ImpurityI], + Item::ImpurityIII => vec![Item::ImpurityII, Item::ImpurityII, Item::ImpurityII], Item::AmplifyI => vec![Item::Buff, Item::Red, Item::Blue], Item::AmplifyII => vec![Item::AmplifyI, Item::AmplifyI, Item::AmplifyI], Item::AmplifyIII => vec![Item::AmplifyII, Item::AmplifyII, Item::AmplifyII], @@ -788,7 +803,9 @@ impl From for Item { Skill::DecayII => Item::DecayII, Skill::DecayIII => Item::DecayIII, Skill::Debuff => Item::Debuff, - Skill::Haste => Item::Haste, + Skill::HasteI => Item::HasteI, + Skill::HasteII => Item::HasteII, + Skill::HasteIII => Item::HasteIII, Skill::HostilityI => Item::HostilityI, Skill::HostilityII => Item::HostilityII, Skill::HostilityIII => Item::HostilityIII, @@ -798,7 +815,9 @@ impl From for Item { Skill::HexI => Item::HexI, Skill::HexII => Item::HexII, Skill::HexIII => Item::HexIII, - Skill::Impurity => Item::Impurity, + Skill::ImpurityI => Item::ImpurityI, + Skill::ImpurityII => Item::ImpurityII, + Skill::ImpurityIII => Item::ImpurityIII, Skill::InvertI => Item::InvertI, Skill::InvertII => Item::InvertII, Skill::InvertIII => Item::InvertIII, @@ -920,11 +939,15 @@ pub fn get_combos() -> Vec { Combo { components: Item::ScatterII.combo(), item: Item::ScatterII }, Combo { components: Item::ScatterIII.combo(), item: Item::ScatterIII }, - Combo { components: Item::Haste.combo(), item: Item::Haste }, + Combo { components: Item::HasteI.combo(), item: Item::HasteI }, + Combo { components: Item::HasteII.combo(), item: Item::HasteII }, + Combo { components: Item::HasteIII.combo(), item: Item::HasteIII }, Combo { components: Item::HostilityI.combo(), item: Item::HostilityI }, Combo { components: Item::HostilityII.combo(), item: Item::HostilityII }, Combo { components: Item::HostilityIII.combo(), item: Item::HostilityIII }, - Combo { components: Item::Impurity.combo(), item: Item::Impurity }, + Combo { components: Item::ImpurityI.combo(), item: Item::ImpurityI }, + Combo { components: Item::ImpurityII.combo(), item: Item::ImpurityII }, + Combo { components: Item::ImpurityIII.combo(), item: Item::ImpurityIII }, Combo { components: Item::AmplifyI.combo(), item: Item::AmplifyI }, Combo { components: Item::AmplifyII.combo(), item: Item::AmplifyII }, diff --git a/server/src/skill.rs b/server/src/skill.rs index 627abadc..5fb3cf6b 100644 --- a/server/src/skill.rs +++ b/server/src/skill.rs @@ -151,7 +151,9 @@ pub fn resolve(skill: Skill, source: &mut Construct, target: &mut Construct, mut Skill::DecayTickII | Skill::DecayTickIII => decay_tick(source, target, resolutions, skill), // dot - Skill::Haste => haste(source, target, resolutions, skill), // speed slow + Skill::HasteI | + Skill::HasteII | + Skill::HasteIII => haste(source, target, resolutions, skill), // speed slow Skill::HealI | Skill::HealII | @@ -164,7 +166,10 @@ pub fn resolve(skill: Skill, source: &mut Construct, target: &mut Construct, mut Skill::HostilityI | Skill::HostilityII | Skill::HostilityIII => hostility(source, target, resolutions, skill), - Skill::Impurity => impurity(source, target, resolutions, skill), + + Skill::ImpurityI | + Skill::ImpurityII | + Skill::ImpurityIII => impurity(source, target, resolutions, skill), Skill::InvertI | Skill::InvertII | @@ -728,7 +733,9 @@ pub enum Skill { DecayTickII, DecayTickIII, - Haste, + HasteI, + HasteII, + HasteIII, HasteStrike, HealI, @@ -746,7 +753,10 @@ pub enum Skill { HostilityII, HostilityIII, ImpureBlast, - Impurity, + + ImpurityI, + ImpurityII, + ImpurityIII, Injure, InvertI, @@ -988,8 +998,12 @@ impl Skill { ConstructEffect {effect: Effect::Decay, duration: 4, meta: Some(EffectMeta::Skill(Skill::DecayTickIII)), tick: None}], - Skill::Haste => vec![ConstructEffect {effect: Effect::Haste, duration: 2, - meta: Some(EffectMeta::Multiplier(150)), tick: None }], + Skill::HasteI => vec![ConstructEffect {effect: Effect::Haste, duration: 2, + meta: Some(EffectMeta::Multiplier(150)), tick: None }], + Skill::HasteII => vec![ConstructEffect {effect: Effect::Haste, duration: 3, + meta: Some(EffectMeta::Multiplier(175)), tick: None }], + Skill::HasteIII => vec![ConstructEffect {effect: Effect::Haste, duration: 4, + meta: Some(EffectMeta::Multiplier(225)), tick: None }], Skill::HexI => vec![ConstructEffect {effect: Effect::Hex, duration: 2, meta: None, tick: None}], Skill::HexII => vec![ConstructEffect {effect: Effect::Hex, duration: 3, meta: None, tick: None}], Skill::HexIII => vec![ConstructEffect {effect: Effect::Hex, duration: 4, meta: None, tick: None}], @@ -1005,9 +1019,13 @@ impl Skill { Skill::HatredII => vec![ConstructEffect {effect: Effect::Hatred, duration: 7, meta: None, tick: None}], Skill::HatredIII => vec![ConstructEffect {effect: Effect::Hatred, duration: 9, meta: None, tick: None}], - Skill::Impurity => vec![ConstructEffect {effect: Effect::Impurity, duration: 3, + Skill::ImpurityI => vec![ConstructEffect {effect: Effect::Impurity, duration: 2, meta: Some(EffectMeta::Multiplier(150)), tick: None }], - + Skill::ImpurityII => vec![ConstructEffect {effect: Effect::Impurity, duration: 3, + meta: Some(EffectMeta::Multiplier(175)), tick: None }], + Skill::ImpurityIII => vec![ConstructEffect {effect: Effect::Impurity, duration: 4, + meta: Some(EffectMeta::Multiplier(225)), tick: None }], + Skill::InvertI => vec![ConstructEffect {effect: Effect::Invert, duration: 2, meta: None, tick: None}], Skill::InvertII => vec![ConstructEffect {effect: Effect::Invert, duration: 3, meta: None, tick: None}], Skill::InvertIII => vec![ConstructEffect {effect: Effect::Invert, duration: 4, meta: None, tick: None}], @@ -1126,7 +1144,9 @@ impl Skill { Skill::AmplifyI => Some(1), Skill::AmplifyII => Some(1), Skill::AmplifyIII => Some(1), - Skill::Impurity => Some(3), + Skill::ImpurityI | + Skill::ImpurityII | + Skill::ImpurityIII => Some(3), Skill::InvertI => Some(2), Skill::InvertII => Some(2), @@ -1165,7 +1185,10 @@ impl Skill { Skill::HexI => Some(1), Skill::HexII => Some(2), Skill::HexIII => Some(2), - Skill::Haste => Some(2), + + Skill::HasteI => Some(2), + Skill::HasteII => Some(2), + Skill::HasteIII => Some(2), Skill::ReflectI => Some(2), Skill::ReflectII => Some(2), @@ -1375,7 +1398,9 @@ impl Skill { Skill::CorruptI | Skill::CorruptII | Skill::CorruptIII | - Skill::Haste | + Skill::HasteI | + Skill::HasteII | + Skill::HasteIII | Skill::HealI | Skill::HealII | Skill::HealIII |