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

This commit is contained in:
ntr 2019-09-16 18:31:48 +10:00
commit b6f6712444
3 changed files with 229 additions and 242 deletions

View File

@ -13,7 +13,6 @@ pub enum Effect {
Sustain,
Curse,
Haste,
Hex,
Hybrid,
Invert,
Counter,
@ -73,9 +72,6 @@ impl Effect {
Effect::Banish => true,
Effect::Sustain => [
Skill::Stun,
Skill::Hex,
Skill::HexPlus,
Skill::HexPlusPlus,
Skill::Silence,
Skill::SilencePlus,
Skill::SilencePlusPlus,
@ -97,7 +93,6 @@ impl Effect {
match self {
Effect::Stun => true,
Effect::Hex => true,
Effect::Banish => true,
Effect::Silence => skill.colours().contains(&Colour::Blue),
Effect::Restrict => skill.colours().contains(&Colour::Red),
@ -168,7 +163,6 @@ impl Effect {
Effect::Intercept => Some(Colour::Green),
// magic
Effect::Hex => Some(Colour::Blue),
Effect::Curse => Some(Colour::Blue),
Effect::Banish => None,
// Effect::Banish => rng.gen_bool(0.5),

View File

@ -143,12 +143,6 @@ pub enum Item {
#[serde(rename = "Decay++")]
DecayPlusPlus,
Hex,
#[serde(rename = "Hex+")]
HexPlus,
#[serde(rename = "Hex++")]
HexPlusPlus,
Haste,
#[serde(rename = "Haste+")]
HastePlus,
@ -726,12 +720,6 @@ impl Item {
Item::HealPlus |
Item::HealPlusPlus => format!("Heals target for {:?}% GreenPower.", self.into_skill().unwrap().multiplier()),
Item::Hex|
Item::HexPlus |
Item::HexPlusPlus => format!("Blue based skill that applies Hex for {:?}T. \
Hexed targets cannot cast any skills.",
self.into_skill().unwrap().effect()[0].get_duration()),
Item::Hybrid|
Item::HybridPlus |
Item::HybridPlusPlus => format!(
@ -1066,9 +1054,6 @@ impl From<Skill> for Item {
Skill::Heal => Item::Heal,
Skill::HealPlus => Item::HealPlus,
Skill::HealPlusPlus => Item::HealPlusPlus,
Skill::Hex => Item::Hex,
Skill::HexPlus => Item::HexPlus,
Skill::HexPlusPlus => Item::HexPlusPlus,
Skill::Hybrid => Item::Hybrid,
Skill::HybridPlus => Item::HybridPlus,
Skill::HybridPlusPlus => Item::HybridPlusPlus,

View File

@ -831,22 +831,22 @@ impl Skill {
Skill::Buff => vec![ConstructEffect {effect: Effect::Buff, duration: 2,
meta: Some(EffectMeta::Multiplier(125)), tick: None }],
Skill::Electrify => vec![ConstructEffect {effect: Effect::Electric, duration: 2,
Skill::Electrify => vec![ConstructEffect {effect: Effect::Electric, duration: 1,
meta: Some(EffectMeta::Skill(Skill::Electrocute)), tick: None}],
Skill::ElectrifyPlus => vec![ConstructEffect {effect: Effect::Electric, duration: 3,
Skill::ElectrifyPlus => vec![ConstructEffect {effect: Effect::Electric, duration: 1,
meta: Some(EffectMeta::Skill(Skill::ElectrocutePlus)), tick: None}],
Skill::ElectrifyPlusPlus => vec![ConstructEffect {effect: Effect::Electric, duration: 4,
Skill::ElectrifyPlusPlus => vec![ConstructEffect {effect: Effect::Electric, duration: 1,
meta: Some(EffectMeta::Skill(Skill::ElectrocutePlusPlus)), tick: None}],
Skill::Electrocute => vec![ConstructEffect {effect: Effect::Electrocute, duration: 3,
Skill::Electrocute => vec![ConstructEffect {effect: Effect::Electrocute, duration: 2,
meta: Some(EffectMeta::Skill(Skill::ElectrocuteTick)), tick: None}],
Skill::ElectrocutePlus => vec![ConstructEffect {effect: Effect::Electrocute, duration: 4,
Skill::ElectrocutePlus => vec![ConstructEffect {effect: Effect::Electrocute, duration: 3,
meta: Some(EffectMeta::Skill(Skill::ElectrocuteTickPlus)), tick: None}],
Skill::ElectrocutePlusPlus => vec![ConstructEffect {effect: Effect::Electrocute, duration: 5,
Skill::ElectrocutePlusPlus => vec![ConstructEffect {effect: Effect::Electrocute, duration: 4,
meta: Some(EffectMeta::Skill(Skill::ElectrocuteTickPlusPlus)), tick: None}],
Skill::Sustain => vec![ConstructEffect {effect: Effect::Sustain, duration: 1, meta: None, tick: None }],
Skill::SustainPlus => vec![ConstructEffect {effect: Effect::Sustain, duration: 2, meta: None, tick: None }],
Skill::SustainPlusPlus => vec![ConstructEffect {effect: Effect::Sustain, duration: 3, meta: None, tick: None }],
Skill::SustainPlus => vec![ConstructEffect {effect: Effect::Sustain, duration: 1, meta: None, tick: None }],
Skill::SustainPlusPlus => vec![ConstructEffect {effect: Effect::Sustain, duration: 1, meta: None, tick: None }],
Skill::Curse => vec![ConstructEffect {effect: Effect::Curse, duration: 2,
meta: Some(EffectMeta::Multiplier(150)), tick: None}],
@ -858,13 +858,16 @@ impl Skill {
Skill::Debuff => vec![ConstructEffect {effect: Effect::Slow, duration: 3,
meta: Some(EffectMeta::Multiplier(50)), tick: None }],
Skill::Decay => vec![ConstructEffect {effect: Effect::Wither, duration: 3, meta: Some(EffectMeta::Multiplier(50)), tick: None },
Skill::Decay => vec![ConstructEffect {effect: Effect::Wither, duration: 3,
meta: Some(EffectMeta::Multiplier(50)), tick: None },
ConstructEffect {effect: Effect::Decay, duration: 3,
meta: Some(EffectMeta::Skill(Skill::DecayTick)), tick: None}],
Skill::DecayPlus => vec![ConstructEffect {effect: Effect::Wither, duration: 3, meta: Some(EffectMeta::Multiplier(35)), tick: None },
Skill::DecayPlus => vec![ConstructEffect {effect: Effect::Wither, duration: 3,
meta: Some(EffectMeta::Multiplier(35)), tick: None },
ConstructEffect {effect: Effect::Decay, duration: 3,
meta: Some(EffectMeta::Skill(Skill::DecayTickPlus)), tick: None}],
Skill::DecayPlusPlus => vec![ConstructEffect {effect: Effect::Wither, duration: 4, meta: Some(EffectMeta::Multiplier(20)), tick: None },
Skill::DecayPlusPlus => vec![ConstructEffect {effect: Effect::Wither, duration: 4,
meta: Some(EffectMeta::Multiplier(20)), tick: None },
ConstructEffect {effect: Effect::Decay, duration: 4,
meta: Some(EffectMeta::Skill(Skill::DecayTickPlusPlus)), tick: None}],
@ -874,6 +877,7 @@ impl Skill {
meta: Some(EffectMeta::Multiplier(175)), tick: None }],
Skill::HastePlusPlus => vec![ConstructEffect {effect: Effect::Haste, duration: 4,
meta: Some(EffectMeta::Multiplier(225)), tick: None }],
Skill::Hex => vec![ConstructEffect {effect: Effect::Hex, duration: 2, meta: None, tick: None}],
Skill::HexPlus => vec![ConstructEffect {effect: Effect::Hex, duration: 3, meta: None, tick: None}],
Skill::HexPlusPlus => vec![ConstructEffect {effect: Effect::Hex, duration: 4, meta: None, tick: None}],
@ -900,31 +904,34 @@ impl Skill {
Skill::InvertPlus => vec![ConstructEffect {effect: Effect::Invert, duration: 3, meta: None, tick: None}],
Skill::InvertPlusPlus => vec![ConstructEffect {effect: Effect::Invert, duration: 4, meta: None, tick: None}],
Skill::Counter => vec![ConstructEffect {effect: Effect::Counter, duration: 2,
Skill::Counter => vec![ConstructEffect {effect: Effect::Counter, duration: 1,
meta: Some(EffectMeta::Skill(Skill::CounterAttack)), tick: None}],
Skill::CounterPlus => vec![ConstructEffect {effect: Effect::Counter, duration: 2,
Skill::CounterPlus => vec![ConstructEffect {effect: Effect::Counter, duration: 1,
meta: Some(EffectMeta::Skill(Skill::CounterAttackPlus)), tick: None}],
Skill::CounterPlusPlus => vec![ConstructEffect {effect: Effect::Counter, duration: 2,
Skill::CounterPlusPlus => vec![ConstructEffect {effect: Effect::Counter, duration: 1,
meta: Some(EffectMeta::Skill(Skill::CounterAttackPlusPlus)), tick: None}],
Skill::Reflect => vec![ConstructEffect {effect: Effect::Reflect, duration: 1, meta: None, tick: None }],
Skill::ReflectPlus => vec![ConstructEffect {effect: Effect::Reflect, duration: 2, meta: None, tick: None }],
Skill::ReflectPlusPlus => vec![ConstructEffect {effect: Effect::Reflect, duration: 3, meta: None, tick: None }],
Skill::ReflectPlus => vec![ConstructEffect {effect: Effect::Reflect, duration: 1, meta: None, tick: None }],
Skill::ReflectPlusPlus => vec![ConstructEffect {effect: Effect::Reflect, duration: 1, meta: None, tick: None }],
Skill::Break => 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::BreakPlus => 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::BreakPlusPlus => 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::Ruin => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
Skill::RuinPlus => vec![ConstructEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
Skill::RuinPlusPlus => vec![ConstructEffect {effect: Effect::Stun, duration: 2, meta: None, tick: None}],
Skill::Purge => vec![ConstructEffect {effect: Effect::Purge, duration: 1, meta: None, tick: None}],
Skill::PurgePlus => vec![ConstructEffect {effect: Effect::Purge, duration: 2, meta: None, tick: None}],
Skill::PurgePlusPlus => vec![ConstructEffect {effect: Effect::Purge, duration: 3, meta: None, tick: None}],
Skill::Purge => vec![ConstructEffect {effect: Effect::Purge, duration: 2, meta: None, tick: None}],
Skill::PurgePlus => vec![ConstructEffect {effect: Effect::Purge, duration: 3, meta: None, tick: None}],
Skill::PurgePlusPlus => vec![ConstructEffect {effect: Effect::Purge, duration: 4, meta: None, tick: None}],
Skill::Link => vec![ConstructEffect {effect: Effect::Stun, duration: 3, meta: None, tick: None}],
Skill::LinkPlus => vec![ConstructEffect {effect: Effect::Stun, duration: 2, meta: None, tick: None}],
@ -985,7 +992,7 @@ impl Skill {
Skill::Block => None, // reduce damage
Skill::Counter|
Skill::CounterPlus |
Skill::CounterPlusPlus => Some(2), // avoid all damage
Skill::CounterPlusPlus => None, // avoid all damage
Skill::Restrict=> Some(2),
Skill::RestrictPlus => Some(2),
@ -1045,8 +1052,8 @@ impl Skill {
Skill::SilencePlus => Some(2),
Skill::SilencePlusPlus => Some(2),
Skill::Purify=> None,
Skill::PurifyPlus => None,
Skill::Purify |
Skill::PurifyPlus |
Skill::PurifyPlusPlus => None,
Skill::Purge=> None,
@ -1065,13 +1072,13 @@ impl Skill {
Skill::HastePlus => Some(2),
Skill::HastePlusPlus => Some(2),
Skill::Reflect=> Some(2),
Skill::ReflectPlus => Some(2),
Skill::ReflectPlusPlus => Some(2),
Skill::Reflect |
Skill::ReflectPlus |
Skill::ReflectPlusPlus => None,
Skill::Recharge=> Some(2),
Skill::RechargePlus => Some(2),
Skill::RechargePlusPlus => Some(2),
Skill::Recharge=> None,
Skill::RechargePlus => None,
Skill::RechargePlusPlus => None,
Skill::Ruin=> Some(3),
Skill::RuinPlus => Some(2),
@ -1085,17 +1092,17 @@ impl Skill {
Skill::SleepPlus => Some(3),
Skill::SleepPlusPlus => Some(3),
Skill::Sustain=> Some(1),
Skill::SustainPlus => Some(2),
Skill::SustainPlusPlus => Some(3),
Skill::Sustain |
Skill::SustainPlus |
Skill::SustainPlusPlus => None,
Skill::Intercept=> Some(2),
Skill::InterceptPlus => Some(2),
Skill::InterceptPlusPlus => Some(2),
Skill::Electrify=>Some(1),
Skill::ElectrifyPlus =>Some(1),
Skill::ElectrifyPlusPlus =>Some(1),
Skill::Electrify |
Skill::ElectrifyPlus |
Skill::ElectrifyPlusPlus => None,
Skill::Absorb|
@ -1717,7 +1724,9 @@ fn purge(source: &mut Construct, target: &mut Construct, mut results: Resolution
.event(Event::Removal { effect: ce.effect, construct_effects: target.effects.clone() }));
}
let mut turns = 1;
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)).stages(EventStages::PostOnly));
/*let mut turns = 1;
for cs in target.skills.iter_mut() {
if Effect::Purge.disables_skill(cs.skill) {
turns += 1;
@ -1727,8 +1736,7 @@ fn purge(source: &mut Construct, target: &mut Construct, mut results: Resolution
if turns > 1 {
let mut effect = skill.effect()[0];
effect.duration = effect.duration * turns;
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)).stages(EventStages::PostOnly));
}
}*/
return results;
}