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
### Changed
## [0.1.4 2019-09-17]
## [0.1.4 2019-09-18]
### Changed
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
`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 ->
Stuns caster for 3/2/1T
If target has higher green life than caster:

View File

@ -810,8 +810,8 @@ impl Item {
Item::Bash|
Item::BashPlus |
Item::BashPlusPlus => format!(
"Bash the target increasing the cooldowns of their skills.
Deals {:?}% RedPower per cooldown increased. Lasts {:?}T.",
"Bash the target increasing the cooldowns of target skills by 1T.
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_duration()),

View File

@ -768,6 +768,10 @@ impl Skill {
Skill::SleepPlus => 300,
Skill::SleepPlusPlus => 400,
Skill::Banish=> 40, //Green dmg (heal)
Skill::BanishPlus => 75,
Skill::BanishPlusPlus => 125,
Skill::Bash=> 65,
Skill::BashPlus => 95,
Skill::BashPlusPlus => 140,
@ -810,9 +814,9 @@ impl Skill {
Skill::AmplifyPlusPlus => vec![ConstructEffect {effect: Effect::Amplify, duration: 4,
meta: Some(EffectMeta::Multiplier(200)), tick: None}],
Skill::Banish => vec![ConstructEffect {effect: Effect::Banish, duration: 1,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::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::BanishPlusPlus => vec![ConstructEffect {effect: Effect::Banish, duration: 2, meta: None, tick: None}],
Skill::Block => vec![ConstructEffect {effect: Effect::Block, duration: 1,
meta: Some(EffectMeta::Multiplier(50)), tick: None}],
Skill::Buff => vec![ConstructEffect {effect: Effect::Buff, duration: 2,
@ -1049,9 +1053,9 @@ impl Skill {
Skill::PurgePlus => None,
Skill::PurgePlusPlus => None,
Skill::Banish=> Some(1),
Skill::BanishPlus => Some(1),
Skill::BanishPlusPlus => Some(1),
Skill::Banish |
Skill::BanishPlus |
Skill::BanishPlusPlus => Some(3),
Skill::Haste=> 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 {
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;
}