ship skin comamnd and changing skin

This commit is contained in:
rfi
2024-02-23 14:35:50 +07:00
parent c560bd8d7b
commit 529d404c12
15 changed files with 232033 additions and 11 deletions

View File

@@ -1,6 +1,5 @@
using BLHX.Server.Common.Utils;
using System.Reflection;
using System.Text.RegularExpressions;
namespace BLHX.Server.Common.Data;
@@ -14,6 +13,9 @@ public static class Data
[LoadData("tradingport_template.json", LoadDataType.ShareCfg)]
public static Dictionary<int, ResourceFieldTemplate> GoldFieldTemplate { get; private set; } = null!;
[LoadData("ship_skin_template.json", LoadDataType.ShareCfg)]
public static Dictionary<int, ShipSkinTemplate> ShipSkinTemplate { get; private set; } = null!;
[LoadData("chapter_template.json", LoadDataType.ShareCfgData)]
public static Dictionary<int, ChapterTemplate> ChapterTemplate { get; private set; } = null!;

View File

@@ -0,0 +1,131 @@
using System.Text.Json.Serialization;
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
namespace BLHX.Server.Common.Data
{
public class ShipSkinTemplate
{
[JsonPropertyName("bg")]
public string Bg { get; set; }
[JsonPropertyName("bg_sp")]
public string BgSp { get; set; }
[JsonPropertyName("bgm")]
public string Bgm { get; set; }
[JsonPropertyName("bound_bone")]
public dynamic BoundBone { get; set; }
[JsonPropertyName("desc")]
public string Desc { get; set; }
[JsonPropertyName("fx_container")]
public List<List<double>> FxContainer { get; set; }
[JsonPropertyName("group_index")]
public int GroupIndex { get; set; }
[JsonPropertyName("gyro")]
public int Gyro { get; set; }
[JsonPropertyName("hand_id")]
public int HandId { get; set; }
[JsonPropertyName("id")]
public uint Id { get; set; }
[JsonPropertyName("illustrator")]
public int Illustrator { get; set; }
[JsonPropertyName("illustrator2")]
public int Illustrator2 { get; set; }
[JsonPropertyName("l2d_animations")]
public dynamic L2DAnimations { get; set; }
[JsonPropertyName("l2d_drag_rate")]
public dynamic L2DDragRate { get; set; }
[JsonPropertyName("l2d_ignore_drag")]
public long L2DIgnoreDrag { get; set; }
[JsonPropertyName("l2d_para_range")]
public dynamic L2DParaRange { get; set; }
[JsonPropertyName("l2d_se")]
public dynamic L2DSe { get; set; }
[JsonPropertyName("l2d_voice_calibrate")]
public dynamic L2DVoiceCalibrate { get; set; }
[JsonPropertyName("lip_smoothing")]
public int LipSmoothing { get; set; }
[JsonPropertyName("lip_sync_gain")]
public int LipSyncGain { get; set; }
[JsonPropertyName("live2d_offset")]
public dynamic Live2DOffset { get; set; }
[JsonPropertyName("live2d_offset_profile")]
public dynamic Live2DOffsetProfile { get; set; }
[JsonPropertyName("main_UI_FX")]
public string MainUiFx { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("painting")]
public string Painting { get; set; }
[JsonPropertyName("prefab")]
public string Prefab { get; set; }
[JsonPropertyName("rarity_bg")]
public string RarityBg { get; set; }
[JsonPropertyName("ship_group")]
public uint ShipGroup { get; set; }
[JsonPropertyName("ship_l2d_id")]
public dynamic ShipL2DId { get; set; }
[JsonPropertyName("shop_id")]
public uint ShopId { get; set; }
[JsonPropertyName("shop_type_id")]
public int ShopTypeId { get; set; }
[JsonPropertyName("show_skin")]
public string ShowSkin { get; set; }
[JsonPropertyName("skin_type")]
public int SkinType { get; set; }
[JsonPropertyName("smoke")]
public dynamic Smoke { get; set; }
[JsonPropertyName("special_effects")]
public dynamic SpecialEffects { get; set; }
[JsonPropertyName("spine_action_offset")]
public dynamic SpineActionOffset { get; set; }
[JsonPropertyName("spine_offset")]
public dynamic SpineOffset { get; set; }
[JsonPropertyName("tag")]
public List<int> Tag { get; set; }
[JsonPropertyName("time")]
public dynamic Time { get; set; }
[JsonPropertyName("voice_actor")]
public int VoiceActor { get; set; }
[JsonPropertyName("voice_actor_2")]
public int VoiceActor2 { get; set; }
}
}

