Happy Bastards Combat Explained – Part 1

PART 1 – THE BASICS

In preparation for the upcoming release of the COMBAT DEMO, here’s the first of five dev logs that focus on explaining how combat works in Happy Bastards.

Combat is a core part of this game. It can be triggered anywhere in the open world, be it in the wild, in a dungeon or in a town, and it “transports” the combatants to an isolated battlefield for a turn-based, grid-based, tactical bout.

THE COMBAT ROUND

Combat is separated into rounds, in which each combatant typically takes one turn.

At the start of each round, the turn order is randomly drawn. Contrary to many other games, this is not affected by a speed stat. A character could even play twice in a row if last in one round, and first in the next.

This keeps combat exciting and forces players to adjust their strategy each round. And that’s where the Command called You Go First comes in. For the cost of 1 command point (explained in Part 3), you can swap the current mercenary’s turn with another one who has not yet played. This gives you an advantage over the enemy by going with the character who will have the most impact, be it defensively or offensively.

During a character’s turn, that character can do any of these in any order:

  • Move

  • Take a main action

  • Take any number of free actions

Given that the player can normally place 3 mercenaries on the battlefield, and that most fights last 2-4 rounds, this makes for relatively quick, but impactful, battle resolutions.

MOVEMENT

Characters can move a number of tiles per round. Movement occurs on square tiles and is orthogonal, meaning no diagonals.

Normally, a character can move through allies but not through enemies. Objects (ex: an explosive barrel) can be passed through, but with a move distance penalty of 1. A character cannot end movement on an already occupied tile.

A particularity of this game is that the total movement range can be split into multiple parts if desired, before or after a main action. For example, a character with a movement of 5 could move for 2, attack, then move again. The only catch is that after a main action, a character gains the debuff called Fatigue, which halves the leftover amount of movement. This system gives you plenty of flexibility, but aims at preventing too many hit-and-run tactics.

Movement uses pathing to suggest the least dangerous path, but the player can override this and path manually by holding the Shift key. This can come in handy when you have a devious plan which involves hurting your character, or just to pick up something along the way.

ACTIONS

Main actions are the bread and butter of a character. Each character has one or more of those available, and that number increases with character progression, but only one main action can be used per turn. The design objective was to keep combat short and to focus on choice each and every turn. Main actions also cause fatigue, as explained previously.

Free actions are often about utility or minor effects. They can be used on the same turn as a main action and do not cause fatigue.

Additionally, some actions, main or free, have a usage constraint, for example, being limited to one use per combat.

Each action has a targeting step. One particularity of this combat system is that, just like movement, targeting is orthogonal. This has a major effect on positioning, as characters are more limited in how they approach their enemies, since there are no diagonals. It forces characters out of safe spaces more often and makes friendly fire a more common problem to play around. But this, of course, applies to enemies too, and you can exploit that to create defensive positions.

HIT CHANCE

By default, all attacks have a 100% hit chance. To this base value are added the attacker’s accuracy (a positive or negative % modifier), and the defender’s avoidance.

Avoidance includes 4 different stats, each one used against a particular type of attack.

ATTACK TYPE

AVOIDANCE STAT

Damage

Evasion

Move effect, DoT, debuff

Stability

Composure loss

Resolve

Injury

Survival

This means that different attacks are more or less effective against different targets. For example, a heavy monster probably has a high Stability and therefore is likely to resist a move effect, but it probably also has a low Evasion that makes it easy to hit with damage.

That’s a lot of numbers to keep track of, so that’s why hit chance is shown on a convenient preview panel when targeting, along with the list of effects of that attack. Moreover, by pressing the Alt key, the player can see the full breakdown of the hit chance and damage calculation. This is also available in the combat log afterwards. We believe in stat transparency, and these panels are an excellent way to learn the inner workings of the game and adjust your tactics accordingly.

DAMAGE MITIGATION

As can be expected, damage is the most common and central type of attack. To support this, Happy Bastards has several damage types, mostly: physical, fire, poison, bleed, and true damage.

Damage can be mitigated through damage reduction, which is a percentage removed from the attack number. Each type of damage has its own damage reduction; for example, physical damage reduction does not affect fire damage.

This results in the player having to optimize who attacks whom, as some attacks can be quite ineffective against certain opponents.

UNDO

In Happy Bastards, we want the player to win and lose because of their tactical decisions; not because of a misclick or stupid oversight. This is why an undo option is available after each button click.

The undo option disappears as soon as any other move or action is performed. So it’s a one-shot opportunity to undo a mistake; not a way to undo a full turn to try another tactic.

Main actions, however,  don’t offer the undo option because they have a random component, which could be easily exploited (oh, my action missed? I’ll undo). So you’re on your own with those.

That’s it for today. The upcoming part 2 will focus on the battlefield and all of its implications on combat.

See you on the Discord!