Exemplo n.º 1
0
        void parseSkill(Battle_Monster value, float skillup)
        {
            //取出技能1,2,3
            SkillObj skId1 = null, skId2 = null, skId3 = null;

            if (value.skill != null)
            {
                skId1 = value.skill.Value <SkillObj>(0);
                skId2 = value.skill.Value <SkillObj>(1);
                skId3 = value.skill.Value <SkillObj>(2);
            }

            if (skId1 == null)
            {
                skId1 = new SkillObj();
            }
            if (skId2 == null)
            {
                skId2 = new SkillObj();
            }
            if (skId3 == null)
            {
                skId3 = new SkillObj();
            }

            _nSkill.Add(skId1);
            //只有宠物大于30级的时候,才能释放第二个技能
            if (_level >= 30 && skId2.skillId != 0)
            {
                _nSkill.Add(skId2);
            }

            _aSkill.Add(skId3);

            //获取普通技能
            foreach (SkillObj nSkill in _nSkill)
            {
                if (nSkill.skillId > 0)
                {
                    BT_Skill sk = new BT_Skill(nSkill.skillId, nSkill.skillLevel, skillMgr, this);
                    if (sk != null)
                    {
                        improvePossibility(sk, skillup);
                        _nskillArr.Add(sk);
                    }
                }
            }
            //获取怒气技能
            foreach (SkillObj aSkill in _aSkill)
            {
                if (aSkill.skillId > 0)
                {
                    BT_Skill sk = new BT_Skill(aSkill.skillId, aSkill.skillLevel, skillMgr, this);
                    improvePossibility(sk, skillup);
                    _askillArr.Add(sk);
                }
            }
        }
Exemplo n.º 2
0
        public BT_Monster(Battle_Monster value, int pveIndex, BT_Logical war, BT_MonsterTeam selfTeam, BT_MonsterTeam enemyTeam)
        {
            //初始化 技能
            _nSkill    = new List <SkillObj>();
            _aSkill    = new List <SkillObj>();
            _nskillArr = new List <BT_Skill>();
            _askillArr = new List <BT_Skill>();

            //初始化 敌人ID
            _killEnemyId = new List <int>();
            //初始化 Buff & Debuff
            _buffArr   = new Dictionary <short, BT_BuffOrDebuff>();
            _debuffArr = new Dictionary <short, BT_BuffOrDebuff>();

            //初始化底层依赖
            skillMgr = Core.Data.skillManager;

            this._id       = value.petId;
            this._num      = value.petNum;
            this._property = (MonsterAttribute)value.property;
            _initProperty  = _property; //记住默认初始的属性,部分宠物可能会属性转换
            this._level    = value.lvl;
            this._finalAtt = value.finalAtt;
            _killCount     = 0;
            //缘配齐
            _fullFated = value.fullfated;
            _fateNuqi  = value.nuqi;
            float skillup = value.skillUp;    // 技能概率的提升

            this._isBoss = value.isBoss;      // 是否是boss
            //取出技能1,2,3
            //初始化宠物的技能信息
            parseSkill(value, skillup);

            _pveIndex  = pveIndex;
            _war       = war;
            _selfTeam  = selfTeam;
            _enemyTeam = enemyTeam;

            this.setCurAtt(_finalAtt);
        }