add "Purified" effect to Purify

This commit is contained in:
Mashy 2019-11-11 12:34:14 +10:00
parent 8eaa3dc1c0
commit 1a2d2995cc
4 changed files with 44 additions and 21 deletions

View File

@ -282,6 +282,7 @@ function effectInfo(i) {
case 'Restrict': return 'Disable construct from casting any red skills';
case 'Stun': return 'Stunned construct cannot use skills';
case 'Intercept': return 'Redirect any skills on team to this target construct';
case 'Purified': return `Construct will take ${i.meta[1] - 100}% increased healing`;
case 'Vulnerable': return `Construct will take ${i.meta[1] - 100}% increased red damage`;
case 'Silence': return 'Disable construct from casting any blue skills';
case 'Wither': return `Construct will take ${100 - i.meta[1]}% reduced healing`; //

View File

@ -10,20 +10,21 @@ pub enum Effect {
Banish,
Block,
Buff,
Sustain,
Counter,
Curse,
Haste,
Hybrid,
Intercept,
Invert,
Counter,
Purified,
Purge,
Reflect,
Slow,
Restrict,
Stun,
Intercept,
Vulnerable,
Silence,
Slow,
Stun,
Sustain,
Vulnerable,
Wither, // Reduce green dmg (healing) taken
// electric is the buff that applies
@ -99,20 +100,24 @@ impl Effect {
pub fn modifications(&self) -> Vec<Stat> {
match self {
Effect::Vulnerable => vec![Stat::RedDamageTaken],
// Bases
Effect::Block => vec![Stat::RedDamageTaken, Stat::BlueDamageTaken],
Effect::Buff => vec![Stat::BluePower, Stat::RedPower, Stat::Speed],
Effect::Absorption => vec![Stat::RedPower, Stat::BluePower],
Effect::Amplify => vec![Stat::RedPower, Stat::BluePower],
Effect::Curse => vec![Stat::RedDamageTaken, Stat::BlueDamageTaken],
Effect::Hybrid => vec![Stat::GreenPower],
Effect::Wither => vec![Stat::GreenDamageTaken],
Effect::Haste => vec![Stat::Speed],
Effect::Slow => vec![Stat::Speed],
// Power changes
Effect::Absorption => vec![Stat::RedPower, Stat::BluePower],
Effect::Amplify => vec![Stat::RedPower, Stat::BluePower],
Effect::Hybrid => vec![Stat::GreenPower],
// Damage taken changes
Effect::Curse => vec![Stat::RedDamageTaken, Stat::BlueDamageTaken],
Effect::Purified => vec![Stat::GreenDamageTaken], // increased green taken
Effect::Vulnerable => vec![Stat::RedDamageTaken],
Effect::Wither => vec![Stat::GreenDamageTaken], // reduced green taken
// Speed
Effect::Haste => vec![Stat::Speed],
_ => vec![],
}
@ -128,6 +133,7 @@ impl Effect {
Effect::Haste |
Effect::Slow |
Effect::Hybrid |
Effect::Purified |
Effect::Wither => value.pct(match meta {
Some(EffectMeta::Multiplier(d)) => d,
_ => 100,
@ -135,7 +141,10 @@ impl Effect {
Effect::Absorption => value + match meta {
Some(EffectMeta::AddedDamage(d)) => d,
_ => panic!("absorb meta not damage"),
_ => {
warn!("absorb meta not damage");
return 0;
}
},
_ => {
@ -185,6 +194,7 @@ impl Effect {
Effect::Decay => Some(Colour::Blue),
Effect::Regen => Some(Colour::Green),
Effect::Siphon => Some(Colour::Blue),
Effect::Purified => Some(Colour::Green),
Effect::Ko => None,
}

View File

@ -824,15 +824,17 @@ impl Item {
Item::Purge|
Item::PurgePlus |
Item::PurgePlusPlus => format!(
"Remove buffs from target construct.
"Remove all effects from target construct.
Applies purge disabling target green skills for {:?}T.",
self.into_skill().unwrap().effect()[0].get_duration()),
Item::Purify|
Item::PurifyPlus |
Item::PurifyPlusPlus => format!(
"Remove debuffs and heals for {:?}% GreenPower per debuff removed.",
self.into_skill().unwrap().multiplier()),
"Remove all effects and heals for {:?}% GreenPower per effect removed.
Applies Purified increasing healing taken by {:?}%.",
self.into_skill().unwrap().multiplier(),
self.into_skill().unwrap().effect()[0].get_multiplier() - 100),
Item::Reflect|
Item::ReflectPlus |

View File

@ -1022,6 +1022,14 @@ impl Skill {
meta: Some(EffectMeta::Skill(Skill::TriageTickPlus)), tick: None}],
Skill::TriagePlusPlus => vec![ConstructEffect {effect: Effect::Triage, duration: 4,
meta: Some(EffectMeta::Skill(Skill::TriageTickPlusPlus)), tick: None}],
Skill::Purify => vec![ConstructEffect { effect: Effect::Purified, duration: 2,
meta: Some(EffectMeta::Multiplier(150)), tick: None}],
Skill::PurifyPlus => vec![ConstructEffect { effect: Effect::Purified, duration: 2,
meta: Some(EffectMeta::Multiplier(175)), tick: None}],
Skill::PurifyPlusPlus => vec![ConstructEffect { effect: Effect::Purified, duration: 2,
meta: Some(EffectMeta::Multiplier(200)), tick: None}],
_ => {
panic!("{:?} no skill effect", self);
},
@ -1841,6 +1849,8 @@ fn purify(source: &mut Construct, target: &mut Construct, mut results: Resolutio
.into_iter()
.for_each(|e| results.push(Resolution::new(source, target).event(e).stages(EventStages::PostOnly)));
}
let effect = skill.effect()[0];
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)).stages(EventStages::PostOnly));
return results;
}