fix recharge show current red / blue life during combat, skip if 0 recharge and apply css

This commit is contained in:
Mashy 2019-10-02 16:06:39 +10:00
parent 16d319c706
commit 962b72b85f
3 changed files with 45 additions and 18 deletions

View File

@ -10,8 +10,6 @@
* can't reset password without knowing password =\
* fix recharge combat display bug
## SOON (Before or After PAX)
* bot game grind

View File

@ -177,7 +177,10 @@ function getText(resolution, sequence) {
if (type === 'Recharge') {
const { red, blue } = event;
return { text: [`+${red}R ${blue}B`, ''], css: '' };
if (red > 0 && blue > 0) return { text: [`+${red}R +${blue}B`, ''], css: 'purple-damage' };
if (red > 0) return { text: [`+${red}R`, ''], css: 'red-damage' };
if (blue > 0) return { text: [`+${blue}B`, ''], css: 'blue-damage' };
return nullText;
}
if (type === 'Removal') {

View File

@ -1358,22 +1358,36 @@ fn sleep(source: &mut Construct, target: &mut Construct, mut results: Resolution
fn sustain(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
let red_amount = source.red_power().pct(skill.multiplier());
results.push(Resolution::new(source, target)
.event(target.recharge(skill, red_amount, 0)));
results.push(Resolution::new(source, target).event(target.add_effect(skill, skill.effect()[0])));
let e = target.recharge(skill, red_amount, 0);
let stages = match e {
Event::Recharge { red, blue, skill: _ } => {
if red > 0 || blue > 0 { EventStages::PostOnly }
else { EventStages::None }
}
_ => panic!("not recharge")
};
results.push(Resolution::new(source, target)
.event(target.add_effect(skill, skill.effect()[0]))
.stages(EventStages::PostOnly));
results.push(Resolution::new(source, target).event(e).stages(stages));
return results;
}
fn intercept(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
let red_amount = source.red_power().pct(skill.multiplier());
results.push(Resolution::new(source, target).event(target.recharge(skill, red_amount, 0)));
let intercept = skill.effect()[0];
results.push(Resolution::new(source, target).event(target.add_effect(skill, intercept)).stages(EventStages::PostOnly));
results.push(Resolution::new(source, target).event(target.add_effect(skill, intercept)));
let red_amount = source.red_power().pct(skill.multiplier());
let e = target.recharge(skill, red_amount, 0);
let stages = match e {
Event::Recharge { red, blue, skill: _ } => {
if red > 0 || blue > 0 { EventStages::PostOnly }
else { EventStages::None }
}
_ => panic!("not recharge")
};
results.push(Resolution::new(source, target).event(e).stages(stages));
return results;
}
@ -1656,18 +1670,30 @@ fn reflect(source: &mut Construct, target: &mut Construct, mut results: Resoluti
results.push(Resolution::new(source, target).event(target.add_effect(skill, skill.effect()[0])));
let blue_amount = source.blue_power().pct(skill.multiplier());
results.push(Resolution::new(source, target)
.event(target.recharge(skill, 0, blue_amount))
.stages(EventStages::PostOnly));
let e = target.recharge(skill, 0, blue_amount);
let stages = match e {
Event::Recharge { red, blue, skill: _ } => {
if red > 0 || blue > 0 { EventStages::PostOnly }
else { EventStages::None }
}
_ => panic!("not recharge")
};
results.push(Resolution::new(source, target).event(e).stages(stages));
return results;;
}
fn recharge(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
let red_amount = source.red_power().pct(skill.multiplier());
let blue_amount = source.blue_power().pct(skill.multiplier());
results.push(Resolution::new(source, target).event(target.recharge(skill, red_amount, blue_amount)));
let e = target.recharge(skill, red_amount, blue_amount);
let stages = match e {
Event::Recharge { red, blue, skill: _ } => {
if red > 0 || blue > 0 { EventStages::AllStages }
else { EventStages::StartEnd }
}
_ => panic!("not recharge")
};
results.push(Resolution::new(source, target).event(e).stages(stages));
return results;
}