Skip to content

Commit

Permalink
Merge pull request #27 from hark130/development
Browse files Browse the repository at this point in the history
City Menu Functionality
  • Loading branch information
hark130 authored Jan 22, 2020
2 parents bfeed6d + f0f8de3 commit 12591b8
Show file tree
Hide file tree
Showing 12 changed files with 1,538 additions and 41 deletions.
3 changes: 3 additions & 0 deletions Gamemaster_Guidance.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@
from modules.GG_Yaml import parse_yaml


import locale
import sys


def main(argList):
# LOCAL VARIABLES
cityDict = None

locale.setlocale(locale.LC_ALL, "en_US.UTF-8")

parsedArgs = parse_arguments(argList)
if "cityfile" in parsedArgs.keys():
cityDict = parse_yaml(parsedArgs["cityfile"])
Expand Down
36 changes: 35 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,14 @@ GM aid for Pathfinder 2nd Edition written in Python 3
[X] 1. Take an argument (setting configuration file)<br>
[X] 2. Parse yaml configuration file<br>
[X] 3. Create GG_city class to parse city input<br>
[ ] 4. Expand GG_city class to determine city attributes<br>
[X] 4. Expand GG_city class to determine city attributes<br>
- http://legacy.aonprd.com/gameMasteryGuide/settlements.html<br>
- https://www.d20pfsrd.com/gamemastering/other-rules/kingdom-building/settlements/#Guards_Guards<br>
- Use D&D 3.5 DM's Guide "Generating Towns" (P. 137) to randomize NPCs levels/classes<br>
[X] 5. Finish the implementation of "parse_city" method in GG_City (finished? in 11-2)<br>
[ ] 6. Update NPC generation of "NPC Classes" (e.g., Adept, Warrior) once Paizo releases them for 2nd edition
[ ] 7. Add support for magic item generation. While you're at it, add functionality to print the magic items in the Marketplace as well.<br>
[ ] 8. Add support for user-driven "Notable NPCs". Don't make it mandatory. Print it if available under DEMOGRAPHICS.<br>

6. Add "quirks" to character creation

Expand All @@ -64,3 +68,33 @@ GM aid for Pathfinder 2nd Edition written in Python 3
8. Human ethnicity Nidalese

[ ] 1. Find and implement character functionality for the Nidalese ethnicity (missing?!)<br>

9. Double back and implement the "validate defined" method for the "GG City" class

[X] 1. Base Value (completed in 5-4)<br>
[ ] 2. Magic Items (always recalculate?)<br>
[X] 3. Modifiers (Accomplished(?) in 5-4)<br>
[X] 4. NPCs (Accomplished in 5-4)<br>
[X] 5. Purchase Limit (Accomplished(?) in 5-4)<br>
[X] 6. Spellcasting (Accomplished(?) in 5-4)<br>
[X] 7. Type (completed in 5-4)<br>

10. Update remaining settlement status

[X] 1. Spellcasting (e.g., Magical government) (Accomplished in 5-4)<br>
[X] 2. Base Value (e.g., Notorious quality) (Accomplished in 5-4)<br>
[X] 3. Purchase Limit (e.g., Prosperous) (Accomplished in 5-4)<br>
[ ] 4. Danger<br>

11. Support new city functionality

[X] 1. Print city information in a standardized format (Implemented in 11-2)<br>
[X] 2. Add a city section to the menu<br>

12. Miscellaneous

[ ] 1. AESTHETIC: Don't print notes for characters if there are no notes<br>
[ ] 2. BUG: REfactor GG_City DEMOGRAPHICS-Population string construction to use parsed attributes (raceLookup) instead of cityDict<br>
[ ] 3. BUG: Verify there's no way for calculated NPC levels to go below 0. (e.g., smallest city type + lowest roll)
[ ] 4. AESTHETIC: Properly pluralize ancestries when calculating Demographic Populations in GG_City's "print city details" functionality
[ ] 5. BUG?: Why am I printing things from the dictionary instead of parsing to class attributes and then printing?!
70 changes: 69 additions & 1 deletion configs/test_city.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
city:
name: Some_City
region: Some_Region
ethnicity:
ancestry:
Dwarf: 12.5
Elf: 12.5
Gnome: 12.5
Expand All @@ -45,3 +45,71 @@ city:
Vudrani: 1.136
Half-Elf: 12.5
Half-Orc: 12.5

