Skip to content

Instantly share code, notes, and snippets.

@fredrb
Created October 10, 2017 16:45
Show Gist options
  • Save fredrb/5165ddaa7cab35388e9ea3df54561a95 to your computer and use it in GitHub Desktop.
Save fredrb/5165ddaa7cab35388e9ea3df54561a95 to your computer and use it in GitHub Desktop.

Inspired By: https://github.com/guyroyse/evercraft-kata

EverCraft Kata

Character Definition

Feature One: Character Sheet

As a player, I want to create a character sheet that contains the basic information of my character:

  • Name
  • Alignment
  • Physical description (gender, age, size, hair color, skin color)

Once my sheet is created this information must be locked for changes.

Feature Two: Character AC and HP

As a player, I want to have an indicator of Armor Class and Health Points on my sheet. As default, I want my Armor Class to be set to 10 and my Health Points to be 20.


Action

Feature Three: Perform Attack

As a player, I want to use my character to attack another character.

  • To perform an attack I shall roll a 20 sided die.
  • If roll meets or beats my target's AC the strike is successful.
  • Upon a successful attack my target loses 1 HP.

Feature Four: Critical Hit/Miss

As a player when I roll a natural 20 on the die during an attack, I want my damage to be doubled. If I roll a natural 1 the attack is unsuccessful.

  • A natural 20 is a successful attack even if AC wasn't met.
  • A natural 1 is an unsuccessful attack even if AC was met.
  • If original damage was 1 a critical strike damage is 2.

Feature Five: A Character can die

As a player I want any character to die when it reaches 0 health points.

  • Once a character's HP is zero that character is dead.
  • A character can have negative HP.
  • A character with less then 0 HP cannot be targeted.

Abilities

Feature Six: A Character Has Ability Scores

As a player, I want my character to have the following ability scores:

  • Strength
  • Dexterity
  • Constitution
  • Wisdom
  • Intelligence
  • Charisma

They all have a default value of 10 and range from 1-20.

Each has a modifier value, that ranges according to the following table:

Scores Modifiers
1 -5
2-3 -4
4-5 -3
6-7 -2
8-9 -1
10-11 0
12-13 +1
14-15 +2
16-17 +3
18-19 +4
20 +5

Feature Seven: Attack using Strength Modifier

As a player I want the strength modifier of my character to be applied on combat.

  • Apply strength modifier to attack rolls
  • Apply strength modifier to damage rolls

Feature Eight: Dexterity as Armor Class Bonus

As a player I want the dexterity modifier of my character to be applied in my Armor Class Rating.

  • Armor Class rating is now 10 (default) + Dexterity modifier
  • Modifier is applied even if dexterity is negative

Feature Nine: Constitution as Health Points Bonus

As a player I want the constitution modifier of my character to be applied in my Health Points.

  • Total Health point are 20 (default) + Constitution modifier
  • Modifier is applied even if constitution is negative

Combat

Feature Ten: Start a combat

As a player I want to start a combat with another character.

  • One character attacks each time
  • The combat ends when the first character dies

Feature Eleven: Initiative Check

As a player I want to roll an initiative check at the beginning of a combat to determine which character should make the first attack.

  • Each player rolls as 20 sided die
  • Dexterity modifier is applied to result
  • Highest initiative starts the combat

Feature Twelve: Experience

As a player I want to gain experience upon winning a combat.

  • A character wins 100 experience points after winning a combat.
  • A character gets an extra 5 points of experience for each critical hit during the combat.

Feature Thirteen: Level Up

As a player I want increase my character's level with experience and get better bonuses each level.

  • Characters can range from level 1-20
  • Each level takes: current_level * 1000 experience points to increase.
  • Each level gives a 1 + constitution modifier health points to the character
  • Each level gives +1 to character damage

Level table:

Level Total Experience
1 0
2 1000
3 3000
4 6000
... ...

Playable Classes

Feature Fourteen: Character Class

As a player, during the creation of my character, I want to have a class assigned to it.

Each class will change the capabilities of my character in the following:

  • Initial Health points is determined by a die roll of class Health Die
  • Class specific attack and damage modifiers

The default class is called Peasant, this class has the following attributes:

  • Health die is: 1d4
  • -1 in all Attack Rolls

Feature Fifteen: Initial Classes

As a player, during character creation, I want to be able to choose between Fighter, Rogue and Paladin as my character's class.

Fighter:

  • Health die is: 1d10
  • +1 in all Attack Rolls

Rogue:

  • Health die is: 1d8
  • +1 in all Damage Rolls

Paladin:

  • Health die is: 1d12
  • +2 in Armor Class

Feature Sixteen: Classes Special Abilities

As a player, when I choose a class, I want to have special abilities from that class.

Paladin: Holy Strike

  • +1 damage when targeting Evil Aligned Creatures.

Fighter: Combat Skills

  • Once per combat, the fighter can attack twice.

Rogue: Master of Critical

  • A rogue critical hit is multiplied by 3 other than 2.

Races

Feature Seventeen: Pick a Races

As a player, during character creation, I want to choose a race for my character. Race choice is permanent. Races define the core capabilities of my character changing it's abilities, giving advantages and disadvantages.

The default race for all characters is Human.

Humans get no bonuses nor penalities.

Feature Eighteen: Elves and Dwarves

As a player, during character creation, I want to be able to choose between Human, Elf and Dwarf as a race for my character.

Elves

  • +2 Dexterity
  • -2 Constitution

Dwarves

  • +2 Constitution
  • -2 Charisma
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment