using Google.Protobuf; using Google.Protobuf.WellKnownTypes; using ServerCore; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using MetaAssets; namespace GameServer; public class MyShopProduct : EntityBase { public MyShopProduct(Player parent) : base(EntityType.MyShopProductMeter, parent) { onInit().GetAwaiter().GetResult(); } public sealed override async Task onInit() { var owner = getRootParent() as Player; ArgumentNullException.ThrowIfNull(owner); var direct_parent = getDirectParent(); NullReferenceCheckHelper.throwIfNull(direct_parent, () => $"direct_parent is null !!!"); addEntityAttribute(new ShopProductTradingMeterAttribute(this, owner.getUserGuid(), direct_parent)); addEntityAction(new ShopProductTradingMeterAction(this)); addEntityAction(new PurchaseShopProductAction(this)); return await base.onInit(); } public override string toBasicString() { return $"{this.getTypeName()} - {getRootParent().toBasicString()}"; } public override string toSummaryString() { return $"{this.getTypeName()} - {getRootParent().toBasicString()}"; } }