ruin deals dmg to each construct and reduce cd

This commit is contained in:
Mashy 2019-11-07 10:08:25 +10:00
parent 48ef08fd2a
commit efcc437985
3 changed files with 112 additions and 95 deletions

View File

@ -1390,6 +1390,7 @@ mod tests {
true true
}, },
Event::AoeSkill { skill: _ } => false, Event::AoeSkill { skill: _ } => false,
Event::Damage { amount: _, mitigation: _, colour: _, skill: _ } => false,
_ => panic!("ruin result not effect {:?}", event), _ => panic!("ruin result not effect {:?}", event),
} }
false => false, false => false,

View File

@ -850,8 +850,10 @@ impl Item {
Item::Ruin| Item::Ruin|
Item::RuinPlus | Item::RuinPlus |
Item::RuinPlusPlus => format!( Item::RuinPlusPlus => format!(
"Team wide Stun for {:?}T. Stunned constructs are unable to cast skills.", "Team wide skill. Stun each construct for {:?}T.
self.into_skill().unwrap().effect()[0].get_duration()), Deal {:?}% BluePower as blue damage to each construct.",
self.into_skill().unwrap().effect()[0].get_duration(),
self.into_skill().unwrap().multiplier()),
Item::Link| Item::Link|
Item::LinkPlus | Item::LinkPlus |

View File

@ -753,48 +753,48 @@ impl Skill {
// Attack Base // Attack Base
Skill::Attack => 80, // Base Skill::Attack => 80, // Base
Skill::Blast=> 105, // BB Skill::Blast => 105, // BB
Skill::BlastPlus => 140, // BB Skill::BlastPlus => 140, // BB
Skill::BlastPlusPlus => 200, // BB Skill::BlastPlusPlus => 200, // BB
Skill::Chaos=> 40, // BR Skill::Chaos => 40, // BR
Skill::ChaosPlus => 65, // BR Skill::ChaosPlus => 65, // BR
Skill::ChaosPlusPlus => 90, // BR Skill::ChaosPlusPlus => 90, // BR
Skill::Heal=> 125, //GG Skill::Heal => 125, //GG
Skill::HealPlus => 185, //GG Skill::HealPlus => 185, //GG
Skill::HealPlusPlus => 270, //GG Skill::HealPlusPlus => 270, //GG
Skill::SiphonTick=> 25, // GB Skill::SiphonTick => 25, // GB
Skill::SiphonTickPlus => 30, Skill::SiphonTickPlus => 30,
Skill::SiphonTickPlusPlus => 40, Skill::SiphonTickPlusPlus => 40,
Skill::Slay=> 45, // RG Skill::Slay => 45, // RG
Skill::SlayPlus => 65, Skill::SlayPlus => 65,
Skill::SlayPlusPlus => 100, Skill::SlayPlusPlus => 100,
Skill::Strike=> 90, //RR Skill::Strike => 90, //RR
Skill::StrikePlus => 140, Skill::StrikePlus => 140,
Skill::StrikePlusPlus => 200, Skill::StrikePlusPlus => 200,
// Block Base // Block Base
Skill::ElectrocuteTick=> 80, Skill::ElectrocuteTick => 80,
Skill::ElectrocuteTickPlus => 100, Skill::ElectrocuteTickPlus => 100,
Skill::ElectrocuteTickPlusPlus => 130, Skill::ElectrocuteTickPlusPlus => 130,
Skill::CounterAttack=> 120, Skill::CounterAttack => 120,
Skill::CounterAttackPlus => 160, Skill::CounterAttackPlus => 160,
Skill::CounterAttackPlusPlus => 230, Skill::CounterAttackPlusPlus => 230,
Skill::Purify=> 45, //Green dmg (heal) Skill::Purify => 45, //Green dmg (heal)
Skill::PurifyPlus => 70, Skill::PurifyPlus => 70,
Skill::PurifyPlusPlus => 105, Skill::PurifyPlusPlus => 105,
Skill::Reflect=> 45, //Recharge blue life (heal) Skill::Reflect => 45, //Recharge blue life (heal)
Skill::ReflectPlus => 70, Skill::ReflectPlus => 70,
Skill::ReflectPlusPlus => 100, Skill::ReflectPlusPlus => 100,
Skill::Recharge=> 70, //Recharge red and blue life (heal) Skill::Recharge => 70, //Recharge red and blue life (heal)
Skill::RechargePlus => 110, Skill::RechargePlus => 110,
Skill::RechargePlusPlus => 170, Skill::RechargePlusPlus => 170,
@ -803,29 +803,36 @@ impl Skill {
Skill::SustainPlusPlus => 230, Skill::SustainPlusPlus => 230,
// Stun Base // Stun Base
Skill::Sleep=> 200, //Green dmg (heal) Skill::Sleep => 200, //Green dmg (heal)
Skill::SleepPlus => 290, Skill::SleepPlus => 290,
Skill::SleepPlusPlus => 400, Skill::SleepPlusPlus => 400,
Skill::Banish=> 40, //Green dmg (heal) Skill::Banish => 40, //Green dmg (heal)
Skill::BanishPlus => 75, Skill::BanishPlus => 75,
Skill::BanishPlusPlus => 125, Skill::BanishPlusPlus => 125,
Skill::Bash=> 45, Skill::Bash => 45,
Skill::BashPlus => 65, Skill::BashPlus => 65,
Skill::BashPlusPlus => 100, Skill::BashPlusPlus => 100,
Skill::Link=> 75, Skill::Link => 75,
Skill::LinkPlus => 100, Skill::LinkPlus => 100,
Skill::LinkPlusPlus => 150, Skill::LinkPlusPlus => 150,
Skill::Ruin => 40,
Skill::RuinPlus => 70,
Skill::RuinPlusPlus => 100,
// Debuff Base // Debuff Base
Skill::DecayTick=> 33, Skill::DecayTick => 33,
Skill::DecayTickPlus => 45, Skill::DecayTickPlus => 45,
Skill::DecayTickPlusPlus => 70, Skill::DecayTickPlusPlus => 70,
Skill::Silence=> 55, // Deals more per blue skill on target
Skill::Silence => 55, // Deals more per blue skill on target
Skill::SilencePlus => 80, Skill::SilencePlus => 80,
Skill::SilencePlusPlus => 110, Skill::SilencePlusPlus => 110,
Skill::Restrict=> 40, // Deals more per red skill on target
Skill::Restrict => 40, // Deals more per red skill on target
Skill::RestrictPlus => 65, Skill::RestrictPlus => 65,
Skill::RestrictPlusPlus => 100, Skill::RestrictPlusPlus => 100,
@ -834,11 +841,11 @@ impl Skill {
Skill::HasteStrike => 60, Skill::HasteStrike => 60,
Skill::Intercept=> 80, Skill::Intercept => 80,
Skill::InterceptPlus => 110, Skill::InterceptPlus => 110,
Skill::InterceptPlusPlus => 150, Skill::InterceptPlusPlus => 150,
Skill::TriageTick=> 75, Skill::TriageTick => 75,
Skill::TriageTickPlus => 110, Skill::TriageTickPlus => 110,
Skill::TriageTickPlusPlus => 140, Skill::TriageTickPlusPlus => 140,
@ -956,7 +963,7 @@ impl Skill {
Skill::Ruin => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}], Skill::Ruin => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
Skill::RuinPlus => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}], Skill::RuinPlus => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
Skill::RuinPlusPlus => vec![ConstructEffect {effect: Effect::Stun, duration: 2, meta: None, tick: None}], Skill::RuinPlusPlus => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
Skill::Purge => vec![ConstructEffect {effect: Effect::Purge, duration: 2, meta: None, tick: None}], Skill::Purge => vec![ConstructEffect {effect: Effect::Purge, duration: 2, meta: None, tick: None}],
Skill::PurgePlus => vec![ConstructEffect {effect: Effect::Purge, duration: 3, meta: None, tick: None}], Skill::PurgePlus => vec![ConstructEffect {effect: Effect::Purge, duration: 3, meta: None, tick: None}],
@ -967,8 +974,8 @@ impl Skill {
Skill::LinkPlusPlus => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}], Skill::LinkPlusPlus => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
Skill::Silence => vec![ConstructEffect {effect: Effect::Silence, duration: 2, meta: None, tick: None}], Skill::Silence => vec![ConstructEffect {effect: Effect::Silence, duration: 2, meta: None, tick: None}],
Skill::SilencePlus => vec![ConstructEffect {effect: Effect::Silence, duration: 3, meta: None, tick: None}], Skill::SilencePlus => vec![ConstructEffect {effect: Effect::Silence, duration: 2, meta: None, tick: None}],
Skill::SilencePlusPlus => vec![ConstructEffect {effect: Effect::Silence, duration: 4, meta: None, tick: None}], Skill::SilencePlusPlus => vec![ConstructEffect {effect: Effect::Silence, duration: 2, meta: None, tick: None}],
Skill::Siphon => vec![ConstructEffect {effect: Effect::Siphon, duration: 2, Skill::Siphon => vec![ConstructEffect {effect: Effect::Siphon, duration: 2,
meta: Some(EffectMeta::Skill(Skill::SiphonTick)), tick: None}], meta: Some(EffectMeta::Skill(Skill::SiphonTick)), tick: None}],
@ -982,8 +989,8 @@ impl Skill {
Skill::SleepPlusPlus => vec![ConstructEffect {effect: Effect::Stun, duration: 4, meta: None, tick: None}], Skill::SleepPlusPlus => vec![ConstructEffect {effect: Effect::Stun, duration: 4, meta: None, tick: None}],
Skill::Restrict => vec![ConstructEffect {effect: Effect::Restrict, duration: 2, meta: None, tick: None}], Skill::Restrict => vec![ConstructEffect {effect: Effect::Restrict, duration: 2, meta: None, tick: None}],
Skill::RestrictPlus => vec![ConstructEffect {effect: Effect::Restrict, duration: 3, meta: None, tick: None}], Skill::RestrictPlus => vec![ConstructEffect {effect: Effect::Restrict, duration: 2, meta: None, tick: None}],
Skill::RestrictPlusPlus => vec![ConstructEffect {effect: Effect::Restrict, duration: 4, meta: None, tick: None}], Skill::RestrictPlusPlus => vec![ConstructEffect {effect: Effect::Restrict, duration: 2, meta: None, tick: None}],
Skill::Bash => vec![ConstructEffect {effect: Effect::Stun, duration: 2, Skill::Bash => vec![ConstructEffect {effect: Effect::Stun, duration: 2,
meta: Some(EffectMeta::Skill(Skill::Bash)), tick: None}], meta: Some(EffectMeta::Skill(Skill::Bash)), tick: None}],
@ -1012,24 +1019,25 @@ impl Skill {
pub fn base_cd(&self) -> Cooldown { pub fn base_cd(&self) -> Cooldown {
match self { match self {
Skill::Attack => None, Skill::Attack => None,
Skill::Debuff => Some(1), Skill::Block => None, // reduce damage
Skill::Buff => None, Skill::Buff => None,
Skill::Debuff => Some(1),
Skill::Stun => Some(2),
Skill::Strike=> None, Skill::Strike=> None,
Skill::StrikePlus => None, Skill::StrikePlus => None,
Skill::StrikePlusPlus => None, Skill::StrikePlusPlus => None,
Skill::Block => None, // reduce damage
Skill::Counter| Skill::Counter|
Skill::CounterPlus | Skill::CounterPlus |
Skill::CounterPlusPlus => None, // avoid all damage Skill::CounterPlusPlus => None, // avoid all damage
Skill::Restrict=> Some(2), Skill::Restrict |
Skill::RestrictPlus => Some(2), Skill::RestrictPlus |
Skill::RestrictPlusPlus => Some(2), Skill::RestrictPlusPlus => Some(2),
Skill::Stun => Some(2),
Skill::Bash=> Some(2), Skill::Bash |
Skill::BashPlus => Some(2), Skill::BashPlus |
Skill::BashPlusPlus => Some(2), Skill::BashPlusPlus => Some(2),
Skill::Heal=> None, Skill::Heal=> None,
@ -1040,97 +1048,99 @@ impl Skill {
Skill::TriagePlus => None, // hot Skill::TriagePlus => None, // hot
Skill::TriagePlusPlus => None, // hot Skill::TriagePlusPlus => None, // hot
Skill::Break=> Some(1), // no damage stun, adds vulnerable Skill::Break | // no damage stun, adds vulnerable
Skill::BreakPlus => Some(1), Skill::BreakPlus |
Skill::BreakPlusPlus => Some(1), Skill::BreakPlusPlus => Some(1),
Skill::Blast=> None, Skill::Blast |
Skill::BlastPlus => None, Skill::BlastPlus |
Skill::BlastPlusPlus => None, Skill::BlastPlusPlus => None,
Skill::Chaos=> None, Skill::Chaos |
Skill::ChaosPlus => None, Skill::ChaosPlus |
Skill::ChaosPlusPlus => None, Skill::ChaosPlusPlus => None,
Skill::Amplify=> Some(1), Skill::Amplify |
Skill::AmplifyPlus => Some(1), Skill::AmplifyPlus |
Skill::AmplifyPlusPlus => Some(1), Skill::AmplifyPlusPlus => Some(1),
Skill::Hybrid|
Skill::Hybrid |
Skill::HybridPlus | Skill::HybridPlus |
Skill::HybridPlusPlus => Some(1), Skill::HybridPlusPlus => Some(1),
Skill::Invert=> Some(2), Skill::Invert |
Skill::InvertPlus => Some(2), Skill::InvertPlus |
Skill::InvertPlusPlus => Some(2), Skill::InvertPlusPlus => Some(2),
Skill::Decay=> Some(1), // dot
Skill::DecayPlus => Some(1), Skill::Decay |
Skill::DecayPlus |
Skill::DecayPlusPlus => Some(1), Skill::DecayPlusPlus => Some(1),
Skill::Siphon|
Skill::Siphon |
Skill::SiphonPlus | Skill::SiphonPlus |
Skill::SiphonPlusPlus => None, Skill::SiphonPlusPlus => None,
Skill::Curse=> Some(1), Skill::Curse |
Skill::CursePlus => Some(1), Skill::CursePlus |
Skill::CursePlusPlus => Some(1), Skill::CursePlusPlus => Some(1),
Skill::Link=> Some(2), Skill::Link |
Skill::LinkPlus => Some(2), Skill::LinkPlus |
Skill::LinkPlusPlus => Some(2), Skill::LinkPlusPlus => Some(2),
Skill::Silence=> Some(2), Skill::Silence |
Skill::SilencePlus => Some(2), Skill::SilencePlus |
Skill::SilencePlusPlus => Some(2), Skill::SilencePlusPlus => Some(2),
Skill::Purify | Skill::Purify |
Skill::PurifyPlus | Skill::PurifyPlus |
Skill::PurifyPlusPlus => None, Skill::PurifyPlusPlus => None,
Skill::Purge=> Some(1), Skill::Purge |
Skill::PurgePlus => Some(1), Skill::PurgePlus |
Skill::PurgePlusPlus => Some(1), Skill::PurgePlusPlus => Some(1),
Skill::Banish | Skill::Banish |
Skill::BanishPlus | Skill::BanishPlus |
Skill::BanishPlusPlus => Some(2), Skill::BanishPlusPlus => Some(2),
Skill::Haste=> Some(1), Skill::Haste |
Skill::HastePlus => Some(1), Skill::HastePlus |
Skill::HastePlusPlus => Some(1), Skill::HastePlusPlus => Some(1),
Skill::Reflect | Skill::Reflect |
Skill::ReflectPlus | Skill::ReflectPlus |
Skill::ReflectPlusPlus => None, Skill::ReflectPlusPlus => None,
Skill::Recharge=> None, Skill::Recharge |
Skill::RechargePlus => None, Skill::RechargePlus |
Skill::RechargePlusPlus => None, Skill::RechargePlusPlus => None,
Skill::Ruin=> Some(3), Skill::Ruin |
Skill::RuinPlus => Some(2), Skill::RuinPlus |
Skill::RuinPlusPlus => Some(2), Skill::RuinPlusPlus => Some(2),
Skill::Slay=> None, Skill::Slay=> None,
Skill::SlayPlus => None, Skill::SlayPlus => None,
Skill::SlayPlusPlus => None, Skill::SlayPlusPlus => None,
Skill::Sleep=> Some(2), Skill::Sleep |
Skill::SleepPlus => Some(2), Skill::SleepPlus |
Skill::SleepPlusPlus => Some(2), Skill::SleepPlusPlus => Some(2),
Skill::Sustain | Skill::Sustain |
Skill::SustainPlus | Skill::SustainPlus |
Skill::SustainPlusPlus => Some(1), Skill::SustainPlusPlus => Some(1),
Skill::Intercept=> Some(2), Skill::Intercept |
Skill::InterceptPlus => Some(2), Skill::InterceptPlus |
Skill::InterceptPlusPlus => Some(2), Skill::InterceptPlusPlus => Some(2),
Skill::Electrify | Skill::Electrify |
Skill::ElectrifyPlus | Skill::ElectrifyPlus |
Skill::ElectrifyPlusPlus => None, Skill::ElectrifyPlusPlus => None,
Skill::Absorb |
Skill::Absorb|
Skill::AbsorbPlus | Skill::AbsorbPlus |
Skill::AbsorbPlusPlus => Some(1), Skill::AbsorbPlusPlus => Some(1),
@ -1167,17 +1177,17 @@ impl Skill {
pub fn ko_castable(&self) -> bool { pub fn ko_castable(&self) -> bool {
match self { match self {
Skill::ElectrocuteTick| Skill::ElectrocuteTick |
Skill::ElectrocuteTickPlus | Skill::ElectrocuteTickPlus |
Skill::ElectrocuteTickPlusPlus | Skill::ElectrocuteTickPlusPlus |
Skill::DecayTick| Skill::DecayTick |
Skill::DecayTickPlus | Skill::DecayTickPlus |
Skill::DecayTickPlusPlus | Skill::DecayTickPlusPlus |
Skill::SiphonTick| Skill::SiphonTick |
Skill::SiphonTickPlus | Skill::SiphonTickPlus |
Skill::SiphonTickPlusPlus | Skill::SiphonTickPlusPlus |
Skill::TriageTick| Skill::TriageTick |
Skill::TriageTickPlus | Skill::TriageTickPlus |
Skill::TriageTickPlusPlus => true, Skill::TriageTickPlusPlus => true,
_ => false, _ => false,
@ -1186,17 +1196,16 @@ impl Skill {
pub fn is_tick(&self) -> bool { pub fn is_tick(&self) -> bool {
match self { match self {
Skill::ElectrocuteTick| Skill::ElectrocuteTick |
Skill::ElectrocuteTickPlus | Skill::ElectrocuteTickPlus |
Skill::ElectrocuteTickPlusPlus | Skill::ElectrocuteTickPlusPlus |
Skill::DecayTick| Skill::DecayTick |
Skill::DecayTickPlus | Skill::DecayTickPlus |
Skill::DecayTickPlusPlus | Skill::DecayTickPlusPlus |
Skill::SiphonTick| Skill::SiphonTick |
Skill::SiphonTickPlus | Skill::SiphonTickPlus |
Skill::SiphonTickPlusPlus | Skill::SiphonTickPlusPlus |
Skill::TriageTick |
Skill::TriageTick|
Skill::TriageTickPlus | Skill::TriageTickPlus |
Skill::TriageTickPlusPlus => true, Skill::TriageTickPlusPlus => true,
@ -1206,19 +1215,19 @@ impl Skill {
pub fn speed(&self) -> u64 { pub fn speed(&self) -> u64 {
match self { match self {
Skill::SiphonTick| Skill::SiphonTick |
Skill::SiphonTickPlus | Skill::SiphonTickPlus |
Skill::SiphonTickPlusPlus => Skill::Siphon.speed(), Skill::SiphonTickPlusPlus => Skill::Siphon.speed(),
Skill::DecayTick| Skill::DecayTick |
Skill::DecayTickPlus | Skill::DecayTickPlus |
Skill::DecayTickPlusPlus => Skill::Decay.speed(), Skill::DecayTickPlusPlus => Skill::Decay.speed(),
Skill::TriageTick| Skill::TriageTick |
Skill::TriageTickPlus | Skill::TriageTickPlus |
Skill::TriageTickPlusPlus => Skill::Triage.speed(), Skill::TriageTickPlusPlus => Skill::Triage.speed(),
Skill::ElectrocuteTick| Skill::ElectrocuteTick |
Skill::ElectrocuteTickPlus | Skill::ElectrocuteTickPlus |
Skill::ElectrocuteTickPlusPlus => Skill::Electrify.speed(), Skill::ElectrocuteTickPlusPlus => Skill::Electrify.speed(),
@ -1228,7 +1237,7 @@ impl Skill {
pub fn aoe(&self) -> bool { pub fn aoe(&self) -> bool {
match self { match self {
Skill::Ruin| Skill::Ruin |
Skill::RuinPlus | Skill::RuinPlus |
Skill::RuinPlusPlus => true, Skill::RuinPlusPlus => true,
_ => false, _ => false,
@ -1243,44 +1252,44 @@ impl Skill {
Skill::AmplifyPlus | Skill::AmplifyPlus |
Skill::AmplifyPlusPlus | Skill::AmplifyPlusPlus |
Skill::Block | Skill::Block |
Skill::Sustain| Skill::Sustain |
Skill::SustainPlus | Skill::SustainPlus |
Skill::SustainPlusPlus | Skill::SustainPlusPlus |
Skill::Electrify| Skill::Electrify |
Skill::ElectrifyPlus | Skill::ElectrifyPlus |
Skill::ElectrifyPlusPlus | Skill::ElectrifyPlusPlus |
Skill::Haste| Skill::Haste |
Skill::HastePlus | Skill::HastePlus |
Skill::HastePlusPlus | Skill::HastePlusPlus |
Skill::Heal| Skill::Heal |
Skill::HealPlus | Skill::HealPlus |
Skill::HealPlusPlus | Skill::HealPlusPlus |
Skill::Absorb| Skill::Absorb |
Skill::AbsorbPlus | Skill::AbsorbPlus |
Skill::AbsorbPlusPlus | Skill::AbsorbPlusPlus |
Skill::Invert| Skill::Invert |
Skill::InvertPlus | Skill::InvertPlus |
Skill::InvertPlusPlus | Skill::InvertPlusPlus |
Skill::Intercept| Skill::Intercept |
Skill::InterceptPlus | Skill::InterceptPlus |
Skill::InterceptPlusPlus | Skill::InterceptPlusPlus |
Skill::Counter| Skill::Counter |
Skill::CounterPlus | Skill::CounterPlus |
Skill::CounterPlusPlus | Skill::CounterPlusPlus |
Skill::Purify| Skill::Purify |
Skill::PurifyPlus | Skill::PurifyPlus |
Skill::PurifyPlusPlus | Skill::PurifyPlusPlus |
Skill::Recharge| Skill::Recharge |
Skill::RechargePlus | Skill::RechargePlus |
Skill::RechargePlusPlus | Skill::RechargePlusPlus |
Skill::Reflect| Skill::Reflect |
Skill::ReflectPlus | Skill::ReflectPlus |
Skill::ReflectPlusPlus | Skill::ReflectPlusPlus |
Skill::Triage| Skill::Triage |
Skill::TriagePlus | Skill::TriagePlus |
Skill::TriagePlusPlus => true, Skill::TriagePlusPlus => true,
Skill::Banish| Skill::Banish |
Skill::BanishPlus | Skill::BanishPlus |
Skill::BanishPlusPlus => rng.gen_bool(0.5), Skill::BanishPlusPlus => rng.gen_bool(0.5),
@ -1667,6 +1676,11 @@ fn electrocute_tick(source: &mut Construct, target: &mut Construct, mut results:
} }
fn ruin(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions { fn ruin(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
let amount = source.blue_power().pct(skill.multiplier());
target.deal_blue_damage(skill, amount)
.into_iter()
.for_each(|e| results.push(Resolution::new(source, target).event(e).stages(EventStages::PostOnly)));
results.push(Resolution::new(source, target) results.push(Resolution::new(source, target)
.event(target.add_effect(skill, skill.effect()[0])) .event(target.add_effect(skill, skill.effect()[0]))
.stages(EventStages::PostOnly)); .stages(EventStages::PostOnly));