class SkillDeployer:
"""
技能释放器
"""
def __init__(self, name):
"""
技能名称
:param name:
"""
self.name = name
self.dict_skill_config = self.__load_config_file()
self.__effect_objects = self.__create_effect_objects()
def __load_config_file(self):
"""
读取技能文件
:return:
"""
return {
# '狮吼功': ['修改防御力(30)', '嘲讽(8)', '修改攻击力(-80)'],
# '迦叶功': ['修改防御力(30)', '眩晕(5)', '伤害生命(50)'],
'鬼波功': ['LowerDeffenseEffect(30)', 'DamageEffect(50)'],
'汽博': ['LowerDeffenseEffect(30)'],
}
def __create_effect_objects(self):
"""
创建技能
:return:
"""
list_effect_name = self.dict_skill_config[self.name]
list_effect_object = []
for item in list_effect_name:
list_effect_object.append(eval(item))
return list_effect_object
def generate_skill(self):
print(self.name, '技能释放了')
for item in self.__effect_objects:
item.impact()
class SkillImpactEffect:
def impact(self):
"""
技能影响效果
:return:
"""
raise NotImplementedError()
class DamageEffect(SkillImpactEffect):
"""
伤害生命效果
"""
def __init__(self, value):
self.value = value
def impact(self):
print('修改生命值%d' % self.value)
class LowerDeffenseEffect(SkillImpactEffect):
"""
修改防御力
"""
def __init__(self, value):
self.value = value
def impact(self):
print('修改防御力%d' % self.value)
list01 = SkillDeployer('汽博')
list01.generate_skill()
list02 = SkillDeployer('鬼波功')
list02.generate_skill()
Python 面向对象 技能释放
最新推荐文章于 2024-11-02 14:33:49 发布
这段代码定义了一个`SkillDeployer`类,用于加载和创建具有特定效果的技能。每个技能由一系列效果组成,如修改防御力、伤害生命等。`SkillImpactEffect`是所有效果的基类,`DamageEffect`和`LowerDeffenseEffect`是具体的效果实现。通过实例化`SkillDeployer`并调用`generate_skill`方法,可以模拟技能释放及其效果。
摘要由CSDN通过智能技术生成