modified multis, cleaned up anims
This commit is contained in:
parent
50bc93073b
commit
b922c3d539
@ -7,7 +7,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
### Fixed
|
### Fixed
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
## [0.1.2] - YYYY-MM-DD
|
## [0.1.2] - 2019-05-07
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
(Proposed changes not all impl)
|
(Proposed changes not all impl)
|
||||||
@ -21,7 +21,7 @@ New skill `Impurity`
|
|||||||
Combines - Buff + GB
|
Combines - Buff + GB
|
||||||
New buff that does the following -
|
New buff that does the following -
|
||||||
Increase target green damage by 50%
|
Increase target green damage by 50%
|
||||||
Blue attacks do an additional blast equal to 20% source green damage
|
Blue attacks do an additional blast equal to 25% source green damage
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
@ -51,6 +51,7 @@ New skill `Impurity`
|
|||||||
Changed to Buff + RG (was Buff + RB)
|
Changed to Buff + RG (was Buff + RB)
|
||||||
Buff causes target to deal an extra attack when using red attack base skills (strike / slay / chaos)
|
Buff causes target to deal an extra attack when using red attack base skills (strike / slay / chaos)
|
||||||
Extra attack does 25% source speed as red damage
|
Extra attack does 25% source speed as red damage
|
||||||
|
Cooldown increased to 2T
|
||||||
|
|
||||||
- Heal
|
- Heal
|
||||||
Changed multiplier 120% -> 130%
|
Changed multiplier 120% -> 130%
|
||||||
@ -69,6 +70,9 @@ New skill `Impurity`
|
|||||||
Changed to Buff + RR (was Buff + RG)
|
Changed to Buff + RR (was Buff + RG)
|
||||||
Now recharges 80% source red damage as red life to target
|
Now recharges 80% source red damage as red life to target
|
||||||
|
|
||||||
|
- Throw
|
||||||
|
Stun duration reduced from 2T -> 1T
|
||||||
|
|
||||||
- Triage
|
- Triage
|
||||||
Multiplier changed 65% -> 75%
|
Multiplier changed 65% -> 75%
|
||||||
|
|
||||||
|
|||||||
@ -236,7 +236,10 @@ function getCombatSequence(event) {
|
|||||||
|
|
||||||
|
|
||||||
if (['Effect'].includes(event[0])
|
if (['Effect'].includes(event[0])
|
||||||
&& event[1].skill === 'Decay' && event[1].effect === 'Wither') return ['POST_SKILL'];
|
&& ((event[1].skill === 'Decay' && event[1].effect === 'Wither')
|
||||||
|
|| event[1].skill === 'Ruin'
|
||||||
|
|| event[1].skill === 'Taunt'
|
||||||
|
|| event[1].skill === 'Strangling')) return ['POST_SKILL'];
|
||||||
|
|
||||||
if (['Damage'].includes(event[0])
|
if (['Damage'].includes(event[0])
|
||||||
&& ((event[1].skill === 'Chaos' && event[1].colour === 'RedDamage')
|
&& ((event[1].skill === 'Chaos' && event[1].colour === 'RedDamage')
|
||||||
|
|||||||
@ -1206,7 +1206,6 @@ mod tests {
|
|||||||
|
|
||||||
assert!(game.skill_phase_finished());
|
assert!(game.skill_phase_finished());
|
||||||
game = game.resolve_phase_start();
|
game = game.resolve_phase_start();
|
||||||
game.resolved.remove(0);
|
|
||||||
let ruins = game.resolved
|
let ruins = game.resolved
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.filter(|r| {
|
.filter(|r| {
|
||||||
@ -1217,7 +1216,8 @@ mod tests {
|
|||||||
assert!(*effect == Effect::Ruin);
|
assert!(*effect == Effect::Ruin);
|
||||||
assert!(*duration == 1);
|
assert!(*duration == 1);
|
||||||
true
|
true
|
||||||
}
|
},
|
||||||
|
Event::Skill { skill } => false,
|
||||||
_ => panic!("ruin result not effect {:?}", event),
|
_ => panic!("ruin result not effect {:?}", event),
|
||||||
}
|
}
|
||||||
false => false,
|
false => false,
|
||||||
@ -1256,7 +1256,7 @@ mod tests {
|
|||||||
|
|
||||||
game = game.resolve_phase_start();
|
game = game.resolve_phase_start();
|
||||||
|
|
||||||
assert!(game.resolved.len() == 4);
|
assert!(game.resolved.len() == 5);
|
||||||
while let Some(r) = game.resolved.pop() {
|
while let Some(r) = game.resolved.pop() {
|
||||||
let Resolution { source , target, event: _ } = r;
|
let Resolution { source , target, event: _ } = r;
|
||||||
if [i_cryp.id, j_cryp.id].contains(&source.id) {
|
if [i_cryp.id, j_cryp.id].contains(&source.id) {
|
||||||
|
|||||||
@ -271,7 +271,7 @@ impl Instance {
|
|||||||
fn next_round(&mut self) -> &mut Instance {
|
fn next_round(&mut self) -> &mut Instance {
|
||||||
self.phase = InstancePhase::InProgress;
|
self.phase = InstancePhase::InProgress;
|
||||||
self.phase_end = Utc::now()
|
self.phase_end = Utc::now()
|
||||||
.checked_add_signed(Duration::seconds(12000))
|
.checked_add_signed(Duration::seconds(150))
|
||||||
.expect("could not set phase end");
|
.expect("could not set phase end");
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -585,15 +585,15 @@ impl Skill {
|
|||||||
match self {
|
match self {
|
||||||
// Attack Base
|
// Attack Base
|
||||||
Skill::Attack => 80, // Base
|
Skill::Attack => 80, // Base
|
||||||
|
|
||||||
Skill::Blast => 110, // BB
|
Skill::Blast => 110, // BB
|
||||||
Skill::Chaos => 40, // BR
|
Skill::Chaos => 40, // BR
|
||||||
Skill::Heal => 130, //GG
|
Skill::Heal => 130, //GG
|
||||||
Skill::SiphonTick => 40, // GB
|
Skill::SiphonTick => 40, // GB
|
||||||
Skill::Slay => 70, // RG
|
Skill::Slay => 70, // RG
|
||||||
|
|
||||||
Skill::Strike => 90, //RR
|
Skill::Strike => 90, //RR
|
||||||
Skill::StrikeII => 110,
|
Skill::StrikeII => 110,
|
||||||
Skill::StrikeIII => 130,
|
Skill::StrikeIII => 130,
|
||||||
|
|
||||||
// Block Base
|
// Block Base
|
||||||
Skill::CorruptionTick => 80,
|
Skill::CorruptionTick => 80,
|
||||||
@ -614,8 +614,10 @@ impl Skill {
|
|||||||
// Buff base
|
// Buff base
|
||||||
Skill::ImpureBlast => 25,
|
Skill::ImpureBlast => 25,
|
||||||
Skill::HasteStrike => 30,
|
Skill::HasteStrike => 30,
|
||||||
|
Skill::Taunt => 80,
|
||||||
Skill::TriageTick => 75,
|
Skill::TriageTick => 75,
|
||||||
|
|
||||||
|
|
||||||
_ => 100,
|
_ => 100,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -635,10 +637,10 @@ impl Skill {
|
|||||||
Skill::Stun => 2,
|
Skill::Stun => 2,
|
||||||
Skill::Sleep => 3,
|
Skill::Sleep => 3,
|
||||||
|
|
||||||
Skill::Throw => 2,
|
Skill::Throw => 1,
|
||||||
Skill::Snare => 3,
|
Skill::Snare => 3,
|
||||||
|
|
||||||
Skill::Taunt => 1,
|
Skill::Taunt => 2,
|
||||||
Skill::Impurity => 3,
|
Skill::Impurity => 3,
|
||||||
Skill::Invert => 1,
|
Skill::Invert => 1,
|
||||||
|
|
||||||
@ -716,7 +718,7 @@ impl Skill {
|
|||||||
Skill::Purge => None,
|
Skill::Purge => None,
|
||||||
Skill::Banish => Some(1),
|
Skill::Banish => Some(1),
|
||||||
Skill::Hex => Some(1),
|
Skill::Hex => Some(1),
|
||||||
Skill::Haste => None,
|
Skill::Haste => Some(2),
|
||||||
Skill::HasteStrike => None, // Used in haste
|
Skill::HasteStrike => None, // Used in haste
|
||||||
|
|
||||||
Skill::Slow => None,
|
Skill::Slow => None,
|
||||||
@ -729,7 +731,7 @@ impl Skill {
|
|||||||
Skill::Strangle => Some(2),
|
Skill::Strangle => Some(2),
|
||||||
Skill::StrangleTick => None,
|
Skill::StrangleTick => None,
|
||||||
Skill::Clutch => Some(2),
|
Skill::Clutch => Some(2),
|
||||||
Skill::Taunt => Some(1),
|
Skill::Taunt => Some(2),
|
||||||
Skill::Injure => Some(2),
|
Skill::Injure => Some(2),
|
||||||
|
|
||||||
Skill::Corrupt => Some(1),
|
Skill::Corrupt => Some(1),
|
||||||
@ -862,7 +864,6 @@ impl Skill {
|
|||||||
Skill::Block => true,
|
Skill::Block => true,
|
||||||
Skill::Parry => true,
|
Skill::Parry => true,
|
||||||
Skill::Clutch => true,
|
Skill::Clutch => true,
|
||||||
// Skill::Taunt => true,
|
|
||||||
Skill::Corrupt => true,
|
Skill::Corrupt => true,
|
||||||
|
|
||||||
Skill::TestBlock => true,
|
Skill::TestBlock => true,
|
||||||
@ -958,6 +959,9 @@ fn clutch(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill:
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn taunt(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
fn taunt(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||||
|
let red_amount = source.red_damage().pct(skill.multiplier());
|
||||||
|
results.push(Resolution::new(source, target).event(target.recharge(skill, red_amount, 0)));
|
||||||
|
|
||||||
let effect = CrypEffect::new(Effect::Taunt, skill.duration());
|
let effect = CrypEffect::new(Effect::Taunt, skill.duration());
|
||||||
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)));
|
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)));
|
||||||
return results;
|
return results;
|
||||||
@ -1028,13 +1032,13 @@ fn snare(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill:
|
|||||||
let snare = CrypEffect::new(Effect::Snare, skill.duration());
|
let snare = CrypEffect::new(Effect::Snare, skill.duration());
|
||||||
results.push(Resolution::new(source, target).event(target.add_effect(skill, snare)));
|
results.push(Resolution::new(source, target).event(target.add_effect(skill, snare)));
|
||||||
|
|
||||||
let mut s_multi: u64 = 100;
|
let s_multi = target.skills
|
||||||
for cs in target.skills.iter() {
|
.iter()
|
||||||
s_multi += match cs.skill.category() {
|
.fold(100, |acc, cs| match cs.skill.category() {
|
||||||
Category::Red => 45,
|
Category::Red => acc + 45,
|
||||||
_ => 0,
|
_ => acc,
|
||||||
}
|
});
|
||||||
}
|
|
||||||
|
|
||||||
let amount = source.red_damage().pct(skill.multiplier()).pct(s_multi);
|
let amount = source.red_damage().pct(skill.multiplier()).pct(s_multi);
|
||||||
target.deal_red_damage(skill, amount)
|
target.deal_red_damage(skill, amount)
|
||||||
@ -1173,7 +1177,7 @@ fn corruption_tick(source: &mut Cryp, target: &mut Cryp, mut results: Resolution
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn ruin(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
fn ruin(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||||
// results.push(Resolution::new(source, target).event(Event::Skill { skill }));
|
results.push(Resolution::new(source, target).event(Event::Skill { skill }));
|
||||||
let effect = CrypEffect::new(Effect::Ruin, skill.duration());
|
let effect = CrypEffect::new(Effect::Ruin, skill.duration());
|
||||||
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)));
|
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)));
|
||||||
return results;;
|
return results;;
|
||||||
@ -1274,13 +1278,12 @@ fn silence(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill
|
|||||||
let silence = CrypEffect::new(Effect::Silence, skill.duration());
|
let silence = CrypEffect::new(Effect::Silence, skill.duration());
|
||||||
results.push(Resolution::new(source, target).event(target.add_effect(skill, silence)));
|
results.push(Resolution::new(source, target).event(target.add_effect(skill, silence)));
|
||||||
|
|
||||||
let mut s_multi: u64 = 100;
|
let s_multi = target.skills
|
||||||
for cs in target.skills.iter() {
|
.iter()
|
||||||
s_multi += match cs.skill.category() {
|
.fold(100, |acc, cs| match cs.skill.category() {
|
||||||
Category::Blue => 45,
|
Category::Blue => acc + 45,
|
||||||
_ => 0,
|
_ => acc,
|
||||||
}
|
});
|
||||||
}
|
|
||||||
|
|
||||||
let amount = source.blue_damage().pct(skill.multiplier()).pct(s_multi);
|
let amount = source.blue_damage().pct(skill.multiplier()).pct(s_multi);
|
||||||
target.deal_blue_damage(skill, amount)
|
target.deal_blue_damage(skill, amount)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user