using ServerCommon; using ServerCore; using ServerBase; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GameServer; public class Friend : EntityBase { public Friend(EntityBase parent) : base(EntityType.Friend, parent) { addEntityAttributes(); } public override async Task onInit() { addEntityAttributes(); return await base.onInit(); } private void addEntityAttributes() { var owner = getRootParent() as Player ; NullReferenceCheckHelper.throwIfNull(owner, () => $"owner is null !!!"); var direct_parent = getDirectParent(); NullReferenceCheckHelper.throwIfNull(direct_parent, () => $"direct_parent is null !!! - {owner.toBasicString()}"); addEntityAttribute(new FriendAttribute(this, owner.getUserGuid(), direct_parent)); addEntityAction(new FriendAction(this)); } public override string toBasicString() { return $"{this.getTypeName()} - {getRootParent().toBasicString()}"; } public override string toSummaryString() { return $"{this.getTypeName()} - {getRootParent().toBasicString()}"; } }