Merge branch 'develop' of ssh://git.mnml.gg:40022/~/mnml into develop

This commit is contained in:
ntr 2019-09-19 16:13:27 +10:00
commit 31f3c80334
5 changed files with 128 additions and 79 deletions

View File

@ -133,14 +133,16 @@ function InfoComponent(args) {
} }
return false; return false;
}); });
console.log(info);
const bonusObj = info.includes('Life')
? <div class={`${reqClass} bonus`} > + {bonus.bonus}</div>
: <div class={`${reqClass} bonus`} > + {bonus.bonus}%</div>;
const overFlowObj = overFlow.length ? <div> {overFlow} </div> : null; const overFlowObj = overFlow.length ? <div> {overFlow} </div> : null;
return ( return (
<div key={i} class="spec-goal"> <div key={i} class="spec-goal">
{goals} {goals}
{overFlowObj} {overFlowObj}
<div class={`${reqClass} bonus`} > {bonusObj}
+ {bonus.bonus}
</div>
</div> </div>
); );
}); });

View File

@ -179,10 +179,9 @@ function Construct(props) {
const stats = Object.keys(STATS).map(s => { const stats = Object.keys(STATS).map(s => {
const stat = STATS[s]; const stat = STATS[s];
const info = (s === 'SpeedStat' && 'Speed') const info = (s === 'SpeedStat' && 'speedStat')
|| (s.includes('Power') && 'Power') || (s.includes('Power') && 'powerStat')
|| (s.includes('Life') && 'Life'); || (s.includes('Life') && 'lifeStat');
return <div key={stat.stat} return <div key={stat.stat}
alt={stat.stat} alt={stat.stat}
class={stat.stat} class={stat.stat}

View File

@ -72,6 +72,17 @@ module.exports = {
item: 'SPECS', item: 'SPECS',
description: 'SPECS increase the STATS of a CONSTRUCT.\nSPECS have increased effect once they reach a THRESHOLD across your whole team.\nClick a SPEC above and select a CONSTRUCT to equip.\nDouble-click to unequip.', description: 'SPECS increase the STATS of a CONSTRUCT.\nSPECS have increased effect once they reach a THRESHOLD across your whole team.\nClick a SPEC above and select a CONSTRUCT to equip.\nDouble-click to unequip.',
}, },
powerStat: {
item: 'POWER',
description: 'Power determines the base damage and healing of your construct skills. Combine POWER specs to increase construct power.',
},
lifeStat: {
item: 'LIFE',
description: 'The life of your construct.\n When your construct reaches 0 green life it is knocked out and cannot cast skills.\nRed life mitigates red damage and blue life mitigates blue damage. Combine LIFE specs to increase life totals.',
},
speedStat: {
item: 'SPEED',
description: 'Speed determines the order in which skills resolve. Combine SPEED specs to increase speed.',
},
}, },
}; };

View File

