skip co, remove absorb buff when you get absorption, don't trigger some effects when ko
This commit is contained in:
parent
dab3b8da53
commit
765d82bc62
@ -10,6 +10,8 @@
|
|||||||
|
|
||||||
* can't reset password without knowing password =\
|
* can't reset password without knowing password =\
|
||||||
|
|
||||||
|
* Display skill colours during combat
|
||||||
|
|
||||||
## SOON (Before or After PAX)
|
## SOON (Before or After PAX)
|
||||||
|
|
||||||
* bot game grind
|
* bot game grind
|
||||||
|
|||||||
@ -74,8 +74,8 @@ function getObjects(resolution, stages, game, account) {
|
|||||||
function getSequence(resolution) {
|
function getSequence(resolution) {
|
||||||
if (!resolution.event) return [];
|
if (!resolution.event) return [];
|
||||||
if (resolution.event[0] === 'Inversion') return [];
|
if (resolution.event[0] === 'Inversion') return [];
|
||||||
|
if (['TargetKo', 'Ko'].includes(resolution.event[0])) return [];
|
||||||
if (['Skill', 'AoeSkill'].includes(resolution.event[0])) return ['START_SKILL', 'END_SKILL'];
|
if (['Skill', 'AoeSkill'].includes(resolution.event[0])) return ['START_SKILL', 'END_SKILL'];
|
||||||
if (resolution.event[0] === 'Ko') return ['POST_SKILL'];
|
|
||||||
|
|
||||||
switch (resolution.stages) {
|
switch (resolution.stages) {
|
||||||
case 'AllStages': return ['START_SKILL', 'END_SKILL', 'POST_SKILL'];
|
case 'AllStages': return ['START_SKILL', 'END_SKILL', 'POST_SKILL'];
|
||||||
|
|||||||
@ -305,7 +305,7 @@ fn post_resolve(_skill: Skill, game: &mut Game, mut resolutions: Resolutions) ->
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if target.affected(Effect::Absorb) {
|
if target.affected(Effect::Absorb) && !target.is_ko() {
|
||||||
let ConstructEffect { effect: _, duration: _, meta, tick: _ } = target.effects.iter()
|
let ConstructEffect { effect: _, duration: _, meta, tick: _ } = target.effects.iter()
|
||||||
.find(|e| e.effect == Effect::Absorb).unwrap().clone();
|
.find(|e| e.effect == Effect::Absorb).unwrap().clone();
|
||||||
match meta {
|
match meta {
|
||||||
@ -316,7 +316,7 @@ fn post_resolve(_skill: Skill, game: &mut Game, mut resolutions: Resolutions) ->
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
if c == Colour::Red {
|
if c == Colour::Red {
|
||||||
if target.affected(Effect::Counter) {
|
if target.affected(Effect::Counter) && !target.is_ko() {
|
||||||
let ConstructEffect { effect: _, duration: _, meta, tick: _ } = target.effects.iter()
|
let ConstructEffect { effect: _, duration: _, meta, tick: _ } = target.effects.iter()
|
||||||
.find(|e| e.effect == Effect::Counter).unwrap().clone();
|
.find(|e| e.effect == Effect::Counter).unwrap().clone();
|
||||||
match meta {
|
match meta {
|
||||||
@ -1584,9 +1584,17 @@ fn absorb(source: &mut Construct, target: &mut Construct, mut results: Resolutio
|
|||||||
|
|
||||||
fn absorption(source: &mut Construct, target: &mut Construct, mut results: Resolutions, reflect_skill: Skill, amount: u64, skill: Skill) -> Resolutions {
|
fn absorption(source: &mut Construct, target: &mut Construct, mut results: Resolutions, reflect_skill: Skill, amount: u64, skill: Skill) -> Resolutions {
|
||||||
let absorb = skill.effect()[0].set_meta(EffectMeta::AddedDamage(amount));
|
let absorb = skill.effect()[0].set_meta(EffectMeta::AddedDamage(amount));
|
||||||
|
|
||||||
results.push(Resolution::new(source, target)
|
results.push(Resolution::new(source, target)
|
||||||
.event(target.add_effect(reflect_skill, absorb))
|
.event(target.add_effect(reflect_skill, absorb))
|
||||||
.stages(EventStages::PostOnly));
|
.stages(EventStages::PostOnly));
|
||||||
|
|
||||||
|
let absorb_index = target.effects.iter().position(|e| e.effect == Effect::Absorb).expect("No absorb");
|
||||||
|
let ce = target.effects.remove(absorb_index);
|
||||||
|
|
||||||
|
results.push(Resolution::new(source, target)
|
||||||
|
.event(Event::Removal { effect: ce.effect, construct_effects: target.effects.clone() })
|
||||||
|
.stages(EventStages::PostOnly));
|
||||||
return results;;
|
return results;;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user