The combat system that I've built for Blade Stone is robust and features the usual mechanics found in 3rd person melee action games.
Both the player and enemies have a damage system component which allows for several different damage types and damage responses. This makes different attacks feel unique and impact enemies (and the player) differently.
The player has both melee and ranged attacks at their disposal. The two work in conjunction with each other, ranged "ammo" is re-charged when the player deals damage with a melee attack.
This system was a big focus during development because I wanted the player to have to consider distance to and from enemies and also adding another dynamic to stop to player from getting into the cycle of sprinting to an enemy, mashing the attack button until the enemy dies and then repeat.
Ranged attacks are simple yet efficient, the player can fire a single magic blast at a time. These not only do damage to enemies but also knock them back, interrupting them if they are about to attack the player. The blasts auto target the enemy that the player is locked onto.
The original reason for coming up with the teleporting mechanic was to bring something different to combat, especially how the player moves during fights. The player can teleport to an enemy position as long as they are locked on to said enemy, it operates on a cooldown so that the player isn't given the ability to ping around the combat encounter like a pinball.
I wanted combat to feel a bit more frenetic and energetic. And because the player uses it to jump from where they currently are to the location of a locked on enemy it solved another issue that I was having, if the player was out of ranged "ammo" they couldn't kill ranged enemies on a high up ledge or across a gap too big to jump over. The teleport solved this as although on a cooldown, it is technically infinite.
There are two types of special attacks in the game: Charge attacks and Teleport attacks.
Charge attacks are variations on the basic light and heavy attacks, the charged light attack has the player launch forward and thrust their sword towards the enemy. The charged heavy attack has the player swing their sword high and bring it slamming down to the ground causing a splash of AOE damage.
Teleport attacks are variations of how the player reappears in front of enemies at the end of a teleport. Other than the basic landing which does not initiate an attack there are three different teleport attacks, the spinning swing (double hit), the sweeping swing (throws the enemy into the air) and the block blast (knocks the enemy back).
The enemy variety in my prototype consist of melee and ranged enemies. Individually the enemies aren't too complex, the melee enemies strafe and close the distance before attacking the player and the ranged enemies try to stay at a distance and fire at the player from afar.
During combat with a group of enemies they take turns attacking the player based on a ticket system.
(The next thing that I plan on implementing is an aggression score so that as the player defeats one or two of a group, the aggression of the remaining enemies increases and they attack more frequently so that combat doesn't lose any intensity.)