hostility
This commit is contained in:
parent
0971c3a2e2
commit
7d0b66ca3d
@ -70,7 +70,9 @@ pub enum Item {
|
||||
DecayI,
|
||||
DecayII,
|
||||
DecayIII,
|
||||
Hostility,
|
||||
HostilityI,
|
||||
HostilityII,
|
||||
HostilityIII,
|
||||
Haste,
|
||||
HealI,
|
||||
HealII,
|
||||
@ -265,7 +267,9 @@ impl Item {
|
||||
Item::HexI => Some(Skill::HexI),
|
||||
Item::HexII => Some(Skill::HexII),
|
||||
Item::HexIII => Some(Skill::HexIII),
|
||||
Item::Hostility => Some(Skill::Hostility),
|
||||
Item::HostilityI => Some(Skill::HostilityI),
|
||||
Item::HostilityII => Some(Skill::HostilityII),
|
||||
Item::HostilityIII=> Some(Skill::HostilityIII),
|
||||
Item::Impurity => Some(Skill::Impurity),
|
||||
Item::InvertI => Some(Skill::InvertI),
|
||||
Item::InvertII => Some(Skill::InvertII),
|
||||
@ -477,7 +481,9 @@ impl Item {
|
||||
self.into_skill().unwrap().multiplier(),
|
||||
self.into_skill().unwrap().effect().first().unwrap().get_duration()),
|
||||
|
||||
Item::Hostility => format!(
|
||||
Item::HostilityI |
|
||||
Item::HostilityII |
|
||||
Item::HostilityIII => format!(
|
||||
"Gain Hostility for {:?}T. {} Hatred lasts {:?}T",
|
||||
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.",
|
||||
@ -644,8 +650,10 @@ impl Item {
|
||||
Item::ScatterI => vec![Item::Buff, Item::Blue, Item::Blue],
|
||||
Item::ScatterII => vec![Item::ScatterI, Item::ScatterI, Item::ScatterI],
|
||||
Item::ScatterIII => vec![Item::ScatterIII, Item::ScatterIII, Item::ScatterIII],
|
||||
|
||||
Item::Haste => vec![Item::Buff, Item::Red, Item::Green],
|
||||
Item::Impurity => vec![Item::Buff, Item::Green, Item::Blue],
|
||||
|
||||
Item::AmplifyI => vec![Item::Buff, Item::Red, Item::Blue],
|
||||
Item::AmplifyII => vec![Item::AmplifyI, Item::AmplifyI, Item::AmplifyI],
|
||||
Item::AmplifyIII => vec![Item::AmplifyII, Item::AmplifyII, Item::AmplifyII],
|
||||
@ -688,7 +696,6 @@ impl Item {
|
||||
Item::RechargeII => vec![Item::RechargeI, Item::RechargeI, Item::RechargeI],
|
||||
Item::RechargeIII => vec![Item::RechargeII, Item::RechargeII, Item::RechargeII],
|
||||
|
||||
|
||||
Item::StrangleI => vec![Item::Stun, Item::Red, Item::Red],
|
||||
Item::StrangleII => vec![Item::StrangleI, Item::StrangleI, Item::StrangleI],
|
||||
Item::StrangleIII => vec![Item::StrangleII, Item::StrangleII, Item::StrangleII],
|
||||
@ -782,7 +789,9 @@ impl From<Skill> for Item {
|
||||
Skill::DecayIII => Item::DecayIII,
|
||||
Skill::Debuff => Item::Debuff,
|
||||
Skill::Haste => Item::Haste,
|
||||
Skill::Hostility => Item::Hostility,
|
||||
Skill::HostilityI => Item::HostilityI,
|
||||
Skill::HostilityII => Item::HostilityII,
|
||||
Skill::HostilityIII => Item::HostilityIII,
|
||||
Skill::HealI => Item::HealI,
|
||||
Skill::HealII => Item::HealII,
|
||||
Skill::HealIII => Item::HealIII,
|
||||
@ -912,8 +921,9 @@ pub fn get_combos() -> Vec<Combo> {
|
||||
Combo { components: Item::ScatterIII.combo(), item: Item::ScatterIII },
|
||||
|
||||
Combo { components: Item::Haste.combo(), item: Item::Haste },
|
||||
Combo { components: Item::Hostility.combo(), item: Item::Hostility },
|
||||
|
||||
Combo { components: Item::HostilityI.combo(), item: Item::HostilityI },
|
||||
Combo { components: Item::HostilityII.combo(), item: Item::HostilityII },
|
||||
Combo { components: Item::HostilityIII.combo(), item: Item::HostilityIII },
|
||||
Combo { components: Item::Impurity.combo(), item: Item::Impurity },
|
||||
|
||||
Combo { components: Item::AmplifyI.combo(), item: Item::AmplifyI },
|
||||
|
||||
@ -161,7 +161,9 @@ pub fn resolve(skill: Skill, source: &mut Construct, target: &mut Construct, mut
|
||||
Skill::HexII |
|
||||
Skill::HexIII => hex(source, target, resolutions, skill),
|
||||
|
||||
Skill::Hostility => hostility(source, target, resolutions, skill),
|
||||
Skill::HostilityI |
|
||||
Skill::HostilityII |
|
||||
Skill::HostilityIII => hostility(source, target, resolutions, skill),
|
||||
Skill::Impurity => impurity(source, target, resolutions, skill),
|
||||
|
||||
Skill::InvertI |
|
||||
@ -256,8 +258,11 @@ pub fn resolve(skill: Skill, source: &mut Construct, target: &mut Construct, mut
|
||||
//Triggered
|
||||
Skill::CorruptionI |
|
||||
Skill::CorruptionII |
|
||||
Skill::CorruptionIII => panic!("should only trigget from corrupt hit"),
|
||||
Skill::CorruptionIII => panic!("should only trigger from corrupt hit"),
|
||||
Skill::HasteStrike => panic!("should only trigger from haste"),
|
||||
Skill::HatredI |
|
||||
Skill::HatredII |
|
||||
Skill::HatredIII => panic!("should only trigger from hatred"),
|
||||
Skill::ImpureBlast => panic!("should only trigger from impurity"),
|
||||
Skill::RiposteI |
|
||||
Skill::RiposteII |
|
||||
@ -300,7 +305,14 @@ fn post_resolve(_skill: Skill, game: &mut Game, mut resolutions: Resolutions) ->
|
||||
}
|
||||
|
||||
if target.affected(Effect::Hostility) {
|
||||
resolutions = hatred(&mut source, &mut target, resolutions, skill, amount, Skill::Hostility);
|
||||
let ConstructEffect { effect: _, duration: _, meta, tick: _ } = target.effects.iter()
|
||||
.find(|e| e.effect == Effect::Hostility).unwrap().clone();
|
||||
match meta {
|
||||
Some(EffectMeta::Skill(s)) => {
|
||||
resolutions = hatred(&mut target, &mut source, resolutions, skill, amount, s);
|
||||
},
|
||||
_ => panic!("no hatred skill"),
|
||||
};
|
||||
}
|
||||
|
||||
// beware that scatter doesn't cause any damage
|
||||
@ -727,7 +739,12 @@ pub enum Skill {
|
||||
HexII,
|
||||
HexIII,
|
||||
|
||||
Hostility,
|
||||
HatredI,
|
||||
HatredII,
|
||||
HatredIII,
|
||||
HostilityI,
|
||||
HostilityII,
|
||||
HostilityIII,
|
||||
ImpureBlast,
|
||||
Impurity,
|
||||
Injure,
|
||||
@ -977,8 +994,16 @@ impl Skill {
|
||||
Skill::HexII => vec![ConstructEffect {effect: Effect::Hex, duration: 3, meta: None, tick: None}],
|
||||
Skill::HexIII => vec![ConstructEffect {effect: Effect::Hex, duration: 4, meta: None, tick: None}],
|
||||
|
||||
Skill::Hostility => vec![ConstructEffect {effect: Effect::Hostility, duration: 2, meta: None, tick: None},
|
||||
ConstructEffect {effect: Effect::Hatred, duration: 5, meta: None, tick: None}],
|
||||
Skill::HostilityI => vec![ConstructEffect {effect: Effect::Hostility, duration: 2,
|
||||
meta: Some(EffectMeta::Skill(Skill::HatredI)), tick: None}],
|
||||
Skill::HostilityII => vec![ConstructEffect {effect: Effect::Hostility, duration: 3,
|
||||
meta: Some(EffectMeta::Skill(Skill::HatredII)), tick: None}],
|
||||
Skill::HostilityIII => vec![ConstructEffect {effect: Effect::Hostility, duration: 4,
|
||||
meta: Some(EffectMeta::Skill(Skill::HatredIII)), tick: None}],
|
||||
|
||||
Skill::HatredI => vec![ConstructEffect {effect: Effect::Hatred, duration: 5, meta: None, tick: None}],
|
||||
Skill::HatredII => vec![ConstructEffect {effect: Effect::Hatred, duration: 7, meta: None, tick: None}],
|
||||
Skill::HatredIII => vec![ConstructEffect {effect: Effect::Hatred, duration: 9, meta: None, tick: None}],
|
||||
|
||||
Skill::Impurity => vec![ConstructEffect {effect: Effect::Impurity, duration: 3,
|
||||
meta: Some(EffectMeta::Multiplier(150)), tick: None }],
|
||||
@ -1180,7 +1205,9 @@ impl Skill {
|
||||
Skill::CorruptIII =>Some(1),
|
||||
|
||||
|
||||
Skill::Hostility => Some(1),
|
||||
Skill::HostilityI |
|
||||
Skill::HostilityII |
|
||||
Skill::HostilityIII => Some(1),
|
||||
|
||||
//-----------
|
||||
// Never cast directly
|
||||
@ -1194,6 +1221,9 @@ impl Skill {
|
||||
Skill::CorruptionI |
|
||||
Skill::CorruptionII |
|
||||
Skill::CorruptionIII |
|
||||
Skill::HatredI |
|
||||
Skill::HatredII |
|
||||
Skill::HatredIII |
|
||||
// Ticks
|
||||
Skill::CorruptionTickI |
|
||||
Skill::CorruptionTickII |
|
||||
@ -1349,7 +1379,9 @@ impl Skill {
|
||||
Skill::HealI |
|
||||
Skill::HealII |
|
||||
Skill::HealIII |
|
||||
Skill::Hostility |
|
||||
Skill::HostilityI |
|
||||
Skill::HostilityII |
|
||||
Skill::HostilityIII |
|
||||
Skill::InvertI |
|
||||
Skill::InvertII |
|
||||
Skill::InvertIII |
|
||||
@ -1728,7 +1760,7 @@ fn hostility(source: &mut Construct, target: &mut Construct, mut results: Resolu
|
||||
}
|
||||
|
||||
fn hatred(source: &mut Construct, target: &mut Construct, mut results: Resolutions, reflect_skill: Skill, amount: u64, skill: Skill) -> Resolutions {
|
||||
let hatred = skill.effect().last().unwrap().clone()
|
||||
let hatred = skill.effect().first().unwrap().clone()
|
||||
.set_meta(EffectMeta::AddedDamage(amount));
|
||||
|
||||
results.push(Resolution::new(source, target).event(target.add_effect(reflect_skill, hatred)));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user