From 0db40b6fdc5ad78bb352a7ef97623cbda686bc26 Mon Sep 17 00:00:00 2001 From: ntr Date: Mon, 18 Feb 2019 17:53:20 +1100 Subject: [PATCH] combo combos --- server/COMBOS.md | 46 ++++++++++++++-------------- server/src/vbox.rs | 75 ++++++++++++++++++++++++++++++++-------------- 2 files changed, 75 insertions(+), 46 deletions(-) diff --git a/server/COMBOS.md b/server/COMBOS.md index 3fbbe609..0f8915cd 100644 --- a/server/COMBOS.md +++ b/server/COMBOS.md @@ -55,43 +55,43 @@ Debuff `Base enemy debuff - reduce enemy speed` # Nature Type (red) # -Bite - (Attack + 3R) Deal significant `Red` damage -Strangle - (Stun + 3R) - Applies stun and physical dot -Regenerate - (Buff + 3R) Restore red defense for target ally -Snare - (Debuff + 3R) Disable enemy red skills for (3?) turns -Parry - (Block + 3R) Avoid all damage for this turn +Bite - (Attack RR) Deal significant `Red` damage +Strangle - (Stun RR) - Applies stun and physical dot +Regenerate - (Buff RR) Restore red defense for target ally +Snare - (Debuff RR) Disable enemy red skills for (3?) turns +Parry - (Block RR) Avoid all damage for this turn # Destruction Type (blue) # -Blast - (Attack + 3B) Deal significant `Blue` damage -Ruin - (Stun + 3B) - AOE stun on the enemy team for remaind of turn -Amplify - (Buff + 3B) Increased blue damage dealt by target ally -Curse - (Debuff + 3B) Decrease damage dealt by target enemy -Plague Shield - (Block + 3B) Apply dot debuff to attackers +Blast - (Attack BB) Deal significant `Blue` damage +Ruin - (Stun BB) - AOE stun on the enemy team for remaind of turn +Amplify - (Buff BB) Increased blue damage dealt by target ally +Curse - (Debuff BB) Decrease damage dealt by target enemy +Plague Shield - (Block BB) Apply dot debuff to attackers # Non-Violence Type (green) # -Heal - (Attack + 3G) Heal ally for X -Throw - (Stun + 3G) - Disable target and increase damage taken -Triage - (Buff + 3G) Buff which heals ally for X over Y turns -Purge - (Debuff + 3G) - Remove all enemy target buffs -Reflect - (Block + 3G) - Will use targetted attacks on source +Heal - (Attack GG) Heal ally for X +Throw - (Stun GG) - Disable target and increase damage taken +Triage - (Buff GG) Buff which heals ally for X over Y turns +Purge - (Debuff GG) - Remove all enemy target buffs +Reflect - (Block GG) - Will use targetted attacks on source # Chaos Type (red / blue) # -Bannish - (Attack + 1R + 2B) - deal `Hybrid Red & Blue` + enemy can't attack or be attacked 3 turns -Hex - (Stun + 2R + 1B) - enemy stunned for 3 turns -Haste - (Buff + 2R + 1B) - significantly increase ally speed -Slow - (Debuff + 1R + 2B) - significantly decrease enemy speed -Taunt - (Block + 2B + 1R) - Redirect all enemy targetted skills +Bannish - (Attack RB) - deal `Hybrid Red & Blue` + enemy can't attack or be attacked 3 turns +Hex - (Stun RB) - enemy stunned for 3 turns +Haste - (Buff RB) - significantly increase ally speed +Slow - (Debuff RB) - significantly decrease enemy speed +Taunt - (Block RB) - Redirect all enemy targetted skills # Purity Type (red / green) # -Slay - (Attack + 1G + 2R) - deal `Red` damage. Bonus damage if the target has blue defense +Slay - (Attack + 1G + 1R) - deal `Red` damage. Bonus damage if the target has blue defense Silence - (Stun + 2G + 1R) - enemy can't use blue skills for 3 turns Purify - (Buff + 2G + 1R) - remove all debuffs from target -Empower - (Buff + 1G + 2R) - Increased red damage dealt by target ally -???? - (Debuff + 1R + 2B) - ??? +Empower - (Buff + 1G + 1R) - Increased red damage dealt by target ally +???? - (Debuff RB) - ??? Shield - (Block + 2G + 1R) - Take no blue damage for the next 3 turns # Technology Type (green / blue) type - ??? maybe rework and rename # diff --git a/server/src/vbox.rs b/server/src/vbox.rs index 785d6ada..dc7a9be2 100644 --- a/server/src/vbox.rs +++ b/server/src/vbox.rs @@ -28,6 +28,8 @@ pub enum Var { Buff, Debuff, + Strike, + Blast, Heal, Throw, Hex, @@ -147,36 +149,63 @@ impl Vbox { acc }); + let colour_code = match colours { + [2,0,0] => "rr", + [0,2,0] => "gg", + [0,0,2] => "bb", + [1,1,0] => "rg", + [0,1,1] => "gb", + [1,0,1] => "rb", + _ => return Err(err_msg("not a combo")), + }; let new = match base { - Var::Attack => match colours { - [0,2,0] => Var::Heal, - _ => return Err(err_msg("not a combo")), + Var::Attack => match colour_code { + "rr" => Var::Strike, + "gg" => Var::Heal, + "bb" => Var::Blast, + "rg" => Var::Attack, + "gb" => Var::Attack, + "rb" => Var::Attack, + _ => panic!("missing colour code {:?}", colour_code), }, - Var::Block => match colours { - [0,2,0] => Var::Heal, - _ => return Err(err_msg("not a combo")), - + Var::Block => match colour_code { + "rr" => Var::Strike, + "gg" => Var::Heal, + "bb" => Var::Blast, + "rg" => Var::Attack, + "gb" => Var::Attack, + "rb" => Var::Attack, + _ => panic!("missing colour code {:?}", colour_code), }, - Var::Buff => match colours { - [0,2,0] => Var::Heal, - [1,1,0] => Var::Heal, - [0,1,1] => Var::Heal, - _ => return Err(err_msg("not a combo")), - + Var::Buff => match colour_code { + "rr" => Var::Strike, + "gg" => Var::Heal, + "bb" => Var::Blast, + "rg" => Var::Attack, + "gb" => Var::Attack, + "rb" => Var::Attack, + _ => panic!("missing colour code {:?}", colour_code), }, - Var::Debuff => match colours { - [0,2,0] => Var::Heal, - _ => return Err(err_msg("not a combo")), - + Var::Debuff => match colour_code { + "rr" => Var::Strike, + "gg" => Var::Heal, + "bb" => Var::Blast, + "rg" => Var::Attack, + "gb" => Var::Attack, + "rb" => Var::Attack, + _ => panic!("missing colour code {:?}", colour_code), }, - Var::Stun => match colours { - [2,0,0] => Var::Throw, - [0,0,2] => Var::Hex, - _ => return Err(err_msg("not a combo")), - + Var::Stun => match colour_code { + "rr" => Var::Strike, + "gg" => Var::Heal, + "bb" => Var::Blast, + "rg" => Var::Attack, + "gb" => Var::Attack, + "rb" => Var::Attack, + _ => panic!("missing colour code {:?}", colour_code), }, - _ => return panic!("wrong base {:?}", base), + _ => panic!("wrong base {:?}", base), }; self.bound.push(new);