KCP gameserver with packet dispatch, scene streaming, combat, gacha and the shop, plus a small HTTP server for the login flow and the wish history page. Game data under assets is pulled out of the client instead of being typed by hand. The excel tables come from the packed bin container and the spawn points from the compiled scene scripts.
28 lines
1.2 KiB
C#
28 lines
1.2 KiB
C#
using System.Text.Json.Serialization;
|
|
using Yuanshen.Common.Data.Excel.Attributes;
|
|
|
|
namespace Yuanshen.Common.Data.Excel;
|
|
|
|
public sealed class ShopCostItem
|
|
{
|
|
[JsonPropertyName("id")] public uint Id { get; set; }
|
|
[JsonPropertyName("count")] public uint Count { get; set; }
|
|
}
|
|
|
|
[Excel(ExcelType.ShopGoods, "ShopGoodsExcelConfigData.json")]
|
|
public sealed class ShopGoodsExcel : ExcelItem
|
|
{
|
|
[JsonPropertyName("goodsId")] public uint GoodsId { get; set; }
|
|
[JsonPropertyName("shopType")] public uint ShopType { get; set; }
|
|
[JsonPropertyName("itemId")] public uint ItemId { get; set; }
|
|
[JsonPropertyName("itemCount")] public uint ItemCount { get; set; }
|
|
[JsonPropertyName("costHcoin")] public uint CostHcoin { get; set; }
|
|
[JsonPropertyName("costScoin")] public uint CostScoin { get; set; }
|
|
[JsonPropertyName("costItems")] public List<ShopCostItem> CostItems { get; set; } = new();
|
|
[JsonPropertyName("buyLimit")] public uint BuyLimit { get; set; }
|
|
[JsonPropertyName("minPlayerLevel")] public uint MinPlayerLevel { get; set; }
|
|
[JsonPropertyName("maxPlayerLevel")] public uint MaxPlayerLevel { get; set; }
|
|
[JsonPropertyName("sortLevel")] public uint SortLevel { get; set; }
|
|
|
|
public override uint ExcelId => GoodsId;
|
|
}
|