Merge pull request #825 from eduardosmaniotto/feature/configurable-npc-buffs
feature: configurable npc buffs (cherry picked from commit 6a061fcad756e644dadf3721e84e3cce2a25bceb)
This commit is contained in:
5288
src/Persistence/EntityFramework/Migrations/20260712014203_AddBuff.Designer.cs
generated
Normal file
5288
src/Persistence/EntityFramework/Migrations/20260712014203_AddBuff.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,66 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace MUnique.OpenMU.Persistence.EntityFramework.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class AddBuff : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Buff",
|
||||
schema: "config",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
||||
MagicEffectDefinitionId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||
MonsterDefinitionId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||
MinimumLevel = table.Column<int>(type: "integer", nullable: true),
|
||||
MaximumLevel = table.Column<int>(type: "integer", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Buff", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_Buff_MagicEffectDefinition_MagicEffectDefinitionId",
|
||||
column: x => x.MagicEffectDefinitionId,
|
||||
principalSchema: "config",
|
||||
principalTable: "MagicEffectDefinition",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_Buff_MonsterDefinition_MonsterDefinitionId",
|
||||
column: x => x.MonsterDefinitionId,
|
||||
principalSchema: "config",
|
||||
principalTable: "MonsterDefinition",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Buff_MagicEffectDefinitionId",
|
||||
schema: "config",
|
||||
table: "Buff",
|
||||
column: "MagicEffectDefinitionId",
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Buff_MonsterDefinitionId",
|
||||
schema: "config",
|
||||
table: "Buff",
|
||||
column: "MonsterDefinitionId");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "Buff",
|
||||
schema: "config");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -347,6 +347,34 @@ namespace MUnique.OpenMU.Persistence.EntityFramework.Migrations
|
||||
b.ToTable("BattleZoneDefinition", "config");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("MUnique.OpenMU.Persistence.EntityFramework.Model.Buff", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.Property<Guid?>("MagicEffectDefinitionId")
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.Property<int?>("MaximumLevel")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int?>("MinimumLevel")
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<Guid?>("MonsterDefinitionId")
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("MagicEffectDefinitionId")
|
||||
.IsUnique();
|
||||
|
||||
b.HasIndex("MonsterDefinitionId");
|
||||
|
||||
b.ToTable("Buff", "config");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("MUnique.OpenMU.Persistence.EntityFramework.Model.Character", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
@@ -3592,6 +3620,21 @@ namespace MUnique.OpenMU.Persistence.EntityFramework.Migrations
|
||||
b.Navigation("RawRightGoal");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("MUnique.OpenMU.Persistence.EntityFramework.Model.Buff", b =>
|
||||
{
|
||||
b.HasOne("MUnique.OpenMU.Persistence.EntityFramework.Model.MagicEffectDefinition", "RawMagicEffectDefinition")
|
||||
.WithOne()
|
||||
.HasForeignKey("MUnique.OpenMU.Persistence.EntityFramework.Model.Buff", "MagicEffectDefinitionId")
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
|
||||
b.HasOne("MUnique.OpenMU.Persistence.EntityFramework.Model.MonsterDefinition", null)
|
||||
.WithMany("RawBuffs")
|
||||
.HasForeignKey("MonsterDefinitionId")
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
|
||||
b.Navigation("RawMagicEffectDefinition");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("MUnique.OpenMU.Persistence.EntityFramework.Model.Character", b =>
|
||||
{
|
||||
b.HasOne("MUnique.OpenMU.Persistence.EntityFramework.Model.Account", null)
|
||||
@@ -5193,6 +5236,8 @@ namespace MUnique.OpenMU.Persistence.EntityFramework.Migrations
|
||||
|
||||
b.Navigation("RawAttributes");
|
||||
|
||||
b.Navigation("RawBuffs");
|
||||
|
||||
b.Navigation("RawItemCraftings");
|
||||
|
||||
b.Navigation("RawQuests");
|
||||
|
||||
91
src/Persistence/EntityFramework/Model/Buff.Generated.cs
Normal file
91
src/Persistence/EntityFramework/Model/Buff.Generated.cs
Normal file
@@ -0,0 +1,91 @@
|
||||
// <copyright file="Buff.Generated.cs" company="MUnique">
|
||||
// Licensed under the MIT License. See LICENSE file in the project root for full license information.
|
||||
// </copyright>
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This source code was auto-generated by a roslyn code generator.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
// ReSharper disable All
|
||||
|
||||
namespace MUnique.OpenMU.Persistence.EntityFramework.Model;
|
||||
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using MUnique.OpenMU.Persistence;
|
||||
|
||||
/// <summary>
|
||||
/// The Entity Framework Core implementation of <see cref="MUnique.OpenMU.DataModel.Configuration.Buff"/>.
|
||||
/// </summary>
|
||||
[Table(nameof(Buff), Schema = SchemaNames.Configuration)]
|
||||
internal partial class Buff : MUnique.OpenMU.DataModel.Configuration.Buff, IIdentifiable
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the identifier of this instance.
|
||||
/// </summary>
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the identifier of <see cref="MagicEffectDefinition"/>.
|
||||
/// </summary>
|
||||
public Guid? MagicEffectDefinitionId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the raw object of <see cref="MagicEffectDefinition" />.
|
||||
/// </summary>
|
||||
[ForeignKey(nameof(MagicEffectDefinitionId))]
|
||||
public MagicEffectDefinition RawMagicEffectDefinition
|
||||
{
|
||||
get => base.MagicEffectDefinition as MagicEffectDefinition;
|
||||
set => base.MagicEffectDefinition = value;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
[NotMapped]
|
||||
public override MUnique.OpenMU.DataModel.Configuration.MagicEffectDefinition MagicEffectDefinition
|
||||
{
|
||||
get => base.MagicEffectDefinition;set
|
||||
{
|
||||
base.MagicEffectDefinition = value;
|
||||
this.MagicEffectDefinitionId = this.RawMagicEffectDefinition?.Id;
|
||||
}
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override MUnique.OpenMU.DataModel.Configuration.Buff Clone(MUnique.OpenMU.DataModel.Configuration.GameConfiguration gameConfiguration)
|
||||
{
|
||||
var clone = new Buff();
|
||||
clone.AssignValuesOf(this, gameConfiguration);
|
||||
return clone;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void AssignValuesOf(MUnique.OpenMU.DataModel.Configuration.Buff other, MUnique.OpenMU.DataModel.Configuration.GameConfiguration gameConfiguration)
|
||||
{
|
||||
base.AssignValuesOf(other, gameConfiguration);
|
||||
this.Id = other.GetId();
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
var baseObject = obj as IIdentifiable;
|
||||
if (baseObject != null)
|
||||
{
|
||||
return baseObject.Id == this.Id;
|
||||
}
|
||||
|
||||
return base.Equals(obj);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return this.Id.GetHashCode();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -40,6 +40,7 @@ public class ExtendedTypeContext : Microsoft.EntityFrameworkCore.DbContext
|
||||
modelBuilder.Ignore<MUnique.OpenMU.DataModel.Entities.SkillEntry>();
|
||||
modelBuilder.Ignore<MUnique.OpenMU.DataModel.Configuration.AreaSkillSettings>();
|
||||
modelBuilder.Ignore<MUnique.OpenMU.DataModel.Configuration.BattleZoneDefinition>();
|
||||
modelBuilder.Ignore<MUnique.OpenMU.DataModel.Configuration.Buff>();
|
||||
modelBuilder.Ignore<MUnique.OpenMU.DataModel.Configuration.CharacterClass>();
|
||||
modelBuilder.Ignore<MUnique.OpenMU.DataModel.Configuration.ChatServerDefinition>();
|
||||
modelBuilder.Ignore<MUnique.OpenMU.DataModel.Configuration.ChatServerEndpoint>();
|
||||
@@ -129,6 +130,7 @@ public class ExtendedTypeContext : Microsoft.EntityFrameworkCore.DbContext
|
||||
modelBuilder.Entity<BattleZoneDefinition>().HasOne(entity => entity.RawGround).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<BattleZoneDefinition>().HasOne(entity => entity.RawLeftGoal).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<BattleZoneDefinition>().HasOne(entity => entity.RawRightGoal).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<Buff>().HasOne(entity => entity.RawMagicEffectDefinition).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<CharacterClass>().HasMany(entity => entity.RawStatAttributes).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<CharacterClass>().HasMany(entity => entity.RawAttributeCombinations).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<CharacterClass>().HasMany(entity => entity.RawBaseAttributeValues).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
@@ -179,6 +181,7 @@ public class ExtendedTypeContext : Microsoft.EntityFrameworkCore.DbContext
|
||||
modelBuilder.Entity<MonsterDefinition>().HasMany(entity => entity.RawItemCraftings).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<MonsterDefinition>().HasMany(entity => entity.RawAttributes).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<MonsterDefinition>().HasMany(entity => entity.RawQuests).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<MonsterDefinition>().HasMany(entity => entity.RawBuffs).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<Skill>().HasMany(entity => entity.RawRequirements).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<Skill>().HasMany(entity => entity.RawConsumeRequirements).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
modelBuilder.Entity<Skill>().HasMany(entity => entity.RawAttributeRelationships).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
|
||||
@@ -83,6 +83,9 @@ public static class MapsterConfigurator
|
||||
Mapster.TypeAdapterConfig.GlobalSettings.NewConfig<MUnique.OpenMU.DataModel.Configuration.BattleZoneDefinition, MUnique.OpenMU.DataModel.Configuration.BattleZoneDefinition>()
|
||||
.Include<BattleZoneDefinition, BasicModel.BattleZoneDefinition>();
|
||||
|
||||
Mapster.TypeAdapterConfig.GlobalSettings.NewConfig<MUnique.OpenMU.DataModel.Configuration.Buff, MUnique.OpenMU.DataModel.Configuration.Buff>()
|
||||
.Include<Buff, BasicModel.Buff>();
|
||||
|
||||
Mapster.TypeAdapterConfig.GlobalSettings.NewConfig<MUnique.OpenMU.DataModel.Configuration.CharacterClass, MUnique.OpenMU.DataModel.Configuration.CharacterClass>()
|
||||
.Include<CharacterClass, BasicModel.CharacterClass>();
|
||||
|
||||
|
||||
@@ -60,6 +60,15 @@ internal partial class MonsterDefinition : MUnique.OpenMU.DataModel.Configuratio
|
||||
[NotMapped]
|
||||
public override ICollection<MUnique.OpenMU.DataModel.Configuration.Quests.QuestDefinition> Quests => base.Quests ??= new CollectionAdapter<MUnique.OpenMU.DataModel.Configuration.Quests.QuestDefinition, QuestDefinition>(this.RawQuests);
|
||||
|
||||
/// <summary>
|
||||
/// Gets the raw collection of <see cref="Buffs" />.
|
||||
/// </summary>
|
||||
public ICollection<Buff> RawBuffs { get; } = new EntityFramework.List<Buff>();
|
||||
|
||||
/// <inheritdoc/>
|
||||
[NotMapped]
|
||||
public override ICollection<MUnique.OpenMU.DataModel.Configuration.Buff> Buffs => base.Buffs ??= new CollectionAdapter<MUnique.OpenMU.DataModel.Configuration.Buff, Buff>(this.RawBuffs);
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the identifier of <see cref="AttackSkill"/>.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user