Advanced Guide
What follows is a technical overview of how the game makes decisions to determine duel results.
This is an strategy guide for advanced duelists.
Concepts
Duelist Chances
There is no benefit or disadvantage between challenger and challenged, both have exactly the same chances.
Cross-game bonuses and penalties based on Honour and Archetype can influence a duelist chance.
In-game decisions and injuries can also inflict bonuses and penalties.
Dice Rolls
We call all randomized decisions Dice Rolls.
All the chances are expressed in percentages, as if we were using an 100-sided dice.
For example, an action with 40%
chance will be successful when dice_value <= 40
.
The seed for randomization is a hash between the secret salts sent by each duelist. Since each salt is known only to each player before actions are revealed, it is impossible to predict game decisions.
Round Logic
The underneath logic for all rounds is the same. Pistols and blades are all actions that confronted against each other lead to a result.
There are a few steps that determine the result of a round...
1. Strike Priority
Who strikes first? The challenger? The challenged? Simultaneously?
Pistols Round
On a Pistols round, it's very simple to decide...
- The duelist who takes less paces shoots first.
- At the same paces, a Trickster against a non-Trickster will shoot first.
- At the same paces, duelists shoot simultaneously.
First to shoot is called the Early Duelist, against the Late Duelist.
Blades Round
Blades follow this priority, on each strike/slot...
- Heavy Blades strike first for an Execution chance (crit).
- Flee, Steal and Seppukku take place.
- Otherwise, blades strike simultaneously on each slot.
2. CRIT Dice Roll
CRIT is the chance of an action to execute or inflict maximum injury on the opponent.
Executed for the Early Duelist, or in parallel for both duelists if shooting simultaneously.
Crit Chances
Each action has its own crit chances, in percentages:
- Pistol at 1 pace:
crit_base_chance = 5%
- Pistol at 10 paces:
crit_base_chance = 20%
- Pistol chances between 1 and 10 paces are interpolated.
- Blades crit chance is constant:
crit_base_chance = 20%
Cross-Game Crit Bonus
This bonus is given according to the duelist Archetype:
- 👑 Honourable:
max_crit_bonus = 12%
- 🃏 Trickster:
max_crit_bonus = 6%
- 👺 Villainous: No crit bonus
- Calculated according to their Archetype Level. The level is capped at total duels (more experienced duelists getting more bonus).
Examples: A level 10 Lord, with 10 duels will get the total bonus. A level 5 Lord with 10 duels, or a level 10 Lord with 5 duels, both get only half bonus.
crit_bonus = max_crit_bonus * min(archetype_level, total_duels)
Match Crit Bonus
This bonus is given on the Pistols Round according to the duelist archetype and shooting order.
- 👑 Honourable:
crit_match_bonus = 10%
when shooting early. - 🃏 Trickster: No match bonus
- 👺 Villainous:
crit_match_bonus = 10%
when shooting late.
The rationale here is to give an extra strategy for Honourable vs. Honourable and Villainous vs. Villainous duels. A surprise factor for whenever they have a chance to slip outside of their predictable move.
Trickster Crit Penalty
Tricksters do not have match crit bonus, but they inflict a penalty to other archetypes.
- 👑 Honourable:
crit_trickster_penalty = 2%
when the opponent is a Trickster. - 🃏 Trickster: No penalty
- 👺 Villainous:
crit_trickster_penalty = 2%
when the opponent is a Trickster.
Crit Decision
- Bonuses and penalties are applied to action chances
- To avoid over-penalties, final chances will never be less than half the action chance.
crit_chances = (crit_base_chance + crit_bonus + crit_match_bonus - crit_trickster_penalty)
crit_chances = max(crit_chances, crit_base_chance/2)
- Dices roll... 🎲
- Success if
crit_chances <= dice_value
- Apply injury and block to opponent's health.
health = previous_health - max(injury - block, 0)
3. HIT Dice Roll
If CRIT fails, a new dice rolls for a chance to HIT the opponent.
Hit Chances
Each action has its own hit chances, in percentages:
- Pistol at 1 pace:
hit_base_chance = 100%
- Pistol at 10 paces:
hit_base_chance = 20%
- Pistol chances between 1 and 10 paces are interpolated.
- Blades hit chance is constant:
hit_base_chance = 75%
Cross-Game Hit Bonus
This bonus is given according to the duelist Archetype:
- 👑 Honourable: No hit bonus
- 🃏 Trickster:
max_hit_bonus = 10%
- 👺 Villainous:
max_hit_bonus = 20%
- Calculated according to their Archetype Level. The level is capped at total duels (more experienced duelists getting more bonus).
Examples: A level 10 Lord, with 10 duels will get the total bonus. A level 5 Lord with 10 duels, or a level 10 Lord with 5 duels, both get only half bonus.
hit_bonus = max_hit_bonus * min(archetype_level, total_duels)
Trickster Hit Penalty
Tricksters do not have match hit bonus, but they inflict a penalty to other archetypes.
- 👑 Honourable:
hit_trickster_penalty = 10%
when the opponent is a Trickster. - 🃏 Trickster: No penalty
- 👺 Villainous:
hit_trickster_penalty = 10%
when the opponent is a Trickster.
Injury Penalty
A penalty is inclicted on injured duelists, from an early pistol shot or from blades.
- Pistols and blades:
penalty_per_injury = 10%
hit_injury_penalty = (penalty_per_injury * injury_taken)
Hit Decision
- Bonuses and penalties are applied to action chances.
- To avoid over-penalties, final chances will never be less than half the action chance.
hit_chances = (hit_base_chance + hit_bonus - hit_trickster_penalty - hit_injury_penalty)
hit_chances = max(hit_chances, hit_base_chance/2)
- Dices roll... 🎲
- Success if
hit_chances <= dice_value
Injury Inflicted
Blades injury are constant, according to the Blades Injury table.
Pistols injury is calculated from a lethal chance:
- Pistol at 1 pace:
lethal_base_chance = 80%
- Pistol at 10 paces:
lethal_base_chance = 5%
- Pistol chances between 1 and 10 paces are interpolated.
- 👑 Honourable: Have a
10%
less chance to get a lethal hit when shooting second. - Then we use the same hit dice result...
- If
hit_chances <= lethal_base_chance
, inflicts2
injury points, else just1
.
Apply injury and block to opponent's health.
health = previous_health - max(injury - block, 0)
4. Late Dice Rolls
If an Early Duelist does not kill the opponent, steps 2 and 3 are repeated for the Late Duelist, rolling Crit and Hit dices in the same order as above.
A Late Duelist chances can be reduced if injured during the early strike!