From c1aa592cd5f789b469a7a9b90133114483f0f191 Mon Sep 17 00:00:00 2001 From: Mashy Date: Mon, 16 Dec 2019 18:24:06 +1000 Subject: [PATCH] skill info init --- core/src/item.rs | 133 +++++++++++++++++++++++++++++++++++++++------- core/src/skill.rs | 17 ++++++ 2 files changed, 131 insertions(+), 19 deletions(-) diff --git a/core/src/item.rs b/core/src/item.rs index d84abe7d..f55f9769 100644 --- a/core/src/item.rs +++ b/core/src/item.rs @@ -569,7 +569,7 @@ impl Item { Item::LifeRRPlusPlus => Some(Spec::LifeRRPlusPlus), Item::LifeBBPlusPlus => Some(Spec::LifeBBPlusPlus), - _ => None, + _ => None, } } @@ -589,23 +589,6 @@ impl Item { Item::Green => format!("Combine two colours with a white base item to create a new combo.\n Normal speed, healing type. Protection and trickery."), Item::Red => format!("Combine two colours with a white base item to create a new combo. \n Fast speed, physical type. Chaos and momentum."), - // base skills -/* Item::Attack => format!("Deal {:?}% RedPower as red damage.", - self.into_skill().unwrap().multiplier()), - Item::Block => format!("Reduce red damage and blue damage taken by {:?}%. Block lasts {:?}T", - 100 - self.into_skill().unwrap().effect()[0].get_multiplier(), - self.into_skill().unwrap().effect()[0].get_duration()), - - - Item::Stun => format!("Stun target construct for {:?}T.", - self.into_skill().unwrap().effect()[0].get_duration()), - Item::Buff => format!("Increase target construct RedPower BluePower SpeedStat by {:?}%. Buff lasts {:?}T", - self.into_skill().unwrap().effect()[0].get_multiplier() - 100, - self.into_skill().unwrap().effect()[0].get_duration()), - - Item::Debuff => format!("Slows the target reducing SpeedStat by {:?}%. Debuff lasts {:?}T", - 100 - self.into_skill().unwrap().effect()[0].get_multiplier(), - self.into_skill().unwrap().effect()[0].get_duration()),*/ // specs // Base Item::Power => format!("Increases all power stats by {:?}%. @@ -710,7 +693,119 @@ impl Item { If your team meets total colour thresholds the spec provides additional bonuses.", self.into_spec().unwrap().values().base()), -/* Item::Amplify| + + Item::Attack | + Item::Block | + Item::Buff | + Item::Debuff | + Item::Stun | + Item::Strike | + Item::StrikePlus | + Item::StrikePlusPlus | + Item::Counter | + Item::CounterPlus | + Item::CounterPlusPlus | + Item::Restrict | + Item::RestrictPlus | + Item::RestrictPlusPlus | + Item::Bash | + Item::BashPlus | + Item::BashPlusPlus | + Item::Heal | + Item::HealPlus | + Item::HealPlusPlus | + Item::Triage | + Item::TriagePlus | + Item::TriagePlusPlus | + Item::Break | + Item::BreakPlus | + Item::BreakPlusPlus | + Item::Blast | + Item::BlastPlus | + Item::BlastPlusPlus | + Item::Chaos | + Item::ChaosPlus | + Item::ChaosPlusPlus | + Item::Amplify | + Item::AmplifyPlus | + Item::AmplifyPlusPlus | + Item::Hybrid | + Item::HybridPlus | + Item::HybridPlusPlus | + Item::Invert | + Item::InvertPlus | + Item::InvertPlusPlus | + Item::Decay | + Item::DecayPlus | + Item::DecayPlusPlus | + Item::Siphon| + Item::SiphonPlus | + Item::SiphonPlusPlus | + Item::Curse | + Item::CursePlus | + Item::CursePlusPlus | + Item::Link | + Item::LinkPlus | + Item::LinkPlusPlus | + Item::Silence | + Item::SilencePlus | + Item::SilencePlusPlus | + Item::Purify | + Item::PurifyPlus | + Item::PurifyPlusPlus | + Item::Purge | + Item::PurgePlus | + Item::PurgePlusPlus | + Item::Banish | + Item::BanishPlus | + Item::BanishPlusPlus | + Item::Haste | + Item::HastePlus | + Item::HastePlusPlus | + Item::Reflect | + Item::ReflectPlus | + Item::ReflectPlusPlus | + Item::Recharge | + Item::RechargePlus | + Item::RechargePlusPlus | + Item::Ruin | + Item::RuinPlus | + Item::RuinPlusPlus | + Item::Slay | + Item::SlayPlus | + Item::SlayPlusPlus | + Item::Sleep | + Item::SleepPlus | + Item::SleepPlusPlus | + Item::Sustain | + Item::SustainPlus | + Item::SustainPlusPlus | + Item::Intercept | + Item::InterceptPlus | + Item::InterceptPlusPlus | + Item::Electrify | + Item::ElectrifyPlus | + Item::ElectrifyPlusPlus | + Item::Absorb | + Item::AbsorbPlus | + Item::AbsorbPlusPlus => self.into_skill().unwrap().description(), + +/* Item::Block => format!("Reduce red damage and blue damage taken by {:?}%. Block lasts {:?}T", + 100 - self.into_skill().unwrap().effect()[0].get_multiplier(), + self.into_skill().unwrap().effect()[0].get_duration()), + + + Item::Stun => format!("Stun target construct for {:?}T.", + self.into_skill().unwrap().effect()[0].get_duration()), + Item::Buff => format!("Increase target construct RedPower BluePower SpeedStat by {:?}%. Buff lasts {:?}T", + self.into_skill().unwrap().effect()[0].get_multiplier() - 100, + self.into_skill().unwrap().effect()[0].get_duration()), + + Item::Debuff => format!("Slows the target reducing SpeedStat by {:?}%. Debuff lasts {:?}T", + 100 - self.into_skill().unwrap().effect()[0].get_multiplier(), + self.into_skill().unwrap().effect()[0].get_duration()), + + Item::Amplify| Item::AmplifyPlus | Item::AmplifyPlusPlus => format!("Increase RedPower BluePower by {:?}%. Lasts {:?}T.", self.into_skill().unwrap().effect()[0].get_multiplier() - 100, diff --git a/core/src/skill.rs b/core/src/skill.rs index b261146e..ad72985f 100644 --- a/core/src/skill.rs +++ b/core/src/skill.rs @@ -745,6 +745,17 @@ impl Skill { None => panic!("{:?} has no base item", self), } } + + pub fn description(self) -> String { + match self { + Skill::Attack => Attack::Base.description(), + + Skill::Blast => Blast::Base.description(), + Skill::BlastPlus => Blast::Plus.description(), + Skill::BlastPlusPlus => Blast::PlusPlus.description(), + _ => format!("no description") + } + } } #[derive(Debug,Clone,Copy,PartialEq,Serialize,Deserialize)] @@ -753,6 +764,9 @@ impl Attack { fn dmg_multiplier(self) -> usize { match self { Attack::Base => 80 } } + fn description(self) -> String { + format!("Deal {:?}% RedPower as red damage.", self.dmg_multiplier()) + } } fn attack(cast: Cast, game: &mut Game, values: Attack) { @@ -777,6 +791,9 @@ impl Blast { Blast::Hybrid => 50, } } + fn description(self) -> String { + format!("Deals {:?}% BluePower as blue damage.", self.dmg_multi()) + } } fn blast(cast: Cast, game: &mut Game, values: Blast) {