RPG游戏《黑暗之光》流程介绍与代码分析之(九):技能系统的实现

第九章 技能系统

与物品系统类似,技能系统也是一个较为复杂的系统,其中UI设计部分涉及到一些新知识,进行重点学习。

9.1 物品信息管理系统

技能管理系统的大致操作与背包系统类似。
9.1.1 技能信息的设计
技能信息的保存格式如下

我们在Atlas中新创建一个记事本存储技能信息,与物品信息类似,命名为SkillInfoInList,内容如下(部分信息进行了修改)
5001,魔法弹,skill-09,伤害 350%,SingleTarget,Attack,350,0,20,10,Magician,1,Enemy,5
5002,治疗,skill-13,治愈30HP,Passive,HP,30,0,10,20,Magician,2,Self,0
5003,冥想,skill-10,魔法恢复20,Passive,MP,20,0,0,30,Magician,5,Self,0
5004,法力涌动,skill-05,攻击力为200%持续15秒,Buff,Attack,200,15,30,30,Magician,7,Self,0
5005,战斗热诚,skill-12,攻击力速度为200%持续30,Buff,AttackSpeed,200,30,30,30,Magician,8,Self,0
5006,究极风暴,skill-11,攻击力400% 所有敌人,MultiTarget,Attack,400,0,50,40,Magician,9,Position,10
为了便于管理物品信息和技能信息,我们新建一个TextInfo来存储这两个txt文档

9.1.2 实现技能信息的读取
与ObjectsInfo类似,我们在GameSetting中添加一个SkillsInfo以访问读取技能信息,在脚本中设定各种属性
    public enum ApplyRole{    //适用角色
        Swordman,
        Magician
    }

    public enum ApplyType{    //适用类型
        Passive,
        SingleTarget,
        MultiTarget
    }

    public enum ApplyProperty{    //适用属性
        Attack,
        Aefense,
        AttackSpeed,
        HP,
        MP
    }

    public enum ReleaseType{    //释放类型,对自身,敌人(需要鼠标指定)和某个位置(鼠标指定)
        Self,
        Enemy,
        Position
    }
    public class SkillInfo{    //技能信息表中对应的各条属性
        public int id;
        public string name;
        public string icon_name;
        public string des;
        public ApplyType applyType;
        public ApplyProperty applyProperty;
        public int applyValue;
        public int applyTime;
        public int mpCost;
        public int coldTime;
        public ApplyRole applyRole;
        public int level;
        public ReleaseType releaseType;
        public float rele
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值