Dual Swords Adaptive

Elite

The Elite is designed to be a more aggressive and adaptable enemy with a wider range of combat options than the Fodder or Brute. Instead of relying on raw power or simple attack patterns, the enemy is intended to maintain pressure through faster actions, mobility, and responding to a wider range of player actions.

With fewer long range options the Elite has a higher base speed, the ability to respond to defensive and offensive player maneuvers, and break out of the Disengage state on certain conditions.

StateTree

Elite enemy StateTree showing FeintSlash, FeintSpin, BackstepSlash, BlockCounter, Approach, and Disengage states with their conditions

Enemy Decisioning

FeintSlash

The default attack for this enemy, since it is fast to execute with low commitment.

FeintSpin

The standard alternative attack, with a higher hit count at the expense of a longer commitment.

BackstepSlash

Explicitly used as a response to a player attacking, with a reasonably long cooldown. It is also capable of canceling the enemy’s Disengage state.

BlockCounter

Pending player block

While the ability to Block has not been added to the player character as of yet, BlockCounter is intended to be a response to players who spend a certain percentage of time within a rolling period blocking. This attack would have a high guard break potential.

Implemented and Planned Iterations

Implemented

Originally, I had the Elite enemy moving at roughly the same speed as the Fodder and Brute enemies. This made the character feel jarring when performing the fast, snappy combos available to it. I made the simple decision to increase its base movement speed, which made the enemy feel more cohesive as a whole.

Planned

I would like to add proper dashes to the Elite’s kit to provide a more interesting method of closing distance and responding to aggressive players. I also believe the BackstepSlash would benefit greatly from I-Frames during the backstep.

The character would also feel more grounded with a basic attack that doesn’t involve a feint. I would strongly consider testing FeintSlash as a ParrySlash instead, due to the animation’s native setup.

See the Elite animation breakdown