//
// Licensed under the MIT License. See LICENSE file in the project root for full license information.
//
//------------------------------------------------------------------------------
//
// This source code was auto-generated by a roslyn code generator.
//
//------------------------------------------------------------------------------
// ReSharper disable All
namespace MUnique.OpenMU.Persistence.BasicModel;
using MUnique.OpenMU.Persistence.Json;
///
/// A plain implementation of .
///
public partial class ItemDropItemGroup : MUnique.OpenMU.DataModel.Configuration.ItemDropItemGroup, IIdentifiable, IConvertibleTo
{
///
/// Gets or sets the identifier of this instance.
///
public Guid Id { get; set; }
///
/// Gets the raw collection of .
///
[System.Text.Json.Serialization.JsonPropertyName("possibleItems")]
public ICollection RawPossibleItems { get; } = new List();
///
[System.Text.Json.Serialization.JsonIgnore]
public override ICollection PossibleItems
{
get => base.PossibleItems ??= new CollectionAdapter(this.RawPossibleItems);
protected set
{
this.PossibleItems.Clear();
foreach (var item in value)
{
this.PossibleItems.Add(item);
}
}
}
///
/// Gets the raw object of .
///
[System.Text.Json.Serialization.JsonPropertyName("monster")]
public MonsterDefinition RawMonster
{
get => base.Monster as MonsterDefinition;
set => base.Monster = value;
}
///
[System.Text.Json.Serialization.JsonIgnore]
public override MUnique.OpenMU.DataModel.Configuration.MonsterDefinition Monster
{
get => base.Monster;
set => base.Monster = value;
}
///
public override MUnique.OpenMU.DataModel.Configuration.ItemDropItemGroup Clone(MUnique.OpenMU.DataModel.Configuration.GameConfiguration gameConfiguration)
{
var clone = new ItemDropItemGroup();
clone.AssignValuesOf(this, gameConfiguration);
return clone;
}
///
public override void AssignValuesOf(MUnique.OpenMU.DataModel.Configuration.ItemDropItemGroup other, MUnique.OpenMU.DataModel.Configuration.GameConfiguration gameConfiguration)
{
base.AssignValuesOf(other, gameConfiguration);
this.Id = other.GetId();
}
///
public override bool Equals(object obj)
{
var baseObject = obj as IIdentifiable;
if (baseObject != null)
{
return baseObject.Id == this.Id;
}
return base.Equals(obj);
}
///
public override int GetHashCode()
{
return this.Id.GetHashCode();
}
///
public ItemDropItemGroup Convert() => this;
}