skip co, remove absorb buff when you get absorption, don't trigger some effects when ko
This commit is contained in:
+10
-2
@@ -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;;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user