# Character Creator
print("""
/------------------------------------------------------------\\
Welcome to the Character Creator!
Please follow the instructions and
distribute your stat points the
best that you can. Your character
needs to be strong!
Here are the main menu options:
1 - Allocate or restore Strength stat points
2 - Allocate or restore Health stat points
3 - Allocate or restore Wisdom stat points
4 - Allocate or restore Dexterity stat points
5 - View your current stats
6 - Exit the Character Creator!
\------------------------------------------------------------/
""")
stat_pool = ["|","|","|","|","|","|","|","|","|","|",
"|","|","|","|","|","|","|","|","|","|",
"|","|","|","|","|","|","|","|","|","|"]
strength = []
health = []
wisdom = []
dexterity = []
stat_pool_length = len(stat_pool)
strength_length = len(strength)
health_length = len(health)
wisdom_length = len(wisdom)
dexterity_length = len(dexterity)
choice = None
while choice != "6":
choice = input("(MAIN)Please choose an option: ")
if choice == "1":
print("""
/------------------------------------------------------------\\
What would you like to do?
1 - Allocate stat points to Strength
2 - Restore stat points to the Stat Pool
\------------------------------------------------------------/
""")
choice_1 = input("(SUB)Please choose an option: ")
while choice_1 != "1" and choice_1 != "2":
choice_1 = input("\n(SUB)Please choose a valid option: ")
continue
if choice_1 == "1":
if stat_pool_length == 0:
print("\nYou currently have",stat_pool_length,"stat points in your Stat Pool.\n")
print("Returned to the MAIN.\n")
continue
allo_strength = int(input("\n(SUB)Choose amount to allocate: "))
while allo_strength > stat_pool_length or allo_strength < 1:
print("\nInvalid choice.")
print("You have",stat_pool_length,"stat points in your Stat Pool.")
allo_strength = int(input("\n(SUB)Please choose a valid amount to allocate: "))
if allo_strength > stat_pool_length or allo_strength < 1:
continue
else:
break
if allo_strength > 0:
strength = stat_pool[:allo_strength] + strength
strength_length = len(strength)
del stat_pool[:allo_strength]
stat_pool_length = len(stat_pool)
print("""
/------------------------------------------------------------\\
Your Strength has been successfully increased.
\------------------------------------------------------------/
""")
if choice_1 == "2":
if strength_length == 0:
print("\nYou currently have",strength_length,"stat points in your Strength.")
print("Returned to the MAIN.\n")
continue
allo_stat_pool = int(input("\n(SUB)Choose amount to allocate: "))
while allo_stat_pool > strength_length or allo_stat_pool < 1:
print("\nInvalid choice.")
print("You have",strength_length,"stat points in your Strength.")
allo_stat_pool = int(input("\n(SUB)Please choose a valid amount to allocate: "))
if allo_stat_pool > strength_length or allo_stat_pool < 1:
continue
else:
break
if allo_stat_pool > 0:
stat_pool = strength[:allo_stat_pool] + stat_pool
stat_pool_length = len(stat_pool)
del strength[:allo_stat_pool]
strength_length = len(strength)
print("""
/------------------------------------------------------------\\
Your Stat Pool has been successfully restored.
\------------------------------------------------------------/
""")
elif choice == "2":
print("""
/------------------------------------------------------------\\
What would you like to do?
1 - Allocate stat points to Health
2 - Restore stat points to the Stat Pool
\------------------------------------------------------------/
""")
choice_1 = input("(SUB)Please choose an option: ")
while choice_1 != "1" and choice_1 != "2":
choice_1 = input("\n(SUB)Please choose a valid option: ")
continue
if choice_1 == "1":
if stat_pool_length == 0:
print("\nYou currently have",stat_pool_length,"stat points in your Stat Pool.\n")
print("Returned to the MAIN.\n")
continue
allo_health = int(input("\n(SUB)Choose amount to allocate: "))
while allo_health > stat_pool_length or allo_health < 1:
print("\nInvalid choice.")
print("You have",stat_pool_length,"stat points in your Stat Pool.")
allo_health = int(input("\n(SUB)Please choose a valid amount to allocate: "))
if allo_health > stat_pool_length or allo_health < 1:
continue
else:
break
if allo_health > 0:
health = stat_pool[:allo_health] + health
health_length = len(health)
del stat_pool[:allo_health]
stat_pool_length = len(stat_pool)
print("""
/------------------------------------------------------------\\
Your Health has been successfully increased.
\------------------------------------------------------------/
""")
if choice_1 == "2":
if health_length == 0:
print("\nYou currently have",health_length,"stat points in your Health.")
print("Returned to the MAIN.\n")
continue
allo_stat_pool = int(input("\n(SUB)Choose amount to allocate: "))
while allo_stat_pool > health_length or allo_stat_pool < 1:
print("\nInvalid choice.")
print("You have",health_length,"stat points in your Health.")
allo_stat_pool = int(input("\n(SUB)Please choose a valid amount to allocate: "))
if allo_stat_pool > health_length or allo_stat_pool < 1:
continue
else:
break
if allo_stat_pool > 0:
stat_pool = health[:allo_stat_pool] + stat_pool
stat_pool_length = len(stat_pool)
del health[:allo_stat_pool]
health_length = len(health)
print("""
/------------------------------------------------------------\\
Your Stat Pool has been successfully restored.
\------------------------------------------------------------/
""")
elif choice == "3":
print("""
/------------------------------------------------------------\\
What would you like to do?
1 - Allocate stat points to Wisdom
2 - Restore stat points to the Stat Pool
\------------------------------------------------------------/
""")
choice_1 = input("(SUB)Please choose an option: ")
while choice_1 != "1" and choice_1 != "2":
choice_1 = input("\n(SUB)Please choose a valid option: ")
continue
if choice_1 == "1":
if stat_pool_length == 0:
print("\nYou currently have",stat_pool_length,"stat points in your Stat Pool.\n")
print("Returned to the MAIN.\n")
continue
allo_wisdom = int(input("\n(SUB)Choose amount to allocate: "))
while allo_wisdom > stat_pool_length or allo_wisdom < 1:
print("\nInvalid choice.")
print("You have",stat_pool_length,"stat points in your Stat Pool.")
allo_wisdom = int(input("\n(SUB)Please choose a valid amount to allocate: "))
if allo_wisdom > stat_pool_length or allo_wisdom < 1:
continue
else:
break
if allo_wisdom > 0:
wisdom = stat_pool[:allo_wisdom] + wisdom
wisdom_length = len(wisdom)
del stat_pool[:allo_wisdom]
stat_pool_length = len(stat_pool)
print("""
/------------------------------------------------------------\\
Your Wisdom has been successfully increased.
\------------------------------------------------------------/
""")
if choice_1 == "2":
if wisdom_length == 0:
print("\nYou currently have",wisdom_length,"stat points in your Wisdom.")
print("Returned to the MAIN.\n")
continue
allo_stat_pool = int(input("\n(SUB)Choose amount to allocate: "))
while allo_stat_pool > wisdom_length or allo_stat_pool < 1:
print("\nInvalid choice.")
print("You have",wisdom_length,"stat points in your Wisdom.")
allo_stat_pool = int(input("\n(SUB)Please choose a valid amount to allocate: "))
if allo_stat_pool > wisdom_length or allo_stat_pool < 1:
continue
else:
break
if allo_stat_pool > 0:
stat_pool = wisdom[:allo_stat_pool] + stat_pool
stat_pool_length = len(stat_pool)
del wisdom[:allo_stat_pool]
wisdom_length = len(wisdom)
print("""
/------------------------------------------------------------\\
Your Stat Pool has been successfully restored.
\------------------------------------------------------------/
""")
elif choice == "4":
print("""
/------------------------------------------------------------\\
What would you like to do?
1 - Allocate stat points to Dexterity
2 - Restore stat points to the Stat Pool
\------------------------------------------------------------/
""")
choice_1 = input("(SUB)Please choose an option: ")
while choice_1 != "1" and choice_1 != "2":
choice_1 = input("\n(SUB)Please choose a valid option: ")
continue
if choice_1 == "1":
if stat_pool_length == 0:
print("\nYou currently have",stat_pool_length,"stat points in your Stat Pool.\n")
print("Returned to the MAIN.\n")
continue
allo_dexterity = int(input("\n(SUB)Choose amount to allocate: "))
while allo_dexterity > stat_pool_length or allo_dexterity < 1:
print("\nInvalid choice.")
print("You have",stat_pool_length,"stat points in your Stat Pool.")
allo_dexterity = int(input("\n(SUB)Please choose a valid amount to allocate: "))
if allo_dexterity > stat_pool_length or allo_dexterity < 1:
continue
else:
break
if allo_dexterity > 0:
dexterity = stat_pool[:allo_dexterity] + dexterity
dexterity_length = len(dexterity)
del stat_pool[:allo_dexterity]
stat_pool_length = len(stat_pool)
print("""
/------------------------------------------------------------\\
Your Dexterity has been successfully increased.
\------------------------------------------------------------/
""")
if choice_1 == "2":
if dexterity_length == 0:
print("\nYou currently have",dexterity_length,"stat points in your Dexterity.")
print("Returned to the MAIN.\n")
continue
allo_stat_pool = int(input("\n(SUB)Choose amount to allocate: "))
while allo_stat_pool > dexterity_length or allo_stat_pool < 1:
print("\nInvalid choice.")
print("You have",dexterity_length,"stat points in your Dexterity.")
allo_stat_pool = int(input("\n(SUB)Please choose a valid amount to allocate: "))
if allo_stat_pool > dexterity_length or allo_stat_pool < 1:
continue
else:
break
if allo_stat_pool > 0:
stat_pool = dexterity[:allo_stat_pool] + stat_pool
stat_pool_length = len(stat_pool)
del dexterity[:allo_stat_pool]
dexterity_length = len(dexterity)
print("""
/------------------------------------------------------------\\
Your Stat Pool has been successfully restored.
\------------------------------------------------------------/
""")
elif choice == "5":
print("""
/------------------------------------------------------------\\
""")
print("\tYou have",stat_pool_length,"stat points left in your")
print("\tStat Pool to distribute.")
print("\tHere are your stats:\n")
if stat_pool_length == 0:
print("\t[ STAT POOL -","EMPTY","]\n")
if stat_pool_length > 0:
print("\t[ STAT POOL -","".join(stat_pool),"]\n")
if strength_length == 0:
print("\t[ STRENGTH -","EMPTY","]")
if strength_length > 0:
print("\t[ STRENGTH -","".join(strength),"]")
if health_length == 0:
print("\t[ HEALTH -","EMPTY","]")
if health_length > 0:
print("\t[ HEALTH -","".join(health),"]")
if wisdom_length == 0:
print("\t[ WISDOM -","EMPTY","]")
if wisdom_length > 0:
print("\t[ WISDOM -","".join(wisdom),"]")
if dexterity_length == 0:
print("\t[ DEXTERITY -","EMPTY","]")
print("""
\------------------------------------------------------------/
""")
if dexterity_length > 0:
print("\t[ DEXTERITY -","".join(dexterity),"]")
print("""
\------------------------------------------------------------/
""")
elif choice == "6":
print("""
/------------------------------------------------------------\\
Let's hope you've allocated your stats the best
way possible! Good luck out there!
\------------------------------------------------------------/
""")
else:
print("\nThat is not a valid option.\n")
input("\nPlease press ENTER to exit.")