From 8a7aa6539edc8feac6dc225e7353e8e17a0f1099 Mon Sep 17 00:00:00 2001 From: Justin D-Z Date: Sun, 12 Sep 2021 08:55:01 -0400 Subject: [PATCH] Removed stat requirements from armor. --- armor.py | 24 -------- armors.py | 163 +++++++++++++++++++++++++++++++++++++++++++++++---- character.py | 17 +++--- enemies.py | 2 +- utilities.py | 17 +++--- 5 files changed, 168 insertions(+), 55 deletions(-) diff --git a/armor.py b/armor.py index e3b0df3..45deadd 100644 --- a/armor.py +++ b/armor.py @@ -29,10 +29,6 @@ class Armor(Document): 'bonus_electricity_res': float, 'bonus_water_res': float, 'value': int, - 'required_strength': int, - 'required_intelligence': int, - 'required_dexterity': int, - 'required_willpower': int, } required_fields = [ 'name', @@ -59,10 +55,6 @@ class Armor(Document): 'bonus_electricity_res', 'bonus_water_res', 'value', - 'required_strength', - 'required_intelligence', - 'required_dexterity', - 'required_willpower' ] default_values = { 'bonus_strength': 0, @@ -81,10 +73,6 @@ class Armor(Document): 'bonus_fire_res': 0.0, 'bonus_electricity_res': 0.0, 'bonus_water_res': 0.0, - 'required_strength': 0, - 'required_intelligence': 0, - 'required_dexterity': 0, - 'required_willpower': 0, } use_dot_notation = True use_autorefs = True @@ -112,18 +100,6 @@ def get_bonuses_display_string(item): prefixes = { - 'Streamlined': { - 1: {'effect': 'required_strength', 'value': -1} - }, - 'Striking': { - 1: {'effect': 'required_intelligence', 'value': -1} - }, - 'Fitted': { - 1: {'effect': 'required_dexterity', 'value': -1} - }, - 'Pious': { - 1: {'effect': 'required_willpower', 'value': -1} - }, 'Collectible': { 1: {'effect': 'value', 'value': 30} }, diff --git a/armors.py b/armors.py index f2748ba..305e0fb 100644 --- a/armors.py +++ b/armors.py @@ -43,7 +43,8 @@ 'level': 3, 'weight': 2, '_itype': 2, - 'bonus_init': 1 + 'bonus_init': 1, + 'bonus_electric_res': 0.01, }, 'cloth_armor': { 'name': 'Cloth Armor', @@ -52,7 +53,8 @@ 'weight': 3, '_itype': 3, 'bonus_init': 1, - 'bonus_carry': 10 + 'bonus_carry': 10, + 'bonus_electric_res': 0.01, }, 'cloth_boots': { 'name': 'Cloth Boots', @@ -60,7 +62,8 @@ 'level': 3, 'weight': 2, '_itype': 5, - 'bonus_init': 1 + 'bonus_init': 1, + 'bonus_electric_res': 0.01, }, 'cloth_gloves': { 'name': 'Cloth Gloves', @@ -68,9 +71,57 @@ 'level': 3, 'weight': 2, '_itype': 6, - 'bonus_init': 1 + 'bonus_init': 1, + 'bonus_electric_res': 0.01, }, # 5 - Boiled Leather + 'boiled_leather_helm': { + 'name': 'Boiled Leather Helm', + 'description': 'TODO', + 'level': 5, + 'weight': 4, + '_itype': 2, + 'bonus_earth_res': 0.01, + 'bonus_fire_res': 0.01, + 'bonus_electric_res': 0.01, + 'bonus_water_res': 0.01, + }, + 'boiled_leather_armor': { + 'name': 'Boiled Leather Armor', + 'description': 'TODO', + 'level': 5, + 'weight': 8, + '_itype': 3, + 'bonus_carry': 20, + 'bonus_earth_res': 0.01, + 'bonus_fire_res': 0.01, + 'bonus_electric_res': 0.01, + 'bonus_water_res': 0.01, + }, + 'boiled_leather_boots': { + 'name': 'Boiled Leather Boots', + 'description': 'TODO', + 'level': 5, + 'weight': 4, + '_itype': 5, + 'bonus_init': 1, + 'bonus_earth_res': 0.01, + 'bonus_fire_res': 0.01, + 'bonus_electric_res': 0.01, + 'bonus_water_res': 0.01, + }, + 'boiled_leather_gloves': { + 'name': 'Boiled Leather Gloves', + 'description': 'TODO', + 'level': 5, + 'weight': 4, + '_itype': 6, + 'bonus_init': 1, + 'bonus_earth_res': 0.01, + 'bonus_fire_res': 0.01, + 'bonus_electric_res': 0.01, + 'bonus_water_res': 0.01, + }, # 7 - Studded Leather # 9 - Chainmail # ----- Heavy ------ @@ -83,7 +134,6 @@ '_itype': 2, 'bonus_init': -1, 'bonus_earth_res': 0.01, - 'required_strength': 3 }, 'rusty_armor': { 'name': 'Rusty Armor', @@ -94,7 +144,6 @@ 'bonus_init': -1, 'bonus_carry': 10, 'bonus_earth_res': 0.01, - 'required_strength': 3 }, 'rusty_boots': { 'name': 'Rusty Boots', @@ -103,7 +152,6 @@ 'weight': 3, '_itype': 5, 'bonus_earth_res': 0.01, - 'required_strength': 3 }, 'rusty_gauntlets': { 'name': 'Rusty Gauntlets', @@ -112,7 +160,6 @@ 'weight': 3, '_itype': 6, 'bonus_earth_res': 0.01, - 'required_strength': 3 }, # 3 - Wood 'wood_helmet': { @@ -125,7 +172,6 @@ 'bonus_earth_res': 0.01, 'bonus_electricity_res': 0.01, 'bonus_water_res': 0.01, - 'required_strength': 3 }, 'wood_armor': { 'name': 'Wooden Armor', @@ -138,7 +184,6 @@ 'bonus_earth_res': 0.01, 'bonus_electricity_res': 0.01, 'bonus_water_res': 0.01, - 'required_strength': 3 }, 'wood_guards': { 'name': 'Wooden Guards', @@ -149,7 +194,6 @@ 'bonus_earth_res': 0.01, 'bonus_electricity_res': 0.01, 'bonus_water_res': 0.01, - 'required_strength': 3 }, 'wood_gloves': { 'name': 'Wooden Padded Gloves', @@ -158,12 +202,105 @@ 'weight': 2, '_itype': 6, 'bonus_earth_res': 0.01, - 'bonus_fire_res': 0.0, 'bonus_electricity_res': 0.01, 'bonus_water_res': 0.01, - 'required_strength': 3 }, # 5 - Bronze + 'bronze_helmet': { + 'name': 'Bronze Helmet', + 'description': 'TODO', + 'level': 5, + 'weight': 8, + '_itype': 2, + 'bonus_init': -1, + 'bonus_earth_res': 0.02, + 'bonus_fire_res': 0.02, + 'bonus_water_res': 0.01, + }, + 'bronze_armor': { + 'name': 'Bronze Armor', + 'description': 'TODO', + 'level': 5, + 'weight': 15, + '_itype': 3, + 'bonus_init': -2, + 'bonus_carry': 10, + 'bonus_earth_res': 0.02, + 'bonus_fire_res': 0.02, + 'bonus_water_res': 0.01, + }, + 'bronze_sabotons': { + 'name': 'Bronze Sabotons', + 'description': 'TODO', + 'level': 5, + 'weight': 7, + '_itype': 5, + 'bonus_earth_res': 0.02, + 'bonus_fire_res': 0.02, + 'bonus_water_res': 0.01, + }, + 'bronze_gloves': { + 'name': 'Bronze Padded Gloves', + 'description': 'TODO', + 'level': 5, + 'weight': 5, + '_itype': 6, + 'bonus_earth_res': 0.02, + 'bonus_fire_res': 0.02, + 'bonus_water_res': 0.01, + }, # 7 - Iron # 9 - Steel + # ----- Ceremonial ----- + # 3 + 'worn_headband': { + 'name': 'Worn Headband', + 'description': 'TODO', + 'level': 3, + 'weight': 3, + '_itype': 2, + 'bonus_stamina_regen': 1, + }, + 'worn_coat': { + 'name': 'Worn Coat', + 'description': 'TODO', + 'level': 3, + 'weight': 3, + '_itype': 3, + 'bonus_carry': 10, + 'bonus_electricity_res': 0.01, + 'bonus_water_res': 0.01, + 'bonus_stamina': 10, + }, + 'worn_hakama': { + 'name': 'Worn Hakama', + 'description': 'TODO', + 'level': 3, + 'weight': 3, + '_itype': 5, + 'bonus_electricity_res': 0.01, + 'bonus_water_res': 0.01, + 'bonus_stamina': 10, + }, + # ----- Spiritual ----- + # 3 + 'vine_circlet': { + 'name': 'Vine Circlet', + 'description': 'TODO', + 'level': 3, + 'weight': 3, + '_itype': 2, + 'bonus_mana_regen': 1, + }, + 'fur_robe': { + 'name': 'Fur Robe', + 'description': 'TODO', + 'level': 3, + 'weight': 4, + '_itype': 3, + 'bonus_carry': 10, + 'bonus_electricity_res': 0.01, + 'bonus_water_res': 0.01, + 'bonus_mana': 20, + }, } diff --git a/character.py b/character.py index 4ac25ad..ffa5f12 100644 --- a/character.py +++ b/character.py @@ -228,17 +228,18 @@ def equip(self, item): if self.level < item['level']: return False - if self.strength + self.bonus_strength < item['required_strength']: - return False + if item['_itype'] == ItemType.weapon.value: + if self.strength + self.bonus_strength < item['required_strength']: + return False - if self.intelligence + self.bonus_intelligence < item['required_intelligence']: - return False + if self.intelligence + self.bonus_intelligence < item['required_intelligence']: + return False - if self.dexterity + self.bonus_dexterity < item['required_dexterity']: - return False + if self.dexterity + self.bonus_dexterity < item['required_dexterity']: + return False - if self.willpower + self.bonus_willpower < item['required_willpower']: - return False + if self.willpower + self.bonus_willpower < item['required_willpower']: + return False slot = ItemType(item['_itype']).name diff --git a/enemies.py b/enemies.py index 01185e0..2f683d4 100644 --- a/enemies.py +++ b/enemies.py @@ -154,7 +154,7 @@ 'lust_demon': Enemy('Lust Demon', [ - SingleTargetAttack('Sensuous Embrace', 0, 0.05, [ + SingleTargetAttack('Fluid Embrace', 0, 0.05, [ Effect(EffectType.damage_health, Elements.water, _dice_value=6), Effect(EffectType.damage_health, Elements.water, _dice_value=6), ]), diff --git a/utilities.py b/utilities.py index 9cc7d95..cc354b0 100644 --- a/utilities.py +++ b/utilities.py @@ -129,15 +129,14 @@ def ability_to_str(ability_name: str, level=1) -> str: def get_requirements_display_string(item) -> str: - if item["_itype"] not in [1, 2, 3, 4, 5, 6, 7, 8]: - raise Exception(f'get_requirements_display_string for unsupported _itype {item["_itype"]} on {item["name"]}') - - display_string = '' - display_string += f'\nStrength {item["required_strength"]}' if item['required_strength'] != 0 else '' - display_string += f'\nIntelligence {item["required_intelligence"]}' if item['required_intelligence'] != 0 else '' - display_string += f'\nDexterity {item["required_dexterity"]}' if item['required_dexterity'] != 0 else '' - display_string += f'\nWillpower {item["required_willpower"]}' if item['required_willpower'] != 0 else '' - return display_string.lstrip('\n') + if item["_itype"] == 1: + display_string = f'\nStrength {item["required_strength"]}' if item['required_strength'] != 0 else '' + display_string += f'\nIntelligence {item["required_intelligence"]}' if item['required_intelligence'] != 0 else '' + display_string += f'\nDexterity {item["required_dexterity"]}' if item['required_dexterity'] != 0 else '' + display_string += f'\nWillpower {item["required_willpower"]}' if item['required_willpower'] != 0 else '' + return display_string.lstrip('\n') + else: + return 'None' def get_socket_display(item) -> str: