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 {
overflow: hidden;
display: grid;
grid-template-rows: min-content min-content 1fr 1.5fr;
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.",
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!(
"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)]
pub enum Effect {
// physical
Stun,
Buff,
Parry,
Block,
Bleed,
Leech,
Airborne,
Untouchable,
Deadly,
Vulnerable,
Fury,
Bleed,
Blind,
Snare,
Block,
Buff,
Clutch,
Injured,
Reflect,
Taunt,
Deadly,
Fury,
Impurity,
Injured,
Invert,
Leech,
Parry,
Reflect,
Snare,
Strangle,
Strangling,
Stun,
Taunt,
Untouchable,
Vulnerable,
// magic
Hex,
Ruin,
Curse,
@ -388,6 +384,14 @@ impl Effect {
_ => false,
},
Effect::Banish => true,
Effect::Clutch => [
Skill::Stun,
Skill::Hex,
Skill::Silence,
Skill::Ruin,
Skill::Strangle,
Skill::Snare
].contains(&skill),
Effect::Injured => match skill.category() {
Category::Green => true,
Category::GreenTick => true,
@ -568,77 +572,52 @@ pub enum Skill {
Block, // reduce damage
Stun,
// -----------------
// Nature
// -----------------
Parry, // avoid all damage
Riposte,
Snare,
// Boost -- sounds nice
// Evade, // actively evade
// Nightmare,
// Sleep,
Amplify,
Banish,
Blast,
Chaos,
Clutch,
Corrupt,
CorruptionTick,
Curse,
Decay, // dot
DecayTick, // dot
Haste,
HasteStrike,
Heal,
Hex,
Hostility,
ImpureBlast,
Impurity,
Injure,
Invert,
Parry, // avoid all damage
Purge,
Purify,
Recharge,
Reflect,
Riposte,
Ruin,
Scatter,
Silence,
Siphon,
SiphonTick,
Slay,
Sleep,
Clutch,
Taunt,
Impurity,
ImpureBlast,
Invert,
Snare,
Strangle,
StrangleTick,
Strike,
StrikeII,
StrikeIII,
// Evade, // actively evade
// -----------------
// Nonviolence
// -----------------
Heal,
Taunt,
Throw, // no damage stun, adds vulnerable
Triage, // hot
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
TestAttack,
@ -1512,6 +1491,13 @@ mod tests {
clutch(&mut y.clone(), &mut y, vec![], Skill::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);
assert!(y.green_life() == 1);