using System;
using System.Collections.Generic;
using MessagePack;
#if GameClient
using GameFramework;
#else
using Server.Core;
#endif
namespace GameMessage
{
[Message(MessageCode.DiamondMallDataRequest)]
[MessagePackObject]
public class DiamondMallDataRequest : MessageData
{
///
/// 数据版本
///
[Key(0)] public long Ver;
///
/// 商城类型 默认0
///
[Key(1)] public int MallType;
///
/// App商城类型
///
[Key(2)] public int AppStoreType;
#if GameClient
public static DiamondMallDataRequest Create(long ver,int appStoreType)
{
DiamondMallDataRequest self = ReferencePool.Acquire();
self.Ver = ver;
self.AppStoreType = appStoreType;
return self;
}
public override void Clear()
{
}
#endif
}
[Message(MessageCode.DiamondMallDataResponse)]
[MessagePackObject]
public class DiamondMallDataResponse : MessageData
{
[Key(0)] public long Ver;
[Key(1)] public List Products;
}
///
/// 钻石商品 - 需要充值获得
///
[MessagePackObject]
public class DiamondProduct
{
///
/// 商品id
///
[Key(0)] public int Id;
///
/// 平台的商品id
///
[Key(1)] public string PlatProductId;
///
/// 商品名称
///
[Key(2)] public string Name;
///
/// 商品价格
///
[Key(3)] public int Price;
///
/// 获得的主体资源
///
[Key(4)] public ResData[] Packages;
///
/// 赠送的资源
///
[Key(5)] public ResData[] Gift;
///
/// 描述
///
[Key(6)] public string Desc;
}
[Message(MessageCode.ExchangeMallDataRequest)]
[MessagePackObject]
public class ExchangeMallDataRequest : MessageData
{
///
/// 数据版本
///
[Key(0)] public long Ver;
///
/// 商城类型 0全部 1金币 2道具 3活动
///
[Key(1)] public int MallType;
///
/// App商城类型
///
[Key(2)] public int AppStoreType;
#if GameClient
public static ExchangeMallDataRequest Create(long ver, int mallType,int appStoreType)
{
ExchangeMallDataRequest self = ReferencePool.Acquire();
self.Ver = ver;
self.MallType = mallType;
self.AppStoreType = appStoreType;
return self;
}
public override void Clear()
{
}
#endif
}
[Message(MessageCode.ExchangeMallDataResponse)]
[MessagePackObject]
public class ExchangeMallDataResponse : MessageData
{
[Key(0)] public long Ver;
[Key(1)] public List Products;
}
///
/// 兑换商品 - 使用物品兑换获得
///
[MessagePackObject]
public class ExchangeProduct
{
///
/// 商品id
///
[Key(0)] public int Id;
///
/// 商品名称
///
[Key(1)] public string Name;
///
/// 商城类型 1金币 2道具 3活动(用于区分商品所属类型)
///
[Key(2)] public int MallType;
///
/// 需要消耗的物品列表
///
[Key(3)] public ResData[] SourceItems;
///
/// 兑换获得的物品列表
///
[Key(4)] public ResData[] TargetItems;
///
/// 描述
///
[Key(5)] public string Desc;
}
///
/// 兑换商城兑换请求
///
[Message(MessageCode.ExchangeMallRequest)]
[MessagePackObject]
public class ExchangeMallRequest : MessageData
{
///
/// 兑换商品Id
///
[Key(0)] public int ProductId;
///
/// 兑换数量
///
[Key(1)] public int Count;
#if GameClient
public static ExchangeMallRequest Create(int productId,int count = 1)
{
ExchangeMallRequest self = ReferencePool.Acquire();
self.ProductId = productId;
self.Count = count;
return self;
}
public override void Clear()
{
}
#endif
}
///
/// 兑换商城兑换响应
///
[Message(MessageCode.ExchangeMallResponse)]
[MessagePackObject]
public class ExchangeMallResponse : MessageData
{
///
/// 兑换商品Id
///
[Key(0)] public int ProductId;
///
/// 兑换数量
///
[Key(1)]
public int Count;
///
/// 结果码 0成功
///
[Key(2)] public int ResultCode;
#if Server
public static ExchangeMallResponse Create(int productId,int count)
{
ExchangeMallResponse self = ReferencePool.Fetch();
self.ProductId = productId;
self.Count = count;
return self;
}
public override void Dispose()
{
ReferencePool.Recycle(this);
}
#endif
}
}