@ -563,68 +563,98 @@ impl Item {
Item::Red => format!("Combine with skills and specs to create upgraded items. \n Speed and chaos."), Item::Red => format!("Combine with skills and specs to create upgraded items. \n Speed and chaos."),
// base skills // base skills
Item::Attack => format!("Deal {:?}% RedPower as red damage", Item::Attack => format!("Deal {:?}% RedPower as red damage.",
self.into_skill().unwrap().multiplier()), self.into_skill().unwrap().multiplier()),
Item::Block => format!("Reduce red damage taken by {:?}%", Item::Block => format!("Reduce red damage taken by {:?}%.",
100 - self.into_skill().unwrap().effect()[0].get_multiplier()), 100 - self.into_skill().unwrap().effect()[0].get_multiplier()),
Item::Stun => format!("Stun target construct for {:?}T", Item::Stun => format!("Stun target construct for {:?}T.",
self.into_skill().unwrap().effect()[0].get_duration()), self.into_skill().unwrap().effect()[0].get_duration()),
Item::Buff => format!("Increase target construct RedPower and SpeedStat by {:?}%", Item::Buff => format!("Increase target construct RedPower and SpeedStat by {:?}%.",
self.into_skill().unwrap().effect()[0].get_multiplier() - 100), self.into_skill().unwrap().effect()[0].get_multiplier() - 100),
Item::Debuff => format!("Slows the target reducing SpeedStat by {:?}%", Item::Debuff => format!("Slows the target reducing SpeedStat by {:?}%.",
100 - self.into_skill().unwrap().effect()[0].get_multiplier()), 100 - self.into_skill().unwrap().effect()[0].get_multiplier()),
// specs // specs
// Base // Base
Item::Power => format!("Base item for increased power. 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.",
Item::Life => format!("Base item for increased life. self.into_spec().unwrap().values().base()),
When your construct reaches 0 GreenLife it is knocked out and cannot cast skills."), Item::Life => format!("Increases construct GreenLife by {:?}.
Item::Speed => format!("Base item for increased speed. When your construct reaches 0 GreenLife it is knocked out and cannot cast skills.",
Speed SpeedStat determines the order in which skills resolve."), self.into_spec().unwrap().values().base()),
Item::Speed => format!("Increases construct speed by {:?}%.
Speed SpeedStat determines the order in which skills resolve.",
self.into_spec().unwrap().values().base()),
// Lifes Upgrades // Lifes Upgrades
Item::LifeGG=> format!("Increases construct GreenLife green life. Item::LifeGG |
When your construct reaches 0 GreenLife it is knocked out and cannot cast skills."), Item::LifeGGPlus |
Item::LifeRR=> format!("Increases construct RedLife red life. Item::LifeGGPlusPlus => format!("Increases construct GreenLife by {:?}.
Mitigates red damage that would otherwise reduce your GreenLife green life."), If your team meets total colour thresholds the spec provides additional bonuses.",
Item::LifeBB=> format!("Increases construct BlueLife blue life. self.into_spec().unwrap().values().base()),
Mitigates blue damage that would otherwise reduce your GreenLife green life."),
Item::LifeRG=> format!("Increases construct GreenLife and RedLife"), Item::LifeRR |
Item::LifeGB=> format!("Increases construct GreenLife and BlueLife"), Item::LifeRRPlus |
Item::LifeRB=> format!("Increases construct RedLife and BlueLife"), Item::LifeRRPlusPlus => format!("Increases construct RedLife by {:?}.
Item::LifeGGPlus => format!("Increases construct GreenLife."), If your team meets total colour thresholds the spec provides additional bonuses.",
Item::LifeRRPlus => format!("Increases construct RedLife."), self.into_spec().unwrap().values().base()),
Item::LifeBBPlus => format!("Increases construct BlueLife."),
Item::LifeRGPlus => format!("Increases construct GreenLife and RedLife"), Item::LifeBB |
Item::LifeGBPlus => format!("Increases construct GreenLife and BlueLife"), Item::LifeBBPlus |
Item::LifeRBPlus => format!("Increases construct RedLife and BlueLife"), Item::LifeBBPlusPlus => format!("Increases construct BlueLife by {:?}.
Item::LifeGGPlusPlus => format!("Increases construct GreenLife."), If your team meets total colour thresholds the spec provides additional bonuses.",
Item::LifeRRPlusPlus => format!("Increases construct RedLife."), self.into_spec().unwrap().values().base()),
Item::LifeBBPlusPlus => format!("Increases construct BlueLife."),
Item::LifeRGPlusPlus => format!("Increases construct GreenLife and RedLife"), Item::LifeRG |
Item::LifeGBPlusPlus => format!("Increases construct GreenLife and BlueLife"), Item::LifeRGPlus |
Item::LifeRBPlusPlus => format!("Increases construct RedLife and BlueLife"), Item::LifeRGPlusPlus => format!("Increases construct RedLife and GreenLife by {:?}.
If your team meets total colour thresholds the spec provides additional bonuses.",
self.into_spec().unwrap().values().base()),
Item::LifeGB |
Item::LifeGBPlus |
Item::LifeGBPlusPlus => format!("Increases construct GreenLife and BlueLife by {:?}.
If your team meets total colour thresholds the spec provides additional bonuses.",
self.into_spec().unwrap().values().base()),
Item::LifeRB |
Item::LifeRBPlus |
Item::LifeRBPlusPlus => format!("Increases construct RedLife and BlueLife by {:?}.
If your team meets total colour thresholds the spec provides additional bonuses.",
self.into_spec().unwrap().values().base()),
// Power Upgrades // Power Upgrades
Item::PowerRR=> format!("Increases construct RedPower."), Item::PowerRR |
Item::PowerBB=> format!("Increases construct BluePower."), Item::PowerRRPlus |
Item::PowerGG=> format!("Increases construct GreenPower."), Item::PowerRRPlusPlus => format!("Increases construct RedPower by {:?}%.
Item::PowerRG=> format!("Increases construct GreenPower and RedPower."), If your team meets total colour thresholds the spec provides additional bonuses.",
Item::PowerGB=> format!("Increases construct GreenPower and BluePower."), self.into_spec().unwrap().values().base()),
Item::PowerRB=> format!("Increases construct RedPower and BluePower."), Item::PowerBB |
Item::PowerRRPlus => format!("Increases construct RedPower."), Item::PowerBBPlus |
Item::PowerBBPlus => format!("Increases construct BluePower."), Item::PowerBBPlusPlus => format!("Increases construct BluePower by {:?}%.
Item::PowerGGPlus => format!("Increases construct GreenPower."), If your team meets total colour thresholds the spec provides additional bonuses.",
Item::PowerRGPlus => format!("Increases construct GreenPower and RedPower."), self.into_spec().unwrap().values().base()),
Item::PowerGBPlus => format!("Increases construct GreenPower and BluePower."),
Item::PowerRBPlus => format!("Increases construct RedPower and BluePower."), Item::PowerGG |
Item::PowerRRPlusPlus => format!("Increases construct RedPower."), Item::PowerGGPlus |
Item::PowerBBPlusPlus => format!("Increases construct BluePower."), Item::PowerGGPlusPlus => format!("Increases construct GreenPower by {:?}%.
Item::PowerGGPlusPlus => format!("Increases construct GreenPower."), If your team meets total colour thresholds the spec provides additional bonuses.",
Item::PowerRGPlusPlus => format!("Increases construct GreenPower and RedPower."), self.into_spec().unwrap().values().base()),
Item::PowerGBPlusPlus => format!("Increases construct GreenPower and BluePower."), Item::PowerRG |
Item::PowerRBPlusPlus => format!("Increases construct RedPower and BluePower."), Item::PowerRGPlus |
Item::PowerRGPlusPlus => format!("Increases construct GreenPower and RedPower by {:?}%.
If your team meets total colour thresholds the spec provides additional bonuses.",
self.into_spec().unwrap().values().base()),
Item::PowerGB |
Item::PowerGBPlus |
Item::PowerGBPlusPlus => format!("Increases construct GreenPower and BluePower by {:?}%.
If your team meets total colour thresholds the spec provides additional bonuses.",
self.into_spec().unwrap().values().base()),
Item::PowerRB |
Item::PowerRBPlus |
Item::PowerRBPlusPlus => format!("Increases construct RedPower and BluePower by {:?}%.
If your team meets total colour thresholds the spec provides additional bonuses.",
self.into_spec().unwrap().values().base()),
// Speed Upgrades // Speed Upgrades
Item::SpeedRR | Item::SpeedRR |
@ -644,12 +674,14 @@ impl Item {
Item::SpeedGGPlusPlus | Item::SpeedGGPlusPlus |
Item::SpeedRGPlusPlus | Item::SpeedRGPlusPlus |
Item::SpeedGBPlusPlus | Item::SpeedGBPlusPlus |
Item::SpeedRBPlusPlus => format!("Increases construct SpeedStat and provides COLOUR BONUSES"), Item::SpeedRBPlusPlus => format!("Increases construct SpeedStat by {:?}%.
If your team meets total colour thresholds the spec provides additional bonuses.",
self.into_spec().unwrap().values().base()),
// Skills <- need to move effect mulltipliers into skills // Skills <- need to move effect mulltipliers into skills
Item::Amplify| Item::Amplify|
Item::AmplifyPlus | Item::AmplifyPlus |
Item::AmplifyPlusPlus => format!("Increase RedPower and BluePower by {:?}%. Lasts {:?}T", Item::AmplifyPlusPlus => format!("Increase RedPower and BluePower by {:?}%. Lasts {:?}T.",
self.into_skill().unwrap().effect()[0].get_multiplier() - 100, self.into_skill().unwrap().effect()[0].get_multiplier() - 100,
self.into_skill().unwrap().effect()[0].get_duration()), self.into_skill().unwrap().effect()[0].get_duration()),
@ -667,7 +699,7 @@ impl Item {
Item::Chaos| Item::Chaos|
Item::ChaosPlus | Item::ChaosPlus |
Item::ChaosPlusPlus => format!( 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()), self.into_skill().unwrap().multiplier()),
Item::Sustain| Item::Sustain|
@ -688,14 +720,14 @@ impl Item {
Item::Curse| Item::Curse|
Item::CursePlus | Item::CursePlus |
Item::CursePlusPlus => format!( Item::CursePlusPlus => format!(
"Increases red and blue damage taken by {:?}%. Lasts {:?}T", "Increases red and blue damage taken by {:?}%. Lasts {:?}T.",
self.into_skill().unwrap().effect()[0].get_multiplier() - 100, self.into_skill().unwrap().effect()[0].get_multiplier() - 100,
self.into_skill().unwrap().effect()[0].get_duration()), self.into_skill().unwrap().effect()[0].get_duration()),
Item::Decay| Item::Decay|
Item::DecayPlus | Item::DecayPlus |
Item::DecayPlusPlus => format!( 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(), 100 - self.into_skill().unwrap().effect()[0].get_multiplier(),
self.into_skill().unwrap().effect()[0].get_duration(), self.into_skill().unwrap().effect()[0].get_duration(),
self.into_skill().unwrap().effect()[1].get_skill().unwrap().multiplier(), self.into_skill().unwrap().effect()[1].get_skill().unwrap().multiplier(),
@ -704,7 +736,7 @@ impl Item {
Item::Absorb| Item::Absorb|
Item::AbsorbPlus | Item::AbsorbPlus |
Item::AbsorbPlusPlus => format!( Item::AbsorbPlusPlus => format!(
"Gain Absorb for {:?}T. {} Absorption lasts {:?}T", "Gain Absorb for {:?}T. {} Absorption lasts {:?}T.",
self.into_skill().unwrap().effect()[0].get_duration(), self.into_skill().unwrap().effect()[0].get_duration(),
"When attacked with Absorb you gain Absorption which increases RedPower and BluePower based on Damage taken.", "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()), self.into_skill().unwrap().effect()[0].get_skill().unwrap().effect()[0].get_duration()),
@ -724,7 +756,7 @@ impl Item {
Item::Hybrid| Item::Hybrid|
Item::HybridPlus | Item::HybridPlus |
Item::HybridPlusPlus => format!( 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, self.into_skill().unwrap().effect()[0].get_multiplier() - 100,
Skill::HybridBlast.multiplier(), Skill::HybridBlast.multiplier(),
self.into_skill().unwrap().effect()[0].get_duration()), self.into_skill().unwrap().effect()[0].get_duration()),
@ -745,7 +777,8 @@ impl Item {
Item::Purge| Item::Purge|
Item::PurgePlus | Item::PurgePlus |
Item::PurgePlusPlus => format!("Remove buffs from target construct"), Item::PurgePlusPlus => format!("Remove buffs from target construct. Applies purge which disables target green skills for {:?}T.",
self.into_skill().unwrap().effect()[0].get_duration()),
Item::Purify| Item::Purify|
Item::PurifyPlus | Item::PurifyPlus |
@ -756,13 +789,13 @@ impl Item {
Item::Reflect| Item::Reflect|
Item::ReflectPlus | Item::ReflectPlus |
Item::ReflectPlusPlus => format!( Item::ReflectPlusPlus => format!(
"Reflect incoming blue skills to source. Lasts {:?}T", "Reflect incoming blue skills to source. Lasts {:?}T.",
self.into_skill().unwrap().effect()[0].get_duration()), self.into_skill().unwrap().effect()[0].get_duration()),
Item::Recharge| Item::Recharge|
Item::RechargePlus | Item::RechargePlus |
Item::RechargePlusPlus => format!( Item::RechargePlusPlus => format!(
"Recharge RedLife and BlueLife based on {:?}% RedPower and BluePower", "Recharge RedLife and BlueLife based on {:?}% RedPower and BluePower.",
self.into_skill().unwrap().multiplier()), self.into_skill().unwrap().multiplier()),
Item::Ruin| Item::Ruin|
@ -784,7 +817,7 @@ impl Item {
Item::SilencePlus | Item::SilencePlus |
Item::SilencePlusPlus => format!( Item::SilencePlusPlus => format!(
"Block the target from using blue skills for {:?}T and deals {:?}% BluePower as blue damage. "Block the target from using blue skills for {:?}T and deals {:?}% BluePower as blue damage.
Deals 45% more Damage per blue skill on target", Deals 45% more Damage per blue skill on target.",
self.into_skill().unwrap().effect()[0].get_duration(), self.into_skill().unwrap().effect()[0].get_duration(),
self.into_skill().unwrap().multiplier()), self.into_skill().unwrap().multiplier()),
@ -804,7 +837,7 @@ impl Item {
Item::Restrict| Item::Restrict|
Item::RestrictPlus | Item::RestrictPlus |
Item::RestrictPlusPlus => format!( 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().effect()[0].get_duration(),
self.into_skill().unwrap().multiplier()), self.into_skill().unwrap().multiplier()),
@ -819,13 +852,13 @@ impl Item {
Item::Strike| Item::Strike|
Item::StrikePlus | Item::StrikePlus |
Item::StrikePlusPlus => format!( Item::StrikePlusPlus => format!(
"Strike the target with speed dealing {:?}% RedPower as red damage", "Strike the target with speed dealing {:?}% RedPower as red damage.",
self.into_skill().unwrap().multiplier()), self.into_skill().unwrap().multiplier()),
Item::Siphon| Item::Siphon|
Item::SiphonPlus | Item::SiphonPlus |
Item::SiphonPlusPlus => format!( Item::SiphonPlusPlus => format!(
"Deals {:?}% BluePower as blue damage each turn and heals caster based on damage dealt. Lasts {:?}T", "Deals {:?}% BluePower as blue damage each turn and 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()), self.into_skill().unwrap().effect()[0].get_duration()),
@ -839,7 +872,7 @@ impl Item {
Item::Break| Item::Break|
Item::BreakPlus | Item::BreakPlus |
Item::BreakPlusPlus => format!( Item::BreakPlusPlus => 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()[0].get_duration(), self.into_skill().unwrap().effect()[0].get_duration(),
self.into_skill().unwrap().effect()[1].get_multiplier() - 100, self.into_skill().unwrap().effect()[1].get_multiplier() - 100,
self.into_skill().unwrap().effect()[1].get_duration()), self.into_skill().unwrap().effect()[1].get_duration()),
@ -847,7 +880,7 @@ impl Item {
Item::Triage| Item::Triage|
Item::TriagePlus | Item::TriagePlus |
Item::TriagePlusPlus => format!( Item::TriagePlusPlus => format!(
"Heals target for {:?}% GreenPower each turn. Lasts {:?}T", "Heals target for {:?}% GreenPower each turn. 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()), self.into_skill().unwrap().effect()[0].get_duration()),
} }

View File

@ -28,6 +28,10 @@ impl SpecValues {
self.bonuses.iter().fold(self.base, |acc, s| acc + s.get_bonus(c)) self.bonuses.iter().fold(self.base, |acc, s| acc + s.get_bonus(c))
} }
pub fn base (self) -> u64 {
self.base
}
/* /*
pub fn calc_multi (&self, c: &Colours) -> u64 { pub fn calc_multi (&self, c: &Colours) -> u64 {
self.multi * (c.red + c.green + c.blue) as u64 self.multi * (c.red + c.green + c.blue) as u64