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 =\
|
||||
|
||||
* Display skill colours during combat
|
||||
|
||||
## SOON (Before or After PAX)
|
||||
|
||||
* bot game grind
|
||||
|
||||
@ -74,8 +74,8 @@ function getObjects(resolution, stages, game, account) {
|
||||
function getSequence(resolution) {
|
||||
if (!resolution.event) 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 (resolution.event[0] === 'Ko') return ['POST_SKILL'];
|
||||
|
||||
switch (resolution.stages) {
|
||||
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()
|
||||
.find(|e| e.effect == Effect::Absorb).unwrap().clone();
|
||||
match meta {
|
||||
@ -316,7 +316,7 @@ fn post_resolve(_skill: Skill, game: &mut Game, mut resolutions: Resolutions) ->
|
||||
};
|
||||
}
|
||||
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()
|
||||
.find(|e| e.effect == Effect::Counter).unwrap().clone();
|
||||
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 {
|
||||
let absorb = skill.effect()[0].set_meta(EffectMeta::AddedDamage(amount));
|
||||
|
||||
results.push(Resolution::new(source, target)
|
||||
.event(target.add_effect(reflect_skill, absorb))
|
||||
.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;;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user