aenir 0.0.post1.dev1379__tar.gz → 0.0.post1.dev1385__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/PKG-INFO +1 -1
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/morph.py +28 -24
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir.egg-info/PKG-INFO +1 -1
- aenir-0.0.post1.dev1385/src/aenir.egg-info/scm_version.json +8 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/tests/test_morph.py +183 -1016
- aenir-0.0.post1.dev1379/src/aenir.egg-info/scm_version.json +0 -8
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/.coveragerc +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/.gitignore +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/.readthedocs.yml +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/AUTHORS.md +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/CHANGELOG.md +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/CONTRIBUTING.md +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/LICENSE.txt +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/MANIFEST.in +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/README.md +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/TODO.md +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/docs/Makefile +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/docs/_static/.gitignore +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/docs/authors.md +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/docs/changelog.md +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/docs/conf.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/docs/contributing.md +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/docs/index.md +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/docs/license.md +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/docs/readme.md +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/docs/requirements.txt +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/logo.png +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/pyproject.toml +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/requirements-dev.txt +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/requirements.txt +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/setup.cfg +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/setup.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/.create_table_from_csv.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/__init__.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/_archive/__init__.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/_archive/_base.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/_archive/_basemorph.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/_archive/cleaner.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/_archive/morph.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/_archive/scraper.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/_archive/shortcuts.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/_archive/transcriber.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/_exceptions.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/_logging.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/games.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/skeleton.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/static/binding-blade/cleaned_stats.db +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/static/blazing-sword/cleaned_stats.db +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/static/genealogy-of-the-holy-war/cleaned_stats.db +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/static/path-of-radiance/cleaned_stats.db +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/static/the-sacred-stones/cleaned_stats.db +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/static/thracia-776/cleaned_stats.db +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir/stats.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir.egg-info/SOURCES.txt +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir.egg-info/dependency_links.txt +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir.egg-info/not-zip-safe +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir.egg-info/requires.txt +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir.egg-info/scm_file_list.json +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/src/aenir.egg-info/top_level.txt +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/tests/conftest.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/tests/test_games.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/tests/test_skeleton.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/tests/test_stats.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/tests/weapon.py +0 -0
- {aenir-0.0.post1.dev1379 → aenir-0.0.post1.dev1385}/tox.ini +0 -0
|
@@ -386,7 +386,7 @@ class Morph(BaseMorph):
|
|
|
386
386
|
resultset = self.query_db(**query_kwargs).fetchall()
|
|
387
387
|
return [result["Promotion"] for result in resultset]
|
|
388
388
|
|
|
389
|
-
def promote(self,
|
|
389
|
+
def promote(self, promo_cls) -> None:
|
|
390
390
|
"""
|
|
391
391
|
Changes unit class and boosts stats among other parameters, given the right conditions are met.
|
|
392
392
|
"""
|
|
@@ -399,8 +399,8 @@ class Morph(BaseMorph):
|
|
|
399
399
|
)
|
|
400
400
|
query_kwargs['fields'] += ("Promotion",)
|
|
401
401
|
# check if unit's level is high enough to enable promotion
|
|
402
|
-
if self.min_promo_level is None:
|
|
403
|
-
|
|
402
|
+
#if self.min_promo_level is None:
|
|
403
|
+
self._set_min_promo_level()
|
|
404
404
|
if self.current_lv < self.min_promo_level:
|
|
405
405
|
# Wishful: Tell user what morph should promote to
|
|
406
406
|
#print(query_kwargs)
|
|
@@ -414,24 +414,28 @@ class Morph(BaseMorph):
|
|
|
414
414
|
# get promotion data
|
|
415
415
|
resultset = self.query_db(**query_kwargs).fetchall()
|
|
416
416
|
# if resultset has length > 1, filter to relevant
|
|
417
|
-
if
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
417
|
+
if promo_cls is not None:
|
|
418
|
+
_promo_cls = promo_cls
|
|
419
|
+
else:
|
|
420
|
+
_promo_cls = self.promo_cls
|
|
421
|
+
new_resultset = list(
|
|
422
|
+
filter(
|
|
423
|
+
lambda result: result['Promotion'] == _promo_cls,
|
|
424
|
+
resultset,
|
|
425
425
|
)
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
reason=PromotionError.Reason.INVALID_PROMOTION,
|
|
431
|
-
promotion_list=valid_promotions,
|
|
432
|
-
)
|
|
426
|
+
)
|
|
427
|
+
if not new_resultset:
|
|
428
|
+
if self.game_no == 4 or (self.game_no == 5 and self.name != "Lara"):
|
|
429
|
+
valid_promotions = (self.promo_cls,)
|
|
433
430
|
else:
|
|
434
|
-
|
|
431
|
+
valid_promotions = tuple(result["Promotion"] for result in resultset)
|
|
432
|
+
raise PromotionError(
|
|
433
|
+
f"'{_promo_cls}' is an invalid promotion. Valid promotions: {valid_promotions}",
|
|
434
|
+
reason=PromotionError.Reason.INVALID_PROMOTION,
|
|
435
|
+
promotion_list=valid_promotions,
|
|
436
|
+
)
|
|
437
|
+
else:
|
|
438
|
+
resultset = new_resultset
|
|
435
439
|
# ** PROMOTION START! **
|
|
436
440
|
# record history
|
|
437
441
|
self.history.append((self.current_lv, self.current_cls))
|
|
@@ -827,7 +831,7 @@ class Morph4(Morph):
|
|
|
827
831
|
promotion_item = "*Promote at Base*"
|
|
828
832
|
return promotion_item
|
|
829
833
|
|
|
830
|
-
def promote(self,
|
|
834
|
+
def promote(self, promo_cls) -> None:
|
|
831
835
|
"""
|
|
832
836
|
Promotes unit and resets max level and current level to original.
|
|
833
837
|
"""
|
|
@@ -1002,7 +1006,7 @@ class Morph5(Morph):
|
|
|
1002
1006
|
min_promo_level = 1
|
|
1003
1007
|
self.min_promo_level = min_promo_level
|
|
1004
1008
|
|
|
1005
|
-
def promote(self,
|
|
1009
|
+
def promote(self, promo_cls) -> None:
|
|
1006
1010
|
"""
|
|
1007
1011
|
Provides logic for promotion of Lara and other thieves in addition to usual units.
|
|
1008
1012
|
"""
|
|
@@ -1017,7 +1021,7 @@ class Morph5(Morph):
|
|
|
1017
1021
|
f"{self.name} has no available promotions.",
|
|
1018
1022
|
reason=PromotionError.Reason.NO_PROMOTIONS,
|
|
1019
1023
|
)
|
|
1020
|
-
super().promote(promo_cls
|
|
1024
|
+
super().promote(promo_cls)
|
|
1021
1025
|
self.current_stats.imax(self.Stats(**self.Stats.get_stat_dict(0)))
|
|
1022
1026
|
self.min_promo_level = None
|
|
1023
1027
|
|
|
@@ -1968,11 +1972,11 @@ class Morph8(Morph):
|
|
|
1968
1972
|
else:
|
|
1969
1973
|
self.max_level = 20
|
|
1970
1974
|
|
|
1971
|
-
def promote(self,
|
|
1975
|
+
def promote(self, promo_cls) -> None:
|
|
1972
1976
|
"""
|
|
1973
1977
|
Promotes, then sets max_level to None so that it may be recalculated.
|
|
1974
1978
|
"""
|
|
1975
|
-
super().promote(promo_cls
|
|
1979
|
+
super().promote(promo_cls)
|
|
1976
1980
|
self.max_level = None
|
|
1977
1981
|
|
|
1978
1982
|
def use_metiss_tome(self) -> None:
|