banish rework

This commit is contained in:
Mashy 2019-09-18 16:30:52 +10:00
parent 1705f86388
commit 0cb5b8ccfa
3 changed files with 36 additions and 10 deletions

View File

@ -7,7 +7,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
### Fixed ### Fixed
### Changed ### Changed
## [0.1.4 2019-09-17] ## [0.1.4 2019-09-18]
### Changed ### Changed
Removed self targetting, all skills can be used on any target Removed self targetting, all skills can be used on any target
@ -16,6 +16,11 @@ Removed self targetting, all skills can be used on any target
`Purify` No cooldown `Purify` No cooldown
`Recharge` No cooldown `Recharge` No cooldown
`Banish`
Now deals 40 / 75 / 125% target red / blue life before applying banish debuff
Constant 2T duration at all levels
Constant 3T cooldown at all levels
`Link` reworked -> `Link` reworked ->
Stuns caster for 3/2/1T Stuns caster for 3/2/1T
If target has higher green life than caster: If target has higher green life than caster:

View File

@ -810,8 +810,8 @@ impl Item {
Item::Bash| Item::Bash|
Item::BashPlus | Item::BashPlus |
Item::BashPlusPlus => format!( Item::BashPlusPlus => format!(
"Bash the target increasing the cooldowns of their skills. "Bash the target increasing the cooldowns of target skills by 1T.
Deals {:?}% RedPower per cooldown increased. Lasts {:?}T.", Deals {:?}% RedPower as red damage and 45% more damage per cooldown increased. Stuns for {:?}T.",
self.into_skill().unwrap().effect()[0].get_skill().unwrap().multiplier(), self.into_skill().unwrap().effect()[0].get_skill().unwrap().multiplier(),
self.into_skill().unwrap().effect()[0].get_duration()), self.into_skill().unwrap().effect()[0].get_duration()),

View File

@ -768,6 +768,10 @@ impl Skill {
Skill::SleepPlus => 300, Skill::SleepPlus => 300,
Skill::SleepPlusPlus => 400, Skill::SleepPlusPlus => 400,
Skill::Banish=> 40, //Green dmg (heal)
Skill::BanishPlus => 75,
Skill::BanishPlusPlus => 125,
Skill::Bash=> 65, Skill::Bash=> 65,
Skill::BashPlus => 95, Skill::BashPlus => 95,
Skill::BashPlusPlus => 140, Skill::BashPlusPlus => 140,
@ -810,9 +814,9 @@ impl Skill {
Skill::AmplifyPlusPlus => vec![ConstructEffect {effect: Effect::Amplify, duration: 4, Skill::AmplifyPlusPlus => vec![ConstructEffect {effect: Effect::Amplify, duration: 4,
meta: Some(EffectMeta::Multiplier(200)), tick: None}], meta: Some(EffectMeta::Multiplier(200)), tick: None}],
Skill::Banish => vec![ConstructEffect {effect: Effect::Banish, duration: 1,meta: None, tick: None}], Skill::Banish => vec![ConstructEffect {effect: Effect::Banish, duration: 2, meta: None, tick: None}],
Skill::BanishPlus => vec![ConstructEffect {effect: Effect::Banish, duration: 2, meta: None, tick: None}], Skill::BanishPlus => vec![ConstructEffect {effect: Effect::Banish, duration: 2, meta: None, tick: None}],
Skill::BanishPlusPlus => vec![ConstructEffect {effect: Effect::Banish, duration: 3,meta: None, tick: None}], Skill::BanishPlusPlus => vec![ConstructEffect {effect: Effect::Banish, duration: 2, meta: None, tick: None}],
Skill::Block => vec![ConstructEffect {effect: Effect::Block, duration: 1, Skill::Block => vec![ConstructEffect {effect: Effect::Block, duration: 1,
meta: Some(EffectMeta::Multiplier(50)), tick: None}], meta: Some(EffectMeta::Multiplier(50)), tick: None}],
Skill::Buff => vec![ConstructEffect {effect: Effect::Buff, duration: 2, Skill::Buff => vec![ConstructEffect {effect: Effect::Buff, duration: 2,
@ -1049,9 +1053,9 @@ impl Skill {
Skill::PurgePlus => None, Skill::PurgePlus => None,
Skill::PurgePlusPlus => None, Skill::PurgePlusPlus => None,
Skill::Banish=> Some(1), Skill::Banish |
Skill::BanishPlus => Some(1), Skill::BanishPlus |
Skill::BanishPlusPlus => Some(1), Skill::BanishPlusPlus => Some(3),
Skill::Haste=> Some(2), Skill::Haste=> Some(2),
Skill::HastePlus => Some(2), Skill::HastePlus => Some(2),
@ -1749,7 +1753,24 @@ fn purify(source: &mut Construct, target: &mut Construct, mut results: Resolutio
} }
fn banish(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions { fn banish(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
results.push(Resolution::new(source, target).event(target.add_effect(skill, skill.effect()[0]))); results.push(Resolution::new(source, target).event(Event::Skill { skill }));
let red_damage = target.red_life().pct(skill.multiplier());
let blue_damage = target.blue_life().pct(skill.multiplier());
if red_damage > 0 {
target.deal_red_damage(skill, red_damage)
.into_iter()
.for_each(|e| results.push(Resolution::new(source, target).event(e).stages(EventStages::PostOnly)));
}
if blue_damage > 0 {
target.deal_blue_damage(skill, blue_damage)
.into_iter()
.for_each(|e| results.push(Resolution::new(source, target).event(e).stages(EventStages::PostOnly)));
}
results.push(Resolution::new(source, target).event(target.add_effect(skill, skill.effect()[0])).stages(EventStages::PostOnly));
return results; return results;
} }