remove double tick dots, lose electrify on application
This commit is contained in:
parent
494b572cb9
commit
defcadbad2
@ -10,6 +10,8 @@
|
||||
|
||||
* can't reset password without knowing password =\
|
||||
|
||||
* fix recharge combat display bug
|
||||
|
||||
## SOON (Before or After PAX)
|
||||
|
||||
* bot game grind
|
||||
@ -45,6 +47,8 @@
|
||||
reconnect based on time delta
|
||||
consolidate game and instance
|
||||
|
||||
* return of the combat log (last few events with condensed descriptions)
|
||||
- click in to scroll
|
||||
* elo + leaderboards
|
||||
|
||||
* mnml tv
|
||||
|
||||
@ -779,7 +779,7 @@ impl Skill {
|
||||
Skill::BashPlusPlus => 140,
|
||||
|
||||
// Debuff Base
|
||||
Skill::DecayTick=> 25,
|
||||
Skill::DecayTick=> 33,
|
||||
Skill::DecayTickPlus => 45,
|
||||
Skill::DecayTickPlusPlus => 70,
|
||||
Skill::Silence=> 55, // Deals more per blue skill on target
|
||||
@ -1458,6 +1458,7 @@ fn heal(source: &mut Construct, target: &mut Construct, mut results: Resolutions
|
||||
}
|
||||
|
||||
fn triage(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
let skip_tick = target.effects.iter().any(|e| e.effect == Effect::Triage);
|
||||
let ConstructEffect { effect, duration, meta, tick: _ } = skill.effect()[0];
|
||||
let tick_skill = match meta {
|
||||
Some(EffectMeta::Skill(s)) => s,
|
||||
@ -1465,7 +1466,11 @@ fn triage(source: &mut Construct, target: &mut Construct, mut results: Resolutio
|
||||
};
|
||||
let triage = ConstructEffect::new(effect, duration).set_tick(Cast::new_tick(source, target, tick_skill));
|
||||
results.push(Resolution::new(source, target).event(target.add_effect(skill, triage)));
|
||||
return triage_tick(source, target, results, tick_skill);
|
||||
|
||||
match skip_tick {
|
||||
true => return results,
|
||||
false => return triage_tick(source, target, results, tick_skill)
|
||||
}
|
||||
}
|
||||
|
||||
fn triage_tick(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
@ -1519,6 +1524,7 @@ fn decay(source: &mut Construct, target: &mut Construct, mut results: Resolution
|
||||
let wither = skill.effect()[0];
|
||||
results.push(Resolution::new(source, target).event(target.add_effect(skill, wither)));
|
||||
|
||||
let skip_tick = target.effects.iter().any(|e| e.effect == Effect::Decay);
|
||||
let ConstructEffect { effect, duration, meta, tick: _ } = skill.effect()[1];
|
||||
let tick_skill = match meta {
|
||||
Some(EffectMeta::Skill(s)) => s,
|
||||
@ -1529,7 +1535,10 @@ fn decay(source: &mut Construct, target: &mut Construct, mut results: Resolution
|
||||
.event(target.add_effect(skill, decay))
|
||||
.stages(EventStages::PostOnly));
|
||||
|
||||
return decay_tick(source, target, results, tick_skill);
|
||||
match skip_tick {
|
||||
true => return results,
|
||||
false => return decay_tick(source, target, results, tick_skill)
|
||||
}
|
||||
}
|
||||
|
||||
fn decay_tick(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
@ -1549,17 +1558,32 @@ fn electrify(source: &mut Construct, target: &mut Construct, mut results: Resolu
|
||||
}
|
||||
|
||||
fn electrocute(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
// Remove electric buff, no need to display if construct is dead
|
||||
if !source.is_ko() {
|
||||
let electric = source.effects.iter().position(|e| e.effect == Effect::Electric).expect("No electrify");
|
||||
let ce = source.effects.remove(electric);
|
||||
results.push(Resolution::new(source, source)
|
||||
.event(Event::Removal { effect: ce.effect, construct_effects: source.effects.clone() })
|
||||
.stages(EventStages::PostOnly));
|
||||
}
|
||||
|
||||
let ConstructEffect { effect, duration, meta, tick: _ } = skill.effect()[0];
|
||||
let tick_skill = match meta {
|
||||
Some(EffectMeta::Skill(s)) => s,
|
||||
_ => panic!("no electrocute tick skill"),
|
||||
};
|
||||
|
||||
let skip_tick = target.effects.iter().any(|e| e.effect == Effect::Electrocute);
|
||||
let electrocute = ConstructEffect::new(effect, duration).set_tick(Cast::new_tick(source, target, tick_skill));
|
||||
results.push(Resolution::new(source, target)
|
||||
.event(target.add_effect(skill, electrocute))
|
||||
.stages(EventStages::EndPost));
|
||||
return electrocute_tick(source, target, results, tick_skill);
|
||||
|
||||
|
||||
match skip_tick {
|
||||
true => return results,
|
||||
false => return electrocute_tick(source, target, results, tick_skill)
|
||||
}
|
||||
}
|
||||
|
||||
fn electrocute_tick(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
@ -1633,6 +1657,8 @@ fn recharge(source: &mut Construct, target: &mut Construct, mut results: Resolut
|
||||
}
|
||||
|
||||
fn siphon(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
|
||||
let skip_tick = target.effects.iter().any(|e| e.effect == Effect::Siphon);
|
||||
let ConstructEffect { effect, duration, meta, tick: _ } = skill.effect()[0];
|
||||
let tick_skill = match meta {
|
||||
Some(EffectMeta::Skill(s)) => s,
|
||||
@ -1641,7 +1667,10 @@ fn siphon(source: &mut Construct, target: &mut Construct, mut results: Resolutio
|
||||
let siphon = ConstructEffect::new(effect, duration).set_tick(Cast::new_tick(source, target, tick_skill));
|
||||
results.push(Resolution::new(source, target).event(target.add_effect(skill, siphon)));
|
||||
|
||||
return siphon_tick(source, target, results, tick_skill);
|
||||
match skip_tick {
|
||||
true => return results,
|
||||
false => return siphon_tick(source, target, results, tick_skill)
|
||||
}
|
||||
}
|
||||
|
||||
fn siphon_tick(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user