Coffee-fueled-deadlines / PyDnD

PyDnD is a Dungeons and Dragons SRD Library for Python3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PyDnD

Description: Python Dungeons and Dragons Library utilizing SRD

Status: Incomplete/In-Development

Note: If you like and/or want to use this, a star or a follow would be appreciated.

Example Invocation

from PyDnD import Player
from PyDnD import Roll

if __name__ == '__main__':
		
	newPlayer = Player(name='Thor Odinson', 
			   age='34', 
			   gender='Male', 
			   description='Looks like a pirate angel', 
			   biography='Born on Asgard, God of Thunder')
		
	# newPlayer is created, lets display some stats
	print( "Name:",          newPlayer.name)
	print( "Age:",           newPlayer.age)
	print( "Gender:",        newPlayer.gender)
	print( "Description:",   newPlayer.description)
	print( "Biography:",     newPlayer.biography)
	
	print( "Level:",              newPlayer.level) # Level isn't specified in creation, so level is 1
	print( "Current Experience:", newPlayer.experience) # Level wasn't specified, so current xp is 0
	print( "EXP to next Level:",  newPlayer.nextLvlExperience) # 1000 Experience is required to get to level 2
	
	# Lets see what Thor looks like as a level 2
	newPlayer.giveExp(1000)
	print( "New Level: ",         newPlayer.level) # newPlayer.level is automatically increased when XP threshold increases
	print( "Current Experience:", newPlayer.experience) # Current, experience after leveling up
	print( "EXP to next Level:",  newPlayer.nextLvlExperience) # 3000 Experience is required to get to level 3

Player Object

The Player Object is the core of this library and should not be omitted (unless you're just using PyDnD for the Dice roller). All arguments for the player object technically can be omitted (and added later) to create a blank, level 1 character. However, we recommend at least giving the player object a name. When Initializing the object, it's important to key the arguments with their corresponding argument name (listed below).

Player Object — Arguments

name         (str): Player character's name
age          (str): Player character's age
gender       (str): Player character's gender
alignment    (str): Player character's two letter alignment
description  (str): Physical description of Player character
biography    (str): Backstory of Player character	
level        (int): Player character's starting level
wealth       (int): Player character's starting wealth	
strength     (int): Player character's starting strength Ability Score
dexterity    (int): Player character's starting dexterity Ability Score
constitution (int): Player character's starting constitution Ability Score
wisdom       (int): Player character's starting wisdom Ability Score
intelligence (int): Player character's starting intelligence Ability Score
charisma     (int): Player character's starting charisma Ability Score
hp           (int): Player character's starting hitpoint value
mp           (int): Player character's starting mp value (may convert to SPD)

Examples

from PyDnD import Player

# Initialize the player object with some useful, accurate information
myPlayer = Player(name        = 'John Cougar Mellencamp',
		  age         = '900',
		  gender      = 'Male',
		  alignment   = 'CG',
		  description = 'Looks like an old musician',
		  biography   = 'Is an old musician reknown for his one good song',
		  level       = 1,
		  wealth      = 100)	  
		  
# Did we put the wrong name?  That's okay!  We can change it
myPlayer.name = 'Meatloaf'

Experience and Levels

Experience has multiple methods in this library. However, only two of them should ever be directly called. These two methods would be object.giveExp(amount) and object.removeExp(amount). The rest of the Experience and Level system is automated and updated anytime experience is awarded or removed. If you wish to get the current experience of the player, use object.experience to display the integer value of it.

Examples

# Set Player Object
newPlayer = Player(name='Bob Ross',
		   level=1)

# Current Experience
print("Current Experience:", newPlayer.experience)

# Experience until next level
print("Experience until Level Up:", newPlayer.nextLvlExperience)

# Give experience
newPlayer.giveExp(100)

# Display new, updated Experience
print("Current Experience:", newPlayer.experience)

# Display new, updated Experience until next level
print("Experience until Level Up:", newPlayer.nextLvlExperience)

# Display players current level
print("Current Level:", newPlayer.level)

# Lets level up the player
newPlayer.giveExp(1000) # required Exp to reach level 2
print("Current Level:", newPlayer.level)
print("Current Experience:", newPlayer.experience)
print("Experience until Level Up:", newPlayer.nextLvlExperience)

About

PyDnD is a Dungeons and Dragons SRD Library for Python3

License:Eclipse Public License 2.0


Languages

Language:Python 100.0%