more wip
This commit is contained in:
parent
6bbf8d0e34
commit
b0eb9a8a51
@ -1346,15 +1346,15 @@ mod tests {
|
|||||||
let x_cryp = x_player.cryps[0].clone();
|
let x_cryp = x_player.cryps[0].clone();
|
||||||
let y_cryp = x_player.cryps[1].clone();
|
let y_cryp = x_player.cryps[1].clone();
|
||||||
|
|
||||||
game.cryp_by_id(x_cryp.id).unwrap().learn_mut(Skill::Taunt);
|
game.cryp_by_id(x_cryp.id).unwrap().learn_mut(Skill::TauntI);
|
||||||
|
|
||||||
while game.cryp_by_id(x_cryp.id).unwrap().skill_on_cd(Skill::Taunt).is_some() {
|
while game.cryp_by_id(x_cryp.id).unwrap().skill_on_cd(Skill::TauntI).is_some() {
|
||||||
game.cryp_by_id(x_cryp.id).unwrap().reduce_cooldowns();
|
game.cryp_by_id(x_cryp.id).unwrap().reduce_cooldowns();
|
||||||
}
|
}
|
||||||
|
|
||||||
game.add_skill(i_player.id, i_cryp.id, Some(x_cryp.id), Skill::TestTouch).unwrap();
|
game.add_skill(i_player.id, i_cryp.id, Some(x_cryp.id), Skill::TestTouch).unwrap();
|
||||||
game.add_skill(i_player.id, j_cryp.id, Some(x_cryp.id), Skill::TestTouch).unwrap();
|
game.add_skill(i_player.id, j_cryp.id, Some(x_cryp.id), Skill::TestTouch).unwrap();
|
||||||
game.add_skill(x_player.id, x_cryp.id, Some(i_cryp.id), Skill::Taunt).unwrap();
|
game.add_skill(x_player.id, x_cryp.id, Some(i_cryp.id), Skill::TauntI).unwrap();
|
||||||
game.add_skill(x_player.id, y_cryp.id, Some(i_cryp.id), Skill::TestTouch).unwrap();
|
game.add_skill(x_player.id, y_cryp.id, Some(i_cryp.id), Skill::TestTouch).unwrap();
|
||||||
|
|
||||||
game.player_ready(i_player.id).unwrap();
|
game.player_ready(i_player.id).unwrap();
|
||||||
|
|||||||
@ -98,16 +98,26 @@ pub enum Item {
|
|||||||
SilenceI,
|
SilenceI,
|
||||||
SilenceII,
|
SilenceII,
|
||||||
SilenceIII,
|
SilenceIII,
|
||||||
Slay,
|
SlayI,
|
||||||
Sleep,
|
SlayII,
|
||||||
Snare,
|
SlayIII,
|
||||||
|
SleepI,
|
||||||
|
SleepII,
|
||||||
|
SleepIII,
|
||||||
|
SnareI,
|
||||||
|
SnareII,
|
||||||
|
SnareIII,
|
||||||
Strangle,
|
Strangle,
|
||||||
StrikeI,
|
StrikeI,
|
||||||
StrikeII,
|
StrikeII,
|
||||||
StrikeIII,
|
StrikeIII,
|
||||||
Siphon,
|
Siphon,
|
||||||
Taunt,
|
TauntI,
|
||||||
Throw,
|
TauntII,
|
||||||
|
TauntIII,
|
||||||
|
ThrowI,
|
||||||
|
ThrowII,
|
||||||
|
ThrowIII,
|
||||||
Triage,
|
Triage,
|
||||||
|
|
||||||
|
|
||||||
@ -264,10 +274,16 @@ impl Item {
|
|||||||
Item::SilenceI => Some(Skill::SilenceI),
|
Item::SilenceI => Some(Skill::SilenceI),
|
||||||
Item::SilenceII => Some(Skill::SilenceII),
|
Item::SilenceII => Some(Skill::SilenceII),
|
||||||
Item::SilenceIII => Some(Skill::SilenceIII),
|
Item::SilenceIII => Some(Skill::SilenceIII),
|
||||||
Item::Slay => Some(Skill::Slay),
|
Item::SlayI => Some(Skill::SlayI),
|
||||||
Item::Sleep => Some(Skill::Sleep),
|
Item::SlayII => Some(Skill::SlayII),
|
||||||
|
Item::SlayIII => Some(Skill::SlayIII),
|
||||||
|
Item::SleepI => Some(Skill::SleepI),
|
||||||
|
Item::SleepII => Some(Skill::SleepII),
|
||||||
|
Item::SleepIII => Some(Skill::SleepIII),
|
||||||
Item::Siphon => Some(Skill::Siphon),
|
Item::Siphon => Some(Skill::Siphon),
|
||||||
Item::Snare => Some(Skill::Snare),
|
Item::SnareI => Some(Skill::SnareI),
|
||||||
|
Item::SnareII => Some(Skill::SnareII),
|
||||||
|
Item::SnareIII => Some(Skill::SnareIII),
|
||||||
Item::Strangle => Some(Skill::Strangle),
|
Item::Strangle => Some(Skill::Strangle),
|
||||||
Item::Stun => Some(Skill::Stun),
|
Item::Stun => Some(Skill::Stun),
|
||||||
Item::StrikeI => Some(Skill::StrikeI),
|
Item::StrikeI => Some(Skill::StrikeI),
|
||||||
@ -276,8 +292,12 @@ impl Item {
|
|||||||
Item::ClutchI => Some(Skill::ClutchI),
|
Item::ClutchI => Some(Skill::ClutchI),
|
||||||
Item::ClutchII => Some(Skill::ClutchII),
|
Item::ClutchII => Some(Skill::ClutchII),
|
||||||
Item::ClutchIII => Some(Skill::ClutchIII),
|
Item::ClutchIII => Some(Skill::ClutchIII),
|
||||||
Item::Taunt => Some(Skill::Taunt),
|
Item::TauntI => Some(Skill::TauntI),
|
||||||
Item::Throw => Some(Skill::Throw),
|
Item::TauntII => Some(Skill::TauntII),
|
||||||
|
Item::TauntIII => Some(Skill::TauntIII),
|
||||||
|
Item::ThrowI => Some(Skill::ThrowI),
|
||||||
|
Item::ThrowII => Some(Skill::ThrowII),
|
||||||
|
Item::ThrowIII => Some(Skill::ThrowIII),
|
||||||
Item::Corrupt => Some(Skill::Corrupt),
|
Item::Corrupt => Some(Skill::Corrupt),
|
||||||
Item::Triage => Some(Skill::Triage),
|
Item::Triage => Some(Skill::Triage),
|
||||||
_ => None,
|
_ => None,
|
||||||
@ -509,16 +529,22 @@ 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::Slay => format!(
|
Item::SlayI |
|
||||||
|
Item::SlayII |
|
||||||
|
Item::SlayIII => format!(
|
||||||
"Deals red damage {:?}% red power and provides self healing based on damage dealt.",
|
"Deals red damage {:?}% red power and provides self healing based on damage dealt.",
|
||||||
self.into_skill().unwrap().multiplier()),
|
self.into_skill().unwrap().multiplier()),
|
||||||
|
|
||||||
Item::Sleep => format!(
|
Item::SleepI |
|
||||||
|
Item::SleepII |
|
||||||
|
Item::SleepIII => format!(
|
||||||
"Stun for {:?}T and heal for {:?}% green power.",
|
"Stun for {:?}T and heal for {:?}% green power.",
|
||||||
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
||||||
self.into_skill().unwrap().multiplier()),
|
self.into_skill().unwrap().multiplier()),
|
||||||
|
|
||||||
Item::Snare => format!(
|
Item::SnareI |
|
||||||
|
Item::SnareII |
|
||||||
|
Item::SnareIII => format!(
|
||||||
"Block the target from using red skills for {:?}T and deals red damage {:?}% red power. {}",
|
"Block the target from using red skills for {:?}T and deals red damage {:?}% red power. {}",
|
||||||
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
||||||
self.into_skill().unwrap().multiplier(),
|
self.into_skill().unwrap().multiplier(),
|
||||||
@ -541,12 +567,16 @@ impl Item {
|
|||||||
self.into_skill().unwrap().multiplier(),
|
self.into_skill().unwrap().multiplier(),
|
||||||
self.into_skill().unwrap().effect().first().unwrap().get_duration()),
|
self.into_skill().unwrap().effect().first().unwrap().get_duration()),
|
||||||
|
|
||||||
Item::Taunt => format!("{} {:?}T. Recharges RedLife for {:?} red power.",
|
Item::TauntI |
|
||||||
|
Item::TauntII |
|
||||||
|
Item::TauntIII => format!("{} {:?}T. Recharges RedLife for {:?} red power.",
|
||||||
"Taunt redirects skills against the team to target, lasts",
|
"Taunt redirects skills against the team to target, lasts",
|
||||||
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
||||||
self.into_skill().unwrap().multiplier()),
|
self.into_skill().unwrap().multiplier()),
|
||||||
|
|
||||||
Item::Throw => format!(
|
Item::ThrowI |
|
||||||
|
Item::ThrowII |
|
||||||
|
Item::ThrowIII => format!(
|
||||||
"Stun the target for {:?}T and applies Vulnerable increasing red damage taken by {:?}% for {:?}T",
|
"Stun the target for {:?}T and applies Vulnerable increasing red damage taken by {:?}% for {:?}T",
|
||||||
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
||||||
self.into_skill().unwrap().effect().first().unwrap().get_multiplier() - 100,
|
self.into_skill().unwrap().effect().first().unwrap().get_multiplier() - 100,
|
||||||
@ -565,7 +595,9 @@ impl Item {
|
|||||||
|
|
||||||
fn combo(&self) -> Vec<Item> {
|
fn combo(&self) -> Vec<Item> {
|
||||||
match self {
|
match self {
|
||||||
Item::Taunt => vec![Item::Buff, Item::Red, Item::Red],
|
Item::TauntI => vec![Item::Buff, Item::Red, Item::Red],
|
||||||
|
Item::TauntII => vec![Item::TauntI, Item::TauntI, Item::TauntI],
|
||||||
|
Item::TauntIII => vec![Item::TauntII, Item::TauntII, Item::TauntII],
|
||||||
Item::Triage => vec![Item::Buff, Item::Green, Item::Green],
|
Item::Triage => vec![Item::Buff, Item::Green, Item::Green],
|
||||||
Item::ScatterI => vec![Item::Buff, Item::Blue, Item::Blue],
|
Item::ScatterI => vec![Item::Buff, Item::Blue, Item::Blue],
|
||||||
Item::ScatterII => vec![Item::ScatterI, Item::ScatterI, Item::ScatterI],
|
Item::ScatterII => vec![Item::ScatterI, Item::ScatterI, Item::ScatterI],
|
||||||
@ -576,7 +608,9 @@ impl Item {
|
|||||||
Item::AmplifyII => vec![Item::AmplifyI, Item::AmplifyI, Item::AmplifyI],
|
Item::AmplifyII => vec![Item::AmplifyI, Item::AmplifyI, Item::AmplifyI],
|
||||||
Item::AmplifyIII => vec![Item::AmplifyII, Item::AmplifyII, Item::AmplifyII],
|
Item::AmplifyIII => vec![Item::AmplifyII, Item::AmplifyII, Item::AmplifyII],
|
||||||
|
|
||||||
Item::Snare => vec![Item::Debuff, Item::Red, Item::Red],
|
Item::SnareI => vec![Item::Debuff, Item::Red, Item::Red],
|
||||||
|
Item::SnareII => vec![Item::SnareI, Item::SnareI, Item::SnareI],
|
||||||
|
Item::SnareIII => vec![Item::SnareII, Item::SnareII, Item::SnareII],
|
||||||
Item::PurgeI => vec![Item::Debuff, Item::Green, Item::Green], // Needs flavour
|
Item::PurgeI => vec![Item::Debuff, Item::Green, Item::Green], // Needs flavour
|
||||||
Item::PurgeII => vec![Item::PurgeI, Item::PurgeI, Item::PurgeI], // Needs flavour
|
Item::PurgeII => vec![Item::PurgeI, Item::PurgeI, Item::PurgeI], // Needs flavour
|
||||||
Item::PurgeIII => vec![Item::PurgeII, Item::PurgeII, Item::PurgeII], // Needs flavour
|
Item::PurgeIII => vec![Item::PurgeII, Item::PurgeII, Item::PurgeII], // Needs flavour
|
||||||
@ -608,11 +642,15 @@ impl Item {
|
|||||||
|
|
||||||
|
|
||||||
Item::Strangle => vec![Item::Stun, Item::Red, Item::Red],
|
Item::Strangle => vec![Item::Stun, Item::Red, Item::Red],
|
||||||
Item::Sleep => vec![Item::Stun, Item::Green, Item::Green],
|
Item::SleepI => vec![Item::Stun, Item::Green, Item::Green],
|
||||||
|
Item::SleepII => vec![Item::SleepI, Item::SleepI, Item::SleepI],
|
||||||
|
Item::SleepIII => vec![Item::SleepII, Item::SleepII, Item::SleepII],
|
||||||
Item::RuinI => vec![Item::Stun, Item::Blue, Item::Blue],
|
Item::RuinI => vec![Item::Stun, Item::Blue, Item::Blue],
|
||||||
Item::RuinII => vec![Item::RuinI, Item::RuinI, Item::RuinI],
|
Item::RuinII => vec![Item::RuinI, Item::RuinI, Item::RuinI],
|
||||||
Item::RuinIII => vec![Item::RuinII, Item::RuinII, Item::RuinII],
|
Item::RuinIII => vec![Item::RuinII, Item::RuinII, Item::RuinII],
|
||||||
Item::Throw => vec![Item::Stun, Item::Red, Item::Green],
|
Item::ThrowI => vec![Item::Stun, Item::Red, Item::Green],
|
||||||
|
Item::ThrowII => vec![Item::ThrowI, Item::ThrowI, Item::ThrowI],
|
||||||
|
Item::ThrowIII => vec![Item::ThrowII, Item::ThrowII, Item::ThrowII],
|
||||||
Item::HexI => vec![Item::Stun, Item::Green, Item::Blue],
|
Item::HexI => vec![Item::Stun, Item::Green, Item::Blue],
|
||||||
Item::HexII => vec![Item::HexI, Item::HexI, Item::HexI],
|
Item::HexII => vec![Item::HexI, Item::HexI, Item::HexI],
|
||||||
Item::HexIII => vec![Item::HexII, Item::HexII, Item::HexII],
|
Item::HexIII => vec![Item::HexII, Item::HexII, Item::HexII],
|
||||||
@ -627,7 +665,9 @@ impl Item {
|
|||||||
Item::BlastI => vec![Item::Attack, Item::Blue, Item::Blue],
|
Item::BlastI => vec![Item::Attack, Item::Blue, Item::Blue],
|
||||||
Item::BlastII => vec![Item::BlastI, Item::BlastI, Item::BlastI],
|
Item::BlastII => vec![Item::BlastI, Item::BlastI, Item::BlastI],
|
||||||
Item::BlastIII => vec![Item::BlastII, Item::BlastII, Item::BlastII],
|
Item::BlastIII => vec![Item::BlastII, Item::BlastII, Item::BlastII],
|
||||||
Item::Slay => vec![Item::Attack, Item::Red, Item::Green],
|
Item::SlayI => vec![Item::Attack, Item::Red, Item::Green],
|
||||||
|
Item::SlayII => vec![Item::SlayI, Item::SlayI, Item::SlayI],
|
||||||
|
Item::SlayIII => vec![Item::SlayII, Item::SlayII, Item::SlayII],
|
||||||
Item::Siphon => vec![Item::Attack, Item::Green, Item::Blue],
|
Item::Siphon => vec![Item::Attack, Item::Green, Item::Blue],
|
||||||
Item::ChaosI => vec![Item::Attack, Item::Red, Item::Blue],
|
Item::ChaosI => vec![Item::Attack, Item::Red, Item::Blue],
|
||||||
Item::ChaosII => vec![Item::ChaosI, Item::ChaosI, Item::ChaosI],
|
Item::ChaosII => vec![Item::ChaosI, Item::ChaosI, Item::ChaosI],
|
||||||
@ -718,16 +758,26 @@ impl From<Skill> for Item {
|
|||||||
Skill::SilenceII => Item::SilenceII,
|
Skill::SilenceII => Item::SilenceII,
|
||||||
Skill::SilenceIII => Item::SilenceIII,
|
Skill::SilenceIII => Item::SilenceIII,
|
||||||
Skill::Siphon => Item::Siphon,
|
Skill::Siphon => Item::Siphon,
|
||||||
Skill::Slay => Item::Slay,
|
Skill::SlayI => Item::SlayI,
|
||||||
Skill::Sleep => Item::Sleep,
|
Skill::SlayII => Item::SlayII,
|
||||||
Skill::Snare => Item::Snare,
|
Skill::SlayIII => Item::SlayIII,
|
||||||
|
Skill::SleepI => Item::SleepI,
|
||||||
|
Skill::SleepII => Item::SleepII,
|
||||||
|
Skill::SleepIII => Item::SleepIII,
|
||||||
|
Skill::SnareI => Item::SnareI,
|
||||||
|
Skill::SnareII => Item::SnareII,
|
||||||
|
Skill::SnareIII => Item::SnareIII,
|
||||||
Skill::Strangle => Item::Strangle,
|
Skill::Strangle => Item::Strangle,
|
||||||
Skill::StrikeI => Item::StrikeI,
|
Skill::StrikeI => Item::StrikeI,
|
||||||
Skill::StrikeII => Item::StrikeII,
|
Skill::StrikeII => Item::StrikeII,
|
||||||
Skill::StrikeIII => Item::StrikeIII,
|
Skill::StrikeIII => Item::StrikeIII,
|
||||||
Skill::Stun => Item::Stun,
|
Skill::Stun => Item::Stun,
|
||||||
Skill::Taunt => Item::Taunt,
|
Skill::TauntI => Item::TauntI,
|
||||||
Skill::Throw => Item::Throw,
|
Skill::TauntII => Item::TauntII,
|
||||||
|
Skill::TauntIII => Item::TauntIII,
|
||||||
|
Skill::ThrowI => Item::ThrowI,
|
||||||
|
Skill::ThrowII => Item::ThrowII,
|
||||||
|
Skill::ThrowIII => Item::ThrowIII,
|
||||||
Skill::Triage => Item::Triage,
|
Skill::Triage => Item::Triage,
|
||||||
Skill::Corrupt => Item::Corrupt,
|
Skill::Corrupt => Item::Corrupt,
|
||||||
|
|
||||||
@ -787,7 +837,9 @@ pub struct Combo {
|
|||||||
|
|
||||||
pub fn get_combos() -> Vec<Combo> {
|
pub fn get_combos() -> Vec<Combo> {
|
||||||
let mut combinations = vec![
|
let mut combinations = vec![
|
||||||
Combo { components: Item::Taunt.combo(), item: Item::Taunt },
|
Combo { components: Item::TauntI.combo(), item: Item::TauntI },
|
||||||
|
Combo { components: Item::TauntII.combo(), item: Item::TauntII },
|
||||||
|
Combo { components: Item::TauntIII.combo(), item: Item::TauntIII },
|
||||||
Combo { components: Item::Triage.combo(), item: Item::Triage },
|
Combo { components: Item::Triage.combo(), item: Item::Triage },
|
||||||
Combo { components: Item::ScatterI.combo(), item: Item::ScatterI },
|
Combo { components: Item::ScatterI.combo(), item: Item::ScatterI },
|
||||||
Combo { components: Item::ScatterII.combo(), item: Item::ScatterII },
|
Combo { components: Item::ScatterII.combo(), item: Item::ScatterII },
|
||||||
@ -798,7 +850,9 @@ pub fn get_combos() -> Vec<Combo> {
|
|||||||
Combo { components: Item::AmplifyII.combo(), item: Item::AmplifyII },
|
Combo { components: Item::AmplifyII.combo(), item: Item::AmplifyII },
|
||||||
Combo { components: Item::AmplifyIII.combo(), item: Item::AmplifyIII },
|
Combo { components: Item::AmplifyIII.combo(), item: Item::AmplifyIII },
|
||||||
|
|
||||||
Combo { components: Item::Snare.combo(), item: Item::Snare },
|
Combo { components: Item::SnareI.combo(), item: Item::SnareI },
|
||||||
|
Combo { components: Item::SnareII.combo(), item: Item::SnareII },
|
||||||
|
Combo { components: Item::SnareIII.combo(), item: Item::SnareIII },
|
||||||
Combo { components: Item::PurgeI.combo(), item: Item::PurgeI }, // Needs flavour
|
Combo { components: Item::PurgeI.combo(), item: Item::PurgeI }, // Needs flavour
|
||||||
Combo { components: Item::PurgeII.combo(), item: Item::PurgeII },
|
Combo { components: Item::PurgeII.combo(), item: Item::PurgeII },
|
||||||
Combo { components: Item::PurgeIII.combo(), item: Item::PurgeIII },
|
Combo { components: Item::PurgeIII.combo(), item: Item::PurgeIII },
|
||||||
@ -834,13 +888,17 @@ pub fn get_combos() -> Vec<Combo> {
|
|||||||
Combo { components: Item::RechargeIII.combo(), item: Item::RechargeIII },
|
Combo { components: Item::RechargeIII.combo(), item: Item::RechargeIII },
|
||||||
|
|
||||||
Combo { components: Item::Strangle.combo(), item: Item::Strangle },
|
Combo { components: Item::Strangle.combo(), item: Item::Strangle },
|
||||||
Combo { components: Item::Sleep.combo(), item: Item::Sleep },
|
Combo { components: Item::SleepI.combo(), item: Item::SleepI },
|
||||||
|
Combo { components: Item::SleepII.combo(), item: Item::SleepII },
|
||||||
|
Combo { components: Item::SleepIII.combo(), item: Item::SleepIII },
|
||||||
Combo { components: Item::RuinI.combo(), item: Item::RuinI },
|
Combo { components: Item::RuinI.combo(), item: Item::RuinI },
|
||||||
Combo { components: Item::RuinII.combo(), item: Item::RuinII },
|
Combo { components: Item::RuinII.combo(), item: Item::RuinII },
|
||||||
Combo { components: Item::RuinIII.combo(), item: Item::RuinIII },
|
Combo { components: Item::RuinIII.combo(), item: Item::RuinIII },
|
||||||
|
|
||||||
|
|
||||||
Combo { components: Item::Throw.combo(), item: Item::Throw },
|
Combo { components: Item::ThrowI.combo(), item: Item::ThrowI },
|
||||||
|
Combo { components: Item::ThrowII.combo(), item: Item::ThrowII },
|
||||||
|
Combo { components: Item::ThrowIII.combo(), item: Item::ThrowIII },
|
||||||
Combo { components: Item::HexI.combo(), item: Item::HexI },
|
Combo { components: Item::HexI.combo(), item: Item::HexI },
|
||||||
Combo { components: Item::HexII.combo(), item: Item::HexII },
|
Combo { components: Item::HexII.combo(), item: Item::HexII },
|
||||||
Combo { components: Item::HexIII.combo(), item: Item::HexIII },
|
Combo { components: Item::HexIII.combo(), item: Item::HexIII },
|
||||||
@ -856,7 +914,9 @@ pub fn get_combos() -> Vec<Combo> {
|
|||||||
Combo { components: Item::BlastI.combo(), item: Item::BlastI },
|
Combo { components: Item::BlastI.combo(), item: Item::BlastI },
|
||||||
Combo { components: Item::BlastII.combo(), item: Item::BlastII },
|
Combo { components: Item::BlastII.combo(), item: Item::BlastII },
|
||||||
Combo { components: Item::BlastIII.combo(), item: Item::BlastIII },
|
Combo { components: Item::BlastIII.combo(), item: Item::BlastIII },
|
||||||
Combo { components: Item::Slay.combo(), item: Item::Slay },
|
Combo { components: Item::SlayI.combo(), item: Item::SlayI },
|
||||||
|
Combo { components: Item::SlayII.combo(), item: Item::SlayII },
|
||||||
|
Combo { components: Item::SlayIII.combo(), item: Item::SlayIII },
|
||||||
Combo { components: Item::Siphon.combo(), item: Item::Siphon },
|
Combo { components: Item::Siphon.combo(), item: Item::Siphon },
|
||||||
Combo { components: Item::ChaosI.combo(), item: Item::ChaosI },
|
Combo { components: Item::ChaosI.combo(), item: Item::ChaosI },
|
||||||
Combo { components: Item::ChaosII.combo(), item: Item::ChaosII },
|
Combo { components: Item::ChaosII.combo(), item: Item::ChaosII },
|
||||||
|
|||||||
@ -75,7 +75,7 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
|
|||||||
if source.affected(Effect::Haste) {
|
if source.affected(Effect::Haste) {
|
||||||
match skill {
|
match skill {
|
||||||
Skill::Attack |
|
Skill::Attack |
|
||||||
Skill::Slay |
|
Skill::SlayI |
|
||||||
Skill::ChaosI |
|
Skill::ChaosI |
|
||||||
Skill::StrikeI => {
|
Skill::StrikeI => {
|
||||||
let amount = source.speed().pct(Skill::HasteStrike.multiplier());
|
let amount = source.speed().pct(Skill::HasteStrike.multiplier());
|
||||||
@ -116,16 +116,12 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
|
|||||||
Skill::AmplifyII |
|
Skill::AmplifyII |
|
||||||
Skill::AmplifyIII => amplify(source, target, resolutions, skill),
|
Skill::AmplifyIII => amplify(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::Attack => attack(source, target, resolutions, skill),
|
|
||||||
Skill::Banish => banish(source, target, resolutions, skill), // TODO prevent all actions
|
Skill::Banish => banish(source, target, resolutions, skill), // TODO prevent all actions
|
||||||
|
|
||||||
Skill::BlastI |
|
Skill::BlastI |
|
||||||
Skill::BlastII |
|
Skill::BlastII |
|
||||||
Skill::BlastIII => blast(source, target, resolutions, skill),
|
Skill::BlastIII => blast(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::Block => block(source, target, resolutions, skill),
|
|
||||||
Skill::Buff => buff(source, target, resolutions, skill),
|
|
||||||
|
|
||||||
Skill::ChaosI |
|
Skill::ChaosI |
|
||||||
Skill::ChaosII |
|
Skill::ChaosII |
|
||||||
Skill::ChaosIII => chaos(source, target, resolutions, skill),
|
Skill::ChaosIII => chaos(source, target, resolutions, skill),
|
||||||
@ -135,16 +131,15 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
|
|||||||
Skill::ClutchIII => clutch(source, target, resolutions, skill),
|
Skill::ClutchIII => clutch(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::Corrupt => corrupt(source, target, resolutions, skill),
|
Skill::Corrupt => corrupt(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::CorruptionTick => corruption_tick(source, target, resolutions, skill),
|
Skill::CorruptionTick => corruption_tick(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::CurseI |
|
Skill::CurseI |
|
||||||
Skill::CurseII |
|
Skill::CurseII |
|
||||||
Skill::CurseIII => curse(source, target, resolutions, skill),
|
Skill::CurseIII => curse(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::Debuff => debuff(source, target, resolutions, skill), // speed slow
|
|
||||||
Skill::Decay => decay(source, target, resolutions, skill), // dot
|
Skill::Decay => decay(source, target, resolutions, skill), // dot
|
||||||
Skill::DecayTick => decay_tick(source, target, resolutions, skill), // dot
|
Skill::DecayTick => decay_tick(source, target, resolutions, skill), // dot
|
||||||
|
|
||||||
Skill::Haste => haste(source, target, resolutions, skill), // speed slow
|
Skill::Haste => haste(source, target, resolutions, skill), // speed slow
|
||||||
|
|
||||||
Skill::HealI |
|
Skill::HealI |
|
||||||
@ -161,6 +156,7 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
|
|||||||
Skill::InvertI |
|
Skill::InvertI |
|
||||||
Skill::InvertII |
|
Skill::InvertII |
|
||||||
Skill::InvertIII => invert(source, target, resolutions, skill),
|
Skill::InvertIII => invert(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::Parry => parry(source, target, resolutions, skill),
|
Skill::Parry => parry(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::PurgeI |
|
Skill::PurgeI |
|
||||||
@ -191,24 +187,47 @@ pub fn resolve(skill: Skill, source: &mut Cryp, target: &mut Cryp, mut resolutio
|
|||||||
Skill::SilenceII |
|
Skill::SilenceII |
|
||||||
Skill::SilenceIII => silence(source, target, resolutions, skill), // target cannot cast spells
|
Skill::SilenceIII => silence(source, target, resolutions, skill), // target cannot cast spells
|
||||||
|
|
||||||
// Recharge -> Silence
|
|
||||||
|
|
||||||
Skill::Siphon => siphon(source, target, resolutions, skill),
|
Skill::Siphon => siphon(source, target, resolutions, skill),
|
||||||
Skill::SiphonTick => siphon_tick(source, target, resolutions, skill), // hot
|
Skill::SiphonTick => siphon_tick(source, target, resolutions, skill), // hot
|
||||||
Skill::Slay => slay(source, target, resolutions, skill), // hybrid dmg self heal
|
|
||||||
Skill::Sleep => sleep(source, target, resolutions, skill), // speed slow
|
Skill::SlayI |
|
||||||
Skill::Snare => snare(source, target, resolutions, skill),
|
Skill::SlayII |
|
||||||
|
Skill::SlayIII => slay(source, target, resolutions, skill), // hybrid dmg self heal
|
||||||
|
|
||||||
|
Skill::SleepI |
|
||||||
|
Skill::SleepII |
|
||||||
|
Skill::SleepIII => sleep(source, target, resolutions, skill), // heal stun
|
||||||
|
|
||||||
|
Skill::SnareI |
|
||||||
|
Skill::SnareII |
|
||||||
|
Skill::SnareIII => snare(source, target, resolutions, skill),
|
||||||
|
|
||||||
Skill::Strangle => strangle(source, target, resolutions, skill),
|
Skill::Strangle => strangle(source, target, resolutions, skill),
|
||||||
Skill::StrangleTick => strangle_tick(source, target, resolutions, skill),
|
Skill::StrangleTick => strangle_tick(source, target, resolutions, skill),
|
||||||
Skill::StrikeI => strike(source, target, resolutions, skill),
|
|
||||||
Skill::StrikeII => strike(source, target, resolutions, skill),
|
Skill::StrikeI |
|
||||||
|
Skill::StrikeII |
|
||||||
Skill::StrikeIII => strike(source, target, resolutions, skill),
|
Skill::StrikeIII => strike(source, target, resolutions, skill),
|
||||||
Skill::Stun => stun(source, target, resolutions, skill),
|
|
||||||
Skill::Taunt => taunt(source, target, resolutions, skill),
|
Skill::TauntI |
|
||||||
Skill::Throw => throw(source, target, resolutions, skill), // no damage stun, adds vulnerable
|
Skill::TauntII |
|
||||||
|
Skill::TauntIII => taunt(source, target, resolutions, skill),
|
||||||
|
|
||||||
|
Skill::ThrowI |
|
||||||
|
Skill::ThrowII |
|
||||||
|
Skill::ThrowIII => throw(source, target, resolutions, skill), // no damage stun, adds vulnerable
|
||||||
|
|
||||||
Skill::Triage => triage(source, target, resolutions, skill), // hot
|
Skill::Triage => triage(source, target, resolutions, skill), // hot
|
||||||
Skill::TriageTick => triage_tick(source, target, resolutions, skill), // hot
|
Skill::TriageTick => triage_tick(source, target, resolutions, skill), // hot
|
||||||
|
|
||||||
|
// Base Skills
|
||||||
|
Skill::Attack => attack(source, target, resolutions, skill),
|
||||||
|
Skill::Block => block(source, target, resolutions, skill),
|
||||||
|
Skill::Buff => buff(source, target, resolutions, skill),
|
||||||
|
Skill::Debuff => debuff(source, target, resolutions, skill), // speed slow
|
||||||
|
Skill::Stun => stun(source, target, resolutions, skill),
|
||||||
|
|
||||||
|
//Triggered
|
||||||
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::Riposte => panic!("should only trigger from parry"),
|
Skill::Riposte => panic!("should only trigger from parry"),
|
||||||
@ -447,11 +466,15 @@ impl Effect {
|
|||||||
Skill::HexII,
|
Skill::HexII,
|
||||||
Skill::HexIII,
|
Skill::HexIII,
|
||||||
Skill::SilenceI,
|
Skill::SilenceI,
|
||||||
|
Skill::SilenceII,
|
||||||
|
Skill::SilenceIII,
|
||||||
Skill::RuinI,
|
Skill::RuinI,
|
||||||
Skill::RuinII,
|
Skill::RuinII,
|
||||||
Skill::RuinIII,
|
Skill::RuinIII,
|
||||||
Skill::Strangle,
|
Skill::Strangle,
|
||||||
Skill::Snare
|
Skill::SnareI,
|
||||||
|
Skill::SnareII,
|
||||||
|
Skill::SnareIII
|
||||||
].contains(&skill),
|
].contains(&skill),
|
||||||
Effect::Injured => skill.colours().contains(&Colour::Green),
|
Effect::Injured => skill.colours().contains(&Colour::Green),
|
||||||
_ => false,
|
_ => false,
|
||||||
@ -659,16 +682,26 @@ pub enum Skill {
|
|||||||
SilenceIII,
|
SilenceIII,
|
||||||
Siphon,
|
Siphon,
|
||||||
SiphonTick,
|
SiphonTick,
|
||||||
Slay,
|
SlayI,
|
||||||
Sleep,
|
SlayII,
|
||||||
Snare,
|
SlayIII,
|
||||||
|
SleepI,
|
||||||
|
SleepII,
|
||||||
|
SleepIII,
|
||||||
|
SnareI,
|
||||||
|
SnareII,
|
||||||
|
SnareIII,
|
||||||
Strangle,
|
Strangle,
|
||||||
StrangleTick,
|
StrangleTick,
|
||||||
StrikeI,
|
StrikeI,
|
||||||
StrikeII,
|
StrikeII,
|
||||||
StrikeIII,
|
StrikeIII,
|
||||||
Taunt,
|
TauntI,
|
||||||
Throw, // no damage stun, adds vulnerable
|
TauntII,
|
||||||
|
TauntIII,
|
||||||
|
ThrowI, // no damage stun, adds vulnerable
|
||||||
|
ThrowII,
|
||||||
|
ThrowIII,
|
||||||
Triage, // hot
|
Triage, // hot
|
||||||
TriageTick,
|
TriageTick,
|
||||||
|
|
||||||
@ -698,10 +731,12 @@ impl Skill {
|
|||||||
Skill::HealII => 160, //GG
|
Skill::HealII => 160, //GG
|
||||||
Skill::HealIII => 200, //GG
|
Skill::HealIII => 200, //GG
|
||||||
Skill::SiphonTick => 40, // GB
|
Skill::SiphonTick => 40, // GB
|
||||||
Skill::Slay => 70, // RG
|
Skill::SlayI => 70, // RG
|
||||||
|
Skill::SlayII => 90,
|
||||||
|
Skill::SlayIII => 120,
|
||||||
Skill::StrikeI => 90, //RR
|
Skill::StrikeI => 90, //RR
|
||||||
Skill::StrikeII => 110,
|
Skill::StrikeII => 110,
|
||||||
Skill::StrikeIII => 130,
|
Skill::StrikeIII => 140,
|
||||||
|
|
||||||
// Block Base
|
// Block Base
|
||||||
Skill::CorruptionTick => 80,
|
Skill::CorruptionTick => 80,
|
||||||
@ -718,7 +753,9 @@ impl Skill {
|
|||||||
Skill::RechargeIII => 200,
|
Skill::RechargeIII => 200,
|
||||||
|
|
||||||
// Stun Base
|
// Stun Base
|
||||||
Skill::Sleep => 240, //Green dmg (heal)
|
Skill::SleepI => 240, //Green dmg (heal)
|
||||||
|
Skill::SleepII => 300,
|
||||||
|
Skill::SleepIII => 400,
|
||||||
Skill::StrangleTick => 65,
|
Skill::StrangleTick => 65,
|
||||||
|
|
||||||
// Debuff Base
|
// Debuff Base
|
||||||
@ -726,7 +763,9 @@ impl Skill {
|
|||||||
Skill::SilenceI => 55, // Deals more per blue skill on target
|
Skill::SilenceI => 55, // Deals more per blue skill on target
|
||||||
Skill::SilenceII => 80, // Deals more per blue skill on target
|
Skill::SilenceII => 80, // Deals more per blue skill on target
|
||||||
Skill::SilenceIII => 110, // Deals more per blue skill on target
|
Skill::SilenceIII => 110, // Deals more per blue skill on target
|
||||||
Skill::Snare => 40, // Deals more per red skill on target
|
Skill::SnareI => 40, // Deals more per red skill on target
|
||||||
|
Skill::SnareII => 65,
|
||||||
|
Skill::SnareIII => 100,
|
||||||
|
|
||||||
// Buff base
|
// Buff base
|
||||||
Skill::ImpureBlast => 25,
|
Skill::ImpureBlast => 25,
|
||||||
@ -734,7 +773,9 @@ impl Skill {
|
|||||||
Skill::ScatterI => 140,
|
Skill::ScatterI => 140,
|
||||||
Skill::ScatterII => 200,
|
Skill::ScatterII => 200,
|
||||||
Skill::ScatterIII => 300,
|
Skill::ScatterIII => 300,
|
||||||
Skill::Taunt => 80,
|
Skill::TauntI => 80,
|
||||||
|
Skill::TauntII => 110,
|
||||||
|
Skill::TauntIII => 150,
|
||||||
Skill::TriageTick => 75,
|
Skill::TriageTick => 75,
|
||||||
|
|
||||||
_ => 100,
|
_ => 100,
|
||||||
@ -779,8 +820,13 @@ impl Skill {
|
|||||||
Skill::ReflectI => vec![CrypEffect {effect: Effect::Reflect, duration: 1, meta: None, tick: None }],
|
Skill::ReflectI => vec![CrypEffect {effect: Effect::Reflect, duration: 1, meta: None, tick: None }],
|
||||||
Skill::ReflectII => vec![CrypEffect {effect: Effect::Reflect, duration: 2, meta: None, tick: None }],
|
Skill::ReflectII => vec![CrypEffect {effect: Effect::Reflect, duration: 2, meta: None, tick: None }],
|
||||||
Skill::ReflectIII => vec![CrypEffect {effect: Effect::Reflect, duration: 3, meta: None, tick: None }],
|
Skill::ReflectIII => vec![CrypEffect {effect: Effect::Reflect, duration: 3, meta: None, tick: None }],
|
||||||
Skill::Throw => vec![CrypEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None},
|
|
||||||
|
Skill::ThrowI => vec![CrypEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None},
|
||||||
CrypEffect {effect: Effect::Vulnerable, duration: 3, meta: Some(EffectMeta::Multiplier(150)), tick: None}],
|
CrypEffect {effect: Effect::Vulnerable, duration: 3, meta: Some(EffectMeta::Multiplier(150)), tick: None}],
|
||||||
|
Skill::ThrowII => vec![CrypEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None},
|
||||||
|
CrypEffect {effect: Effect::Vulnerable, duration: 4, meta: Some(EffectMeta::Multiplier(200)), tick: None}],
|
||||||
|
Skill::ThrowIII => vec![CrypEffect {effect: Effect::Stun, duration: 2, meta: None, tick: None},
|
||||||
|
CrypEffect {effect: Effect::Vulnerable, duration: 4, meta: Some(EffectMeta::Multiplier(250)), tick: None}],
|
||||||
|
|
||||||
Skill::RuinI => vec![CrypEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
|
Skill::RuinI => vec![CrypEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
|
||||||
Skill::RuinII => vec![CrypEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
|
Skill::RuinII => vec![CrypEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
|
||||||
@ -792,11 +838,19 @@ impl Skill {
|
|||||||
Skill::SilenceII => vec![CrypEffect {effect: Effect::Silence, duration: 2, meta: None, tick: None}],
|
Skill::SilenceII => vec![CrypEffect {effect: Effect::Silence, duration: 2, meta: None, tick: None}],
|
||||||
Skill::SilenceIII => vec![CrypEffect {effect: Effect::Silence, duration: 3, meta: None, tick: None}],
|
Skill::SilenceIII => vec![CrypEffect {effect: Effect::Silence, duration: 3, meta: None, tick: None}],
|
||||||
Skill::Siphon => vec![CrypEffect {effect: Effect::Siphon, duration: 2, meta: None, tick: None}],
|
Skill::Siphon => vec![CrypEffect {effect: Effect::Siphon, duration: 2, meta: None, tick: None}],
|
||||||
Skill::Sleep => vec![CrypEffect {effect: Effect::Stun, duration: 2, meta: None, tick: None}],
|
Skill::SleepI => vec![CrypEffect {effect: Effect::Stun, duration: 2, meta: None, tick: None}],
|
||||||
Skill::Snare => vec![CrypEffect {effect: Effect::Snare, duration: 2, meta: None, tick: None}],
|
Skill::SleepII => vec![CrypEffect {effect: Effect::Stun, duration: 3, meta: None, tick: None}],
|
||||||
|
Skill::SleepIII => vec![CrypEffect {effect: Effect::Stun, duration: 4, meta: None, tick: None}],
|
||||||
|
|
||||||
|
Skill::SnareI => vec![CrypEffect {effect: Effect::Snare, duration: 2, meta: None, tick: None}],
|
||||||
|
Skill::SnareII => vec![CrypEffect {effect: Effect::Snare, duration: 3, meta: None, tick: None}],
|
||||||
|
Skill::SnareIII => vec![CrypEffect {effect: Effect::Snare, duration: 4, meta: None, tick: None}],
|
||||||
|
|
||||||
Skill::Strangle => vec![CrypEffect {effect: Effect::Strangle, duration: 2, meta: None, tick: None}],
|
Skill::Strangle => vec![CrypEffect {effect: Effect::Strangle, duration: 2, meta: None, tick: None}],
|
||||||
Skill::Stun => vec![CrypEffect {effect: Effect::Stun, duration: 2, meta: None, tick: None}],
|
Skill::Stun => vec![CrypEffect {effect: Effect::Stun, duration: 2, meta: None, tick: None}],
|
||||||
Skill::Taunt => vec![CrypEffect {effect: Effect::Taunt, duration: 2, meta: None, tick: None}],
|
Skill::TauntI => vec![CrypEffect {effect: Effect::Taunt, duration: 2, meta: None, tick: None}],
|
||||||
|
Skill::TauntII => vec![CrypEffect {effect: Effect::Taunt, duration: 3, meta: None, tick: None}],
|
||||||
|
Skill::TauntIII => vec![CrypEffect {effect: Effect::Taunt, duration: 4, meta: None, tick: None}],
|
||||||
Skill::Triage => vec![CrypEffect {effect: Effect::Triage, duration: 2, meta: None, tick: None}],
|
Skill::Triage => vec![CrypEffect {effect: Effect::Triage, duration: 2, meta: None, tick: None}],
|
||||||
|
|
||||||
//Unused
|
//Unused
|
||||||
@ -819,14 +873,18 @@ impl Skill {
|
|||||||
Skill::Block => None, // reduce damage
|
Skill::Block => None, // reduce damage
|
||||||
Skill::Parry => Some(2), // avoid all damage
|
Skill::Parry => Some(2), // avoid all damage
|
||||||
Skill::Riposte => None, // used on parry
|
Skill::Riposte => None, // used on parry
|
||||||
Skill::Snare => Some(2),
|
Skill::SnareI => Some(2),
|
||||||
|
Skill::SnareII => Some(2),
|
||||||
|
Skill::SnareIII => Some(2),
|
||||||
Skill::Stun => Some(2),
|
Skill::Stun => Some(2),
|
||||||
Skill::HealI => None,
|
Skill::HealI => None,
|
||||||
Skill::HealII => None,
|
Skill::HealII => None,
|
||||||
Skill::HealIII => None,
|
Skill::HealIII => None,
|
||||||
Skill::Triage => None, // hot
|
Skill::Triage => None, // hot
|
||||||
Skill::TriageTick => None,
|
Skill::TriageTick => None,
|
||||||
Skill::Throw => Some(1), // no damage stun, adds vulnerable
|
Skill::ThrowI => Some(1), // no damage stun, adds vulnerable
|
||||||
|
Skill::ThrowII => Some(1),
|
||||||
|
Skill::ThrowIII => Some(1),
|
||||||
Skill::BlastI => None,
|
Skill::BlastI => None,
|
||||||
Skill::BlastII => None,
|
Skill::BlastII => None,
|
||||||
Skill::BlastIII => None,
|
Skill::BlastIII => None,
|
||||||
@ -876,15 +934,21 @@ impl Skill {
|
|||||||
Skill::RuinI => Some(3),
|
Skill::RuinI => Some(3),
|
||||||
Skill::RuinII => Some(2),
|
Skill::RuinII => Some(2),
|
||||||
Skill::RuinIII => Some(2),
|
Skill::RuinIII => Some(2),
|
||||||
Skill::Slay => None,
|
Skill::SlayI => None,
|
||||||
Skill::Sleep => Some(3),
|
Skill::SlayII => None,
|
||||||
|
Skill::SlayIII => None,
|
||||||
|
Skill::SleepI => Some(3),
|
||||||
|
Skill::SleepII => Some(3),
|
||||||
|
Skill::SleepIII => Some(3),
|
||||||
|
|
||||||
Skill::Strangle => Some(2),
|
Skill::Strangle => Some(2),
|
||||||
Skill::StrangleTick => None,
|
Skill::StrangleTick => None,
|
||||||
Skill::ClutchI => Some(1),
|
Skill::ClutchI => Some(1),
|
||||||
Skill::ClutchII => Some(2),
|
Skill::ClutchII => Some(2),
|
||||||
Skill::ClutchIII => Some(3),
|
Skill::ClutchIII => Some(3),
|
||||||
Skill::Taunt => Some(2),
|
Skill::TauntI => Some(2),
|
||||||
|
Skill::TauntII => Some(2),
|
||||||
|
Skill::TauntIII => Some(2),
|
||||||
Skill::Injure => Some(2),
|
Skill::Injure => Some(2),
|
||||||
|
|
||||||
Skill::Corrupt => Some(1),
|
Skill::Corrupt => Some(1),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user