public pd_CreatureData CreateSaveData() { pd_CreatureData data = new pd_CreatureData(); data.creature_idx = Idx; data.creature_idn = Info.IDN; data.creature_grade = Grade; data.creature_enchant = Enchant; data.creature_enchant_point = EnchantPoint; data.creature_level = Level; data.creature_exp = Exp; data.skill_level = new List <short>(); foreach (var skill in Skills.GetRange(1, Skills.Count - 1)) { data.skill_level.Add(skill.Level); } data.equip_idx = new List <long>(); data.equip_idx.Add(Weapon.EquipIdx); data.equip_idx.Add(Armor.EquipIdx); data.is_lock = IsLock; return(data); }
public void Set(pd_CreatureData data) { SetInternal(data, null, null, null); }
void SetInternal(pd_CreatureData data, pd_EquipData weapon, pd_EquipData armor, List <Rune> runes) //设置Creature对象的信息 { this.Info = CreatureInfoManager.Instance.GetInfoByIdn(data.creature_idn); Idx = data.creature_idx; SkinName = Info.GetSkinName(data.skin_index); Grade = data.creature_grade; Level = data.creature_level; Enchant = data.creature_enchant; EnchantPoint = data.creature_enchant_point; Exp = data.creature_exp; IsLock = data.is_lock; Skills = new List <Skill>(); for (short i = 0; i < Info.Skills.Count; ++i) { SkillInfo skillInfo = Info.Skills[i]; short skill_level = Level; if (i > 0) { if (i - 1 < data.skill_level.Count) { skill_level = data.skill_level[i - 1]; } else { skill_level = 1; } } Skills.Add(new Skill(i, this, skillInfo, skill_level)); } if (Info.TeamSkill != null) { TeamSkill = new Skill(-1, this, Info.TeamSkill, Level); } if (weapon == null) { Weapon = EquipManager.Instance.GetEquipByIdx(data.equip_idx[0]); } else { Weapon = new Equip(weapon); } if (armor == null) { Armor = EquipManager.Instance.GetEquipByIdx(data.equip_idx[1]); } else { Armor = new Equip(armor); } if (runes != null) { Runes = runes; } else { Runes = RuneManager.Instance.GetRunesByCreatureIdx(this.Idx); } CalculateStat(); }
public Creature(pd_CreatureData data, pd_EquipData weapon = null, pd_EquipData armor = null, List <Rune> runes = null) { SetInternal(data, weapon, armor, runes); }