View File

@@ -90,6 +90,9 @@ namespace BLHX.Server.Common.Database
new() { Id = 11 },
new() { Id = 12 }
});
e.Property(b => b.ShipSkins)
.HasJsonConversion()
.HasDefaultValue(new List<Idtimeinfo>() { });
e.Property(b => b.Adv)
.HasDefaultValue("");
e.HasMany(b => b.Resources)
@@ -149,6 +152,7 @@ namespace BLHX.Server.Common.Database
public DateTime CreatedAt { get; set; }
public List<Groupinfo> Fleets { get; set; } = null!;
public List<Idtimeinfo> ShipSkins { get; set; } = null!;
public virtual ICollection<PlayerResource> Resources { get; set; } = [];
public virtual ICollection<ResourceField> ResourceFields { get; set; } = [];

View File

@@ -0,0 +1,258 @@
// <auto-generated />
using System;
using BLHX.Server.Common.Database;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace BLHX.Server.Common.Migrations.Player
{
[DbContext(typeof(PlayerContext))]
[Migration("20240223041338_ShipSkins")]
partial class ShipSkins
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.2")
.HasAnnotation("Proxies:ChangeTracking", false)
.HasAnnotation("Proxies:CheckEquality", false)
.HasAnnotation("Proxies:LazyLoading", true);
modelBuilder.Entity("BLHX.Server.Common.Database.Player", b =>
{
b.Property<uint>("Uid")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Adv")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("TEXT")
.HasDefaultValue("");
b.Property<DateTime>("CreatedAt")
.HasColumnType("TEXT");
b.Property<string>("DisplayInfo")
.IsRequired()
.HasColumnType("jsonb");
b.Property<uint>("Exp")
.HasColumnType("INTEGER");
b.Property<string>("Fleets")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("jsonb")
.HasDefaultValue("[{\"Id\":1,\"Name\":null,\"ShipLists\":[1,2],\"Commanders\":[]},{\"Id\":2,\"Name\":null,\"ShipLists\":[],\"Commanders\":[]},{\"Id\":11,\"Name\":null,\"ShipLists\":[],\"Commanders\":[]},{\"Id\":12,\"Name\":null,\"ShipLists\":[],\"Commanders\":[]}]");
b.Property<uint>("Level")
.HasColumnType("INTEGER");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("ShipSkins")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("jsonb")
.HasDefaultValue("[]");
b.Property<string>("Token")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Uid");
b.HasIndex("Token")
.IsUnique();
b.ToTable("Players");
});
modelBuilder.Entity("BLHX.Server.Common.Database.PlayerResource", b =>
{
b.Property<uint>("Id")
.HasColumnType("INTEGER");
b.Property<uint>("PlayerUid")
.HasColumnType("INTEGER");
b.Property<uint>("Num")
.HasColumnType("INTEGER");
b.HasKey("Id", "PlayerUid");
b.HasIndex("PlayerUid");
b.ToTable("Resources");
});
modelBuilder.Entity("BLHX.Server.Common.Database.PlayerShip", b =>
{
b.Property<uint>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<uint>("ActivityNpc")
.HasColumnType("INTEGER");
b.Property<uint>("BluePrintFlag")
.HasColumnType("INTEGER");
b.Property<uint>("CommanderId")
.HasColumnType("INTEGER");
b.Property<uint?>("CommonFlag")
.HasColumnType("INTEGER");
b.Property<string>("CoreLists")
.IsRequired()
.HasColumnType("jsonb");
b.Property<DateTime>("CreatedAt")
.HasColumnType("TEXT");
b.Property<uint>("Energy")
.HasColumnType("INTEGER");
b.Property<string>("EquipInfoLists")
.IsRequired()
.HasColumnType("jsonb");
b.Property<uint>("Exp")
.HasColumnType("INTEGER");
b.Property<uint>("Intimacy")
.HasColumnType("INTEGER");
b.Property<bool>("IsLocked")
.HasColumnType("INTEGER");
b.Property<DateTime?>("LastChangeName")
.HasColumnType("TEXT");
b.Property<uint>("Level")
.HasColumnType("INTEGER");
b.Property<string>("MetaRepairLists")
.IsRequired()
.HasColumnType("jsonb");
b.Property<string>("Name")
.HasColumnType("TEXT");
b.Property<uint>("PlayerUid")
.HasColumnType("INTEGER");
b.Property<uint>("Proficiency")
.HasColumnType("INTEGER");
b.Property<uint>("Propose")
.HasColumnType("INTEGER");
b.Property<string>("SkillIdLists")
.IsRequired()
.HasColumnType("jsonb");
b.Property<uint>("SkinId")
.HasColumnType("INTEGER");
b.Property<string>("State")
.IsRequired()
.HasColumnType("jsonb");
b.Property<string>("StrengthLists")
.IsRequired()
.HasColumnType("jsonb");
b.Property<uint>("TemplateId")
.HasColumnType("INTEGER");
b.Property<string>("TransformLists")
.IsRequired()
.HasColumnType("jsonb");
b.HasKey("Id");
b.HasIndex("PlayerUid");
b.ToTable("Ships");
});
modelBuilder.Entity("BLHX.Server.Common.Database.ResourceField", b =>
{
b.Property<int>("Type")
.HasColumnType("INTEGER");
b.Property<uint>("PlayerUid")
.HasColumnType("INTEGER");
b.Property<DateTime>("LastHarvestTime")
.HasColumnType("TEXT");
b.Property<uint>("Level")
.HasColumnType("INTEGER");
b.Property<DateTime>("UpgradeTime")
.HasColumnType("TEXT");
b.HasKey("Type", "PlayerUid");
b.HasIndex("PlayerUid");
b.ToTable("ResourceFields");
});
modelBuilder.Entity("BLHX.Server.Common.Database.PlayerResource", b =>
{
b.HasOne("BLHX.Server.Common.Database.Player", "Player")
.WithMany("Resources")
.HasForeignKey("PlayerUid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Player");
});
modelBuilder.Entity("BLHX.Server.Common.Database.PlayerShip", b =>
{
b.HasOne("BLHX.Server.Common.Database.Player", "Player")
.WithMany("Ships")
.HasForeignKey("PlayerUid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Player");
});
modelBuilder.Entity("BLHX.Server.Common.Database.ResourceField", b =>
{
b.HasOne("BLHX.Server.Common.Database.Player", "Player")
.WithMany("ResourceFields")
.HasForeignKey("PlayerUid")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Player");
});
modelBuilder.Entity("BLHX.Server.Common.Database.Player", b =>
{
b.Navigation("ResourceFields");
b.Navigation("Resources");
b.Navigation("Ships");
});
#pragma warning restore 612, 618
}
}
}

View File

@@ -0,0 +1,29 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BLHX.Server.Common.Migrations.Player
{
/// <inheritdoc />
public partial class ShipSkins : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "ShipSkins",
table: "Players",
type: "jsonb",
nullable: false,
defaultValue: "[]");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "ShipSkins",
table: "Players");
}
}
}

View File

@@ -56,6 +56,12 @@ namespace BLHX.Server.Common.Migrations.Player
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("ShipSkins")
.IsRequired()
.ValueGeneratedOnAdd()
.HasColumnType("jsonb")
.HasDefaultValue("[]");
b.Property<string>("Token")
.IsRequired()
.HasColumnType("TEXT");

File diff suppressed because it is too large Load Diff