# NOTE: The following entries are mandatory
# city:
# name:
# region:
# ethnicity:
# Dwarf:
# Elf:
# Gnome:
# Goblin:
# Halfling:
# Human:
# Garundi:
# Keleshite:
# Kellid:
# Mwangi:
# Nidalese:
# Shoanti:
# Taldan:
# Tian:
# Ulfen:
# Varisian:
# Vudrani:
# Half-Elf:
# Half-Orc:

# NOTE: The following entries are optional but will be defined if included blank
# disadvantages:

# NOTE: The following entries will be randomized by Gamemaster_Guidance if missing
# alignment:
# government:
# population:
# qualities:

# NOTE: The following entries are defined by Gamemaster_Guidance.
# base_value:
# magic_items:
# minor:
# medium:
# major:
# modifiers:
# corruption:
# crime:
# economy:
# law:
# lore:
# society:
# npcs:
# Adept:
# Aristocrat:
# Barbarian:
# Bard:
# Cleric:
# Commoner:
# Druid:
# Expert:
# Fighter:
# Monk:
# Paladin:
# Ranger:
# Rogue:
# Sorcerer:
# Warrior:
# Wizard:
# purchase_limit:
# spellcasting:
# type:
115 changes: 115 additions & 0 deletions configs/test_city2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# city:
# name: Some_City
# region: Some_Region
# ethnicity:
# Dwarf: 12.5
# Elf: 12.5
# Gnome: 12.5
# Goblin: 12.5
# Halfling: 12.5
# Human:
# Garundi: 1.136
# Keleshite: 1.136
# Kellid: 1.136
# Mwangi: 1.136
# Nidalese: 1.136
# Shoanti: 1.136
# Taldan: 1.136
# Tian: 1.136
# Ulfen: 1.136
# Varisian: 1.136
# Vudrani: 1.136
# Half-Elf: 12.5
# Half-Orc: 12.5

city:
name: Some_Other_City
region: Some_Other_Region
ancestry:
Dwarf: 20
Elf: 5
Gnome: 10
Goblin: 2.5
Halfling: 15
Human:
Garundi: 2.5
Keleshite: 2.5
Kellid: 15
Mwangi: 2.5
Nidalese: 0
Shoanti: 2.5
Taldan: 5
Tian: 0
Ulfen: 5
Varisian: 2.5
Vudrani: 2.5
Half-Elf: 5
Half-Orc: 2.5

# NOTE: The following entries are mandatory
# city:
# name:
# region:
# ethnicity:
# Dwarf:
# Elf:
# Gnome:
# Goblin:
# Halfling:
# Human:
# Garundi:
# Keleshite:
# Kellid:
# Mwangi:
# Nidalese:
# Shoanti:
# Taldan:
# Tian:
# Ulfen:
# Varisian:
# Vudrani:
# Half-Elf:
# Half-Orc:

# NOTE: The following entries are optional but will be defined if included blank
# disadvantages:

# NOTE: The following entries will be randomized by Gamemaster_Guidance if missing
# alignment:
# government:
# population:
# qualities:

# NOTE: The following entries are defined by Gamemaster_Guidance.
# base_value:
# magic_items:
# minor:
# medium:
# major:
# modifiers:
# corruption:
# crime:
# economy:
# law:
# lore:
# society:
# npcs:
# Adept:
# Aristocrat:
# Barbarian:
# Bard:
# Cleric:
# Commoner:
# Druid:
# Expert:
# Fighter:
# Monk:
# Paladin:
# Ranger:
# Rogue:
# Sorcerer:
# Warrior:
# Wizard:
# purchase_limit:
# spellcasting:
# type:
Loading

0 comments on commit 12591b8

Please sign in to comment.