natural_20 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
data/locales/en.yml
ADDED
@@ -0,0 +1,304 @@
|
|
1
|
+
---
|
2
|
+
en:
|
3
|
+
action:
|
4
|
+
attack_action: '%{name} with %{weapon_name} -> Hit: +%{mod} Dmg: %{dmg}'
|
5
|
+
attack_action_throw: '%{name} with %{weapon_name} (Throw) -> Hit: +%{mod} Dmg: %{dmg}'
|
6
|
+
dash: Dash
|
7
|
+
dash_bonus: Bonus Action -> Dash
|
8
|
+
disengage: Disengage
|
9
|
+
disengage_bonus: Bonus Action -> Disengage
|
10
|
+
dodge: Dodge
|
11
|
+
drop_grapple: Drop Grapple
|
12
|
+
escape_grapple: Escape a Grapple
|
13
|
+
first_aid: Perform First Aid
|
14
|
+
grapple: Grapple
|
15
|
+
ground_interact: Pickup items
|
16
|
+
help: Help
|
17
|
+
hide: Hide
|
18
|
+
hide_bonus: Bonus Action -> Hide
|
19
|
+
interact: Interact/Loot
|
20
|
+
inventory: Show Character Sheet & Inventory
|
21
|
+
look: Look Around (Perception Check)
|
22
|
+
move: Move
|
23
|
+
npc_action: '%{name} with %{action_name}'
|
24
|
+
opportunity_attack: Opportunity Attack for %{name} on %{target}
|
25
|
+
prone: Go Prone
|
26
|
+
push: Shove (Push Away)
|
27
|
+
short_rest: Short Rest
|
28
|
+
shove: Shove (Knock Prone)
|
29
|
+
stand: Stand Up
|
30
|
+
use_item: Use Item
|
31
|
+
attack_status:
|
32
|
+
being_helped: Being being_helped
|
33
|
+
prone: Target Prone
|
34
|
+
ranged_with_enemy_in_melee: Ranged weapon with enemy in melee range
|
35
|
+
small_creature_using_heavy: Heavy weapon used by small creature
|
36
|
+
squeezed: Target is squeezing into a tight location
|
37
|
+
target_dodge: Target is Dodging
|
38
|
+
target_is_prone: Target is prone in melee
|
39
|
+
target_is_prone_range: Ranged attack on prone target
|
40
|
+
target_long_range: Long range penalty
|
41
|
+
unseen_attacker: Attacker is unseen
|
42
|
+
back: Back
|
43
|
+
battle_end: Battle ended in %{num} rounds
|
44
|
+
battle_simulator: Battle Simulator
|
45
|
+
builder:
|
46
|
+
ability_score:
|
47
|
+
fixed: Fixed ability score 15, 14, 13, 12, 10, 8
|
48
|
+
point_buy: Point purchase
|
49
|
+
random: Random dice roll
|
50
|
+
ability_score_method: Select method to generate ability scores
|
51
|
+
assign_ability_scores: Assign ability scores to attributes [%{scores}]
|
52
|
+
cha: Select Charisma ability score
|
53
|
+
class: Select a class
|
54
|
+
con: Select Constitution ability score
|
55
|
+
default_description: An adventurer with something to prove
|
56
|
+
description: Enter a description for your character
|
57
|
+
dex: Select Dexterity ability score
|
58
|
+
enter_name: Enter name for your character
|
59
|
+
fighter:
|
60
|
+
archery: Archery - You gain a +2 bonus to attack rolls you make with ranged weapons.
|
61
|
+
defense: Defence - While you are wearing armor, you gain a +1 bonus to AC.
|
62
|
+
dueling: Dueling - When you are wielding a melee weapon in one hand and no other weapons, you gain a +2 bonus to damage rolls with that weapon.
|
63
|
+
great_weapon_fighting: Great Weapon Fighting - When you roll a 1 or 2 on a damage die for an attack you make with a melee weapon that you are wielding with two hands, you can reroll the die and must use the new roll, even if the new roll is a 1 or a 2. The weapon must have the two-handed or versatile property for you to gain this benefit.
|
64
|
+
protection: Protection - When a creature you can see attacks a target other than you that is within 5 feet of you, you can use your reaction to impose disadvantage on the attack roll. You must be wielding a shield.
|
65
|
+
select_fighting_style: Please select a fighting style
|
66
|
+
select_skill: Select a fighter skill. Pick 2
|
67
|
+
select_starting_weapon: Select starting weapon set
|
68
|
+
two_weapon_fighting: Two-Weapon Fighting - When you engage in two-weapon fighting, you can add your ability modifier to the damage of the second attack.
|
69
|
+
int: Select Intelligence ability score
|
70
|
+
races:
|
71
|
+
dark_elf: Dark Elf
|
72
|
+
high_elf: High Elf
|
73
|
+
lightfoot: Lightfoot
|
74
|
+
stout: Stout
|
75
|
+
wood_elf: Wood Elf
|
76
|
+
review: Confirm this character?
|
77
|
+
rogue:
|
78
|
+
expertise: Select Expertise
|
79
|
+
select_skill: Select a Rogue skill. Pick 4
|
80
|
+
select_starting_weapon: Select a starting weapon
|
81
|
+
select_starting_weapon_2: Select second weapon set
|
82
|
+
select_languages: Select languages
|
83
|
+
select_race: Please select a race
|
84
|
+
select_skill: null
|
85
|
+
select_subrace: Please select a sub-race
|
86
|
+
skill:
|
87
|
+
acrobatics: Acrobatics
|
88
|
+
animal_handling: Animal Handling
|
89
|
+
athletics: Athletics
|
90
|
+
deception: Deception
|
91
|
+
history: History
|
92
|
+
insight: Insight
|
93
|
+
intimidation: Intimidation
|
94
|
+
investigation: Investigation
|
95
|
+
perception: Perception
|
96
|
+
performance: Performance
|
97
|
+
persuasion: Persuasion
|
98
|
+
sleight_of_hand: Sleight of Hand
|
99
|
+
stealth: Stealth
|
100
|
+
survival: Survival
|
101
|
+
thieves_tools: Thieves Tools
|
102
|
+
str: Select Strength ability score
|
103
|
+
token: Select a token to represent this character on the board
|
104
|
+
token_color: Select a color for your token
|
105
|
+
wis: Select Wisdom ability score
|
106
|
+
character_builder: Character Builder ...
|
107
|
+
character_sheet:
|
108
|
+
ac: 'AC: %{ac}'
|
109
|
+
class: 'Class: %{name}'
|
110
|
+
expertise: Expertise
|
111
|
+
hp: 'HP: %{current}/%{max}'
|
112
|
+
inventory: Inventory %{weight}/%{carry_capacity} lbs
|
113
|
+
languages: 'Languages:'
|
114
|
+
level: 'Level: %{level}'
|
115
|
+
name: 'Name: %{name}'
|
116
|
+
race: 'Race: %{race}'
|
117
|
+
skill_mod: '%{prefix} %{skill} %{bonus}'
|
118
|
+
skills: Skills
|
119
|
+
speed: 'Speed: %{speed}ft.'
|
120
|
+
subrace: 'Subrace: %{race}'
|
121
|
+
character_status_line: '%{hp}/%{max_hp} actions: %{total_actions} bonus action: %{bonus_action}, movement: %{available_movement} ft. statuses: %{statuses}'
|
122
|
+
dead_goblin_items: Dead Goblin's items
|
123
|
+
dice_roll:
|
124
|
+
ability_score: 'Rolling for ability score #%{roll_num}'
|
125
|
+
acrobatics: Rolling for an acrobatics check
|
126
|
+
athletics: Rolling for an athletics check
|
127
|
+
attack: Rolling for attack (to hit)
|
128
|
+
damage: Roll for attack damage
|
129
|
+
death_saving_throw: Roll for death saving throw
|
130
|
+
description: '%{description} (%{roll_str})'
|
131
|
+
dexterity: Roll for dexterity (skill check)
|
132
|
+
great_weapon_fighting_reroll: Damage die reroll on a 1 or 2 for Great Weapon Fighting style
|
133
|
+
healing_potion: Roll for healing potion (heal amount)
|
134
|
+
hit_die: Roll for hit die
|
135
|
+
hit_die_selection: Use a hit die to regain HP for %{name} (%{hp}/%{max_hp})?
|
136
|
+
initiative: Roll for initiative
|
137
|
+
medicine: Roll for medicine check
|
138
|
+
perception: Roll for a perception check
|
139
|
+
prompt: '%{name} - %{description}'
|
140
|
+
roll_attempt: 'roll %{number}/%{total}. Please roll a d%{die_type} [1-%{die_type}]:'
|
141
|
+
roll_attempt_advantage: 'roll %{number}/%{total}. roll a d%{die_type} [1-%{die_type}] (advantage):'
|
142
|
+
roll_attempt_disadvantage: 'roll %{number}/%{total}. roll a d%{die_type} [1-%{die_type}] (disadvantage):'
|
143
|
+
second_wind: Roll for second wind hp gain
|
144
|
+
sneak_attack: Roll for sneak attack damage
|
145
|
+
special_weapon_damage: Roll for special weapon additional damage
|
146
|
+
stealth: Rolling for stealth check
|
147
|
+
strength_check: Roll for strength (skill check)
|
148
|
+
thieves_tools: Roll for thieves tools (skill check)
|
149
|
+
wisdom_check: Roll for wisdom check
|
150
|
+
dice_roller: Dice Roller
|
151
|
+
drop: Drop Item
|
152
|
+
end_turn: '%{name}: End turn.'
|
153
|
+
engine_title: Welcome to Wizards and Goblins (DnD 5e Adventure Engine)
|
154
|
+
entity:
|
155
|
+
health_flavor:
|
156
|
+
almost_dead: barely hanging on, one more solid blow may take them down
|
157
|
+
dead: appears to be dead
|
158
|
+
max: looks to be in good condition
|
159
|
+
over_10: looking in bad condition, unable to fight or survive much longer
|
160
|
+
over_25: starting to look more ragged or visibly slowing down
|
161
|
+
over_50: visibly wounded with some injuries, but still fighting strong
|
162
|
+
over_75: doesn't show any signs of slowing, just a few minor inconveniencing injuries
|
163
|
+
unconscious: appears to be unconscious
|
164
|
+
event:
|
165
|
+
acrobatics:
|
166
|
+
failure: '%{roll} = %{value} (dc 10) %{name} failed on an acrobatics check'
|
167
|
+
success: '%{roll} = %{value} (dc 10) %{name} succeeded on an acrobatics check'
|
168
|
+
athletics:
|
169
|
+
failure: '%{roll} = %{value} (dc 10) %{name} failed on an athletics check'
|
170
|
+
success: '%{roll} = %{value} (dc 10) %{name} succeeded on an athletics check'
|
171
|
+
attack: '%{opportunity}%{source} attacked %{target} with %{attack_name} to Hit%{advantage}: %{attack_roll} = %{attack_value} for %{damage} damage.'
|
172
|
+
attack_no_roll: '%{opportunity}%{source} attacked %{target} with %{attack_name} to Hit for %{damage} damage.'
|
173
|
+
combat_end: Combat has ended
|
174
|
+
combat_start: Combat has started!
|
175
|
+
death_fail: 'Death Saving Throw: %{name} rolls a %{roll} = %{value} (fail). Saves: %{saves} Fails: %{fails}'
|
176
|
+
death_fail_hit: 'Death Saving Throw Failure. Saves: %{saves} Fails: %{fails}'
|
177
|
+
death_save: 'Death Saving Throw: %{name} rolls a %{roll} = %{value} (success). Saves: %{saves} Fails: %{fails}'
|
178
|
+
dodge: '%{name} takes the dodge action.'
|
179
|
+
drop_grapple: '%{source} has dropped grapple on %{target}'
|
180
|
+
escape_grapple_failure: '%{source} failed to escape the grapple from %{target}. %{source_roll} = %{source_roll_value} vs %{target_roll} = %{target_roll_value}'
|
181
|
+
escape_grapple_success: '%{source} successfully escaped the grapple from %{target}. %{source_roll} = %{source_roll_value} vs %{target_roll} = %{target_roll_value}'
|
182
|
+
feature_protection: '%{source} quickly uses shield in an attempt to protect %{target} from %{attacker}''s attack.'
|
183
|
+
first_aid: '%{roll} = %{value} %{name} (DC 10) successfully applied first aid to %{target}'
|
184
|
+
first_aid_failure: '%{roll} = %{value} %{name} (DC 10) failed to apply first aid to %{target}'
|
185
|
+
flavor:
|
186
|
+
wolf:
|
187
|
+
lunge: The wolf lunges forward and %{target} is now prone
|
188
|
+
grapple_failure: '%{source} failed to grapple %{target}. %{source_roll} = %{source_roll_value} vs %{target_roll} = %{target_roll_value}'
|
189
|
+
grapple_success: '%{source} successfully grappled %{target}. %{source_roll} = %{source_roll_value} vs %{target_roll} = %{target_roll_value}'
|
190
|
+
grapple_success_no_roll: '%{source} successfully grappled %{target}'
|
191
|
+
great_weapon_fighting_roll: 'Great Weapon Fighting (reroll): %{prev_roll} -> %{roll}'
|
192
|
+
hit_die: '%{source} rolls hit die %{roll} = %{value}'
|
193
|
+
knock_prone_failure: '%{source_roll} < %{target_roll}. %{source} tried but failed to knock %{target} prone'
|
194
|
+
knock_prone_success: '%{source_roll} >= %{target_roll}. %{source} knocks %{target} prone'
|
195
|
+
shove_failure: '%{source_roll} < %{target_roll}. ${source} tried but failed to shove %{target} 5ft away'
|
196
|
+
shove_success: '%{source_roll} >= %{target_roll}. ${source} shoves %{target} 5ft away'
|
197
|
+
something: (something)
|
198
|
+
status:
|
199
|
+
prone: '%{name} is now prone.'
|
200
|
+
stand: '%{name} stands up.'
|
201
|
+
exit: Exit
|
202
|
+
game_author: By %{author}
|
203
|
+
inventory:
|
204
|
+
cannot_change_armor_combat: Cannot change armor during combat
|
205
|
+
equiped_items: '%{name} (equipped)'
|
206
|
+
how_many: 'How many %{item_label} (1-%{item_count})? '
|
207
|
+
inventory_items: '%{name} x %{qty}'
|
208
|
+
language:
|
209
|
+
abyssal: Abyssal
|
210
|
+
celestial: Celestial
|
211
|
+
common: Common
|
212
|
+
deep_speech: Deep Speech
|
213
|
+
draconic: Draconic
|
214
|
+
dwarvish: Dwarvish
|
215
|
+
elvish: Elvish
|
216
|
+
giant: Giant
|
217
|
+
gnomish: Gnomish
|
218
|
+
goblin: Goblin
|
219
|
+
halfling: Halfling
|
220
|
+
infernal: Infernal
|
221
|
+
orc: Orc
|
222
|
+
primordial: Primordial
|
223
|
+
sylvan: Sylvan
|
224
|
+
thieves_cant: Thieves Cant
|
225
|
+
undercommon: Undercommon
|
226
|
+
manual_target: Target object using the map
|
227
|
+
multiple_target_prompt: Multiple targets at location(s) please select specific targets
|
228
|
+
missing_game: missing game.yml in the current folder
|
229
|
+
'no': 'No'
|
230
|
+
object:
|
231
|
+
Arrows: Arrows
|
232
|
+
ItemLibrary::Chest:
|
233
|
+
loot: Retreive Contents
|
234
|
+
Wooden door key: Wooden Door Key
|
235
|
+
chain_mail: Chain Mail
|
236
|
+
chest:
|
237
|
+
lock: clink. chest is now locked
|
238
|
+
unlock: Ka-chink! chest is now unlocked
|
239
|
+
door:
|
240
|
+
door_blocked: (door is blocked)
|
241
|
+
key_required: (missing key)
|
242
|
+
lock: clink. door is now locked
|
243
|
+
unlock: Ka-chink! door is now unlocked
|
244
|
+
equip_problem:
|
245
|
+
armor_equipped: You already have an armor on (please unequip armor)
|
246
|
+
hands_full: Hand Slots are full (please unequip a weapon/shield)
|
247
|
+
ground: Ground
|
248
|
+
light_crossbow_and_20_bolts: Light crossbow and 20 bolts
|
249
|
+
lockpick_failed: Lockpicking failed and the theives tools are now broken
|
250
|
+
longbow_and_arrows: Longbow and Arrows
|
251
|
+
martial_weapon_and_shield: (1) Martial Weapon & Shield
|
252
|
+
properties:
|
253
|
+
ammunition: Ammunition - You make a ranged attack only if you have ammunition to fire from the weapon
|
254
|
+
finesse: Finesse - When making an attack with a finesse weapon, your Strength or Dexterity modifier can be used for the attack and damage roll (Best mod will be automatically be used)
|
255
|
+
heavy: Heavy - Small creatures have disadvantage on attack rolls with heavy weapons
|
256
|
+
light: Light - A light weapon is small and easy to handle, making it ideal for use when fighting with two weapons
|
257
|
+
ranged: Ranged - This weapon can be used to make a ranged attack
|
258
|
+
thrown: Thrown - You can throw the weapon to make a ranged attack
|
259
|
+
versatile: Versatile - This weapon can be used with one or two hands
|
260
|
+
rapier: Rapier
|
261
|
+
shortbow_and_quiver: a shortbow and quiver of 20 arrows
|
262
|
+
shortsword: Shortsword
|
263
|
+
two_handaxes: Two handaxes
|
264
|
+
two_martial_weapons: (2) Martial Weapons
|
265
|
+
weapons:
|
266
|
+
chain_mail: Chain Mail
|
267
|
+
dagger: Dagger
|
268
|
+
hand_crossbow: Hand Crossbow
|
269
|
+
longbow: Longbow
|
270
|
+
longbow_and_arrows: Longbow and Arrows
|
271
|
+
longsword: Longsword
|
272
|
+
rapier: Rapier
|
273
|
+
scimitar: Scimitar
|
274
|
+
shortbow: Shortbow
|
275
|
+
shortsword: Shortsword
|
276
|
+
options:
|
277
|
+
automatic_roll: Roll Dice for me automatically (Computer will roll for you)
|
278
|
+
dice_roll: Toggle Manual Dice Roll ...
|
279
|
+
roll_dice_manually: Prompt for each player die roll (Make sure you have a dice set on hand)
|
280
|
+
title: Game Options
|
281
|
+
perception:
|
282
|
+
dark: Dark and hard to make out
|
283
|
+
hide_success: (You are hidden from %{label})
|
284
|
+
looking_around: Looking around using Perception %{perception}
|
285
|
+
navigation: ESC- back, (wsad) - inspect square, x, space, enter - select
|
286
|
+
navigation_look: ESC- back, (wsad) - inspect square
|
287
|
+
note_with_language: (in %{note_language}) %{note}
|
288
|
+
passed: (perception) %{note}
|
289
|
+
terrain_and_surroundings: Terrain and Surroundings
|
290
|
+
using_darkvision: 'Using darkvision:'
|
291
|
+
prompt_dice_roller: Dice Roll (ex. d20, d8+1) (a) >
|
292
|
+
save_already_present: A save game is already present. This will overwrite your game. Are you sure?
|
293
|
+
select_npcs: Select NPCs
|
294
|
+
select_party_member: Select Party Member %{index}
|
295
|
+
skip_hit_die: Skip Hit Die
|
296
|
+
tpk: The entire party has fallen. Game Over!
|
297
|
+
unequip: Unequip
|
298
|
+
validation:
|
299
|
+
shove:
|
300
|
+
invalid_target_size: The target must be no more than one size larger than you
|
301
|
+
waive_opportunity_attack: Waive Opportunity Attack
|
302
|
+
with_advantage: advantage
|
303
|
+
with_disadvantage: disadvantage
|
304
|
+
'yes': 'Yes'
|
data/maps/game_map.yml
ADDED
@@ -0,0 +1,168 @@
|
|
1
|
+
name: Battle Sim
|
2
|
+
description: Map for Battle Sim
|
3
|
+
map:
|
4
|
+
floor_type: rock
|
5
|
+
illumination: 0.0
|
6
|
+
base:
|
7
|
+
- z.........
|
8
|
+
- ..........
|
9
|
+
- HHH..HHHHd
|
10
|
+
- ..d..Hwwww
|
11
|
+
- .HHHHHwwwt
|
12
|
+
- ..T..dwwow
|
13
|
+
- HHHH=HHHHH
|
14
|
+
- ..H...wYw.
|
15
|
+
- ..d...www.
|
16
|
+
light:
|
17
|
+
- ..........
|
18
|
+
- ..........
|
19
|
+
- ..........
|
20
|
+
- ..........
|
21
|
+
- ..........
|
22
|
+
- ..........
|
23
|
+
- ..........
|
24
|
+
- ..........
|
25
|
+
- ..........
|
26
|
+
meta:
|
27
|
+
- ....O.....
|
28
|
+
- .....Y....
|
29
|
+
- ???..?????
|
30
|
+
- .....?b..j
|
31
|
+
- .?????..i.
|
32
|
+
- .........e
|
33
|
+
- ??????????
|
34
|
+
- AB?.g....W
|
35
|
+
- ..?......W
|
36
|
+
notes:
|
37
|
+
- type: point
|
38
|
+
positions:
|
39
|
+
- [6, 7]
|
40
|
+
- [8, 7]
|
41
|
+
- [6, 8]
|
42
|
+
- [7, 8]
|
43
|
+
- [8, 8]
|
44
|
+
notes:
|
45
|
+
- note: A pool of stinky water
|
46
|
+
- type: rectangle
|
47
|
+
positions:
|
48
|
+
- [5, 3, 8, 5]
|
49
|
+
notes:
|
50
|
+
- note: A flooded room with a treasure in the center
|
51
|
+
triggers:
|
52
|
+
on_map_entry:
|
53
|
+
- type: message
|
54
|
+
content: "You and your party were hired to retreive a ruby gem from a certain treasure chest deep in this dungeon.\nGood Luck!"
|
55
|
+
object_received:
|
56
|
+
- type: message
|
57
|
+
if: object_type:ruby_gem & entity:pc
|
58
|
+
content: "You have successfully retrieved the ruby gem! Congratulations\nPat yourself on the back for doing this incredibly tough challenge."
|
59
|
+
- type: battle_end
|
60
|
+
if: object_type:ruby_gem & entity:pc
|
61
|
+
legend:
|
62
|
+
Y:
|
63
|
+
name: Field brazier
|
64
|
+
type: brazier
|
65
|
+
t:
|
66
|
+
name: Treasure Chest
|
67
|
+
type: chest
|
68
|
+
inventory:
|
69
|
+
- type: studded_leather
|
70
|
+
qty: 2
|
71
|
+
- type: gold_piece
|
72
|
+
label: Gold Pieces
|
73
|
+
qty: 10
|
74
|
+
z:
|
75
|
+
name: Treasure Chest
|
76
|
+
type: chest
|
77
|
+
inventory:
|
78
|
+
- type: ruby_gem
|
79
|
+
label: A transparent clear red gemstone worth around 5,000 gp
|
80
|
+
qty: 1
|
81
|
+
H:
|
82
|
+
name: Stone Wall
|
83
|
+
type: stone_wall
|
84
|
+
d:
|
85
|
+
name: Mysterious Door
|
86
|
+
type: wooden_door
|
87
|
+
state: closed
|
88
|
+
p:
|
89
|
+
name: chasm
|
90
|
+
type: bottomless_pit
|
91
|
+
notes:
|
92
|
+
- note: A bottomless chasm, you can't see where it ends
|
93
|
+
=:
|
94
|
+
label: Front Door
|
95
|
+
type: wooden_door
|
96
|
+
state: closed
|
97
|
+
locked: true
|
98
|
+
key: wooden_door_key
|
99
|
+
w:
|
100
|
+
name: Pool of water
|
101
|
+
type: water
|
102
|
+
A:
|
103
|
+
name: spawn_point_1
|
104
|
+
type: spawn_point
|
105
|
+
B:
|
106
|
+
name: spawn_point_2
|
107
|
+
type: spawn_point
|
108
|
+
C:
|
109
|
+
name: spawn_point_3
|
110
|
+
type: spawn_point
|
111
|
+
D:
|
112
|
+
name: spawn_point_4
|
113
|
+
type: spawn_point
|
114
|
+
O:
|
115
|
+
name: The Owlbear
|
116
|
+
type: npc
|
117
|
+
sub_type: owlbear
|
118
|
+
group: b
|
119
|
+
T:
|
120
|
+
name: pit_trap
|
121
|
+
type: pit_trap
|
122
|
+
perception_dc: 20
|
123
|
+
b:
|
124
|
+
name: Stivnux
|
125
|
+
type: npc
|
126
|
+
sub_type: goblin
|
127
|
+
i:
|
128
|
+
name: Tolkiq
|
129
|
+
type: npc
|
130
|
+
sub_type: goblin
|
131
|
+
j:
|
132
|
+
name: Kobs
|
133
|
+
type: npc
|
134
|
+
sub_type: goblin
|
135
|
+
e:
|
136
|
+
name: Frenabs
|
137
|
+
type: npc
|
138
|
+
sub_type: goblin
|
139
|
+
overrides:
|
140
|
+
battle_defaults:
|
141
|
+
statuses:
|
142
|
+
- hiding
|
143
|
+
stealth: 1d20+6
|
144
|
+
W:
|
145
|
+
name: Wolf
|
146
|
+
type: npc
|
147
|
+
sub_type: wolf
|
148
|
+
o:
|
149
|
+
name: barrel
|
150
|
+
type: barrel
|
151
|
+
g:
|
152
|
+
name: dead_goblin
|
153
|
+
type: npc
|
154
|
+
sub_type: goblin
|
155
|
+
overrides:
|
156
|
+
hp: 0
|
157
|
+
notes:
|
158
|
+
- note: Remnants of a dead goblin, corpse is still fresh
|
159
|
+
highlight: true
|
160
|
+
- if: inventory:wooden_door_key
|
161
|
+
note: In his hand is a wooden door key.
|
162
|
+
perception_dc: 10
|
163
|
+
statuses:
|
164
|
+
- dead
|
165
|
+
inventory:
|
166
|
+
- type: wooden_door_key
|
167
|
+
label: Key to a wooden door
|
168
|
+
qty: 1
|