Name | tes-toolkit JSON |
Version |
1.1.1
JSON |
| download |
home_page | None |
Summary | A toolkit for minmaxers of Elder Scrolls games |
upload_time | 2024-10-20 08:14:44 |
maintainer | None |
docs_url | None |
author | Will Bolton |
requires_python | None |
license | MIT License Copyright (c) 2021 WillOnGit Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
keywords |
elder scrolls
oblivion
morrowind
bethesda
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# The Elder Scrolls Toolkit
`tes-toolkit` is a tool to help you track progress in thoroughly minmaxing characters in the Elder Scrolls games.
Currently, **only TES4: Oblivion** is supported.
Morrowind will definitely be added next but other games only if I get round to playing them - patches are welcome if you feel strongly.
## Background
I love Oblivion and decided to properly minmax a character to avoid [the leveling problem](https://en.uesp.net/wiki/Oblivion:Leveling#The_Leveling_Problem).
Copying character information from the game to handwritten notes and tracking progress was tedious and error-prone, so this project was born.
The result is a basic interface written in Python 3 which automates the tedious bookkeeping of the process.
Unlike tools like [Oblivion Character Planner](https://github.com/rdoll/ocp), this tool expects you to know what you're doing and simply makes journaling your progress easier, rather than guiding you by the hand.
Therefore a good grasp of the game's mechanics is required.
If you're a new player check out the [required reading section](#required-reading), which points you to the peerless UESP.
## Installation
`tes-toolkit` is published on [PyPI](https://pypi.org/), so you can simply `pip install tes-toolkit`.
It has no dependencies so won't clutter your machine with junk and can easily be `pip uninstall`ed.
Note the PyPI name `tes-toolkit` vs the module name `tes_toolkit` - [blame the Python developers](https://packaging.python.org/en/latest/specifications/name-normalization/#name-normalization).
If you prefer you can also just download `tes_toolkit.py` from [the GitHub repo](https://github.com/WillOnGit/tes-toolkit).
## Quickstart
### Setup
The module is designed to be used from an interactive Python session:
```
someone@computer ~ $ python
>>> import tes_toolkit
```
Most people will want to create a class with a name, specialisation, favoured attributes and major skills, then create a character with a race, gender, class and birthsign.
The 21 default classes are included for completeness' sake, however.
```
# create a custom class - use this to follow the rest of the quickstart
>>> myclass = tes_toolkit.CharacterClass('Class name','magic',['endurance','luck'],['alchemy','alteration','block','conjuration','hand to hand','light armor','marksman'])
>>> c = tes_toolkit.Character('breton','f',myclass,'apprentice')
# alternative - use a default class
>>> alt = tes_toolkit.Character('imperial','m',tes_toolkit.default_classes['battlemage'],'lady')
```
### Core usage loop
Python's autocomplete is highly recommended, e.g. `c.i <TAB> 'someskill')`
```
# print core character info. easy to compare with in-game journal
>>> c.journal()
____ _ _
/ ___| |__ __ _ _ __ __ _ ___| |_ ___ _ __
| | | '_ \ / _` | '__/ _` |/ __| __/ _ \ '__|
| |___| | | | (_| | | | (_| | (__| || __/ |
\____|_| |_|\__,_|_| \__,_|\___|\__\___|_|
_ _
(_) ___ _ _ _ __ _ __ __ _| |
| |/ _ \| | | | '__| '_ \ / _` | |
| | (_) | |_| | | | | | | (_| | |
_/ |\___/ \__,_|_| |_| |_|\__,_|_|
|__/
LEVEL 1 STRENGTH 30
CLASS Class name INTELLIGENCE 50
SIGN Apprentice WILLPOWER 50
AGILITY 30
HEALTH 70 SPEED 40
MAGICKA 250 ENDURANCE 35
FATIGUE 145 PERSONALITY 40
ENCUMBRANCE 150 LUCK 55
==================
MAJOR SKILLS
==================
block 25
hand to hand 25
alchemy 35
alteration 35
conjuration 40
light armor 25
marksman 25
==================
MINOR SKILLS
==================
armorer 5
athletics 5
blade 5
blunt 5
heavy armor 5
destruction 10
illusion 15
mysticism 20
restoration 20
acrobatics 5
mercantile 5
security 5
sneak 5
speechcraft 5
# print "hidden" information about this level-up so far
>>> c.progressToLevelUp()
Working towards level 2
majors 0/10
------------------
STRENGTH 0
INTELLIGENCE 0
WILLPOWER 0
AGILITY 0
SPEED 0
ENDURANCE 0
PERSONALITY 0
------------------
Times trained 0/5
# increase a skill when it happens in-game
>>> c.increaseSkill('heavy armor')
heavy armor increased to 6
# increase a single skill by more than one - useful when catching up or at low levels with rapid increases
>>> c.increaseSkill('armorer',9)
armorer increased to 14
>>> c.progressToLevelUp()
Working towards level 2
majors 0/10
------------------
STRENGTH 0
INTELLIGENCE 0
WILLPOWER 0
AGILITY 0
SPEED 0
ENDURANCE 10
PERSONALITY 0
------------------
Times trained 0/5
# track training sessions
>>> c.increaseSkill('alchemy',3,True)
alchemy increased to 38
>>> c.progressToLevelUp()
Working towards level 2
majors 3/10
------------------
STRENGTH 0
INTELLIGENCE 3
WILLPOWER 0
AGILITY 0
SPEED 0
ENDURANCE 10
PERSONALITY 0
------------------
Times trained 3/5
# level up - increase tenth major skill and call levelUp
# endurance, intelligence and luck will be automatically detected as the best attributes to raise
# confirm interactively and you're level 2
>>> c.increaseSkill('conjuration',7)
conjuration increased to 47
Level up available
>>> c.levelUp()
Autodetection succeeded - detected ['intelligence', 'endurance', 'luck']
Are you happy with these attributes? Type 'yes' to proceed
yes
>>> c.journal()
____ _ _
/ ___| |__ __ _ _ __ __ _ ___| |_ ___ _ __
| | | '_ \ / _` | '__/ _` |/ __| __/ _ \ '__|
| |___| | | | (_| | | | (_| | (__| || __/ |
\____|_| |_|\__,_|_| \__,_|\___|\__\___|_|
_ _
(_) ___ _ _ _ __ _ __ __ _| |
| |/ _ \| | | | '__| '_ \ / _` | |
| | (_) | |_| | | | | | | (_| | |
_/ |\___/ \__,_|_| |_| |_|\__,_|_|
|__/
LEVEL 2 STRENGTH 30
CLASS Class name INTELLIGENCE 55
SIGN Apprentice WILLPOWER 50
AGILITY 30
HEALTH 84 SPEED 40
MAGICKA 260 ENDURANCE 40
FATIGUE 150 PERSONALITY 40
ENCUMBRANCE 150 LUCK 56
==================
MAJOR SKILLS
==================
block 25
hand to hand 25
alchemy 38
alteration 35
conjuration 47
light armor 25
marksman 25
==================
MINOR SKILLS
==================
armorer 14
athletics 5
blade 5
blunt 5
heavy armor 6
destruction 10
illusion 15
mysticism 20
restoration 20
acrobatics 5
mercantile 5
security 5
sneak 5
speechcraft 5
# save character to file, by default "saved-character.json"
>>> tes_toolkit.saveCharacter(c)
```
### Extras
If you're calling Python from a directory with a `saved-character.json` file, you can invoke the module directly:
```
someone@computer ~ $ python -i -m tes_toolkit
Saved character loaded successfully
>>>
```
Note the `-i` flag is required so we can actually use our character.
This method also means that you can omit the initial `tes_toolkit.` from calls, e.g. `saveCharacter(c)`.
```
# manually specify attributes to increase on level-up. useful when increasing luck
>>> c.levelUp(['strength','agility','luck'])
# show magic skills by mastery level - leave blank for all skills
>>> c.skillLevels('magic')
==================
SKILL LEVELS
==================
--- APPRENTICE ---
alchemy 38
alteration 35
conjuration 47
----- NOVICE -----
destruction 10
illusion 15
mysticism 20
restoration 20
# show how we're doing in the overall scheme of minmaxing
>>> c.minmax()
==================
SKILL UP MARGINS
==================
STRENGTH
0 .................................................. 125
INTELLIGENCE
0 .................................................. 105
WILLPOWER
0 .................................................. 135
AGILITY
0 .................................................. 125
SPEED
0 .................................................. 145
ENDURANCE
0 .................................................. 135
PERSONALITY
0 .................................................. 155
LUCK
0 .................................................. 4
==================
ATTRIBUTE ORDERING
==================
Status: OK
Increase attributes in any order, although there are only
28 spare level ups until you need to increase AGILITY
==================
IDEAL STATISTICS
==================
LEVEL
2 ##................................................ 50
HEALTH
84 ######............................................ 648
MAGICKA
260 #####################################............. 350
FATIGUE
150 ###################............................... 400
ENCUMBRANCE
150 ###############................................... 500
# apply the Oghma Infinium bonus interactively
>>> c.oghmaInfinium()
Choose a path from 'steel', 'shadow' or 'spirit'
STEEL | SHADOW | SPIRIT
---------------------|---------------------|----------------------
Strength +10 = 40|Agility +10 = 40|Intelligence +10 = 65
Speed +10 = 50|Speed +10 = 50|
---------------------|---------------------|----------------------
Blade +10 = 15|Sneak +10 = 15|Conjuration +10 = 57
Blunt +10 = 15|Security +10 = 15|Restoration +10 = 30
Heavy Armor +10 = 16|Light Armor +10 = 35|Destruction +10 = 20
steel
STEEL
---------------------
Strength +10 = 40
Speed +10 = 50
---------------------
Blade +10 = 15
Blunt +10 = 15
Heavy Armor +10 = 16
Are you happy with this path? Type 'yes' to proceed
yes
# import an existing character at a level greater than 1.
# only works assuming a level up has just taken place
>>> attributes = {'strength': 35, 'intelligence': 80, 'willpower': 100, 'agility': 30, 'speed': 50, 'endurance': 100, 'personality': 40, 'luck': 65}
>>> skills = {'acrobatics': 24, 'alchemy': 50, 'alteration': 88, 'armorer': 55, 'athletics': 43, 'blade': 30, 'block': 53, 'blunt': 11, 'conjuration': 61, 'destruction': 69, 'hand to hand': 34, 'heavy armor': 58, 'illusion': 47, 'light armor': 36, 'marksman': 28, 'mercantile': 29, 'mysticism': 54, 'restoration': 55, 'security': 22, 'sneak': 13, 'speechcraft': 26}
>>> health = 298
>>> level = 15
>>> c.override(attributes,skills,health,level)
# make sure everything checks out
>>> c.validate()
Everything looks good :)
0
# save characters with a different file name to e.g. keep backups or maintain multiple characters
>>> tes_toolkit.saveCharacter(c,'other filename')
# load a saved character
>>> c = tes_toolkit.loadCharacter('savename')
# last resort in case we didn't save anything here - undoes all progress this level
# WARNING: no prompt
>>> c.resetToLastLevel()
```
## Reference documentation
Full documentation for each class, method etc. is available as docstrings.
Examine the code or browse them interactively for details.
In particular, the module-level documentation has overviews of what's available.
## Required reading
- https://en.uesp.net/wiki/Oblivion:Character_Creation
- https://en.uesp.net/wiki/Oblivion:Attributes
- https://en.uesp.net/wiki/Oblivion:Skills
- https://en.uesp.net/wiki/Oblivion:Leveling
- https://en.uesp.net/wiki/Oblivion:Efficient_Leveling
- https://en.uesp.net/wiki/Oblivion:Increasing_Skills
- https://en.uesp.net/wiki/Oblivion:Endurance (especially the Health Gains section)
Raw data
{
"_id": null,
"home_page": null,
"name": "tes-toolkit",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "Elder Scrolls, Oblivion, Morrowind, Bethesda",
"author": "Will Bolton",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/ca/a3/ba0b24df0453b0e4985ef6424ccead339747a8c07e1d59de531e4146d696/tes_toolkit-1.1.1.tar.gz",
"platform": null,
"description": "# The Elder Scrolls Toolkit\n`tes-toolkit` is a tool to help you track progress in thoroughly minmaxing characters in the Elder Scrolls games.\n\nCurrently, **only TES4: Oblivion** is supported.\nMorrowind will definitely be added next but other games only if I get round to playing them - patches are welcome if you feel strongly.\n\n## Background\nI love Oblivion and decided to properly minmax a character to avoid [the leveling problem](https://en.uesp.net/wiki/Oblivion:Leveling#The_Leveling_Problem).\nCopying character information from the game to handwritten notes and tracking progress was tedious and error-prone, so this project was born.\nThe result is a basic interface written in Python 3 which automates the tedious bookkeeping of the process.\n\nUnlike tools like [Oblivion Character Planner](https://github.com/rdoll/ocp), this tool expects you to know what you're doing and simply makes journaling your progress easier, rather than guiding you by the hand.\nTherefore a good grasp of the game's mechanics is required.\nIf you're a new player check out the [required reading section](#required-reading), which points you to the peerless UESP.\n\n## Installation\n`tes-toolkit` is published on [PyPI](https://pypi.org/), so you can simply `pip install tes-toolkit`.\nIt has no dependencies so won't clutter your machine with junk and can easily be `pip uninstall`ed.\nNote the PyPI name `tes-toolkit` vs the module name `tes_toolkit` - [blame the Python developers](https://packaging.python.org/en/latest/specifications/name-normalization/#name-normalization).\n\nIf you prefer you can also just download `tes_toolkit.py` from [the GitHub repo](https://github.com/WillOnGit/tes-toolkit).\n\n## Quickstart\n### Setup\nThe module is designed to be used from an interactive Python session:\n```\nsomeone@computer ~ $ python\n>>> import tes_toolkit\n```\n\nMost people will want to create a class with a name, specialisation, favoured attributes and major skills, then create a character with a race, gender, class and birthsign.\nThe 21 default classes are included for completeness' sake, however.\n```\n# create a custom class - use this to follow the rest of the quickstart\n>>> myclass = tes_toolkit.CharacterClass('Class name','magic',['endurance','luck'],['alchemy','alteration','block','conjuration','hand to hand','light armor','marksman'])\n>>> c = tes_toolkit.Character('breton','f',myclass,'apprentice')\n\n# alternative - use a default class\n>>> alt = tes_toolkit.Character('imperial','m',tes_toolkit.default_classes['battlemage'],'lady')\n```\n\n### Core usage loop\nPython's autocomplete is highly recommended, e.g. `c.i <TAB> 'someskill')`\n```\n# print core character info. easy to compare with in-game journal\n>>> c.journal()\n ____ _ _\n / ___| |__ __ _ _ __ __ _ ___| |_ ___ _ __\n| | | '_ \\ / _` | '__/ _` |/ __| __/ _ \\ '__|\n| |___| | | | (_| | | | (_| | (__| || __/ |\n \\____|_| |_|\\__,_|_| \\__,_|\\___|\\__\\___|_|\n _ _\n (_) ___ _ _ _ __ _ __ __ _| |\n | |/ _ \\| | | | '__| '_ \\ / _` | |\n | | (_) | |_| | | | | | | (_| | |\n _/ |\\___/ \\__,_|_| |_| |_|\\__,_|_|\n|__/\n\nLEVEL 1 STRENGTH 30\nCLASS Class name INTELLIGENCE 50\nSIGN Apprentice WILLPOWER 50\nAGILITY 30\nHEALTH 70 SPEED 40\nMAGICKA 250 ENDURANCE 35\nFATIGUE 145 PERSONALITY 40\nENCUMBRANCE 150 LUCK 55\n\n==================\nMAJOR SKILLS\n==================\nblock 25\nhand to hand 25\nalchemy 35\nalteration 35\nconjuration 40\nlight armor 25\nmarksman 25\n==================\nMINOR SKILLS\n==================\narmorer 5\nathletics 5\nblade 5\nblunt 5\nheavy armor 5\ndestruction 10\nillusion 15\nmysticism 20\nrestoration 20\nacrobatics 5\nmercantile 5\nsecurity 5\nsneak 5\nspeechcraft 5\n\n\n# print \"hidden\" information about this level-up so far\n>>> c.progressToLevelUp()\nWorking towards level 2\nmajors 0/10\n------------------\nSTRENGTH 0\nINTELLIGENCE 0\nWILLPOWER 0\nAGILITY 0\nSPEED 0\nENDURANCE 0\nPERSONALITY 0\n------------------\nTimes trained 0/5\n\n\n# increase a skill when it happens in-game\n>>> c.increaseSkill('heavy armor')\nheavy armor increased to 6\n\n#\u00a0increase a single skill by more than one - useful when catching up or at low levels with rapid increases\n>>> c.increaseSkill('armorer',9)\narmorer increased to 14\n\n>>> c.progressToLevelUp()\nWorking towards level 2\nmajors 0/10\n------------------\nSTRENGTH 0\nINTELLIGENCE 0\nWILLPOWER 0\nAGILITY 0\nSPEED 0\nENDURANCE 10\nPERSONALITY 0\n------------------\nTimes trained 0/5\n\n\n# track training sessions\n>>> c.increaseSkill('alchemy',3,True)\nalchemy increased to 38\n\n>>> c.progressToLevelUp()\nWorking towards level 2\nmajors 3/10\n------------------\nSTRENGTH 0\nINTELLIGENCE 3\nWILLPOWER 0\nAGILITY 0\nSPEED 0\nENDURANCE 10\nPERSONALITY 0\n------------------\nTimes trained 3/5\n\n\n# level up - increase tenth major skill and call levelUp\n# endurance, intelligence and luck will be automatically detected as the best attributes to raise\n# confirm interactively and you're level 2\n>>> c.increaseSkill('conjuration',7)\nconjuration increased to 47\nLevel up available\n\n>>> c.levelUp()\nAutodetection succeeded - detected ['intelligence', 'endurance', 'luck']\nAre you happy with these attributes? Type 'yes' to proceed\nyes\n\n>>> c.journal()\n ____ _ _\n / ___| |__ __ _ _ __ __ _ ___| |_ ___ _ __\n| | | '_ \\ / _` | '__/ _` |/ __| __/ _ \\ '__|\n| |___| | | | (_| | | | (_| | (__| || __/ |\n \\____|_| |_|\\__,_|_| \\__,_|\\___|\\__\\___|_|\n _ _\n (_) ___ _ _ _ __ _ __ __ _| |\n | |/ _ \\| | | | '__| '_ \\ / _` | |\n | | (_) | |_| | | | | | | (_| | |\n _/ |\\___/ \\__,_|_| |_| |_|\\__,_|_|\n|__/\n\nLEVEL 2 STRENGTH 30\nCLASS Class name INTELLIGENCE 55\nSIGN Apprentice WILLPOWER 50\nAGILITY 30\nHEALTH 84 SPEED 40\nMAGICKA 260 ENDURANCE 40\nFATIGUE 150 PERSONALITY 40\nENCUMBRANCE 150 LUCK 56\n\n==================\nMAJOR SKILLS\n==================\nblock 25\nhand to hand 25\nalchemy 38\nalteration 35\nconjuration 47\nlight armor 25\nmarksman 25\n==================\nMINOR SKILLS\n==================\narmorer 14\nathletics 5\nblade 5\nblunt 5\nheavy armor 6\ndestruction 10\nillusion 15\nmysticism 20\nrestoration 20\nacrobatics 5\nmercantile 5\nsecurity 5\nsneak 5\nspeechcraft 5\n\n\n# save character to file, by default \"saved-character.json\"\n>>> tes_toolkit.saveCharacter(c)\n```\n\n### Extras\nIf you're calling Python from a directory with a `saved-character.json` file, you can invoke the module directly:\n```\nsomeone@computer ~ $ python -i -m tes_toolkit\nSaved character loaded successfully\n>>> \n```\nNote the `-i` flag is required so we can actually use our character.\nThis method also means that you can omit the initial `tes_toolkit.` from calls, e.g. `saveCharacter(c)`.\n\n```\n# manually specify attributes to increase on level-up. useful when increasing luck\n>>> c.levelUp(['strength','agility','luck'])\n\n# show magic skills by mastery level - leave blank for all skills\n>>> c.skillLevels('magic')\n==================\n SKILL LEVELS\n==================\n--- APPRENTICE ---\nalchemy 38\nalteration 35\nconjuration 47\n\n----- NOVICE -----\ndestruction 10\nillusion 15\nmysticism 20\nrestoration 20\n\n\n# show how we're doing in the overall scheme of minmaxing\n>>> c.minmax()\n==================\nSKILL UP MARGINS\n==================\nSTRENGTH\n 0 .................................................. 125\nINTELLIGENCE\n 0 .................................................. 105\nWILLPOWER\n 0 .................................................. 135\nAGILITY\n 0 .................................................. 125\nSPEED\n 0 .................................................. 145\nENDURANCE\n 0 .................................................. 135\nPERSONALITY\n 0 .................................................. 155\nLUCK\n 0 .................................................. 4\n\n==================\nATTRIBUTE ORDERING\n==================\n\nStatus: OK\n\nIncrease attributes in any order, although there are only\n28 spare level ups until you need to increase AGILITY\n\n==================\nIDEAL STATISTICS\n==================\nLEVEL\n 2 ##................................................ 50\nHEALTH\n 84 ######............................................ 648\nMAGICKA\n260 #####################################............. 350\nFATIGUE\n150 ###################............................... 400\nENCUMBRANCE\n150 ###############................................... 500\n\n\n# apply the Oghma Infinium bonus interactively\n>>> c.oghmaInfinium()\nChoose a path from 'steel', 'shadow' or 'spirit'\n\n STEEL | SHADOW | SPIRIT\n---------------------|---------------------|----------------------\nStrength +10 = 40|Agility +10 = 40|Intelligence +10 = 65\nSpeed +10 = 50|Speed +10 = 50|\n---------------------|---------------------|----------------------\nBlade +10 = 15|Sneak +10 = 15|Conjuration +10 = 57\nBlunt +10 = 15|Security +10 = 15|Restoration +10 = 30\nHeavy Armor +10 = 16|Light Armor +10 = 35|Destruction +10 = 20\n\nsteel\n STEEL\n---------------------\nStrength +10 = 40\nSpeed +10 = 50\n---------------------\nBlade +10 = 15\nBlunt +10 = 15\nHeavy Armor +10 = 16\n\nAre you happy with this path? Type 'yes' to proceed\nyes\n\n\n# import an existing character at a level greater than 1.\n# only works assuming a level up has just taken place\n>>> attributes = {'strength': 35, 'intelligence': 80, 'willpower': 100, 'agility': 30, 'speed': 50, 'endurance': 100, 'personality': 40, 'luck': 65}\n>>> skills = {'acrobatics': 24, 'alchemy': 50, 'alteration': 88, 'armorer': 55, 'athletics': 43, 'blade': 30, 'block': 53, 'blunt': 11, 'conjuration': 61, 'destruction': 69, 'hand to hand': 34, 'heavy armor': 58, 'illusion': 47, 'light armor': 36, 'marksman': 28, 'mercantile': 29, 'mysticism': 54, 'restoration': 55, 'security': 22, 'sneak': 13, 'speechcraft': 26}\n>>> health = 298\n>>> level = 15\n>>> c.override(attributes,skills,health,level)\n# make sure everything checks out\n>>> c.validate()\nEverything looks good :)\n0\n\n# save characters with a different file name to e.g. keep backups or maintain multiple characters\n>>> tes_toolkit.saveCharacter(c,'other filename')\n\n# load a saved character\n>>> c = tes_toolkit.loadCharacter('savename')\n\n# last resort in case we didn't save anything here - undoes all progress this level\n# WARNING: no prompt\n>>> c.resetToLastLevel()\n```\n\n## Reference documentation\nFull documentation for each class, method etc. is available as docstrings.\nExamine the code or browse them interactively for details.\nIn particular, the module-level documentation has overviews of what's available.\n\n## Required reading\n- https://en.uesp.net/wiki/Oblivion:Character_Creation\n- https://en.uesp.net/wiki/Oblivion:Attributes\n- https://en.uesp.net/wiki/Oblivion:Skills\n- https://en.uesp.net/wiki/Oblivion:Leveling\n- https://en.uesp.net/wiki/Oblivion:Efficient_Leveling\n- https://en.uesp.net/wiki/Oblivion:Increasing_Skills\n- https://en.uesp.net/wiki/Oblivion:Endurance (especially the Health Gains section)\n",
"bugtrack_url": null,
"license": "MIT License Copyright (c) 2021 WillOnGit Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
"summary": "A toolkit for minmaxers of Elder Scrolls games",
"version": "1.1.1",
"project_urls": {
"repository": "https://github.com/WillOnGit/tes-toolkit"
},
"split_keywords": [
"elder scrolls",
" oblivion",
" morrowind",
" bethesda"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4d1c34968e5d44f5dff1ea82846916bb456b0e50bf65b82ecd3fed9e74aff523",
"md5": "6e5d635967202090c070d3b672157962",
"sha256": "38f87458b9bdc222c66d056cd3bc295b027a8f9810d84bdd4bd12aea759bcf6a"
},
"downloads": -1,
"filename": "tes_toolkit-1.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6e5d635967202090c070d3b672157962",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 18764,
"upload_time": "2024-10-20T08:14:43",
"upload_time_iso_8601": "2024-10-20T08:14:43.480866Z",
"url": "https://files.pythonhosted.org/packages/4d/1c/34968e5d44f5dff1ea82846916bb456b0e50bf65b82ecd3fed9e74aff523/tes_toolkit-1.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "caa3ba0b24df0453b0e4985ef6424ccead339747a8c07e1d59de531e4146d696",
"md5": "9c86e87a0360b8ad2e1a49f8551928ad",
"sha256": "c8a7e62ebfcf15ccf8286dd6b4eeb7bfad07a2e6b93774fad37f3a120cf2c307"
},
"downloads": -1,
"filename": "tes_toolkit-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "9c86e87a0360b8ad2e1a49f8551928ad",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18817,
"upload_time": "2024-10-20T08:14:44",
"upload_time_iso_8601": "2024-10-20T08:14:44.897640Z",
"url": "https://files.pythonhosted.org/packages/ca/a3/ba0b24df0453b0e4985ef6424ccead339747a8c07e1d59de531e4146d696/tes_toolkit-1.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-20 08:14:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "WillOnGit",
"github_project": "tes-toolkit",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "tes-toolkit"
}