rename siphon
This commit is contained in:
parent
eb9fd6e4af
commit
0b07e121ad
@ -125,9 +125,9 @@ pub enum Effect {
|
||||
Triage,
|
||||
Decay,
|
||||
Regen,
|
||||
Drain,
|
||||
Siphon,
|
||||
|
||||
SpeedDrain,
|
||||
SpeedSiphon,
|
||||
SpeedIncrease,
|
||||
|
||||
Ko,
|
||||
@ -249,9 +249,9 @@ impl Effect {
|
||||
Effect::Triage => Category::BlueBuff,
|
||||
Effect::Decay => Category::BlueDebuff,
|
||||
Effect::Regen => Category::BlueBuff,
|
||||
Effect::Drain => Category::BlueDebuff,
|
||||
Effect::Siphon => Category::BlueDebuff,
|
||||
|
||||
Effect::SpeedDrain => Category::BlueDebuff,
|
||||
Effect::SpeedSiphon => Category::BlueDebuff,
|
||||
Effect::SpeedIncrease => Category::BlueBuff,
|
||||
|
||||
Effect::Ko => Category::Ko,
|
||||
@ -283,7 +283,7 @@ impl Effect {
|
||||
|
||||
Effect::Triage => 3,
|
||||
Effect::Decay => 3,
|
||||
Effect::Drain => 2,
|
||||
Effect::Siphon => 2,
|
||||
|
||||
_ => {
|
||||
println!("{:?} does not have a duration", self);
|
||||
@ -360,8 +360,8 @@ pub enum Skill {
|
||||
Amplify,
|
||||
Decay, // dot
|
||||
DecayTick, // dot
|
||||
Drain,
|
||||
DrainTick,
|
||||
Siphon,
|
||||
SiphonTick,
|
||||
Curse,
|
||||
Plague, // aoe dot
|
||||
Ruin, // aoe
|
||||
@ -394,7 +394,7 @@ pub enum Skill {
|
||||
TestStun,
|
||||
TestBlock,
|
||||
TestParry,
|
||||
TestDrain,
|
||||
TestSiphon,
|
||||
}
|
||||
|
||||
impl Skill {
|
||||
@ -443,8 +443,8 @@ impl Skill {
|
||||
Skill::Amplify => Some(1),
|
||||
Skill::Decay => None, // dot
|
||||
Skill::DecayTick => None,
|
||||
Skill::Drain => Some(1),
|
||||
Skill::DrainTick => None,
|
||||
Skill::Siphon => Some(1),
|
||||
Skill::SiphonTick => None,
|
||||
Skill::Curse => Some(1),
|
||||
Skill::Plague => Some(1), // aoe dot
|
||||
Skill::Ruin => Some(2), // aoe
|
||||
@ -478,7 +478,7 @@ impl Skill {
|
||||
Skill::TestTouch => None,
|
||||
Skill::TestStun => None,
|
||||
Skill::TestBlock => None,
|
||||
Skill::TestDrain => None,
|
||||
Skill::TestSiphon => None,
|
||||
Skill::TestParry => None,
|
||||
}
|
||||
}
|
||||
@ -528,8 +528,8 @@ impl Skill {
|
||||
Skill::Amplify => Category::Blue,
|
||||
Skill::Decay => Category::Blue, // dot
|
||||
Skill::DecayTick => Category::BlueTick, // hot
|
||||
Skill::Drain => Category::Blue,
|
||||
Skill::DrainTick => Category::BlueTick, // hot
|
||||
Skill::Siphon => Category::Blue,
|
||||
Skill::SiphonTick => Category::BlueTick, // hot
|
||||
Skill::Curse => Category::Blue,
|
||||
Skill::Plague => Category::Blue, // aoe dot
|
||||
Skill::Ruin => Category::Blue, // aoe
|
||||
@ -566,7 +566,7 @@ impl Skill {
|
||||
Skill::TestStun => Category::Red,
|
||||
Skill::TestParry => Category::Red,
|
||||
Skill::TestBlock => Category::Red,
|
||||
Skill::TestDrain => Category::Blue,
|
||||
Skill::TestSiphon => Category::Blue,
|
||||
}
|
||||
}
|
||||
|
||||
@ -574,7 +574,7 @@ impl Skill {
|
||||
match self {
|
||||
Skill::TriageTick => true,
|
||||
Skill::DecayTick => true,
|
||||
Skill::DrainTick => true,
|
||||
Skill::SiphonTick => true,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
@ -607,8 +607,8 @@ impl Skill {
|
||||
|
||||
// general combat
|
||||
Skill::DecayTick => 2, // hot
|
||||
Skill::Drain => 2,
|
||||
Skill::DrainTick => 2, // hot
|
||||
Skill::Siphon => 2,
|
||||
Skill::SiphonTick => 2, // hot
|
||||
Skill::Hex => 2,
|
||||
Skill::Pause => 2, // extend durations
|
||||
Skill::Plague => 2, // aoe dot
|
||||
@ -644,7 +644,7 @@ impl Skill {
|
||||
Skill::TestStun => 5,
|
||||
Skill::TestBlock => 10,
|
||||
Skill::TestParry => 10,
|
||||
Skill::TestDrain => 10,
|
||||
Skill::TestSiphon => 10,
|
||||
}
|
||||
}
|
||||
|
||||
@ -715,8 +715,8 @@ impl Skill {
|
||||
Skill::Amplify => amplify(source, target, resolution), // increase magic damage
|
||||
Skill::Decay => decay(source, target, resolution), // dot
|
||||
Skill::DecayTick => decay_tick(source, target, resolution), // dot
|
||||
Skill::Drain => drain(source, target, resolution),
|
||||
Skill::DrainTick => drain_tick(source, target, resolution), // hot
|
||||
Skill::Siphon => siphon(source, target, resolution),
|
||||
Skill::SiphonTick => siphon_tick(source, target, resolution), // hot
|
||||
Skill::Curse => curse(source, target, resolution),
|
||||
Skill::Plague => panic!("nyi"), // dot that spreads every turn
|
||||
Skill::Ruin => panic!("nyi"), // aoe version of blast
|
||||
@ -751,7 +751,7 @@ impl Skill {
|
||||
Skill::TestStun => stun(source, target, resolution),
|
||||
Skill::TestBlock => block(source, target, resolution),
|
||||
Skill::TestParry => parry(source, target, resolution),
|
||||
Skill::TestDrain => drain(source, target, resolution),
|
||||
Skill::TestSiphon => siphon(source, target, resolution),
|
||||
}
|
||||
}
|
||||
|
||||
@ -915,28 +915,28 @@ fn curse(_cryp: &mut Cryp, target: &mut Cryp, mut resolution: Resolution) -> Res
|
||||
return resolution;;
|
||||
}
|
||||
|
||||
fn drain(cryp: &mut Cryp, target: &mut Cryp, mut resolution: Resolution) -> Resolution {
|
||||
let drain = CrypEffect {
|
||||
effect: Effect::Drain,
|
||||
duration: Effect::Drain.duration(),
|
||||
tick: Some(Cast::new_tick(cryp, target, Skill::DrainTick)),
|
||||
fn siphon(cryp: &mut Cryp, target: &mut Cryp, mut resolution: Resolution) -> Resolution {
|
||||
let siphon = CrypEffect {
|
||||
effect: Effect::Siphon,
|
||||
duration: Effect::Siphon.duration(),
|
||||
tick: Some(Cast::new_tick(cryp, target, Skill::SiphonTick)),
|
||||
};
|
||||
resolution.results.push(target.add_effect(Skill::Drain, drain));
|
||||
resolution.results.push(target.add_effect(Skill::Siphon, siphon));
|
||||
return resolution;;
|
||||
}
|
||||
|
||||
fn drain_tick(cryp: &mut Cryp, target: &mut Cryp, mut resolution: Resolution) -> Resolution {
|
||||
fn siphon_tick(cryp: &mut Cryp, target: &mut Cryp, mut resolution: Resolution) -> Resolution {
|
||||
let amount = cryp.blue_damage();
|
||||
let drain_damage = target.deal_blue_damage(Skill::DrainTick, amount);
|
||||
resolution.results.push(drain_damage.clone());
|
||||
let siphon_damage = target.deal_blue_damage(Skill::SiphonTick, amount);
|
||||
resolution.results.push(siphon_damage.clone());
|
||||
|
||||
match drain_damage {
|
||||
match siphon_damage {
|
||||
ResolutionResult::Damage { amount, mitigation, category: _, immunity } => {
|
||||
if !immunity.immune {
|
||||
resolution.results.push(cryp.heal(Skill::Heal, amount));
|
||||
}
|
||||
},
|
||||
_ => panic!("drain tick damage not dealt {:?}", drain_damage),
|
||||
_ => panic!("siphon tick damage not dealt {:?}", siphon_damage),
|
||||
}
|
||||
|
||||
return resolution;
|
||||
|
||||
@ -43,9 +43,11 @@ pub enum Var {
|
||||
Purify,
|
||||
Reflect,
|
||||
Ruin,
|
||||
Shield,
|
||||
Snare,
|
||||
Strangle,
|
||||
Strike,
|
||||
Siphon,
|
||||
Taunt,
|
||||
Throw,
|
||||
Toxic,
|
||||
@ -81,6 +83,7 @@ impl Var {
|
||||
Var::Ruin => Ok(Skill::Ruin),
|
||||
Var::Snare => Ok(Skill::Snare),
|
||||
Var::Strangle => Ok(Skill::Strangle),
|
||||
Var::Shield => Ok(Skill::Shield),
|
||||
// Var::Strike => Ok(Skill::Strike),
|
||||
// Var::Taunt => Ok(Skill::Taunt),
|
||||
Var::Throw => Ok(Skill::Throw),
|
||||
@ -230,7 +233,7 @@ impl Vbox {
|
||||
ColourCode::GG => Var::Reflect,
|
||||
ColourCode::BB => Var::Toxic,
|
||||
ColourCode::RG => Var::Taunt,
|
||||
ColourCode::GB => return Err(err_msg("unhandled skill combo")),
|
||||
ColourCode::GB => Var::Shield,
|
||||
ColourCode::BR => return Err(err_msg("unhandled skill combo")),
|
||||
},
|
||||
Var::Buff => match colour_code {
|
||||
@ -246,7 +249,7 @@ impl Vbox {
|
||||
ColourCode::GG => Var::Purge,
|
||||
ColourCode::BB => Var::Curse,
|
||||
ColourCode::RG => return Err(err_msg("unhandled skill combo")),
|
||||
ColourCode::GB => return Err(err_msg("unhandled skill combo")),
|
||||
ColourCode::GB => Var::Siphon,
|
||||
ColourCode::BR => return Err(err_msg("unhandled skill combo")),
|
||||
},
|
||||
Var::Stun => match colour_code {
|
||||
@ -298,7 +301,7 @@ pub fn vbox_write(vbox: Vbox, tx: &mut Transaction) -> Result<Vbox, Error> {
|
||||
let result = tx
|
||||
.query(query, &[&vbox_bytes, &vbox.id])?;
|
||||
|
||||
let _returned = result.iter().next().expect("no row returned");
|
||||
result.iter().next().ok_or(err_msg("no vbox row returned"))?;
|
||||
|
||||
// println!("{:?} wrote vbox", vbox.id);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user