public CAoYi(AoYiData config, int lv, int Id, SkillManager skillMgr) { this._AoYiItem = new BT_AoYi(config, Id, skillMgr); this._Lv = lv; this._used = 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; }