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); } } }
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); }