fix tick speed bug with new application
This commit is contained in:
parent
fa1135170b
commit
8e6048b912
10
WORKLOG.md
10
WORKLOG.md
@ -10,13 +10,6 @@
|
|||||||
|
|
||||||
* clear active mtx after joining game
|
* clear active mtx after joining game
|
||||||
|
|
||||||
* Check results stack for whether a construct has ticked a dot already. Current issue E.g.
|
|
||||||
Construct 1 with slow speed applies siphon round 1 on Enemy Construct 1
|
|
||||||
Construct 2 with fast speed applies siphon round 2 on Enemy Construct 2
|
|
||||||
Siphon tick won't proc at all that turn
|
|
||||||
It assumes the dot has triggered already from existing dot from pre_resolve
|
|
||||||
Instead of checking a dot already exists instead search for a matching dot tick event in results
|
|
||||||
|
|
||||||
* mobile styles
|
* mobile styles
|
||||||
* mobile info page
|
* mobile info page
|
||||||
|
|
||||||
@ -25,9 +18,6 @@
|
|||||||
* can't reset password without knowing password =\
|
* can't reset password without knowing password =\
|
||||||
* Invert recharge
|
* Invert recharge
|
||||||
|
|
||||||
* serde serialize privatise
|
|
||||||
* chat
|
|
||||||
|
|
||||||
* Convert spec 'Plus' -> '+' when it appears as combo text in combiner and in info text
|
* Convert spec 'Plus' -> '+' when it appears as combo text in combiner and in info text
|
||||||
|
|
||||||
## SOON
|
## SOON
|
||||||
|
|||||||
@ -377,9 +377,11 @@ impl Game {
|
|||||||
let mut sorted = self.stack.clone();
|
let mut sorted = self.stack.clone();
|
||||||
sorted.iter_mut()
|
sorted.iter_mut()
|
||||||
.for_each(|s| {
|
.for_each(|s| {
|
||||||
|
if !s.skill.is_tick() {
|
||||||
let caster = self.construct_by_id(s.source_construct_id).unwrap();
|
let caster = self.construct_by_id(s.source_construct_id).unwrap();
|
||||||
let speed = caster.skill_speed(s.skill);
|
let speed = caster.skill_speed(s.skill);
|
||||||
s.speed = speed;
|
s.speed = speed;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
sorted.sort_unstable_by_key(|s| s.speed);
|
sorted.sort_unstable_by_key(|s| s.speed);
|
||||||
|
|||||||
@ -384,7 +384,7 @@ impl Cast {
|
|||||||
source_player_id: source.account,
|
source_player_id: source.account,
|
||||||
target_construct_id: target.id,
|
target_construct_id: target.id,
|
||||||
skill,
|
skill,
|
||||||
speed: 0,
|
speed: source.skill_speed(skill),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1499,7 +1499,13 @@ 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 skip_tick = target.effects.iter().any(|e| {
|
||||||
|
match e.effect {
|
||||||
|
Effect::Triage => source.skill_speed(skill) <= e.tick.unwrap().speed,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
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,
|
||||||
@ -1565,7 +1571,12 @@ 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 skip_tick = target.effects.iter().any(|e| {
|
||||||
|
match e.effect {
|
||||||
|
Effect::Decay => source.skill_speed(skill) <= e.tick.unwrap().speed,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
});
|
||||||
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,
|
||||||
@ -1619,7 +1630,12 @@ fn electrocute(source: &mut Construct, target: &mut Construct, mut results: Reso
|
|||||||
_ => panic!("no electrocute tick skill"),
|
_ => panic!("no electrocute tick skill"),
|
||||||
};
|
};
|
||||||
|
|
||||||
let skip_tick = target.effects.iter().any(|e| e.effect == Effect::Electrocute);
|
let skip_tick = target.effects.iter().any(|e| {
|
||||||
|
match e.effect {
|
||||||
|
Effect::Electrocute => source.skill_speed(skill) <= e.tick.unwrap().speed,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
});
|
||||||
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))
|
||||||
@ -1716,7 +1732,12 @@ 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 skip_tick = target.effects.iter().any(|e| {
|
||||||
|
match e.effect {
|
||||||
|
Effect::Siphon => source.skill_speed(skill) <= e.tick.unwrap().speed,
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
});
|
||||||
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,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user