The combat system in InfernoMOO is something I'm very proud of. The idea was to create a combat system that stressed the importance of tactics over character stats, where the ability to predict your opponent's next move and respond with the appropriate countermeasure made sure that combat would keep combat fun, unpredictable, and violent. I experimented with a few systems, but the one that struck me as the most fun was the one inspired primarily by my old obsession with 2d fighting games.
Every character (including NPCs) has a wide variety of attacks they can perform at any given time. These attacks vary wildly in power, accuracy, speed, etc, but are all meant to be roughly equivalent in usefulness. Heavy attack is powerful but slow. Light attack is fast but has bad priority. Finisher has high odds of finishing off a heavily damaged opponent, but doesn't do much damage itself and leaves the attacker vulnerable afterwards. These attacks are performed either by inputting "a [attack name]", which is clunky, or by binding the attack to a key "1" to "+" on the top row of your keyboard using the shortcut command.
Timing is the key in combat. There's no auto-attacking, and characters get a large bonus to their defense when they're not attacking. Attacks have both startup and recovery times, and being cleanly hit during your startup period will stun you out of your attack, so indiscriminate attackers are easy to punish.
The majority of attacks have the same startup message, so although you'll be able to see when an opponent attacks, you won't know what type of attack they threw at you until it actually resolves. This adds a rock-paper-scissors element to combat, where being able to predict what attack your opponent has chosen and launching the appropriate counter-attack at the appropriate time is absolutely vital to winning.
This is the side of combat that players will actually have to think about while fighting, but there's actually a lot more to it just a little bit under the skin. I'll get to the damage/injury/ko system in my next post.