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
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
|