diff --git a/client/src/components/info.component.jsx b/client/src/components/info.component.jsx index 8d49b1ac..6a1689dd 100644 --- a/client/src/components/info.component.jsx +++ b/client/src/components/info.component.jsx @@ -70,7 +70,8 @@ class InfoComponent extends preact.Component { if (isSkill) { const regEx = /(RedPower|BluePower|GreenPower|RedLife|BlueLife|GreenLife|SpeedStat)/; - const infoDescription = reactStringReplace(fullInfo.description, regEx, match => shapes[match]()); + let infoDescription = reactStringReplace(fullInfo.description, regEx, match => shapes[match]()); + infoDescription = reactStringReplace(infoDescription, '\n', () =>
); const itemSource = itemInfo.combos.filter(c => c.item === removeTier(info)); const itemSourceInfo = itemSource.length ? `${itemSource[0].components[0]} ${itemSource[0].components[1]} ${itemSource[0].components[2]}` @@ -176,7 +177,8 @@ class InfoComponent extends preact.Component { ); }); const regEx = /(RedPower|BluePower|GreenPower|RedLife|BlueLife|GreenLife|SpeedStat)/; - const infoDescription = reactStringReplace(fullInfo.description, regEx, match => shapes[match]()); + let infoDescription = reactStringReplace(fullInfo.description, regEx, match => shapes[match]()); + infoDescription = reactStringReplace(infoDescription, '\n', () =>
); const itemSource = itemInfo.combos.filter(c => c.item === info); let itemSourceInfo = itemSource.length ? `${itemSource[0].components[0]} ${itemSource[0].components[1]} ${itemSource[0].components[2]}` @@ -202,10 +204,11 @@ class InfoComponent extends preact.Component { ); } const cost = fullInfo.cost ? `- ${fullInfo.cost}b` : false; + const infoDescription = reactStringReplace(fullInfo.description, '\n', () =>
); return (

{fullInfo.item} {cost}

-
{fullInfo.description}
+
{infoDescription}
); } diff --git a/server/src/item.rs b/server/src/item.rs index 763e17c2..2cae5571 100644 --- a/server/src/item.rs +++ b/server/src/item.rs @@ -584,9 +584,9 @@ impl Item { pub fn into_description(&self) -> String { match self { // colours - Item::Blue => format!("Combine with skills and specs to create upgraded items. \n Deterrents and destruction."), - Item::Green => format!("Combine with skills and specs to create upgraded items.\n Protection and trickery."), - Item::Red => format!("Combine with skills and specs to create upgraded items. \n Speed and chaos."), + Item::Blue => format!("Combine two colours with a white base item to create a new combo. \n Slow speed, magical type. Deterrents and destruction."), + 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.", @@ -603,7 +603,8 @@ impl Item { 100 - self.into_skill().unwrap().effect()[0].get_multiplier()), // specs // Base - Item::Power => format!("Increases all power stats by {:?}%. Power determines the base damage and healing of your construct skills.", + Item::Power => format!("Increases all power stats by {:?}%. + Power determines the base damage and healing of your construct skills.", self.into_spec().unwrap().values().base()), Item::Life => format!("Increases construct GreenLife by {:?}. When your construct reaches 0 GreenLife it is knocked out and cannot cast skills.", @@ -713,7 +714,8 @@ impl Item { Item::Banish| Item::BanishPlus | - Item::BanishPlusPlus => format!("Banish target for {:?}T. Deal blue damage and red damage equal to {:?}% target red and blue life. + Item::BanishPlusPlus => format!("Banish target for {:?}T. + Deal blue damage and red damage equal to {:?}% target red and blue life. Banished constructs are immune to all skills and effects.", self.into_skill().unwrap().effect()[0].get_duration(), self.into_skill().unwrap().multiplier()), @@ -725,20 +727,24 @@ impl Item { Item::Chaos| Item::ChaosPlus | Item::ChaosPlusPlus => format!( - "Hits twice for red and blue damage. Damage {:?}% RedPower and BluePower. Randomly deals 0 to 30% more damage.", + "Hits twice for red and blue damage. Damage {:?}% RedPower and BluePower. + Randomly deals 0 to 30% more damage.", self.into_skill().unwrap().multiplier()), Item::Sustain| Item::SustainPlus | - Item::SustainPlusPlus => format!("Construct cannot be KO'd while active. Additionally provides immunity to disables. \ - Lasts {:?}T", - self.into_skill().unwrap().effect()[0].get_duration()), + Item::SustainPlusPlus => format!( + "Construct cannot be KO'd while active and provides immunity to disables. Lasts {:?}T. + Recharges target RedLife based on {:?}% RedPower.", + self.into_skill().unwrap().effect()[0].get_duration(), + self.into_skill().unwrap().multiplier()), Item::Electrify| Item::ElectrifyPlus | Item::ElectrifyPlusPlus => format!( - "Applies electrify for {:?}T. If a construct with electrify takes damage they will apply an electrocute debuff to the caster dealing {:?}% \ - BluePower as BlueDamage per turn for {:?}T.", + "Applies electrify for {:?}T. + If a construct with electrify takes direct damage they will apply an electrocute debuff to the caster. + Electrocute deals {:?}% BluePower as BlueDamage per turn for {:?}T.", self.into_skill().unwrap().effect()[0].get_duration(), self.into_skill().unwrap().effect()[0].get_skill().unwrap().effect()[0].get_skill().unwrap().multiplier(), self.into_skill().unwrap().effect()[0].get_skill().unwrap().effect()[0].get_duration()), @@ -753,7 +759,8 @@ impl Item { Item::Decay| Item::DecayPlus | Item::DecayPlusPlus => format!( - "Reduces healing taken by {:?}% for {:?}T. Deals blue damage {:?}% BluePower each turn for {:?}T.", + "Reduces healing taken by {:?}% for {:?}T. + Deals blue damage {:?}% BluePower each turn for {:?}T.", 100 - self.into_skill().unwrap().effect()[0].get_multiplier(), self.into_skill().unwrap().effect()[0].get_duration(), self.into_skill().unwrap().effect()[1].get_skill().unwrap().multiplier(), @@ -762,17 +769,20 @@ impl Item { Item::Absorb| Item::AbsorbPlus | Item::AbsorbPlusPlus => format!( - "Gain Absorb for {:?}T. {} Absorption lasts {:?}T.", + "Gain Absorb for {:?}T. When attacked with Absorb you gain Absorption. + Absorption increases RedPower and BluePower based on Damage taken. + Absorption lasts {:?}T.", self.into_skill().unwrap().effect()[0].get_duration(), - "When attacked with Absorb you gain Absorption which increases RedPower and BluePower based on Damage taken.", self.into_skill().unwrap().effect()[0].get_skill().unwrap().effect()[0].get_duration()), Item::Haste| Item::HastePlus | Item::HastePlusPlus => format!( - "Haste increases SpeedStat by {:?}%, Red Attack based skills will strike again dealing {:?}% SpeedStat as red damage. Lasts {:?}T", + "Haste increases SpeedStat by {:?}%. + Red Attack based skills will strike again dealing {:?}% SpeedStat as red damage. + Lasts {:?}T", self.into_skill().unwrap().effect()[0].get_multiplier() - 100, - Skill::HasteStrike.multiplier(), + Skill::HasteStrike.multiplier(), self.into_skill().unwrap().effect()[0].get_duration()), Item::Heal| @@ -782,7 +792,9 @@ impl Item { Item::Hybrid| Item::HybridPlus | Item::HybridPlusPlus => format!( - "Hybrid increases GreenPower by {:?}%, Blue based Attack skills will blast again dealing {:?}% GreenPower as blue damage. Lasts {:?}T.", + "Hybrid increases GreenPower by {:?}%. + Blue based Attack skills will blast again dealing {:?}% GreenPower as blue damage. + Lasts {:?}T.", self.into_skill().unwrap().effect()[0].get_multiplier() - 100, Skill::HybridBlast.multiplier(), self.into_skill().unwrap().effect()[0].get_duration()), @@ -790,20 +802,26 @@ impl Item { Item::Invert| Item::InvertPlus | Item::InvertPlusPlus => format!( - "Reverse healing into damage and damage into healing. Any excess red or blue damage is converted into shield recharge. Lasts {:?}T.", + "Reverse healing into damage and damage into healing. + Any excess red or blue damage is converted into shield recharge. + Lasts {:?}T.", self.into_skill().unwrap().effect()[0].get_duration()), Item::Counter| Item::CounterPlus | - Item::CounterPlusPlus => format!("Applies counter and block {:?}T. Block reduces incoming red damage by {:?}%. - Red damage taken during counter will trigger a counter attack dealing {:?}% RedPower as red damage.", + Item::CounterPlusPlus => format!( + "Applies counter and block {:?}T. Block reduces incoming red damage by {:?}%. + Red damage taken during counter will trigger a counter attack. + Counter attack deals {:?}% RedPower as red damage.", self.into_skill().unwrap().effect()[0].get_duration(), 100 - self.into_skill().unwrap().effect()[1].get_multiplier(), self.into_skill().unwrap().effect()[0].get_skill().unwrap().multiplier()), Item::Purge| Item::PurgePlus | - Item::PurgePlusPlus => format!("Remove buffs from target construct. Applies purge disabling target green skills for {:?}T.", + Item::PurgePlusPlus => format!( + "Remove buffs from target construct. + Applies purge disabling target green skills for {:?}T.", self.into_skill().unwrap().effect()[0].get_duration()), Item::Purify| @@ -815,8 +833,10 @@ impl Item { Item::Reflect| Item::ReflectPlus | Item::ReflectPlusPlus => format!( - "Reflect incoming blue skills to source. Lasts {:?}T.", - self.into_skill().unwrap().effect()[0].get_duration()), + "Reflect incoming blue skills to source. Lasts {:?}T. + Recharges target BlueLife based on {:?}% BluePower.", + self.into_skill().unwrap().effect()[0].get_duration(), + self.into_skill().unwrap().multiplier()), Item::Recharge| Item::RechargePlus | @@ -833,8 +853,8 @@ impl Item { Item::Link| Item::LinkPlus | Item::LinkPlusPlus => format!( - "Form a link with target swapping relative life values. - If the target construct has more green life than caster, {:?}% of green life difference as blue damage to the target and heal to the caster. + "Swap {:?}% of green life difference as blue damage to the target and healing to the caster. + The swap only occurs if the target construct has more green life than caster. Stuns caster for {:?}T in the process.", self.into_skill().unwrap().multiplier(), self.into_skill().unwrap().effect()[0].get_duration()), @@ -850,7 +870,8 @@ impl Item { Item::Slay| Item::SlayPlus | Item::SlayPlusPlus => format!( - "Deals {:?}% RedPower + {:?}% GreenPower as red damage and provides self healing based on damage dealt.", + "Deals {:?}% RedPower + {:?}% GreenPower as red damage. + Provides self healing based on damage dealt.", self.into_skill().unwrap().multiplier(), self.into_skill().unwrap().multiplier()), @@ -864,7 +885,8 @@ impl Item { Item::Restrict| Item::RestrictPlus | Item::RestrictPlusPlus => format!( - "Block the target from using red skills for {:?}T and deals {:?}% RedPower as red damage. Deals 35% more damage per red skill on target.", + "Block the target from using red skills for {:?}T and deals {:?}% RedPower as red damage. + Deals 35% more damage per red skill on target.", self.into_skill().unwrap().effect()[0].get_duration(), self.into_skill().unwrap().multiplier()), @@ -872,7 +894,8 @@ impl Item { Item::BashPlus | Item::BashPlusPlus => format!( "Bash the target increasing the cooldowns of target skills by 1T. - Deals {:?}% RedPower as red damage and 45% more damage per cooldown increased. Stuns for {:?}T.", + Deals {:?}% RedPower as red damage and 45% more damage per cooldown increased. + Stuns for {:?}T.", self.into_skill().unwrap().effect()[0].get_skill().unwrap().multiplier(), self.into_skill().unwrap().effect()[0].get_duration()), @@ -885,14 +908,17 @@ impl Item { Item::Siphon| Item::SiphonPlus | Item::SiphonPlusPlus => format!( - "Deals {:?}% BluePower + {:?}% GreenPower as blue damage each turn and heals caster based on damage dealt. Lasts {:?}T.", + "Deals {:?}% BluePower + {:?}% GreenPower as blue damage each turn. + Heals caster based on damage dealt. + Lasts {:?}T.", self.into_skill().unwrap().effect()[0].get_skill().unwrap().multiplier(), self.into_skill().unwrap().effect()[0].get_skill().unwrap().multiplier(), self.into_skill().unwrap().effect()[0].get_duration()), Item::Intercept| Item::InterceptPlus | - Item::InterceptPlusPlus => format!("Intercept redirects skills against the team to target, lasts {:?}T.\ + Item::InterceptPlusPlus => format!( + "Intercept redirects skills against the team to target, lasts {:?}T. Recharges RedLife for {:?} RedPower.", self.into_skill().unwrap().effect()[0].get_duration(), self.into_skill().unwrap().multiplier()),