remove double tick dots, lose electrify on application

This commit is contained in:
Mashy 2019-10-01 16:34:51 +10:00
parent 494b572cb9
commit defcadbad2
2 changed files with 39 additions and 6 deletions

View File

@ -10,6 +10,8 @@
* can't reset password without knowing password =\ * can't reset password without knowing password =\
* fix recharge combat display bug
## SOON (Before or After PAX) ## SOON (Before or After PAX)
* bot game grind * bot game grind
@ -45,6 +47,8 @@
reconnect based on time delta reconnect based on time delta
consolidate game and instance consolidate game and instance
* return of the combat log (last few events with condensed descriptions)
- click in to scroll
* elo + leaderboards * elo + leaderboards
* mnml tv * mnml tv

View File

@ -779,7 +779,7 @@ impl Skill {
Skill::BashPlusPlus => 140, Skill::BashPlusPlus => 140,
// Debuff Base // Debuff Base
Skill::DecayTick=> 25, 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
@ -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 { 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 ConstructEffect { effect, duration, meta, tick: _ } = skill.effect()[0];
let tick_skill = match meta { let tick_skill = match meta {
Some(EffectMeta::Skill(s)) => s, 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)); 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))); 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 { 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]; let wither = skill.effect()[0];
results.push(Resolution::new(source, target).event(target.add_effect(skill, wither))); 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 ConstructEffect { effect, duration, meta, tick: _ } = skill.effect()[1];
let tick_skill = match meta { let tick_skill = match meta {
Some(EffectMeta::Skill(s)) => s, 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)) .event(target.add_effect(skill, decay))
.stages(EventStages::PostOnly)); .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 { 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 { 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 ConstructEffect { effect, duration, meta, tick: _ } = skill.effect()[0];
let tick_skill = match meta { let tick_skill = match meta {
Some(EffectMeta::Skill(s)) => s, Some(EffectMeta::Skill(s)) => s,
_ => panic!("no electrocute tick skill"), _ => 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)); let electrocute = ConstructEffect::new(effect, duration).set_tick(Cast::new_tick(source, target, tick_skill));
results.push(Resolution::new(source, target) results.push(Resolution::new(source, target)
.event(target.add_effect(skill, electrocute)) .event(target.add_effect(skill, electrocute))
.stages(EventStages::EndPost)); .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 { 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 { 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 ConstructEffect { effect, duration, meta, tick: _ } = skill.effect()[0];
let tick_skill = match meta { let tick_skill = match meta {
Some(EffectMeta::Skill(s)) => s, 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)); 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))); 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 { fn siphon_tick(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {