2016-09-28 4 views
0

Я пытаюсь создать магическую систему в своей текстовой RPG, которая ссылается на атрибут класса монстров, используя атрибут магического класса. Класс монстр выглядитPython: Как я могу ссылаться на атрибут класса по атрибуту другого класса или переменной?

class monster(object): 
    def __init__(self, **kwargs): 
     self.__dict__.update(kwargs) 

со списком монстров, находящихся магазин в формате

bestiary = { 
99999: monster(name="Slime", currentHP= 3, maxHP= 10, initiativeMod= 1, AC= 0, baseAttack= 0, equippedWeapon= itemsList[13], speed = 10) ##Syntax items 
} 

заклинания создаются в форме

class BuffSpell(object): 
def __init__(self, **kwargs): 
    self.__dict__.update(kwargs) 

с экземплярами каждого заклинания в форма

bardSpells = { 
    2: BuffSpell(name= "Flare", level= 0, stat= "baseAttack", value = -1, MP = 3, spellType = "buff"), 
} 

Я пытаюсь обратиться к атрибуту в монстра, который задается атрибутом в заклинание, как этот

def useMagic(target, spell): 
if spell.spellType == "buff": 
    x = spell.stat 
    target.x += spell.value 

, который, конечно, не работает. Как я могу получить атрибут spell.stat и применить spell.value к соответствующему атрибуту в монстре?

ответ

1

Вы могли бы попробовать что-то вроде следующего:

def use_magic(target, spell): 
    if spell.spell_type == "buff": 
     stat = spell.stat 
     setattr(target, stat, getattr(target,stat) + spell.value) 
Смежные вопросы