natural_20 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/.rspec +3 -0
- data/.travis.yml +6 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +99 -0
- data/Rakefile +6 -0
- data/bin/compute_lights +19 -0
- data/bin/console +19 -0
- data/bin/nat20 +135 -0
- data/bin/nat20.cmd +3 -0
- data/bin/nat20author +104 -0
- data/bin/setup +8 -0
- data/char_classes/fighter.yml +45 -0
- data/char_classes/rogue.yml +54 -0
- data/characters/halfling_rogue.yml +46 -0
- data/characters/high_elf_fighter.yml +49 -0
- data/fixtures/battle_sim.yml +58 -0
- data/fixtures/battle_sim_2.yml +30 -0
- data/fixtures/battle_sim_3.yml +26 -0
- data/fixtures/battle_sim_4.yml +26 -0
- data/fixtures/battle_sim_objects.yml +101 -0
- data/fixtures/corridors.yml +24 -0
- data/fixtures/elf_rogue.yml +39 -0
- data/fixtures/halfling_rogue.yml +41 -0
- data/fixtures/high_elf_fighter.yml +49 -0
- data/fixtures/human_fighter.yml +48 -0
- data/fixtures/path_finding_test.yml +11 -0
- data/fixtures/path_finding_test_2.yml +15 -0
- data/fixtures/path_finding_test_3.yml +26 -0
- data/fixtures/thin_walls.yml +53 -0
- data/fixtures/traps.yml +25 -0
- data/game.yml +20 -0
- data/items/equipment.yml +101 -0
- data/items/objects.yml +73 -0
- data/items/weapons.yml +297 -0
- data/lib/natural_20.rb +68 -0
- data/lib/natural_20/actions/action.rb +40 -0
- data/lib/natural_20/actions/attack_action.rb +372 -0
- data/lib/natural_20/actions/concerns/action_damage.rb +14 -0
- data/lib/natural_20/actions/dash_action.rb +46 -0
- data/lib/natural_20/actions/disengage_action.rb +53 -0
- data/lib/natural_20/actions/dodge_action.rb +45 -0
- data/lib/natural_20/actions/escape_grapple_action.rb +97 -0
- data/lib/natural_20/actions/first_aid_action.rb +109 -0
- data/lib/natural_20/actions/grapple_action.rb +185 -0
- data/lib/natural_20/actions/ground_interact_action.rb +74 -0
- data/lib/natural_20/actions/help_action.rb +56 -0
- data/lib/natural_20/actions/hide_action.rb +53 -0
- data/lib/natural_20/actions/interact_action.rb +91 -0
- data/lib/natural_20/actions/inventory_action.rb +23 -0
- data/lib/natural_20/actions/look_action.rb +63 -0
- data/lib/natural_20/actions/move_action.rb +254 -0
- data/lib/natural_20/actions/multiattack_action.rb +41 -0
- data/lib/natural_20/actions/prone_action.rb +38 -0
- data/lib/natural_20/actions/short_rest_action.rb +53 -0
- data/lib/natural_20/actions/shove_action.rb +142 -0
- data/lib/natural_20/actions/stand_action.rb +47 -0
- data/lib/natural_20/actions/use_item_action.rb +57 -0
- data/lib/natural_20/ai_controller/path_compute.rb +140 -0
- data/lib/natural_20/ai_controller/standard.rb +288 -0
- data/lib/natural_20/battle.rb +544 -0
- data/lib/natural_20/battle_map.rb +843 -0
- data/lib/natural_20/cli/builder/fighter_builder.rb +104 -0
- data/lib/natural_20/cli/builder/rogue_builder.rb +62 -0
- data/lib/natural_20/cli/character_builder.rb +210 -0
- data/lib/natural_20/cli/commandline_ui.rb +612 -0
- data/lib/natural_20/cli/inventory_ui.rb +136 -0
- data/lib/natural_20/cli/map_renderer.rb +165 -0
- data/lib/natural_20/concerns/container.rb +32 -0
- data/lib/natural_20/concerns/entity.rb +1213 -0
- data/lib/natural_20/concerns/evaluator/entity_state_evaluator.rb +59 -0
- data/lib/natural_20/concerns/fighter_actions/second_wind_action.rb +51 -0
- data/lib/natural_20/concerns/fighter_class.rb +35 -0
- data/lib/natural_20/concerns/health_flavor.rb +27 -0
- data/lib/natural_20/concerns/lootable.rb +94 -0
- data/lib/natural_20/concerns/movement_helper.rb +195 -0
- data/lib/natural_20/concerns/multiattack.rb +54 -0
- data/lib/natural_20/concerns/navigation.rb +87 -0
- data/lib/natural_20/concerns/notable.rb +37 -0
- data/lib/natural_20/concerns/rogue_class.rb +26 -0
- data/lib/natural_20/controller.rb +11 -0
- data/lib/natural_20/die_roll.rb +331 -0
- data/lib/natural_20/event_manager.rb +288 -0
- data/lib/natural_20/item_library/base_item.rb +27 -0
- data/lib/natural_20/item_library/chest.rb +230 -0
- data/lib/natural_20/item_library/door_object.rb +189 -0
- data/lib/natural_20/item_library/ground.rb +124 -0
- data/lib/natural_20/item_library/healing_potion.rb +51 -0
- data/lib/natural_20/item_library/object.rb +153 -0
- data/lib/natural_20/item_library/pit_trap.rb +69 -0
- data/lib/natural_20/item_library/stone_wall.rb +18 -0
- data/lib/natural_20/npc.rb +173 -0
- data/lib/natural_20/player_character.rb +414 -0
- data/lib/natural_20/session.rb +168 -0
- data/lib/natural_20/utils/cover.rb +35 -0
- data/lib/natural_20/utils/ray_tracer.rb +90 -0
- data/lib/natural_20/utils/static_light_builder.rb +72 -0
- data/lib/natural_20/utils/weapons.rb +78 -0
- data/lib/natural_20/version.rb +4 -0
- data/locales/en.yml +304 -0
- data/maps/game_map.yml +168 -0
- data/natural_20.gemspec +46 -0
- data/npcs/goblin.yml +64 -0
- data/npcs/human_guard.yml +48 -0
- data/npcs/ogre.yml +61 -0
- data/npcs/owlbear.yml +55 -0
- data/npcs/wolf.yml +46 -0
- data/races/elf.yml +44 -0
- data/races/halfling.yml +22 -0
- data/races/human.yml +13 -0
- metadata +373 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
name: Natural20::Battle Sim
|
2
|
+
description: Map for Natural20::Battle Sim
|
3
|
+
map:
|
4
|
+
illumination: 0.0
|
5
|
+
base:
|
6
|
+
- ......
|
7
|
+
- ......
|
8
|
+
- ......
|
9
|
+
- ......
|
10
|
+
- '######'
|
11
|
+
- ......
|
12
|
+
- '######'
|
13
|
+
meta:
|
14
|
+
- ......
|
15
|
+
- ......
|
16
|
+
- ......
|
17
|
+
- ......
|
18
|
+
- ......
|
19
|
+
- A.....
|
20
|
+
- ......
|
21
|
+
legend:
|
22
|
+
A:
|
23
|
+
name: spawn_point_1
|
24
|
+
type: spawn_point
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
name: GrumbleBelly
|
3
|
+
race: elf
|
4
|
+
subrace: high_elf
|
5
|
+
classes:
|
6
|
+
rogue: 1
|
7
|
+
level: 1
|
8
|
+
hit_die: inherit
|
9
|
+
max_hp: 67
|
10
|
+
ability:
|
11
|
+
str: 11
|
12
|
+
dex: 20
|
13
|
+
con: 16
|
14
|
+
int: 11
|
15
|
+
wis: 12
|
16
|
+
cha: 17
|
17
|
+
class_features:
|
18
|
+
- cunning_action
|
19
|
+
- sneak_attack
|
20
|
+
skills:
|
21
|
+
- acrobatics
|
22
|
+
- arcana
|
23
|
+
- athletics
|
24
|
+
- history
|
25
|
+
- perception
|
26
|
+
tools:
|
27
|
+
- thieves_tools
|
28
|
+
- carpenters_tools
|
29
|
+
weapon_proficiencies:
|
30
|
+
- simple
|
31
|
+
equipped:
|
32
|
+
- dagger
|
33
|
+
- torch
|
34
|
+
- studded_leather
|
35
|
+
inventory:
|
36
|
+
- type: arrows
|
37
|
+
qty: 20
|
38
|
+
- type: thieves_tools
|
39
|
+
qty: 1
|
@@ -0,0 +1,41 @@
|
|
1
|
+
---
|
2
|
+
name: RumbleBelly
|
3
|
+
race: halfling
|
4
|
+
subrace: lightfoot
|
5
|
+
classes:
|
6
|
+
rogue: 1
|
7
|
+
level: 1
|
8
|
+
hit_die: inherit
|
9
|
+
max_hp: 67
|
10
|
+
ability:
|
11
|
+
str: 11
|
12
|
+
dex: 20
|
13
|
+
con: 16
|
14
|
+
int: 11
|
15
|
+
wis: 12
|
16
|
+
cha: 17
|
17
|
+
class_features:
|
18
|
+
- cunning_action
|
19
|
+
skills:
|
20
|
+
- acrobatics
|
21
|
+
- arcana
|
22
|
+
- athletics
|
23
|
+
- history
|
24
|
+
- perception
|
25
|
+
expertise:
|
26
|
+
- stealth
|
27
|
+
- thieves_tools
|
28
|
+
tools:
|
29
|
+
- thieves_tools
|
30
|
+
- carpenters_tools
|
31
|
+
weapon_proficiencies:
|
32
|
+
- simple
|
33
|
+
equipped:
|
34
|
+
- dagger
|
35
|
+
- torch
|
36
|
+
- studded_leather
|
37
|
+
inventory:
|
38
|
+
- type: arrows
|
39
|
+
qty: 20
|
40
|
+
- type: thieves_tools
|
41
|
+
qty: 1
|
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
name: Gomerin
|
3
|
+
race: elf
|
4
|
+
subrace: high_elf
|
5
|
+
classes:
|
6
|
+
fighter: 1
|
7
|
+
level: 7
|
8
|
+
hit_die: inherit
|
9
|
+
max_hp: 67
|
10
|
+
ability:
|
11
|
+
str: 12
|
12
|
+
dex: 20
|
13
|
+
con: 16
|
14
|
+
int: 16
|
15
|
+
wis: 12
|
16
|
+
cha: 11
|
17
|
+
saving_throw_proficiencies:
|
18
|
+
- strength
|
19
|
+
- constitution
|
20
|
+
class_features:
|
21
|
+
- dueling
|
22
|
+
- second_wind
|
23
|
+
skills:
|
24
|
+
- acrobatics
|
25
|
+
- arcana
|
26
|
+
- athletics
|
27
|
+
- history
|
28
|
+
- perception
|
29
|
+
languages:
|
30
|
+
- abyssal
|
31
|
+
- celestial
|
32
|
+
- common
|
33
|
+
- elvish
|
34
|
+
- goblin
|
35
|
+
equipped:
|
36
|
+
- vicious_rapier
|
37
|
+
- longbow
|
38
|
+
- studded_leather
|
39
|
+
- shield
|
40
|
+
expertise:
|
41
|
+
- stealth
|
42
|
+
- thieves_tools
|
43
|
+
inventory:
|
44
|
+
- type: shield
|
45
|
+
qty: 1
|
46
|
+
- type: arrows
|
47
|
+
qty: 20
|
48
|
+
- type: healing_potion
|
49
|
+
qty: 1
|
@@ -0,0 +1,48 @@
|
|
1
|
+
---
|
2
|
+
name: Meringo
|
3
|
+
race: human
|
4
|
+
classes:
|
5
|
+
fighter: 1
|
6
|
+
level: 7
|
7
|
+
hit_die: inherit
|
8
|
+
max_hp: 67
|
9
|
+
ability:
|
10
|
+
str: 12
|
11
|
+
dex: 20
|
12
|
+
con: 16
|
13
|
+
int: 16
|
14
|
+
wis: 12
|
15
|
+
cha: 11
|
16
|
+
saving_throw_proficiencies:
|
17
|
+
- strength
|
18
|
+
- constitution
|
19
|
+
class_features:
|
20
|
+
- dueling
|
21
|
+
- second_wind
|
22
|
+
skills:
|
23
|
+
- acrobatics
|
24
|
+
- arcana
|
25
|
+
- athletics
|
26
|
+
- history
|
27
|
+
- perception
|
28
|
+
languages:
|
29
|
+
- abyssal
|
30
|
+
- celestial
|
31
|
+
- common
|
32
|
+
- elvish
|
33
|
+
- goblin
|
34
|
+
equipped:
|
35
|
+
- vicious_rapier
|
36
|
+
- longbow
|
37
|
+
- studded_leather
|
38
|
+
- shield
|
39
|
+
expertise:
|
40
|
+
- stealth
|
41
|
+
- thieves_tools
|
42
|
+
inventory:
|
43
|
+
- type: shield
|
44
|
+
qty: 1
|
45
|
+
- type: arrows
|
46
|
+
qty: 20
|
47
|
+
- type: healing_potion
|
48
|
+
qty: 1
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: Ogre Den
|
2
|
+
description: Map for Natural20::Battle Sim
|
3
|
+
map:
|
4
|
+
base:
|
5
|
+
- '#######'
|
6
|
+
- '......#'
|
7
|
+
- '....#.#'
|
8
|
+
- '#####.#'
|
9
|
+
- '....#.#'
|
10
|
+
- '......#'
|
11
|
+
- '.......'
|
12
|
+
meta:
|
13
|
+
- .......
|
14
|
+
- A......
|
15
|
+
- .......
|
16
|
+
- .......
|
17
|
+
- .......
|
18
|
+
- B......
|
19
|
+
- .......
|
20
|
+
legend:
|
21
|
+
A:
|
22
|
+
name: spawn_point_1
|
23
|
+
type: spawn_point
|
24
|
+
B:
|
25
|
+
name: spawn_point_2
|
26
|
+
type: spawn_point
|
@@ -0,0 +1,53 @@
|
|
1
|
+
name: Natural20::Battle Sim
|
2
|
+
description: Map for thin walls
|
3
|
+
map:
|
4
|
+
illumination: 0.0
|
5
|
+
base:
|
6
|
+
- ......
|
7
|
+
- ......
|
8
|
+
- ......
|
9
|
+
- ......
|
10
|
+
- ......
|
11
|
+
- ......
|
12
|
+
light:
|
13
|
+
- ......
|
14
|
+
- ..A...
|
15
|
+
- ......
|
16
|
+
- ......
|
17
|
+
- ......
|
18
|
+
- ..A...
|
19
|
+
meta:
|
20
|
+
- g....C
|
21
|
+
- ......
|
22
|
+
- ......
|
23
|
+
- ..A..D
|
24
|
+
- ......
|
25
|
+
- .B...$
|
26
|
+
lights:
|
27
|
+
A:
|
28
|
+
bright: 10
|
29
|
+
dim: 5
|
30
|
+
legend:
|
31
|
+
A:
|
32
|
+
name: spawn_point_1
|
33
|
+
type: spawn_point
|
34
|
+
B:
|
35
|
+
name: spawn_point_2
|
36
|
+
type: spawn_point
|
37
|
+
C:
|
38
|
+
name: spawn_point_3
|
39
|
+
type: spawn_point
|
40
|
+
D:
|
41
|
+
name: spawn_point_4
|
42
|
+
type: spawn_point
|
43
|
+
|
44
|
+
$:
|
45
|
+
name: Guard
|
46
|
+
type: npc
|
47
|
+
sub_type: human_guard
|
48
|
+
g:
|
49
|
+
name: Krizzit
|
50
|
+
type: npc
|
51
|
+
sub_type: goblin
|
52
|
+
overrides:
|
53
|
+
hp: 40
|
data/fixtures/traps.yml
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
name: Natural20::Battle Sim
|
2
|
+
description: Map for Natural20::Battle Sim
|
3
|
+
map:
|
4
|
+
base:
|
5
|
+
- ......
|
6
|
+
- ......
|
7
|
+
- ......
|
8
|
+
- .T....
|
9
|
+
- ......
|
10
|
+
- ......
|
11
|
+
meta:
|
12
|
+
- ......
|
13
|
+
- ......
|
14
|
+
- ......
|
15
|
+
- A.....
|
16
|
+
- ......
|
17
|
+
- ......
|
18
|
+
legend:
|
19
|
+
A:
|
20
|
+
name: spawn_point_1
|
21
|
+
type: spawn_point
|
22
|
+
T:
|
23
|
+
name: pit_trap
|
24
|
+
type: pit_trap
|
25
|
+
perception_dc: 20
|
data/game.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
name: Rise of the Ruby Collective
|
2
|
+
title:
|
3
|
+
-
|
4
|
+
- ██▀███ ██▓ ██████ ▓█████ ▒█████ █████▒ ▄▄▄█████▓ ██░ ██ ▓█████ ██▀███ █ ██ ▄▄▄▄ ▓██ ██▓ ▄████▄ ▒█████ ██▓ ██▓ ▓█████ ▄████▄ ▄▄▄█████▓ ██▓ ██▒ █▓▓█████
|
5
|
+
- ▓██ ▒ ██▒▓██▒▒██ ▒ ▓█ ▀ ▒██▒ ██▒▓██ ▒ ▓ ██▒ ▓▒▓██░ ██▒▓█ ▀ ▓██ ▒ ██▒ ██ ▓██▒▓█████▄ ▒██ ██▒ ▒██▀ ▀█ ▒██▒ ██▒▓██▒ ▓██▒ ▓█ ▀ ▒██▀ ▀█ ▓ ██▒ ▓▒▓██▒▓██░ █▒▓█ ▀
|
6
|
+
- ▓██ ░▄█ ▒▒██▒░ ▓██▄ ▒███ ▒██░ ██▒▒████ ░ ▒ ▓██░ ▒░▒██▀▀██░▒███ ▓██ ░▄█ ▒▓██ ▒██░▒██▒ ▄██ ▒██ ██░ ▒▓█ ▄ ▒██░ ██▒▒██░ ▒██░ ▒███ ▒▓█ ▄ ▒ ▓██░ ▒░▒██▒ ▓██ █▒░▒███
|
7
|
+
- ▒██▀▀█▄ ░██░ ▒ ██▒▒▓█ ▄ ▒██ ██░░▓█▒ ░ ░ ▓██▓ ░ ░▓█ ░██ ▒▓█ ▄ ▒██▀▀█▄ ▓▓█ ░██░▒██░█▀ ░ ▐██▓░ ▒▓▓▄ ▄██▒▒██ ██░▒██░ ▒██░ ▒▓█ ▄ ▒▓▓▄ ▄██▒░ ▓██▓ ░ ░██░ ▒██ █░░▒▓█ ▄
|
8
|
+
- ░██▓ ▒██▒░██░▒██████▒▒░▒████▒ ░ ████▓▒░░▒█░ ▒██▒ ░ ░▓█▒░██▓░▒████▒ ░██▓ ▒██▒▒▒█████▓ ░▓█ ▀█▓ ░ ██▒▓░ ▒ ▓███▀ ░░ ████▓▒░░██████▒░██████▒░▒████▒▒ ▓███▀ ░ ▒██▒ ░ ░██░ ▒▀█░ ░▒████▒
|
9
|
+
- ░ ▒▓ ░▒▓░░▓ ▒ ▒▓▒ ▒ ░░░ ▒░ ░ ░ ▒░▒░▒░ ▒ ░ ▒ ░░ ▒ ░░▒░▒░░ ▒░ ░ ░ ▒▓ ░▒▓░░▒▓▒ ▒ ▒ ░▒▓███▀▒ ██▒▒▒ ░ ░▒ ▒ ░░ ▒░▒░▒░ ░ ▒░▓ ░░ ▒░▓ ░░░ ▒░ ░░ ░▒ ▒ ░ ▒ ░░ ░▓ ░ ▐░ ░░ ▒░ ░
|
10
|
+
- ░▒ ░ ▒░ ▒ ░░ ░▒ ░ ░ ░ ░ ░ ░ ▒ ▒░ ░ ░ ▒ ░▒░ ░ ░ ░ ░ ░▒ ░ ▒░░░▒░ ░ ░ ▒░▒ ░ ▓██ ░▒░ ░ ▒ ░ ▒ ▒░ ░ ░ ▒ ░░ ░ ▒ ░ ░ ░ ░ ░ ▒ ░ ▒ ░ ░ ░░ ░ ░ ░
|
11
|
+
- ░░ ░ ▒ ░░ ░ ░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░░ ░ ░ ░░ ░ ░░░ ░ ░ ░ ░ ▒ ▒ ░░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ▒ ░ ░░ ░
|
12
|
+
- ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ░ ░ ░ ░
|
13
|
+
- ░ ░ ░ ░ ░ ░
|
14
|
+
-
|
15
|
+
title_color: red
|
16
|
+
description: A sample hardcore dungeon crawl with a party of 2 (DnD 5th Edition rules)
|
17
|
+
author: Joseph Emmanuel Dayo
|
18
|
+
players: 2
|
19
|
+
starting_map: maps/game_map
|
20
|
+
player_profiles: characters
|
data/items/equipment.yml
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
---
|
2
|
+
arrows:
|
3
|
+
cost: 0.05
|
4
|
+
name: Arrows
|
5
|
+
type: ammunition
|
6
|
+
weight: 0.05
|
7
|
+
bolts:
|
8
|
+
cost: 0.05
|
9
|
+
name: Crossbow Bolts
|
10
|
+
type: ammunition
|
11
|
+
weight: 0.05
|
12
|
+
chain_mail:
|
13
|
+
ac: 16
|
14
|
+
cost: 75
|
15
|
+
name: Chain Mail
|
16
|
+
subtype: heavy
|
17
|
+
type: armor
|
18
|
+
weight: 55
|
19
|
+
chain_shirt:
|
20
|
+
ac: 13
|
21
|
+
cost: 50
|
22
|
+
mod_cap: 2
|
23
|
+
name: Chain Shirt
|
24
|
+
subtype: light
|
25
|
+
type: armor
|
26
|
+
weight: 13
|
27
|
+
copper_piece:
|
28
|
+
cost: 0.01
|
29
|
+
name: Copper Piece (cp)
|
30
|
+
type: currency
|
31
|
+
weight: 0.02
|
32
|
+
electronum:
|
33
|
+
cost: 0.5
|
34
|
+
name: Electronum (ep)
|
35
|
+
type: currency
|
36
|
+
weight: 0.02
|
37
|
+
gold_piece:
|
38
|
+
cost: 1
|
39
|
+
name: Gold Piece (gp)
|
40
|
+
type: currency
|
41
|
+
weight: 0.02
|
42
|
+
healing_potion:
|
43
|
+
consumable: true
|
44
|
+
hp_regained: 2d4+2
|
45
|
+
item_class: ItemLibrary::HealingPotion
|
46
|
+
name: Potion of Healing
|
47
|
+
type: potion
|
48
|
+
usable: true
|
49
|
+
leather:
|
50
|
+
ac: 11
|
51
|
+
cost: 10
|
52
|
+
name: Leather
|
53
|
+
subtype: light
|
54
|
+
type: armor
|
55
|
+
weight: 10
|
56
|
+
padded:
|
57
|
+
ac: 11
|
58
|
+
cost: 5
|
59
|
+
disadvantage:
|
60
|
+
- stealth
|
61
|
+
name: Padded Armor
|
62
|
+
subtype: light
|
63
|
+
type: armor
|
64
|
+
weight: 8
|
65
|
+
platinum:
|
66
|
+
cost: 10
|
67
|
+
name: platinum (pp)
|
68
|
+
type: currency
|
69
|
+
weight: 0.02
|
70
|
+
ruby_gem:
|
71
|
+
cost: 5000
|
72
|
+
name: Ruby Gemstone
|
73
|
+
type: gemstone
|
74
|
+
weight: 1
|
75
|
+
shield:
|
76
|
+
bonus_ac: 2
|
77
|
+
name: Shield
|
78
|
+
type: shield
|
79
|
+
weight: 6
|
80
|
+
silver_piece:
|
81
|
+
cost: 0.1
|
82
|
+
name: Silver Piece (sp)
|
83
|
+
type: currency
|
84
|
+
weight: 0.02
|
85
|
+
studded_leather:
|
86
|
+
ac: 12
|
87
|
+
cost: 45
|
88
|
+
name: Studded Leather
|
89
|
+
subtype: light
|
90
|
+
type: armor
|
91
|
+
weight: 13
|
92
|
+
thieves_tools:
|
93
|
+
cost: 25
|
94
|
+
name: Thieves Tools
|
95
|
+
type: tool
|
96
|
+
weight: 1
|
97
|
+
wooden_door_key:
|
98
|
+
cost: 0.05
|
99
|
+
name: Wooden Door Key
|
100
|
+
type: tool
|
101
|
+
weight: 0.05
|