コード例 #1
0
        // 是否增加某类属性的技能,和概率没关系
        // 这个函数在实例化CPet的时候调用,可以在初始化的时候就决定好奥义的功用
        public void improveAttribute(BT_Monster Pet)
        {
            int PetAttri = (int)Pet._property;

            if (PetAttri == _AoYiItem._type || PetAttri == (_AoYiItem._type + 10))
            {
                foreach (BT_Skill sk in Pet.get_NormalSkillArr)
                {
                    SkillOpData op       = sk.opObj;
                    string[]    enhanced = op.enhanced;

                    if (enhanced != null)
                    {
                        foreach (string oneEnHanced in enhanced)
                        {
                            int param = getParam(sk, oneEnHanced);
                            if (param != -1)
                            {
                                param = Formular(param);
                                setParam(sk, oneEnHanced, param);
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        public BT_Skill(int skillNum, int lv, SkillManager skillMgr, BT_Monster ownerBy)
        {
            if (skillMgr == null)
            {
                throw new DragonException("Skill manager is null.");
            }
            if (ownerBy == null)
            {
                throw new DragonException("Owner is null");
            }

            SkillData skCfg = skillMgr.getSkillDataConfig(skillNum);

            if (skCfg == null)
            {
                throw new DragonException("Skill configure is null." + skillNum);
            }

            //默认一定能释放一次
            RdCast = 1;
            id     = skillNum;
            curLv  = lv;
            name   = skCfg.name;
            mark   = skCfg.mark;
            level  = skCfg.level;
            param  = skillMgr.GetSkParamData(skillNum, lv);
            op     = skCfg.op;
            opObj  = skillMgr.getSkillOpDataConfig(op);

            real = 0;
            AoYi = null;

            owner = ownerBy;
        }
コード例 #3
0
    Skill createSkill()
    {
        SkillManager skMgr = Core.Data.skillManager;

        SkillData   sd  = skMgr.getSkillDataConfig(skillId);
        SkillOpData sod = skMgr.getSkillOpDataConfig(sd.op);
        SkillLvData lvd = skMgr.GetSkillLvDataConfig(skillId);

        return(new Skill(sd, sod, lvd, skillLv));
    }
コード例 #4
0
    /// <summary>
    /// Gets the skill op data config. 根据Skill OP ID 来获取Skill OP Data
    /// </summary>
    /// <returns>The skill op data config.</returns>
    /// <param name="ID">I.</param>
    public SkillOpData getSkillOpDataConfig(int ID)
    {
        SkillOpData sod = null;

        if (mSDOConfig != null)
        {
            if (!mSDOConfig.TryGetValue(ID, out sod))
            {
                sod = null;
            }
        }

        return(sod);
    }
コード例 #5
0
ファイル: Skill.cs プロジェクト: mengtest/DragonBallNew
    public Skill(SkillData data, SkillOpData sod, SkillLvData lvData, int skillLv, bool opened = true)
    {
        this.sdConfig      = data;
        this.sodConfig     = sod;
        this.skillLvConfig = lvData;
        level       = skillLv;
        this.opened = opened;
//		_curSkParam.absorb = sdConfig.param.absorb;
//		_curSkParam.add = sdConfig.param.add;
//		_curSkParam.damage = sdConfig.param.damage;
//		_curSkParam.dec = sdConfig.param.dec;
//		_curSkParam.gailv = sdConfig.param.gailv;
//		_curSkParam.num = sdConfig.param.num;
//		_curSkParam.nuqi = sdConfig.param.nuqi;
//		_curSkParam.rate = sdConfig.param.rate;
//		_curSkParam.rate2 = sdConfig.param.rate2;
//		_curSkParam.seal = sdConfig.param.seal;
    }
コード例 #6
0
ファイル: Skill.cs プロジェクト: mengtest/DragonBallNew
    public Skill(SkillData data, SkillOpData sod, SkillLvData lvData, int monsterLv, int skillLv)
    {
        this.sdConfig      = data;
        this.sodConfig     = sod;
        this.skillLvConfig = lvData;
        this.opened        = monsterLv >= SKILL2_MIN_LEVEL;
        level = skillLv;

//		_curSkParam.absorb = sdConfig.param.absorb;
//		_curSkParam.add = sdConfig.param.add;
//		_curSkParam.damage = sdConfig.param.damage;
//		_curSkParam.dec = sdConfig.param.dec;
//		_curSkParam.gailv = sdConfig.param.gailv;
//		_curSkParam.num = sdConfig.param.num;
//		_curSkParam.nuqi = sdConfig.param.nuqi;
//		_curSkParam.rate = sdConfig.param.rate;
//		_curSkParam.rate2 = sdConfig.param.rate2;
//		_curSkParam.seal = sdConfig.param.seal;
    }
コード例 #7
0
        public BT_AoYi(AoYiData aoyiConfig, int ID, SkillManager skillMgr)
        {
            if (aoyiConfig == null)
            {
                throw new DragonException("AoYi configure is empty.");
            }
            if (skillMgr == null)
            {
                throw new DragonException("Skill Manager is empty.");
            }

            this._ID     = ID;
            this._Name   = aoyiConfig.name;
            this._effect = aoyiConfig.effect;

            this._efinfo  = aoyiConfig.efinfo;
            this._skillOp = aoyiConfig.skillID;
            this._type    = aoyiConfig.type;
            this._basic   = aoyiConfig.basic;
            this._growth  = aoyiConfig.growth;

            this._SkillOpConfig = skillMgr.getSkillOpDataConfig(this._skillOp);
        }
コード例 #8
0
        // 使用CAoYi来创建技能
        public BT_Skill(CAoYi AoYiItem, BT_Monster ownerBy)
        {
            owner = ownerBy;

            int     AoYiLevel = AoYiItem.getLv;
            BT_AoYi AoYi      = AoYiItem.getAoYiItem;

            // 参数信息
            float[] effect = AoYiItem.getEffectByLv(AoYiLevel);

            // 构建真实的技能参数数据
            skParam realEffect = new skParam();

            int length = AoYi._efinfo.Length;

            for (int i = 0; i < length; ++i)
            {
                //其实可以反射的写入值,但这里不太多,就不用反射了。
                string key = AoYi._efinfo[i];
                if (!string.IsNullOrEmpty(key))
                {
                    switch (key)
                    {
                    case "rate2":
                        realEffect.rate2 = MathHelper.MidpointRounding(effect [i]);
                        break;

                    case "rate":
                        realEffect.rate = MathHelper.MidpointRounding(effect [i]);
                        break;

                    case "gailv":
                        realEffect.gailv = MathHelper.MidpointRounding(effect [i]);
                        break;

                    case "damage":
                        realEffect.damage = MathHelper.MidpointRounding(effect [i]);
                        break;

                    case "nuqi":
                        realEffect.nuqi = MathHelper.MidpointRounding(effect [i]);
                        break;

                    case "num":
                        realEffect.num = MathHelper.MidpointRounding(effect [i]);
                        break;
                    }
                }
            }

            // 构造对象
            //默认一定能释放一次
            RdCast = 1;
            id     = AoYi._ID;
            curLv  = AoYiLevel;
            opObj  = AoYi._SkillOpConfig;
            name   = AoYi._Name;
            level  = "A";
            param  = realEffect;
            op     = AoYi._skillOp;
        }