/// <summary> /// Makes this the pet of the given owner /// </summary> internal void MakePet(uint ownerId) { PetRecord = PetMgr.CreatePermanentPetRecord(Entry, ownerId); if (!HasTalents && IsHunterPet) { m_petTalents = new PetTalentCollection(this); } }
protected override void OnLevelChanged() { // scale size, if necessary UpdateSize(); // add/remove spell ranks UpdateSpellRanks(); if (HasPlayerMaster) { var level = Level; if (level >= PetMgr.MinPetTalentLevel) { // make sure, pet has talent collection if (m_petTalents == null) { m_petTalents = new PetTalentCollection(this); } } if (m_petTalents != null) { // update talent points var freeTalentPoints = Talents.GetFreeTalentPointsForLevel(level); if (freeTalentPoints < 0) { // Level was reduced: Remove talent points if (!((Character)m_master).GodMode) { Talents.RemoveTalents(-freeTalentPoints); } freeTalentPoints = 0; } FreeTalentPoints = freeTalentPoints; } var levelStatInfo = m_entry.GetPetLevelStatInfo(level); if (levelStatInfo != null) { // update pet stats ModPetStatsPerLevel(levelStatInfo); m_auras.ReapplyAllAuras(); } m_entry.NotifyLeveledChanged(this); } }