RIP Secondary Duration
This commit is contained in:
parent
59b5f92f42
commit
479cd5a423
@ -338,7 +338,7 @@ impl Item {
|
|||||||
"Self targetting defensive for {:?}T. Applies corrupt to attackers dealing blue damage {:?}% blue power per turn for {:?}T.",
|
"Self targetting defensive for {:?}T. Applies corrupt to attackers dealing blue damage {:?}% blue power per turn for {:?}T.",
|
||||||
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
||||||
Skill::Corrupt.multiplier(),
|
Skill::Corrupt.multiplier(),
|
||||||
self.into_skill().unwrap().effect().first().unwrap().get_duration()), // Need secondary
|
self.into_skill().unwrap().effect().last().unwrap().get_duration()),
|
||||||
|
|
||||||
|
|
||||||
Item::Curse => format!(
|
Item::Curse => format!(
|
||||||
@ -354,7 +354,7 @@ impl Item {
|
|||||||
"Gain Hostility for {:?}T. {} Hatred lasts {:?}T",
|
"Gain Hostility for {:?}T. {} Hatred lasts {:?}T",
|
||||||
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
||||||
"When attacked by Hostility you gain Hatred which increased red and blue power based on damage taken.",
|
"When attacked by Hostility you gain Hatred which increased red and blue power based on damage taken.",
|
||||||
self.into_skill().unwrap().secondary_duration()),
|
self.into_skill().unwrap().effect().last().unwrap().get_duration()),
|
||||||
|
|
||||||
Item::Haste => format!(
|
Item::Haste => format!(
|
||||||
"{} {:?}{}. Lasts {:?}T",
|
"{} {:?}{}. Lasts {:?}T",
|
||||||
@ -459,7 +459,7 @@ impl Item {
|
|||||||
Item::Throw => format!(
|
Item::Throw => format!(
|
||||||
"Stun the target for {:?}T and applies Vulnerable increasing red damage taken by 50% for {:?}T",
|
"Stun the target for {:?}T and applies Vulnerable increasing red damage taken by 50% for {:?}T",
|
||||||
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
self.into_skill().unwrap().effect().first().unwrap().get_duration(),
|
||||||
self.into_skill().unwrap().secondary_duration()),
|
self.into_skill().unwrap().effect().last().unwrap().get_duration()),
|
||||||
|
|
||||||
Item::Triage => format!(
|
Item::Triage => format!(
|
||||||
"Heals target for {:?}% green power each turn. Lasts {:?}T",
|
"Heals target for {:?}% green power each turn. Lasts {:?}T",
|
||||||
|
|||||||
@ -644,41 +644,43 @@ impl Skill {
|
|||||||
pub fn effect(&self) -> Vec<CrypEffect> {
|
pub fn effect(&self) -> Vec<CrypEffect> {
|
||||||
match self {
|
match self {
|
||||||
// Modifiers
|
// Modifiers
|
||||||
Skill::Amplify => vec![CrypEffect {effect: Effect::Amplify, duration: 2, meta: Some(EffectMeta::Multiplier(150)), tick: None}],
|
Skill::Amplify => vec![CrypEffect {effect: Effect::Amplify, duration: 2, meta: Some(EffectMeta::Multiplier(150)), tick: None}],
|
||||||
Skill::Banish => vec![CrypEffect {effect: Effect::Banish, duration: 1, meta: None, tick: None}],
|
Skill::Banish => vec![CrypEffect {effect: Effect::Banish, duration: 1, meta: None, tick: None}],
|
||||||
Skill::Block => vec![CrypEffect {effect: Effect::Block, duration: 1, meta: Some(EffectMeta::Multiplier(50)), tick: None}],
|
Skill::Block => vec![CrypEffect {effect: Effect::Block, duration: 1, meta: Some(EffectMeta::Multiplier(50)), tick: None}],
|
||||||
Skill::Buff => vec![CrypEffect {effect: Effect::Buff, duration: 2, meta: Some(EffectMeta::Multiplier(125)), tick: None }],
|
Skill::Buff => vec![CrypEffect {effect: Effect::Buff, duration: 2, meta: Some(EffectMeta::Multiplier(125)), tick: None }],
|
||||||
Skill::Corrupt => vec![CrypEffect {effect: Effect::Corrupt, duration: 2, meta: None, tick: None}],
|
|
||||||
Skill::Clutch => vec![CrypEffect {effect: Effect::Clutch, duration: 1, meta: None, tick: None }],
|
Skill::Corrupt => vec![CrypEffect {effect: Effect::Corrupt, duration: 2, meta: None, tick: None},
|
||||||
Skill::Curse => vec![CrypEffect {effect: Effect::Curse, duration: 2, meta: Some(EffectMeta::Multiplier(150)), tick: None}],
|
CrypEffect {effect: Effect::Corruption, duration: 3, meta: None, tick: None}],
|
||||||
Skill::Debuff => vec![CrypEffect {effect: Effect::Slow, duration: 3, meta: Some(EffectMeta::Multiplier(50)), tick: None }],
|
|
||||||
Skill::Decay => vec![
|
Skill::Clutch => vec![CrypEffect {effect: Effect::Clutch, duration: 1, meta: None, tick: None }],
|
||||||
CrypEffect {effect: Effect::Wither, duration: 3, meta: Some(EffectMeta::Multiplier(50)), tick: None },
|
Skill::Curse => vec![CrypEffect {effect: Effect::Curse, duration: 2, meta: Some(EffectMeta::Multiplier(150)), tick: None}],
|
||||||
|
Skill::Debuff => vec![CrypEffect {effect: Effect::Slow, duration: 3, meta: Some(EffectMeta::Multiplier(50)), tick: None }],
|
||||||
|
Skill::Decay => vec![CrypEffect {effect: Effect::Wither, duration: 3, meta: Some(EffectMeta::Multiplier(50)), tick: None },
|
||||||
CrypEffect {effect: Effect::Decay, duration: 3, meta: None, tick: None }],
|
CrypEffect {effect: Effect::Decay, duration: 3, meta: None, tick: None }],
|
||||||
Skill::Haste => vec![CrypEffect {effect: Effect::Haste, duration: 2, meta: Some(EffectMeta::Multiplier(150)), tick: None }],
|
Skill::Haste => vec![CrypEffect {effect: Effect::Haste, duration: 2, meta: Some(EffectMeta::Multiplier(150)), tick: None }],
|
||||||
Skill::Hex => vec![CrypEffect {effect: Effect::Hex, duration: 2, meta: None, tick: None}],
|
Skill::Hex => vec![CrypEffect {effect: Effect::Hex, duration: 2, meta: None, tick: None}],
|
||||||
Skill::Hostility => vec![CrypEffect {effect: Effect::Hostility, duration: 2, meta: None, tick: None}],
|
Skill::Hostility => vec![CrypEffect {effect: Effect::Hostility, duration: 2, meta: None, tick: None},
|
||||||
Skill::Impurity => vec![CrypEffect {effect: Effect::Impurity, duration: 3, meta: Some(EffectMeta::Multiplier(150)), tick: None }],
|
CrypEffect {effect: Effect::Hatred, duration: 5, meta: None, tick: None}],
|
||||||
Skill::Invert => vec![CrypEffect {effect: Effect::Invert, duration: 2, meta: None, tick: None}],
|
Skill::Impurity => vec![CrypEffect {effect: Effect::Impurity, duration: 3, meta: Some(EffectMeta::Multiplier(150)), tick: None }],
|
||||||
|
Skill::Invert => vec![CrypEffect {effect: Effect::Invert, duration: 2, meta: None, tick: None}],
|
||||||
|
|
||||||
Skill::Parry => vec![CrypEffect {effect: Effect::Parry, duration: 2, meta: None, tick: None }],
|
Skill::Parry => vec![CrypEffect {effect: Effect::Parry, duration: 2, meta: None, tick: None }],
|
||||||
Skill::Reflect => vec![CrypEffect {effect: Effect::Reflect, duration: 1, meta: None, tick: None }],
|
Skill::Reflect => vec![CrypEffect {effect: Effect::Reflect, duration: 1, meta: None, tick: None }],
|
||||||
Skill::Throw => vec![
|
Skill::Throw => vec![CrypEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None},
|
||||||
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::Ruin => vec![CrypEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
|
Skill::Ruin => vec![CrypEffect {effect: Effect::Stun, duration: 1, meta: None, tick: None}],
|
||||||
|
|
||||||
|
|
||||||
Skill::Scatter => vec![CrypEffect {effect: Effect::Scatter, duration: 2, meta: None, tick: None}],
|
Skill::Scatter => vec![CrypEffect {effect: Effect::Scatter, duration: 2, meta: None, tick: None}],
|
||||||
Skill::Silence => vec![CrypEffect {effect: Effect::Silence, duration: 2, meta: None, tick: None}],
|
Skill::Silence => vec![CrypEffect {effect: Effect::Silence, duration: 2, 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::Sleep => 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::Snare => vec![CrypEffect {effect: Effect::Snare, duration: 2, 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::Taunt => vec![CrypEffect {effect: Effect::Taunt, duration: 2, 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
|
||||||
Skill::Injure => vec![CrypEffect {effect: Effect::Injured, duration: 2, meta: None, tick: None }],
|
Skill::Injure => vec![CrypEffect {effect: Effect::Injured, duration: 2, meta: None, tick: None }],
|
||||||
@ -689,20 +691,6 @@ impl Skill {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn secondary_duration(&self) -> u8 {
|
|
||||||
match self {
|
|
||||||
Skill::Hostility => 5, // Increased dmg buff
|
|
||||||
Skill::Corrupt => 3, // Damage over time
|
|
||||||
|
|
||||||
_ => {
|
|
||||||
info!("{:?} does not have a secondary duration", self);
|
|
||||||
return 1;
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
pub fn base_cd(&self) -> Cooldown {
|
pub fn base_cd(&self) -> Cooldown {
|
||||||
match self {
|
match self {
|
||||||
Skill::Attack => None,
|
Skill::Attack => None,
|
||||||
@ -1161,16 +1149,16 @@ fn decay_tick(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, sk
|
|||||||
// corrupt is the buff effect
|
// corrupt is the buff effect
|
||||||
// when attacked it runs corruption and applies a debuff
|
// when attacked it runs corruption and applies a debuff
|
||||||
fn corrupt(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
fn corrupt(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||||
skill.effect().into_iter()
|
let corrupt = skill.effect().first().unwrap().clone();
|
||||||
.for_each(|e| (results.push(Resolution::new(source, target).event(target.add_effect(skill, e)))));
|
results.push(Resolution::new(source, target).event(target.add_effect(skill, corrupt)));
|
||||||
return results;;
|
return results;;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn corruption(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
fn corruption(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, skill: Skill) -> Resolutions {
|
||||||
let effect = CrypEffect::new(Effect::Corruption, skill.secondary_duration())
|
let corruption = skill.effect().last().unwrap().clone()
|
||||||
.set_tick(Cast::new_tick(source, target, Skill::CorruptionTick));
|
.set_tick(Cast::new_tick(source, target, Skill::CorruptionTick));
|
||||||
|
|
||||||
results.push(Resolution::new(source, target).event(target.add_effect(skill, effect)));
|
results.push(Resolution::new(source, target).event(target.add_effect(skill, corruption)));
|
||||||
return corruption_tick(source, target, results, Skill::CorruptionTick);
|
return corruption_tick(source, target, results, Skill::CorruptionTick);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1202,10 +1190,10 @@ fn hostility(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, ski
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn hatred(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, reflect_skill: Skill, amount: u64, skill: Skill) -> Resolutions {
|
fn hatred(source: &mut Cryp, target: &mut Cryp, mut results: Resolutions, reflect_skill: Skill, amount: u64, skill: Skill) -> Resolutions {
|
||||||
let effect = CrypEffect::new(Effect::Hatred, skill.secondary_duration())
|
let hatred = skill.effect().last().unwrap().clone()
|
||||||
.set_meta(EffectMeta::AddedDamage(amount));
|
.set_meta(EffectMeta::AddedDamage(amount));
|
||||||
|
|
||||||
results.push(Resolution::new(source, target).event(target.add_effect(reflect_skill, effect)));
|
results.push(Resolution::new(source, target).event(target.add_effect(reflect_skill, hatred)));
|
||||||
return results;;
|
return results;;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user