public bool CreatePartner(Character partner)
{
int setId = 0;
if (partner.Race == 730201 || partner.Race == 730202 || partner.Race == 730204 || partner.Race == 730205)
setId = 1000;
else if (partner.Race == 730203)
setId = 1001;
else if (partner.Race == 730206)
setId = 1002;
else if (partner.Race == 730207)
setId = 1004;
// Create start items for card and hair/face
var cardItems = AuraData.CharCardSetDb.Find(setId, partner.Race);
if (cardItems == null)
{
Log.Error("Partner creation: Invalid item set ({0}) for race {1}.", setId, partner.Race);
return false;
}
// TODO: Hash seems to be incorrect.
var items = Item.CardItemsToItems(cardItems);
Item.GenerateItemColors(ref items, (this.Name + partner.Race + partner.SkinColor + partner.Hair + partner.HairColor + 1 + partner.EyeType + partner.EyeColor + partner.MouthType + partner.Face));
items.Add(new Item(partner.Face, Pocket.Face, partner.SkinColor, 0, 0));
items.Add(new Item(partner.Hair, Pocket.Hair, partner.HairColor + 0x10000000u, 0, 0));
if (!LoginServer.Instance.Database.CreatePartner(this.Name, partner, items))
{
Log.Error("Partner creation: Failed for unknown reasons.");
return false;
}
this.Pets.Add(partner);
return true;
}