add skin part

This commit is contained in:
Naruse
2026-04-29 15:42:25 +08:00
parent e8bb77e90e
commit 50121d619b
9 changed files with 153 additions and 3 deletions

View File

@@ -0,0 +1,27 @@
using Newtonsoft.Json;
namespace MikuSB.Data.Excel;
[ResourceEntity("card_skin_parts.json")]
public class CardSkinPartsExcel : ExcelResource
{
public uint Genre { get; set; }
public uint Detail { get; set; }
public uint Particular { get; set; }
public uint Level { get; set; }
public uint Icon { get; set; }
public int AppearID { get; set; }
[JsonProperty("profile")] public List<List<int>> CardSkinID { get; set; } = [];
public string I18n { get; set; } = "";
[JsonIgnore] public ulong TemplateId { get; set; }
public override uint GetId()
{
return (uint)I18n.GetHashCode();
}
public override void Loaded()
{
TemplateId = GameResourceTemplateId.FromGdpl(Genre, Detail, Particular, Level);
GameData.CardSkinPartsData.Add(Icon, this);
}
}

View File

@@ -23,6 +23,7 @@ public static class GameData
public static Dictionary<uint, WeaponSkinExcel> WeaponSkinData { get; private set; } = [];
public static Dictionary<uint, DailyLevelExcel> DailyLevelData { get; private set; } = [];
public static Dictionary<uint, ProfileExcel> ProfileData { get; private set; } = [];
public static Dictionary<uint, CardSkinPartsExcel> CardSkinPartsData { get; private set; } = [];
}
public static class GameResourceTemplateId

View File

@@ -83,6 +83,7 @@ public class GameWeaponInfo : GrowableItemInfo
}
public class GameSkinInfo : BaseGameItemInfo
{
[SugarColumn(IsJson = true)] public Dictionary<uint, ulong> PartSlots { get; set; } = [];
public uint SkinType { get; set; }
public override Item ToProto()
{
@@ -94,6 +95,7 @@ public class GameSkinInfo : BaseGameItemInfo
Flag = (uint)Flag,
};
proto.Slots[(uint)ItemSkinSlotTypeEnum.SLOT_CARD_SKIL_TYPE] = Math.Min(SkinType, 1);
foreach (var (slot, uid) in PartSlots) proto.Slots[slot] = uid;
return proto;
}
}

View File

@@ -35,6 +35,7 @@ public class ServerTextCHS
/// </summary>
public class WordTextCHS
{
public string SkinPart => "皮肤部件";
public string Profile => "个人资料";
public string WeaponSkin => "武器皮肤";
public string SupportCard => "支援卡";
@@ -242,7 +243,8 @@ public class GiveAllTextCHS
public string Usage => "用法:/giveall weapon <detail/-1> -p<特定> -l<等級>\n" +
"用法:/giveall weaponskin <detail/-1> -p<特定>\n" +
"用法:/giveall card <detail/-1> -p<特定> -l<等級>" +
"用法:/giveall profile <detail/-1> -g<类型> -p<特定> -l<等级>";
"用法:/giveall profile <detail/-1> -g<类型> -p<特定> -l<等级>" +
"用法:/giveall skinpart <detail/-1> -g<類型> -p<特定> -l<等級>";
public string NotFound => "未找到 {0}";
public string GiveAllItems => "已向玩家添加 {0} 个 {1}";
}

View File

@@ -35,6 +35,7 @@ public class ServerTextCHT
/// </summary>
public class WordTextCHT
{
public string SkinPart => "外觀部件";
public string Profile => "個人資料";
public string WeaponSkin => "武器外觀";
public string SupportCard => "支援卡";
@@ -242,7 +243,8 @@ public class GiveAllTextCHT
public string Usage => "用法:/giveall weapon <detail/-1> -p<特定> -l<等級>\n" +
"用法:/giveall weaponskin <detail/-1> -p<特定>\n" +
"用法:/giveall card <detail/-1> -p<特定> -l<等級>" +
"用法:/giveall profile <detail/-1> -g<類型> -p<特定> -l<等級>";
"用法:/giveall profile <detail/-1> -g<類型> -p<特定> -l<等級>" +
"用法:/giveall skinpart <detail/-1> -g<類型> -p<特定> -l<等級>";
public string NotFound => "未找到 {0}";
public string GiveAllItems => "已向玩家添加 {0} 個 {1}";
}

View File

@@ -35,6 +35,7 @@ public class ServerTextEN
/// </summary>
public class WordTextEN
{
public string SkinPart => "Skin Part";
public string Profile => "Profile";
public string WeaponSkin => "Weapon Skin";
public string Valk => "Valkyrie";
@@ -208,7 +209,8 @@ public class GiveAllTextEN
public string Usage => "Usage: /giveall weapon <detail/-1> -p<particular> -l<level>\n" +
"Usage: /giveall weaponskin <detail/-1> -p<particular>\n" +
"Usage: /giveall card <detail/-1> -p<particular> -l<level>" +
"Usage: /giveall profile <detail/-1> -g<genre> -p<particular> -l<level>";
"Usage: /giveall profile <detail/-1> -g<genre> -p<particular> -l<level>" +
"Usage: /giveall skinpart <detail/-1> -g<genre> -p<particular> -l<level>";
public string NotFound => "{0} not found!";
public string GiveAllItems => "Added {0} {1} to player!";
}