游戏里边肯定少不了技能系统,技能系统做的好后边会省下很多事情,不然会被策划折磨死。。。

sikll_file = {
             '降龙十八掌': ['DamageEffect(100)','DizzinessEffect(3)', 'LowerDeffence(30,3)'],
             '六脉神剑': ['DamageEffect(90)', 'Knockback(3)', 'LowerSpeed(30, 2)'],
             '北冥神功': ['DamageEffect(99)', 'LowerDeffence(20,2)', 'LowerSpeed(20,2)']
         }
 
class SkillImpactEffect:
    def impact(self):
        raise NotImplementedError()

class DamageEffect(SkillImpactEffect):
    """
        效果:伤害
    """
    def __init__(self,value):
        self.value = value
    def impact(self):
        print('减少血量%d点'%self.value)

class LowerDeffence(SkillImpactEffect):
    """
        效果:降低防御力
    """
    def __init__(self, value, time):
        self.value = value
        self.time = time
    def impact(self):
        print("降低%d防御力,持续%d秒"%(self.value, self.time))

class DizzinessEffect(SkillImpactEffect):
    """
    效果:眩晕
    """
    def __init__(self, time):
        self.time = time
    def impact(self):
        print('眩晕%d秒'% self.time)

class Knockback(SkillImpactEffect):
    """
        效果:震退
    """
    def __init__(self, value):
        self.value = value
    def impact(self):
        print('震退敌人到%d丈之外!')

class LowerSpeed(SkillImpactEffect):
    """
        效果:减速
    """
    def __init__(self, value, time):
        self.value = value
        self.time = time
    def impact(self):
        print('减速%d,持续时间%d' % (self.value, self.time))

class SkillDeployer:
    """
        技能释放器
    """
    def __init__(self,name):
        self.name = name
        # 加载配置文件{技能:[效果1,效果2.。。]}
        self.__dict_skill_config = self.load_config_file()
        # 创建效果对象
        self.__effect_object = self.create_effect_objects()
    def load_config_file(self):
        # 加载技能文件。
        return sikll_file

    def create_effect_objects(self):
        # 根据name创建相应的技能对象
        list_effect_name = self.__dict_skill_config[self.name]
        list_effect_object = []
        for item in list_effect_name:
            # 效果对象,加入技能列表
            effect_object = eval(item)
            list_effect_object.append(effect_object)
        return list_effect_object

    def generate_skill(self):
        print('#############:%s释放'%self.name)
        for item in self.__effect_object:
            item.impact()

xlsbz = SkillDeployer('降龙十八掌')
xlsbz.generate_skill()
lmsj = SkillDeployer('六脉神剑')
lmsj.generate_skill()
bmsg = SkillDeployer('北冥神功')
bmsg.generate_skill()

 

简单写写,没啥大的难度,主要就是继承的东西,还有一个就是eval

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