Я смотрел учебник по созданию игры RGB и был озадачен тем, почему pycharm не показывает предложения в одном случае.
Дело в том, что я сделал объекты из класса под названием "Заклинание"«вот так
# Create Black Magic
fire = Spell("Fire", 10, 100, "black")
thunder = Spell("Thunder", 10, 100, "black")
blizzard = Spell("Blizzard", 10, 100, "black")
meteor = Spell("Meteor", 20, 200, "black")
quake = Spell("Quake", 14, 140, "black")
# Create White Magic
cure = Spell("Fire", 12, 120, "white")
cura = Spell("Cure", 18, 200, "white")
Затем с этими объектами я помещаю их как один из атрибутов другого объекта (« игрока ») другого класса (Персонажа)
player = Character(460, 70, 80, 50, [fire, thunder, blizzard, meteor, quake, cure, cura])
enemy = Character(1200, 65, 45, 25, [])
ЗатемЯ заставляю пользователя выбрать магический
magic_choice = int(input("Choose your magic")) - 1
magic_dmg = player.magic[magic_choice].generate_damage()
Но когда я пытаюсь написать
magic_dmg = player.magic[magic_choice].generate_damage()
Pycharm не может найти метод ".generate_damage ()", который хранится в другом файле. Код работает, но он не может дать предложения. Какие могут быть причины для этого?
class Character:
def __init__(self, hp, mp, atk, df, magic):
self.max_hp = hp
self.hp = hp
self.max_mp = mp
self.mp = mp
self.atk_l = atk - 10
self.atk_h = atk + 10
self.df = df
self.magic = magic
class Spell:
def __init__(self, name, cost, dmg, type):
self.name = name
self.cost = cost
self.dmg = dmg
self.type = type
def generate_damage(self):
mag_l = self.dmg - 15
mag_h = self.dmg + 15
return random.randrange(mag_l, mag_h)