buff clutch and reorder stuff

This commit is contained in:
ntr 2019-05-21 16:02:47 +10:00
parent 4d9892ec57
commit 2bb15b7714
3 changed files with 65 additions and 77 deletions

View File

@ -1,6 +1,7 @@
/* GAME */ /* GAME */
.game { .game {
overflow: hidden;
display: grid; display: grid;
grid-template-rows: min-content min-content 1fr 1.5fr; grid-template-rows: min-content min-content 1fr 1.5fr;
grid-template-areas: grid-template-areas:

View File

@ -312,7 +312,8 @@ impl Item {
"Hits twice for red and blue damage. Damage is random 0 to 30% + {:?}% red and blue power.", "Hits twice for red and blue damage. Damage is random 0 to 30% + {:?}% red and blue power.",
self.into_skill().unwrap().multiplier()), self.into_skill().unwrap().multiplier()),
Item::Clutch => format!("description"), // WIP Item::Clutch => format!("Cryp cannot be KO'd while active.
Additionally provides immunity to disables."),
Item::Corrupt => format!( Item::Corrupt => format!(
"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.",

View File

@ -316,32 +316,28 @@ pub type Cooldown = Option<u8>;
#[derive(Debug,Clone,Copy,PartialEq,Serialize,Deserialize)] #[derive(Debug,Clone,Copy,PartialEq,Serialize,Deserialize)]
pub enum Effect { pub enum Effect {
// physical
Stun,
Buff,
Parry,
Block,
Bleed,
Leech,
Airborne, Airborne,
Untouchable, Bleed,
Deadly,
Vulnerable,
Fury,
Blind, Blind,
Snare, Block,
Buff,
Clutch, Clutch,
Injured, Deadly,
Fury,
Reflect,
Taunt,
Impurity, Impurity,
Injured,
Invert, Invert,
Leech,
Parry,
Reflect,
Snare,
Strangle, Strangle,
Strangling, Strangling,
Stun,
Taunt,
Untouchable,
Vulnerable,
// magic
Hex, Hex,
Ruin, Ruin,
Curse, Curse,
@ -388,6 +384,14 @@ impl Effect {
_ => false, _ => false,
}, },
Effect::Banish => true, Effect::Banish => true,
Effect::Clutch => [
Skill::Stun,
Skill::Hex,
Skill::Silence,
Skill::Ruin,
Skill::Strangle,
Skill::Snare
].contains(&skill),
Effect::Injured => match skill.category() { Effect::Injured => match skill.category() {
Category::Green => true, Category::Green => true,
Category::GreenTick => true, Category::GreenTick => true,
@ -568,77 +572,52 @@ pub enum Skill {
Block, // reduce damage Block, // reduce damage
Stun, Stun,
// ----------------- // Boost -- sounds nice
// Nature // Evade, // actively evade
// ----------------- // Nightmare,
Parry, // avoid all damage // Sleep,
Riposte, Amplify,
Snare, Banish,
Blast,
Chaos,
Clutch,
Corrupt,
CorruptionTick,
Curse,
Decay, // dot
DecayTick, // dot
Haste,
HasteStrike,
Heal,
Hex,
Hostility,
ImpureBlast,
Impurity,
Injure, Injure,
Invert,
Parry, // avoid all damage
Purge,
Purify,
Recharge, Recharge,
Reflect, Reflect,
Riposte,
Ruin, Ruin,
Scatter,
Silence,
Siphon,
SiphonTick,
Slay, Slay,
Sleep, Sleep,
Clutch, Snare,
Taunt,
Impurity,
ImpureBlast,
Invert,
Strangle, Strangle,
StrangleTick, StrangleTick,
Strike, Strike,
StrikeII, StrikeII,
StrikeIII, StrikeIII,
// Evade, // actively evade Taunt,
Throw, // no damage stun, adds vulnerable
// -----------------
// Nonviolence
// -----------------
Heal,
Triage, // hot Triage, // hot
TriageTick, TriageTick,
Throw, // no damage stun, adds vulnerable
// Sleep,
// Nightmare,
// -------------------
// Destruction
// -------------------
Blast,
Amplify,
Decay, // dot
DecayTick, // dot
Siphon,
SiphonTick,
Curse,
Hostility,
Corrupt,
CorruptionTick,
// -----------------
// Purity
// -----------------
Scatter,
Silence,
Purify,
Purge,
// -----------------
// Chaos
// -----------------
Banish,
Chaos,
Hex,
Haste,
HasteStrike,
// used by tests, no cd, 100% multiplier // used by tests, no cd, 100% multiplier
TestAttack, TestAttack,
@ -1512,6 +1491,13 @@ mod tests {
clutch(&mut y.clone(), &mut y, vec![], Skill::Clutch); clutch(&mut y.clone(), &mut y, vec![], Skill::Clutch);
assert!(y.affected(Effect::Clutch)); assert!(y.affected(Effect::Clutch));
let mut results = hex(&mut x, &mut y, vec![], Skill::Hex);
let Resolution { source: _, target: _, event } = results.remove(0);
match event {
Event::Immunity { skill: _, immunity } => assert!(immunity.contains(&Effect::Clutch)),
_ => panic!("not immune cluthc"),
};
let mut results = attack(&mut x, &mut y, vec![], Skill::Attack); let mut results = attack(&mut x, &mut y, vec![], Skill::Attack);
assert!(y.green_life() == 1); assert!(y.green_life() == 1);