corruption t2/t3, chaos is now 0-30% MORE
This commit is contained in:
parent
7d2ad82800
commit
0971c3a2e2
@ -1179,14 +1179,14 @@ mod tests {
|
|||||||
let x_construct = x_player.constructs[0].clone();
|
let x_construct = x_player.constructs[0].clone();
|
||||||
let y_construct = y_player.constructs[0].clone();
|
let y_construct = y_player.constructs[0].clone();
|
||||||
|
|
||||||
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::Corrupt);
|
game.construct_by_id(x_construct.id).unwrap().learn_mut(Skill::CorruptI);
|
||||||
|
|
||||||
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::Corrupt).is_some() {
|
while game.construct_by_id(x_construct.id).unwrap().skill_on_cd(Skill::CorruptI).is_some() {
|
||||||
game.construct_by_id(x_construct.id).unwrap().reduce_cooldowns();
|
game.construct_by_id(x_construct.id).unwrap().reduce_cooldowns();
|
||||||
}
|
}
|
||||||
|
|
||||||
// apply buff
|
// apply buff
|
||||||
game.add_skill(x_player.id, x_construct.id, None, Skill::Corrupt).unwrap();
|
game.add_skill(x_player.id, x_construct.id, None, Skill::CorruptI).unwrap();
|
||||||
game.player_ready(x_player.id).unwrap();
|
game.player_ready(x_player.id).unwrap();
|
||||||
game.player_ready(y_player.id).unwrap();
|
game.player_ready(y_player.id).unwrap();
|
||||||
game = game.resolve_phase_start();
|
game = game.resolve_phase_start();
|
||||||
|
|||||||
@ -61,7 +61,9 @@ pub enum Item {
|
|||||||
ClutchI,
|
ClutchI,
|
||||||
ClutchII,
|
ClutchII,
|
||||||
ClutchIII,
|
ClutchIII,
|
||||||
Corrupt,
|
CorruptI,
|
||||||
|
CorruptII,
|
||||||
|
CorruptIII,
|
||||||
CurseI,
|
CurseI,
|
||||||
CurseII,
|
CurseII,
|
||||||
CurseIII,
|
CurseIII,
|
||||||
@ -320,7 +322,9 @@ impl Item {
|
|||||||
Item::ThrowI => Some(Skill::ThrowI),
|
Item::ThrowI => Some(Skill::ThrowI),
|
||||||
Item::ThrowII => Some(Skill::ThrowII),
|
Item::ThrowII => Some(Skill::ThrowII),
|
||||||
Item::ThrowIII => Some(Skill::ThrowIII),
|
Item::ThrowIII => Some(Skill::ThrowIII),
|
||||||
Item::Corrupt => Some(Skill::Corrupt),
|
Item::CorruptI => Some(Skill::CorruptI),
|
||||||
|
Item::CorruptII => Some(Skill::CorruptII),
|
||||||
|
Item::CorruptIII => Some(Skill::CorruptIII),
|
||||||
Item::TriageI => Some(Skill::TriageI),
|
Item::TriageI => Some(Skill::TriageI),
|
||||||
Item::TriageII => Some(Skill::TriageII),
|
Item::TriageII => Some(Skill::TriageII),
|
||||||
Item::TriageIII => Some(Skill::TriageIII),
|
Item::TriageIII => Some(Skill::TriageIII),
|
||||||
@ -442,18 +446,20 @@ impl Item {
|
|||||||
Item::ChaosI |
|
Item::ChaosI |
|
||||||
Item::ChaosII |
|
Item::ChaosII |
|
||||||
Item::ChaosIII => format!(
|
Item::ChaosIII => format!(
|
||||||
"Hits twice for red and blue damage. Damage is random 0 to 30% + {:?}% red and blue power.",
|
"Hits twice for red and blue damage. Damage {:?}% red and blue power. Randomly deals 0 to 30% more damage",
|
||||||
self.into_skill().unwrap().multiplier()),
|
self.into_skill().unwrap().multiplier()),
|
||||||
|
|
||||||
Item::ClutchI |
|
Item::ClutchI |
|
||||||
Item::ClutchII |
|
Item::ClutchII |
|
||||||
Item::ClutchIII => format!("Construct cannot be KO'd while active. Additionally provides immunity to disables."),
|
Item::ClutchIII => format!("Construct cannot be KO'd while active. Additionally provides immunity to disables."),
|
||||||
|
|
||||||
Item::Corrupt => format!(
|
Item::CorruptI |
|
||||||
|
Item::CorruptII |
|
||||||
|
Item::CorruptIII => format!(
|
||||||
"Self targetting defensive for {:?}T. Applies corrupt to attackers dealing BlueDamage {:?}% \
|
"Self targetting defensive for {:?}T. Applies corrupt to attackers dealing BlueDamage {:?}% \
|
||||||
BluePower per turn for {:?}T.",
|
BluePower per turn for {:?}T.",
|
||||||
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
||||||
Skill::Corrupt.multiplier(),
|
Skill::CorruptI.multiplier(), // TO BE FIXT
|
||||||
self.into_skill().unwrap().effect().last().unwrap().get_duration()),
|
self.into_skill().unwrap().effect().last().unwrap().get_duration()),
|
||||||
|
|
||||||
Item::CurseI |
|
Item::CurseI |
|
||||||
@ -535,7 +541,7 @@ impl Item {
|
|||||||
Item::RechargeI |
|
Item::RechargeI |
|
||||||
Item::RechargeII |
|
Item::RechargeII |
|
||||||
Item::RechargeIII => format!(
|
Item::RechargeIII => format!(
|
||||||
"Recharge red and blue shield based on {:?} red and blue power",
|
"Recharge Red and Blue Life based on {:?} RedPower and BluePower",
|
||||||
self.into_skill().unwrap().multiplier()),
|
self.into_skill().unwrap().multiplier()),
|
||||||
|
|
||||||
Item::RuinI |
|
Item::RuinI |
|
||||||
@ -558,12 +564,6 @@ impl Item {
|
|||||||
self.into_skill().unwrap().multiplier(),
|
self.into_skill().unwrap().multiplier(),
|
||||||
"Deals 45% more Damage per blue skill on target"),
|
"Deals 45% more Damage per blue skill on target"),
|
||||||
|
|
||||||
Item::RechargeI |
|
|
||||||
Item::RechargeII |
|
|
||||||
Item::RechargeIII => format!(
|
|
||||||
"Recharge Red and Blue Life based on {:?} RedPower and BluePower",
|
|
||||||
self.into_skill().unwrap().multiplier()),
|
|
||||||
|
|
||||||
Item::SlayI |
|
Item::SlayI |
|
||||||
Item::SlayII |
|
Item::SlayII |
|
||||||
Item::SlayIII => format!(
|
Item::SlayIII => format!(
|
||||||
@ -675,7 +675,9 @@ impl Item {
|
|||||||
Item::PurifyI => vec![Item::Block, Item::Green, Item::Green],
|
Item::PurifyI => vec![Item::Block, Item::Green, Item::Green],
|
||||||
Item::PurifyII => vec![Item::PurifyI, Item::PurifyI, Item::PurifyI],
|
Item::PurifyII => vec![Item::PurifyI, Item::PurifyI, Item::PurifyI],
|
||||||
Item::PurifyIII => vec![Item::PurifyII, Item::PurifyII, Item::PurifyII],
|
Item::PurifyIII => vec![Item::PurifyII, Item::PurifyII, Item::PurifyII],
|
||||||
Item::Corrupt => vec![Item::Block, Item::Blue, Item::Blue],
|
Item::CorruptI => vec![Item::Block, Item::Blue, Item::Blue],
|
||||||
|
Item::CorruptII => vec![Item::CorruptI, Item::CorruptI, Item::CorruptI],
|
||||||
|
Item::CorruptIII => vec![Item::CorruptII, Item::CorruptII, Item::CorruptII],
|
||||||
Item::ClutchI => vec![Item::Block, Item::Red, Item::Green],
|
Item::ClutchI => vec![Item::Block, Item::Red, Item::Green],
|
||||||
Item::ClutchII => vec![Item::ClutchI, Item::ClutchI, Item::ClutchI],
|
Item::ClutchII => vec![Item::ClutchI, Item::ClutchI, Item::ClutchI],
|
||||||
Item::ClutchIII => vec![Item::ClutchII, Item::ClutchII, Item::ClutchII],
|
Item::ClutchIII => vec![Item::ClutchII, Item::ClutchII, Item::ClutchII],
|
||||||
@ -843,9 +845,9 @@ impl From<Skill> for Item {
|
|||||||
Skill::TriageI => Item::TriageI,
|
Skill::TriageI => Item::TriageI,
|
||||||
Skill::TriageII => Item::TriageII,
|
Skill::TriageII => Item::TriageII,
|
||||||
Skill::TriageIII => Item::TriageIII,
|
Skill::TriageIII => Item::TriageIII,
|
||||||
Skill::Corrupt => Item::Corrupt,
|
Skill::CorruptI => Item::CorruptI,
|
||||||
|
Skill::CorruptII => Item::CorruptII,
|
||||||
Skill::CorruptionTick => Item::Corrupt,
|
Skill::CorruptIII => Item::CorruptIII,
|
||||||
|
|
||||||
Skill::TestTouch => Item::TestTouch,
|
Skill::TestTouch => Item::TestTouch,
|
||||||
Skill::TestStun => Item::TestStun,
|
Skill::TestStun => Item::TestStun,
|
||||||
@ -910,6 +912,8 @@ pub fn get_combos() -> Vec<Combo> {
|
|||||||
Combo { components: Item::ScatterIII.combo(), item: Item::ScatterIII },
|
Combo { components: Item::ScatterIII.combo(), item: Item::ScatterIII },
|
||||||
|
|
||||||
Combo { components: Item::Haste.combo(), item: Item::Haste },
|
Combo { components: Item::Haste.combo(), item: Item::Haste },
|
||||||
|
Combo { components: Item::Hostility.combo(), item: Item::Hostility },
|
||||||
|
|
||||||
Combo { components: Item::Impurity.combo(), item: Item::Impurity },
|
Combo { components: Item::Impurity.combo(), item: Item::Impurity },
|
||||||
|
|
||||||
Combo { components: Item::AmplifyI.combo(), item: Item::AmplifyI },
|
Combo { components: Item::AmplifyI.combo(), item: Item::AmplifyI },
|
||||||
@ -945,7 +949,9 @@ pub fn get_combos() -> Vec<Combo> {
|
|||||||
Combo { components: Item::PurifyII.combo(), item: Item::PurifyII },
|
Combo { components: Item::PurifyII.combo(), item: Item::PurifyII },
|
||||||
Combo { components: Item::PurifyIII.combo(), item: Item::PurifyIII },
|
Combo { components: Item::PurifyIII.combo(), item: Item::PurifyIII },
|
||||||
|
|
||||||
Combo { components: Item::Corrupt.combo(), item: Item::Corrupt },
|
Combo { components: Item::CorruptI.combo(), item: Item::CorruptI },
|
||||||
|
Combo { components: Item::CorruptII.combo(), item: Item::CorruptII },
|
||||||
|
Combo { components: Item::CorruptIII.combo(), item: Item::CorruptIII },
|
||||||
|
|
||||||
Combo { components: Item::ClutchI.combo(), item: Item::ClutchI },
|
Combo { components: Item::ClutchI.combo(), item: Item::ClutchI },
|
||||||
Combo { components: Item::ClutchII.combo(), item: Item::ClutchII },
|
Combo { components: Item::ClutchII.combo(), item: Item::ClutchII },
|
||||||
|
|||||||
@ -21,7 +21,8 @@ pub fn pre_resolve(cast: &Cast, game: &mut Game, mut resolutions: Resolutions) -
|
|||||||
let targets = game.get_targets(cast.skill, &source, cast.target_construct_id);
|
let targets = game.get_targets(cast.skill, &source, cast.target_construct_id);
|
||||||
|
|
||||||
if skill.aoe() { // Send an aoe skill event for anims
|
if skill.aoe() { // Send an aoe skill event for anims
|
||||||
resolutions.push(Resolution::new(&source, &game.construct_by_id(cast.target_construct_id).unwrap().clone()).event(Event::AoeSkill { skill }));
|
resolutions.push(Resolution::new(&source,
|
||||||
|
&game.construct_by_id(cast.target_construct_id).unwrap().clone()).event(Event::AoeSkill { skill }));
|
||||||
}
|
}
|
||||||
|
|
||||||
for target_id in targets {
|
for target_id in targets {
|
||||||
@ -132,8 +133,12 @@ pub fn resolve(skill: Skill, source: &mut Construct, target: &mut Construct, mut
|
|||||||
Skill::ClutchII |
|
Skill::ClutchII |
|
||||||
Skill::ClutchIII => clutch(source, target, resolutions, skill),
|
Skill::ClutchIII => clutch(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::Corrupt => corrupt(source, target, resolutions, skill),
|
Skill::CorruptI |
|
||||||
Skill::CorruptionTick => corruption_tick(source, target, resolutions, skill),
|
Skill::CorruptII |
|
||||||
|
Skill::CorruptIII => corrupt(source, target, resolutions, skill),
|
||||||
|
Skill::CorruptionTickI |
|
||||||
|
Skill::CorruptionTickII |
|
||||||
|
Skill::CorruptionTickIII => corruption_tick(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::CurseI |
|
Skill::CurseI |
|
||||||
Skill::CurseII |
|
Skill::CurseII |
|
||||||
@ -249,6 +254,9 @@ pub fn resolve(skill: Skill, source: &mut Construct, target: &mut Construct, mut
|
|||||||
Skill::Stun => stun(source, target, resolutions, skill),
|
Skill::Stun => stun(source, target, resolutions, skill),
|
||||||
|
|
||||||
//Triggered
|
//Triggered
|
||||||
|
Skill::CorruptionI |
|
||||||
|
Skill::CorruptionII |
|
||||||
|
Skill::CorruptionIII => panic!("should only trigget from corrupt hit"),
|
||||||
Skill::HasteStrike => panic!("should only trigger from haste"),
|
Skill::HasteStrike => panic!("should only trigger from haste"),
|
||||||
Skill::ImpureBlast => panic!("should only trigger from impurity"),
|
Skill::ImpureBlast => panic!("should only trigger from impurity"),
|
||||||
Skill::RiposteI |
|
Skill::RiposteI |
|
||||||
@ -281,7 +289,14 @@ fn post_resolve(_skill: Skill, game: &mut Game, mut resolutions: Resolutions) ->
|
|||||||
match event {
|
match event {
|
||||||
Event::Damage { amount, skill, mitigation: _, colour: _ } => {
|
Event::Damage { amount, skill, mitigation: _, colour: _ } => {
|
||||||
if target.affected(Effect::Corrupt) {
|
if target.affected(Effect::Corrupt) {
|
||||||
resolutions = corruption(&mut target, &mut source, resolutions, Skill::Corrupt);
|
let ConstructEffect { effect: _, duration: _, meta, tick: _ } = target.effects.iter()
|
||||||
|
.find(|e| e.effect == Effect::Corrupt).unwrap().clone();
|
||||||
|
match meta {
|
||||||
|
Some(EffectMeta::Skill(s)) => {
|
||||||
|
resolutions = corruption(&mut target, &mut source, resolutions, s);
|
||||||
|
},
|
||||||
|
_ => panic!("no corrupt skill"),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if target.affected(Effect::Hostility) {
|
if target.affected(Effect::Hostility) {
|
||||||
@ -297,14 +312,15 @@ fn post_resolve(_skill: Skill, game: &mut Game, mut resolutions: Resolutions) ->
|
|||||||
|
|
||||||
Event::Immunity { skill: _, immunity } => match immunity.contains(&Effect::Parry) {
|
Event::Immunity { skill: _, immunity } => match immunity.contains(&Effect::Parry) {
|
||||||
true => {
|
true => {
|
||||||
let im_targ = target.clone();
|
let ConstructEffect { effect: _, duration: _, meta, tick: _ } = target.effects.iter()
|
||||||
let ConstructEffect { effect: _, duration: _, meta, tick: _ } = im_targ.effects.iter()
|
.find(|e| e.effect == Effect::Parry).unwrap().clone();
|
||||||
.find(|e| e.effect == Effect::Parry).unwrap();
|
match meta {
|
||||||
let &riposte_skill = match meta {
|
Some(EffectMeta::Skill(s)) => {
|
||||||
Some(EffectMeta::Skill(s)) => s,
|
resolutions = riposte(&mut target, &mut source, resolutions, s);
|
||||||
|
},
|
||||||
_ => panic!("no parry skill"),
|
_ => panic!("no parry skill"),
|
||||||
};
|
};
|
||||||
resolutions = riposte(&mut target, &mut source, resolutions, riposte_skill);
|
|
||||||
},
|
},
|
||||||
false => (),
|
false => (),
|
||||||
},
|
},
|
||||||
@ -679,8 +695,15 @@ pub enum Skill {
|
|||||||
ClutchII,
|
ClutchII,
|
||||||
ClutchIII,
|
ClutchIII,
|
||||||
|
|
||||||
Corrupt,
|
CorruptI,
|
||||||
CorruptionTick,
|
CorruptII,
|
||||||
|
CorruptIII,
|
||||||
|
CorruptionI,
|
||||||
|
CorruptionII,
|
||||||
|
CorruptionIII,
|
||||||
|
CorruptionTickI,
|
||||||
|
CorruptionTickII,
|
||||||
|
CorruptionTickIII,
|
||||||
|
|
||||||
CurseI,
|
CurseI,
|
||||||
CurseII,
|
CurseII,
|
||||||
@ -834,7 +857,10 @@ impl Skill {
|
|||||||
Skill::StrikeIII => 140,
|
Skill::StrikeIII => 140,
|
||||||
|
|
||||||
// Block Base
|
// Block Base
|
||||||
Skill::CorruptionTick => 80,
|
Skill::CorruptionTickI => 80,
|
||||||
|
Skill::CorruptionTickII => 100,
|
||||||
|
Skill::CorruptionTickIII => 130,
|
||||||
|
|
||||||
Skill::ParryI => 110,
|
Skill::ParryI => 110,
|
||||||
Skill::ParryII => 145,
|
Skill::ParryII => 145,
|
||||||
Skill::ParryIII => 200,
|
Skill::ParryIII => 200,
|
||||||
@ -908,8 +934,18 @@ impl Skill {
|
|||||||
Skill::Buff => vec![ConstructEffect {effect: Effect::Buff, duration: 2,
|
Skill::Buff => vec![ConstructEffect {effect: Effect::Buff, duration: 2,
|
||||||
meta: Some(EffectMeta::Multiplier(125)), tick: None }],
|
meta: Some(EffectMeta::Multiplier(125)), tick: None }],
|
||||||
|
|
||||||
Skill::Corrupt => vec![ConstructEffect {effect: Effect::Corrupt, duration: 2, meta: None, tick: None},
|
Skill::CorruptI => vec![ConstructEffect {effect: Effect::Corrupt, duration: 2,
|
||||||
ConstructEffect {effect: Effect::Corruption, duration: 3, meta: None, tick: None}],
|
meta: Some(EffectMeta::Skill(Skill::CorruptionI)), tick: None}],
|
||||||
|
Skill::CorruptII => vec![ConstructEffect {effect: Effect::Corrupt, duration: 3,
|
||||||
|
meta: Some(EffectMeta::Skill(Skill::CorruptionII)), tick: None}],
|
||||||
|
Skill::CorruptIII => vec![ConstructEffect {effect: Effect::Corrupt, duration: 4,
|
||||||
|
meta: Some(EffectMeta::Skill(Skill::CorruptionIII)), tick: None}],
|
||||||
|
Skill::CorruptionI => vec![ConstructEffect {effect: Effect::Corruption, duration: 3,
|
||||||
|
meta: Some(EffectMeta::Skill(Skill::CorruptionTickI)), tick: None}],
|
||||||
|
Skill::CorruptionII => vec![ConstructEffect {effect: Effect::Corruption, duration: 4,
|
||||||
|
meta: Some(EffectMeta::Skill(Skill::CorruptionTickII)), tick: None}],
|
||||||
|
Skill::CorruptionIII => vec![ConstructEffect {effect: Effect::Corruption, duration: 5,
|
||||||
|
meta: Some(EffectMeta::Skill(Skill::CorruptionTickIII)), tick: None}],
|
||||||
|
|
||||||
Skill::ClutchI => vec![ConstructEffect {effect: Effect::Clutch, duration: 1, meta: None, tick: None }],
|
Skill::ClutchI => vec![ConstructEffect {effect: Effect::Clutch, duration: 1, meta: None, tick: None }],
|
||||||
Skill::ClutchII => vec![ConstructEffect {effect: Effect::Clutch, duration: 2, meta: None, tick: None }],
|
Skill::ClutchII => vec![ConstructEffect {effect: Effect::Clutch, duration: 2, meta: None, tick: None }],
|
||||||
@ -963,11 +999,11 @@ impl Skill {
|
|||||||
Skill::ReflectIII => vec![ConstructEffect {effect: Effect::Reflect, duration: 3, meta: None, tick: None }],
|
Skill::ReflectIII => vec![ConstructEffect {effect: Effect::Reflect, duration: 3, meta: None, tick: None }],
|
||||||
|
|
||||||
Skill::ThrowI => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None},
|
Skill::ThrowI => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None},
|
||||||
ConstructEffect {effect: Effect::Vulnerable, duration: 3, meta: Some(EffectMeta::Multiplier(150)), tick: None}],
|
ConstructEffect {effect: Effect::Vulnerable, duration: 3, meta: Some(EffectMeta::Multiplier(150)), tick: None}],
|
||||||
Skill::ThrowII => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None},
|
Skill::ThrowII => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None},
|
||||||
ConstructEffect {effect: Effect::Vulnerable, duration: 4, meta: Some(EffectMeta::Multiplier(200)), tick: None}],
|
ConstructEffect {effect: Effect::Vulnerable, duration: 4, meta: Some(EffectMeta::Multiplier(200)), tick: None}],
|
||||||
Skill::ThrowIII => vec![ConstructEffect {effect: Effect::Stun, duration: 2, meta: None, tick: None},
|
Skill::ThrowIII => vec![ConstructEffect {effect: Effect::Stun, duration: 2, meta: None, tick: None},
|
||||||
ConstructEffect {effect: Effect::Vulnerable, duration: 4, meta: Some(EffectMeta::Multiplier(250)), tick: None}],
|
ConstructEffect {effect: Effect::Vulnerable, duration: 4, meta: Some(EffectMeta::Multiplier(250)), tick: None}],
|
||||||
|
|
||||||
Skill::RuinI => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
|
Skill::RuinI => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
|
||||||
Skill::RuinII => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
|
Skill::RuinII => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
|
||||||
@ -1139,7 +1175,10 @@ impl Skill {
|
|||||||
Skill::TauntIII => Some(2),
|
Skill::TauntIII => Some(2),
|
||||||
Skill::Injure => Some(2),
|
Skill::Injure => Some(2),
|
||||||
|
|
||||||
Skill::Corrupt => Some(1),
|
Skill::CorruptI =>Some(1),
|
||||||
|
Skill::CorruptII =>Some(1),
|
||||||
|
Skill::CorruptIII =>Some(1),
|
||||||
|
|
||||||
|
|
||||||
Skill::Hostility => Some(1),
|
Skill::Hostility => Some(1),
|
||||||
|
|
||||||
@ -1152,8 +1191,13 @@ impl Skill {
|
|||||||
Skill::RiposteI |
|
Skill::RiposteI |
|
||||||
Skill::RiposteII |
|
Skill::RiposteII |
|
||||||
Skill::RiposteIII | // parry
|
Skill::RiposteIII | // parry
|
||||||
|
Skill::CorruptionI |
|
||||||
|
Skill::CorruptionII |
|
||||||
|
Skill::CorruptionIII |
|
||||||
// Ticks
|
// Ticks
|
||||||
Skill::CorruptionTick |
|
Skill::CorruptionTickI |
|
||||||
|
Skill::CorruptionTickII |
|
||||||
|
Skill::CorruptionTickIII |
|
||||||
Skill::DecayTickI |
|
Skill::DecayTickI |
|
||||||
Skill::DecayTickII |
|
Skill::DecayTickII |
|
||||||
Skill::DecayTickIII |
|
Skill::DecayTickIII |
|
||||||
@ -1182,7 +1226,9 @@ impl Skill {
|
|||||||
|
|
||||||
pub fn ko_castable(&self) -> bool {
|
pub fn ko_castable(&self) -> bool {
|
||||||
match self {
|
match self {
|
||||||
Skill::CorruptionTick |
|
Skill::CorruptionTickI |
|
||||||
|
Skill::CorruptionTickII |
|
||||||
|
Skill::CorruptionTickIII |
|
||||||
Skill::DecayTickI |
|
Skill::DecayTickI |
|
||||||
Skill::DecayTickII |
|
Skill::DecayTickII |
|
||||||
Skill::DecayTickIII |
|
Skill::DecayTickIII |
|
||||||
@ -1199,7 +1245,9 @@ impl Skill {
|
|||||||
|
|
||||||
pub fn is_tick(&self) -> bool {
|
pub fn is_tick(&self) -> bool {
|
||||||
match self {
|
match self {
|
||||||
Skill::CorruptionTick |
|
Skill::CorruptionTickI |
|
||||||
|
Skill::CorruptionTickII |
|
||||||
|
Skill::CorruptionTickIII |
|
||||||
Skill::DecayTickI |
|
Skill::DecayTickI |
|
||||||
Skill::DecayTickII |
|
Skill::DecayTickII |
|
||||||
Skill::DecayTickIII |
|
Skill::DecayTickIII |
|
||||||
@ -1247,7 +1295,9 @@ impl Skill {
|
|||||||
Skill::StrangleTickI |
|
Skill::StrangleTickI |
|
||||||
Skill::StrangleTickII |
|
Skill::StrangleTickII |
|
||||||
Skill::StrangleTickIII => Skill::StrangleI.speed(),
|
Skill::StrangleTickIII => Skill::StrangleI.speed(),
|
||||||
Skill::CorruptionTick => Skill::Corrupt.speed(),
|
Skill::CorruptionTickI |
|
||||||
|
Skill::CorruptionTickII |
|
||||||
|
Skill::CorruptionTickIII => Skill::CorruptI.speed(),
|
||||||
|
|
||||||
_ => Item::from(*self).speed(),
|
_ => Item::from(*self).speed(),
|
||||||
}
|
}
|
||||||
@ -1265,7 +1315,9 @@ impl Skill {
|
|||||||
pub fn self_targeting(&self) -> bool {
|
pub fn self_targeting(&self) -> bool {
|
||||||
match self {
|
match self {
|
||||||
Skill::Block |
|
Skill::Block |
|
||||||
Skill::Corrupt |
|
Skill::CorruptI |
|
||||||
|
Skill::CorruptII |
|
||||||
|
Skill::CorruptIII |
|
||||||
Skill::ClutchI |
|
Skill::ClutchI |
|
||||||
Skill::ClutchII |
|
Skill::ClutchII |
|
||||||
Skill::ClutchIII |
|
Skill::ClutchIII |
|
||||||
@ -1290,7 +1342,9 @@ impl Skill {
|
|||||||
Skill::ClutchI |
|
Skill::ClutchI |
|
||||||
Skill::ClutchII |
|
Skill::ClutchII |
|
||||||
Skill::ClutchIII |
|
Skill::ClutchIII |
|
||||||
Skill::Corrupt |
|
Skill::CorruptI |
|
||||||
|
Skill::CorruptII |
|
||||||
|
Skill::CorruptIII |
|
||||||
Skill::Haste |
|
Skill::Haste |
|
||||||
Skill::HealI |
|
Skill::HealI |
|
||||||
Skill::HealII |
|
Skill::HealII |
|
||||||
@ -1563,13 +1617,13 @@ fn triage_tick(source: &mut Construct, target: &mut Construct, mut results: Reso
|
|||||||
|
|
||||||
fn chaos(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
fn chaos(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||||
let mut rng = thread_rng();
|
let mut rng = thread_rng();
|
||||||
let b_rng: u64 = rng.gen_range(0, 30);
|
let b_rng: u64 = rng.gen_range(100, 130);
|
||||||
let amount = source.blue_power().pct(skill.multiplier() + b_rng);
|
let amount = source.blue_power().pct(skill.multiplier()).pct(b_rng);
|
||||||
target.deal_blue_damage(skill, amount)
|
target.deal_blue_damage(skill, amount)
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.for_each(|e| results.push(Resolution::new(source, target).event(e)));
|
.for_each(|e| results.push(Resolution::new(source, target).event(e)));
|
||||||
let r_rng: u64 = rng.gen_range(0, 30);
|
let r_rng: u64 = rng.gen_range(100, 130);
|
||||||
let amount = source.red_power().pct(skill.multiplier() + r_rng);
|
let amount = source.red_power().pct(skill.multiplier()).pct(r_rng);
|
||||||
target.deal_red_damage(skill, amount)
|
target.deal_red_damage(skill, amount)
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.for_each(|e| results.push(Resolution::new(source, target).event(e)));
|
.for_each(|e| results.push(Resolution::new(source, target).event(e)));
|
||||||
@ -1635,11 +1689,15 @@ fn corrupt(source: &mut Construct, target: &mut Construct, mut results: Resoluti
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn corruption(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
fn corruption(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||||
let corruption = skill.effect().last().unwrap().clone()
|
|
||||||
.set_tick(Cast::new_tick(source, target, Skill::CorruptionTick));
|
|
||||||
|
|
||||||
|
let ConstructEffect { effect, duration, meta, tick: _ } = skill.effect().first().unwrap().clone();
|
||||||
|
let tick_skill = match meta {
|
||||||
|
Some(EffectMeta::Skill(s)) => s,
|
||||||
|
_ => panic!("no corruption tick skill"),
|
||||||
|
};
|
||||||
|
let corruption = ConstructEffect::new(effect, duration).set_tick(Cast::new_tick(source, target, tick_skill));
|
||||||
results.push(Resolution::new(source, target).event(target.add_effect(skill, corruption)));
|
results.push(Resolution::new(source, target).event(target.add_effect(skill, corruption)));
|
||||||
return corruption_tick(source, target, results, Skill::CorruptionTick);
|
return corruption_tick(source, target, results, tick_skill);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn corruption_tick(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
fn corruption_tick(source: &mut Construct, target: &mut Construct, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user