Weapons are essential elements in Cryptofights.

Our weapons are inspired in DnD (Dungeons and Dragons) core mechanics with a few twists.

This repo has folders for:

  1. the statblocks - information about what each weapon does;
  2. the renders - images of each weapon meant to use either ingame, on the website, or as promotional material;
  3. the thumbnails - smaller images of the weapons meant to be used ingame (still in the process of adding these).

A few renders: maul-render bow-render shortsword-render

And thumbnails: maul-thumbnail bow-thumbnail shortsword-thumbnail

Attack Roll, Brutal, Dextrous and Ambivalent weapons

Both in DnD and in Cryptofights before you attack you perform an attack roll, meaning you roll a dice and factor in its outcome, to determine if you will hit your opponent.

In Cryptofights, if the outcome of that roll is higher than the opponent’s dodge score (derived from his agility), you hit your opponent.

The caveat is that one of your stats is added to this attack roll. The stat that is factored in depends on the type of weapon. Code:

attack_roll = hero.roll() + hero.get_attack_roll_type_bonus(weapon)
attack_roll > opponent.dodge_score:

These are the weapon properties influence this mechanic:

  1. Brutal - uses strength to determine hits
  2. Dextrous - uses agility to determine hits
  3. Ambivalent - uses the highest stat (Strength or Agility) to determine hits

Some examples:

You need to be strong to hit your opponent with a Maul; therefore it is Brutal - uses strength: maul-statblock

To hit with a bow, you need to use your Agility; therefore it is Dextrous - uses agility: bow-statblock

Shortswords can either be used to deliver surgical strikes or with brute force, so they are Ambivalent - uses the highest stat: shortsword-statblock