At the most basic level, all characters have two standard techniques - a Primary, and a Secondary. While a character may occasionally be able to get by with just one or the other, they are designed with strengths and weaknesses that play each other off. As such, a skilled player would do well to use each discipline to make up for the shortcomings of both of them, and usually combo them into each other to attain the maximum effeciency out of that particular character.
For example, a character may have a Primary that a short-range method that deals the most damage, and a Secondary method that moves over long distance per attack but deals little damage. Logically the best method to maximize the character's potential is to mix the benefits of the two together, such as closing the distance with a Secondary to use the Primary's damage potential in haste, or to knock the victim away with a Primary and use the Secondary to give chase. While both Primary and Secondary methods have a myriad of attacks and techniques to use each, they all both loosely hover around a similar specialization that can be depended on to stay consistent between most of them.
While characters have a reasonable variety of attacks to choose from, relatively few of them are chosen by the player. Whenever the player presses an attack button, the computer analyzes the situation around the character at the time, then selects the most appropriate move from the character's Primary or Secondary movelist based on the situation and executes it automatically. It does this by way of noting the player's orientation relative to the target (are they aligned horizontally or vertically? Is the player facing the target? How far away?), the player's momentum relative to the target (are both characters moving in the same direction? Towards each other? Ascending or descending?) and the timing of the opponent's current action (is he vulnerable? Is he perfoming an attack? Will any move the player can perform out-prioritize it?), among many, many others, and picks a move from the character's moveset it feels can handle the situation best.
While this may initially seem to devolve fighting into generic button mashing, rarely is it possible to get substantial results just by tapping buttons. An adept player will be able to exploit enemies into contexts that their character best excells at, and keep them there for as long as they can sustain it. This will usually mean a lot of moving and jumping around in between attacks to readjust when they can no longer pull off the most optimal or combo-ready attacks in their moveset, carrying them between optimal contexts with previous attacks, or waiting for their opponent to make such an opening.
The Offense Phase
When a character lands a successful hit on an enemy, further attacks become noticably faster and more responsive as long as all subsequent blows also hit successfully. This makes it easier for the character on the offensive to continue comboing or juggling (some would say it's similar to how the crowbar works in Half Life games), whilst overall shortening the amount of time the victim is left defenseless should their attacker not miss a single blow. Offensive phases do not allow characters to perform easy infinites on defenseless enemies, however - the game keeps track of how many times you use a specific move in any given combo, and once you exceed a given amount (typically 3), the combo ends forcibly with a moderate damage/knockback increase, and the offender becomes unresponsive until the enemy recovers again.
Thus, the key to prolonging a combo for any given character is simply to use a wide variety of attacks, repositioning strategically in between or using attacks to knock enemies right into the context of attacks you haven't hit them with yet.
Specials are different to Primary and Secondary attacks in that nearly all of them utilize an aiming mechanic in some way. When a Special is activated, it will make use of an onscreen cursor that the player can move at any time completely independant of the rest of the action onscreen. The character will use the cursor's coordinates as a reference and unleash a special technique at it.
Specials are an important part of a character's arsenal because they're generally the only readily available moves that aren't directly controlled by the computer, and in that the ability to aim an attack or technique anywhere you please grants a lot more versatility than a standard attack. They are also extremely varied across the character roster, and can be a projectile, teleport, striker, invisibility cloak and even a Magick casting interface, among many other examples. Like standard attacks, all characters have two of them which compliments other aspects of their moveset, whether it be their melee moves, each other, or both.
While most of the game is still playable in the same platforming beat-em-up style, trying to retreat from enemies will cause your character to turn around and expose your back to them, leaving a large vulnerability that might as well be a great big painted bullseye. Locking onto an enemy solves this problem and keeps you facing the same direction at all times, even if you're moving backwards. It's as simple as pointing your cursor in their general direction and clicking to lock onto an enemy, then just clicking on yourself or empty space when you want to to disengage it.
That's not to say Lock-On doesn't come with its own set of disadvantages, though. Obviously if you're surrounded it will keep you facing a single direction, so you won't be able to turn around if there's someone behind you unless you turn Lock-On off. If an enemy manages to get right past you and behind you, your character won't automatically turn to face them, and you'll have to manually turn to reorient yourself (though you don't have to disengage to do this - it's as simple as moving backwards when you're flanked by your targetted enemy). It also doesn't auto-aim your projectiles in any way, and you'll still have to aim them manually to hit things.