diff --git a/Intersect.Server/Migrations/MySql/Game/20240330154744_ItemEventTriggerMigration.Designer.cs b/Intersect.Server/Migrations/MySql/Game/20240330154744_ItemEventTriggerMigration.Designer.cs new file mode 100644 index 0000000000..5b748ff106 --- /dev/null +++ b/Intersect.Server/Migrations/MySql/Game/20240330154744_ItemEventTriggerMigration.Designer.cs @@ -0,0 +1,1777 @@ +// +using System; +using Intersect.Server.Database.GameData; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Intersect.Server.Migrations.MySql.Game +{ + [DbContext(typeof(MySqlGameContext))] + [Migration("20240330154744_ItemEventTriggerMigration")] + partial class ItemEventTriggerMigration + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.11") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("Intersect.GameObjects.AnimationBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CompleteSound") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("Sound") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Animations"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ClassBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("AttackSpriteOverride") + .HasColumnType("longtext"); + + b.Property("BaseExp") + .HasColumnType("bigint"); + + b.Property("BasePoints") + .HasColumnType("int"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("ExpIncrease") + .HasColumnType("bigint"); + + b.Property("ExpOverridesJson") + .HasColumnType("longtext") + .HasColumnName("ExperienceOverrides"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("IncreasePercentage") + .HasColumnType("tinyint(1)"); + + b.Property("JsonBaseStats") + .HasColumnType("longtext") + .HasColumnName("BaseStats"); + + b.Property("JsonBaseVitals") + .HasColumnType("longtext") + .HasColumnName("BaseVitals"); + + b.Property("JsonItems") + .HasColumnType("longtext") + .HasColumnName("Items"); + + b.Property("JsonSpells") + .HasColumnType("longtext") + .HasColumnName("Spells"); + + b.Property("JsonSprites") + .HasColumnType("longtext") + .HasColumnName("Sprites"); + + b.Property("Locked") + .HasColumnType("tinyint(1)"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PointIncrease") + .HasColumnType("int"); + + b.Property("RegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalRegen"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SpawnDir") + .HasColumnType("int"); + + b.Property("SpawnMapId") + .HasColumnType("char(36)") + .HasColumnName("SpawnMap") + .UseCollation("ascii_general_ci"); + + b.Property("SpawnX") + .HasColumnType("int"); + + b.Property("SpawnY") + .HasColumnType("int"); + + b.Property("StatIncreaseJson") + .HasColumnType("longtext") + .HasColumnName("StatIncreases"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("VitalIncreaseJson") + .HasColumnType("longtext") + .HasColumnName("VitalIncreases"); + + b.HasKey("Id"); + + b.ToTable("Classes"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Crafting.CraftBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("FailureChance") + .HasColumnType("int"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("IngredientsJson") + .HasColumnType("longtext") + .HasColumnName("Ingredients"); + + b.Property("ItemId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("ItemLossChance") + .HasColumnType("int"); + + b.Property("JsonCraftingRequirements") + .HasColumnType("longtext") + .HasColumnName("CraftingRequirements"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("Quantity") + .HasColumnType("int"); + + b.Property("Time") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Crafts"); + }); + + modelBuilder.Entity("Intersect.GameObjects.CraftingTableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CraftsJson") + .HasColumnType("longtext") + .HasColumnName("Crafts"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("CraftingTables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.EquipmentProperties", b => + { + b.Property("DescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.HasKey("DescriptorId"); + + b.ToTable("Items_EquipmentProperties"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Events.EventBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CommonEvent") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Global") + .HasColumnType("tinyint(1)"); + + b.Property("MapId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PagesJson") + .HasColumnType("longtext") + .HasColumnName("Pages"); + + b.Property("SpawnX") + .HasColumnType("int"); + + b.Property("SpawnY") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Intersect.GameObjects.GuildVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("GuildVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AnimationId") + .HasColumnType("char(36)") + .HasColumnName("Animation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("BlockAbsorption") + .HasColumnType("int"); + + b.Property("BlockAmount") + .HasColumnType("int"); + + b.Property("BlockChance") + .HasColumnType("int"); + + b.Property("CanBag") + .HasColumnType("tinyint(1)"); + + b.Property("CanBank") + .HasColumnType("tinyint(1)"); + + b.Property("CanDrop") + .HasColumnType("tinyint(1)") + .HasColumnName("Bound"); + + b.Property("CanGuildBank") + .HasColumnType("tinyint(1)"); + + b.Property("CanSell") + .HasColumnType("tinyint(1)"); + + b.Property("CanTrade") + .HasColumnType("tinyint(1)"); + + b.Property("CannotUseMessage") + .HasColumnType("longtext"); + + b.Property("Cooldown") + .HasColumnType("int"); + + b.Property("CooldownGroup") + .HasColumnType("longtext"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("DespawnTime") + .HasColumnType("bigint"); + + b.Property("DropChanceOnDeath") + .HasColumnType("int"); + + b.Property("EffectsJson") + .HasColumnType("longtext") + .HasColumnName("Effects"); + + b.Property("EquipmentAnimationId") + .HasColumnType("char(36)") + .HasColumnName("EquipmentAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("EquipmentSlot") + .HasColumnType("int"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("EventTriggersJson") + .HasColumnType("longtext") + .HasColumnName("EventTriggers"); + + b.Property("FemalePaperdoll") + .HasColumnType("longtext"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Icon") + .HasColumnType("longtext"); + + b.Property("IgnoreCooldownReduction") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreGlobalCooldown") + .HasColumnType("tinyint(1)"); + + b.Property("ItemType") + .HasColumnType("int"); + + b.Property("JsonColor") + .HasColumnType("longtext") + .HasColumnName("Color"); + + b.Property("JsonUsageRequirements") + .HasColumnType("longtext") + .HasColumnName("UsageRequirements"); + + b.Property("MalePaperdoll") + .HasColumnType("longtext"); + + b.Property("MaxBankStack") + .HasColumnType("int"); + + b.Property("MaxInventoryStack") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PercentageStatsJson") + .HasColumnType("longtext") + .HasColumnName("PercentageStatsGiven"); + + b.Property("PercentageVitalsJson") + .HasColumnType("longtext") + .HasColumnName("PercentageVitalsGiven"); + + b.Property("Price") + .HasColumnType("int"); + + b.Property("ProjectileId") + .HasColumnType("char(36)") + .HasColumnName("Projectile") + .UseCollation("ascii_general_ci"); + + b.Property("QuickCast") + .HasColumnType("tinyint(1)"); + + b.Property("Rarity") + .HasColumnType("int"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SingleUse") + .HasColumnType("tinyint(1)") + .HasColumnName("DestroySpell"); + + b.Property("SlotCount") + .HasColumnType("int"); + + b.Property("Speed") + .HasColumnType("int"); + + b.Property("SpellId") + .HasColumnType("char(36)") + .HasColumnName("Spell") + .UseCollation("ascii_general_ci"); + + b.Property("Stackable") + .HasColumnType("tinyint(1)"); + + b.Property("StatsJson") + .HasColumnType("longtext") + .HasColumnName("StatsGiven"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Tool") + .HasColumnType("int"); + + b.Property("TwoHanded") + .HasColumnType("tinyint(1)"); + + b.Property("VitalsJson") + .HasColumnType("longtext") + .HasColumnName("VitalsGiven"); + + b.Property("VitalsRegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalsRegen"); + + b.Property("WeaponSpriteOverride") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.ToTable("Items"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Maps.MapList.MapList", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("JsonData") + .HasColumnType("longtext") + .HasColumnName("JsonData"); + + b.HasKey("Id"); + + b.ToTable("MapFolders"); + }); + + modelBuilder.Entity("Intersect.GameObjects.NpcBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Aggressive") + .HasColumnType("tinyint(1)"); + + b.Property("AttackAllies") + .HasColumnType("tinyint(1)"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackOnSightConditionsJson") + .HasColumnType("longtext") + .HasColumnName("AttackOnSightConditions"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("CraftsJson") + .HasColumnType("longtext") + .HasColumnName("Spells"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("Experience") + .HasColumnType("bigint"); + + b.Property("FleeHealthPercentage") + .HasColumnType("tinyint unsigned"); + + b.Property("FocusHighestDamageDealer") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("ImmunitiesJson") + .HasColumnType("longtext") + .HasColumnName("Immunities"); + + b.Property("IndividualizedLoot") + .HasColumnType("tinyint(1)"); + + b.Property("JsonAggroList") + .HasColumnType("longtext") + .HasColumnName("AggroList"); + + b.Property("JsonColor") + .HasColumnType("longtext") + .HasColumnName("Color"); + + b.Property("JsonDrops") + .HasColumnType("longtext") + .HasColumnName("Drops"); + + b.Property("JsonMaxVital") + .HasColumnType("longtext") + .HasColumnName("MaxVital"); + + b.Property("JsonStat") + .HasColumnType("longtext") + .HasColumnName("Stats"); + + b.Property("Level") + .HasColumnType("int"); + + b.Property("Movement") + .HasColumnType("tinyint unsigned"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("NpcVsNpcEnabled") + .HasColumnType("tinyint(1)"); + + b.Property("OnDeathEventId") + .HasColumnType("char(36)") + .HasColumnName("OnDeathEvent") + .UseCollation("ascii_general_ci"); + + b.Property("OnDeathPartyEventId") + .HasColumnType("char(36)") + .HasColumnName("OnDeathPartyEvent") + .UseCollation("ascii_general_ci"); + + b.Property("PlayerCanAttackConditionsJson") + .HasColumnType("longtext") + .HasColumnName("PlayerCanAttackConditions"); + + b.Property("PlayerFriendConditionsJson") + .HasColumnType("longtext") + .HasColumnName("PlayerFriendConditions"); + + b.Property("RegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalRegen"); + + b.Property("ResetRadius") + .HasColumnType("int"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SightRange") + .HasColumnType("int"); + + b.Property("SpawnDuration") + .HasColumnType("int"); + + b.Property("SpellFrequency") + .HasColumnType("int"); + + b.Property("Sprite") + .HasColumnType("longtext"); + + b.Property("Swarm") + .HasColumnType("tinyint(1)"); + + b.Property("Tenacity") + .HasColumnType("double"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Npcs"); + }); + + modelBuilder.Entity("Intersect.GameObjects.PlayerVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("PlayerVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ProjectileBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AmmoItemId") + .HasColumnType("char(36)") + .HasColumnName("Ammo") + .UseCollation("ascii_general_ci"); + + b.Property("AmmoRequired") + .HasColumnType("int"); + + b.Property("AnimationsJson") + .HasColumnType("longtext") + .HasColumnName("Animations"); + + b.Property("Delay") + .HasColumnType("int"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("GrappleHook") + .HasColumnType("tinyint(1)"); + + b.Property("GrappleHookOptionsJson") + .HasColumnType("longtext") + .HasColumnName("GrappleHookOptions"); + + b.Property("IgnoreActiveResources") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreExhaustedResources") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreMapBlocks") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreZDimension") + .HasColumnType("tinyint(1)"); + + b.Property("Knockback") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PierceTarget") + .HasColumnType("tinyint(1)"); + + b.Property("Quantity") + .HasColumnType("int"); + + b.Property("Range") + .HasColumnType("int"); + + b.Property("SpawnsJson") + .HasColumnType("longtext") + .HasColumnName("SpawnLocations"); + + b.Property("Speed") + .HasColumnType("int"); + + b.Property("SpellId") + .HasColumnType("char(36)") + .HasColumnName("Spell") + .UseCollation("ascii_general_ci"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Projectiles"); + }); + + modelBuilder.Entity("Intersect.GameObjects.QuestBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("BeforeDescription") + .HasColumnType("longtext"); + + b.Property("CompletedCategory") + .HasColumnType("longtext"); + + b.Property("DoNotShowUnlessRequirementsMet") + .HasColumnType("tinyint(1)"); + + b.Property("EndDescription") + .HasColumnType("longtext"); + + b.Property("EndEventId") + .HasColumnType("char(36)") + .HasColumnName("EndEvent") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("InProgressCategory") + .HasColumnType("longtext"); + + b.Property("InProgressDescription") + .HasColumnType("longtext"); + + b.Property("JsonRequirements") + .HasColumnType("longtext") + .HasColumnName("Requirements"); + + b.Property("LogAfterComplete") + .HasColumnType("tinyint(1)"); + + b.Property("LogBeforeOffer") + .HasColumnType("tinyint(1)"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("OrderValue") + .HasColumnType("int"); + + b.Property("Quitable") + .HasColumnType("tinyint(1)"); + + b.Property("Repeatable") + .HasColumnType("tinyint(1)"); + + b.Property("StartDescription") + .HasColumnType("longtext"); + + b.Property("StartEventId") + .HasColumnType("char(36)") + .HasColumnName("StartEvent") + .UseCollation("ascii_general_ci"); + + b.Property("TasksJson") + .HasColumnType("longtext") + .HasColumnName("Tasks"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("UnstartedCategory") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.ToTable("Quests"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ResourceBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AnimationId") + .HasColumnType("char(36)") + .HasColumnName("Animation") + .UseCollation("ascii_general_ci"); + + b.Property("CannotHarvestMessage") + .HasColumnType("longtext"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("JsonDrops") + .HasColumnType("longtext") + .HasColumnName("Drops"); + + b.Property("JsonHarvestingRequirements") + .HasColumnType("longtext") + .HasColumnName("HarvestingRequirements"); + + b.Property("MaxHp") + .HasColumnType("int"); + + b.Property("MinHp") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SpawnDuration") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Tool") + .HasColumnType("int"); + + b.Property("VitalRegen") + .HasColumnType("int"); + + b.Property("WalkableAfter") + .HasColumnType("tinyint(1)"); + + b.Property("WalkableBefore") + .HasColumnType("tinyint(1)"); + + b.HasKey("Id"); + + b.ToTable("Resources"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ServerVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Json") + .HasColumnType("longtext") + .HasColumnName("Value"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("ServerVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ShopBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("BuySound") + .HasColumnType("longtext"); + + b.Property("BuyingWhitelist") + .HasColumnType("tinyint(1)"); + + b.Property("DefaultCurrencyId") + .HasColumnType("char(36)") + .HasColumnName("DefaultCurrency") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("JsonBuyingItems") + .HasColumnType("longtext") + .HasColumnName("BuyingItems"); + + b.Property("JsonSellingItems") + .HasColumnType("longtext") + .HasColumnName("SellingItems"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SellSound") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Shops"); + }); + + modelBuilder.Entity("Intersect.GameObjects.SpellBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Bound") + .HasColumnType("tinyint(1)"); + + b.Property("CannotCastMessage") + .HasColumnType("longtext"); + + b.Property("CastAnimationId") + .HasColumnType("char(36)") + .HasColumnName("CastAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("CastDuration") + .HasColumnType("int"); + + b.Property("CastSpriteOverride") + .HasColumnType("longtext"); + + b.Property("CooldownDuration") + .HasColumnType("int"); + + b.Property("CooldownGroup") + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("HitAnimationId") + .HasColumnType("char(36)") + .HasColumnName("HitAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("Icon") + .HasColumnType("longtext"); + + b.Property("IgnoreCooldownReduction") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreGlobalCooldown") + .HasColumnType("tinyint(1)"); + + b.Property("JsonCastRequirements") + .HasColumnType("longtext") + .HasColumnName("CastRequirements"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SpellType") + .HasColumnType("int"); + + b.Property("TickAnimationId") + .HasColumnType("char(36)") + .HasColumnName("TickAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("VitalCostJson") + .HasColumnType("longtext") + .HasColumnName("VitalCost"); + + b.HasKey("Id"); + + b.ToTable("Spells"); + }); + + modelBuilder.Entity("Intersect.GameObjects.TilesetBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Name") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Tilesets"); + }); + + modelBuilder.Entity("Intersect.GameObjects.TimeBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("DaylightHuesJson") + .HasColumnType("longtext") + .HasColumnName("DaylightHues"); + + b.Property("RangeInterval") + .HasColumnType("int"); + + b.Property("Rate") + .HasColumnType("float"); + + b.Property("SyncTime") + .HasColumnType("tinyint(1)"); + + b.HasKey("Id"); + + b.ToTable("Time"); + }); + + modelBuilder.Entity("Intersect.GameObjects.UserVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned") + .HasColumnName("DataType"); + + b.HasKey("Id"); + + b.ToTable("UserVariables"); + }); + + modelBuilder.Entity("Intersect.Server.Maps.MapController", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AHue") + .HasColumnType("int"); + + b.Property("AttributeData") + .HasColumnType("longblob") + .HasColumnName("Attributes"); + + b.Property("BHue") + .HasColumnType("int"); + + b.Property("Brightness") + .HasColumnType("int"); + + b.Property("Down") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("EventIdsJson") + .HasColumnType("longtext") + .HasColumnName("Events"); + + b.Property("Fog") + .HasColumnType("longtext"); + + b.Property("FogTransparency") + .HasColumnType("int"); + + b.Property("FogXSpeed") + .HasColumnType("int"); + + b.Property("FogYSpeed") + .HasColumnType("int"); + + b.Property("GHue") + .HasColumnType("int"); + + b.Property("HideEquipment") + .HasColumnType("tinyint(1)"); + + b.Property("IsIndoors") + .HasColumnType("tinyint(1)"); + + b.Property("Left") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("LightsJson") + .HasColumnType("longtext") + .HasColumnName("Lights"); + + b.Property("Music") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("NpcSpawnsJson") + .HasColumnType("longtext") + .HasColumnName("NpcSpawns"); + + b.Property("OverlayGraphic") + .HasColumnType("longtext"); + + b.Property("Panorama") + .HasColumnType("longtext"); + + b.Property("PlayerLightColorJson") + .HasColumnType("longtext") + .HasColumnName("PlayerLightColor"); + + b.Property("PlayerLightExpand") + .HasColumnType("float"); + + b.Property("PlayerLightIntensity") + .HasColumnType("tinyint unsigned"); + + b.Property("PlayerLightSize") + .HasColumnType("int"); + + b.Property("RHue") + .HasColumnType("int"); + + b.Property("Revision") + .HasColumnType("int"); + + b.Property("Right") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Sound") + .HasColumnType("longtext"); + + b.Property("TileData") + .HasColumnType("longblob"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Up") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("WeatherAnimationId") + .HasColumnType("char(36)") + .HasColumnName("WeatherAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("WeatherIntensity") + .HasColumnType("int"); + + b.Property("WeatherXSpeed") + .HasColumnType("int"); + + b.Property("WeatherYSpeed") + .HasColumnType("int"); + + b.Property("ZoneType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("Maps"); + }); + + modelBuilder.Entity("Intersect.GameObjects.AnimationBase", b => + { + b.OwnsOne("Intersect.GameObjects.AnimationLayer", "Lower", b1 => + { + b1.Property("AnimationBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("AlternateRenderLayer") + .HasColumnType("tinyint(1)"); + + b1.Property("DisableRotations") + .HasColumnType("tinyint(1)"); + + b1.Property("FrameCount") + .HasColumnType("int"); + + b1.Property("FrameSpeed") + .HasColumnType("int"); + + b1.Property("Light") + .HasColumnType("longtext"); + + b1.Property("LoopCount") + .HasColumnType("int"); + + b1.Property("Sprite") + .HasColumnType("longtext"); + + b1.Property("XFrames") + .HasColumnType("int"); + + b1.Property("YFrames") + .HasColumnType("int"); + + b1.HasKey("AnimationBaseId"); + + b1.ToTable("Animations"); + + b1.WithOwner() + .HasForeignKey("AnimationBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.AnimationLayer", "Upper", b1 => + { + b1.Property("AnimationBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("AlternateRenderLayer") + .HasColumnType("tinyint(1)"); + + b1.Property("DisableRotations") + .HasColumnType("tinyint(1)"); + + b1.Property("FrameCount") + .HasColumnType("int"); + + b1.Property("FrameSpeed") + .HasColumnType("int"); + + b1.Property("Light") + .HasColumnType("longtext"); + + b1.Property("LoopCount") + .HasColumnType("int"); + + b1.Property("Sprite") + .HasColumnType("longtext"); + + b1.Property("XFrames") + .HasColumnType("int"); + + b1.Property("YFrames") + .HasColumnType("int"); + + b1.HasKey("AnimationBaseId"); + + b1.ToTable("Animations"); + + b1.WithOwner() + .HasForeignKey("AnimationBaseId"); + }); + + b.Navigation("Lower"); + + b.Navigation("Upper"); + }); + + modelBuilder.Entity("Intersect.GameObjects.EquipmentProperties", b => + { + b.HasOne("Intersect.GameObjects.ItemBase", "Descriptor") + .WithOne("EquipmentProperties") + .HasForeignKey("Intersect.GameObjects.EquipmentProperties", "DescriptorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_AbilityPower", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Attack", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Defense", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_MagicResist", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Speed", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.Navigation("Descriptor"); + + b.Navigation("StatRange_AbilityPower"); + + b.Navigation("StatRange_Attack"); + + b.Navigation("StatRange_Defense"); + + b.Navigation("StatRange_MagicResist"); + + b.Navigation("StatRange_Speed"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.OwnsOne("Intersect.GameObjects.ConsumableData", "Consumable", b1 => + { + b1.Property("ItemBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Percentage") + .HasColumnType("int"); + + b1.Property("Type") + .HasColumnType("tinyint unsigned"); + + b1.Property("Value") + .HasColumnType("int"); + + b1.HasKey("ItemBaseId"); + + b1.ToTable("Items"); + + b1.WithOwner() + .HasForeignKey("ItemBaseId"); + }); + + b.Navigation("Consumable"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ResourceBase", b => + { + b.OwnsOne("Intersect.GameObjects.ResourceState", "Exhausted", b1 => + { + b1.Property("ResourceBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Graphic") + .HasColumnType("longtext"); + + b1.Property("GraphicFromTileset") + .HasColumnType("tinyint(1)"); + + b1.Property("Height") + .HasColumnType("int"); + + b1.Property("RenderBelowEntities") + .HasColumnType("tinyint(1)"); + + b1.Property("Width") + .HasColumnType("int"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("ResourceBaseId"); + + b1.ToTable("Resources"); + + b1.WithOwner() + .HasForeignKey("ResourceBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.ResourceState", "Initial", b1 => + { + b1.Property("ResourceBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Graphic") + .HasColumnType("longtext"); + + b1.Property("GraphicFromTileset") + .HasColumnType("tinyint(1)"); + + b1.Property("Height") + .HasColumnType("int"); + + b1.Property("RenderBelowEntities") + .HasColumnType("tinyint(1)"); + + b1.Property("Width") + .HasColumnType("int"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("ResourceBaseId"); + + b1.ToTable("Resources"); + + b1.WithOwner() + .HasForeignKey("ResourceBaseId"); + }); + + b.Navigation("Exhausted"); + + b.Navigation("Initial"); + }); + + modelBuilder.Entity("Intersect.GameObjects.SpellBase", b => + { + b.OwnsOne("Intersect.GameObjects.SpellCombatData", "Combat", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("CastRange") + .HasColumnType("int"); + + b1.Property("CritChance") + .HasColumnType("int"); + + b1.Property("CritMultiplier") + .HasColumnType("double"); + + b1.Property("DamageType") + .HasColumnType("int"); + + b1.Property("Duration") + .HasColumnType("int"); + + b1.Property("Effect") + .HasColumnType("int"); + + b1.Property("Friendly") + .HasColumnType("tinyint(1)"); + + b1.Property("HitRadius") + .HasColumnType("int"); + + b1.Property("HoTDoT") + .HasColumnType("tinyint(1)"); + + b1.Property("HotDotInterval") + .HasColumnType("int"); + + b1.Property("OnHitDuration") + .HasColumnType("int") + .HasColumnName("OnHit"); + + b1.Property("PercentageStatDiffJson") + .HasColumnType("longtext") + .HasColumnName("PercentageStatDiff"); + + b1.Property("ProjectileId") + .HasColumnType("char(36)") + .HasColumnName("Projectile") + .UseCollation("ascii_general_ci"); + + b1.Property("Scaling") + .HasColumnType("int"); + + b1.Property("ScalingStat") + .HasColumnType("int"); + + b1.Property("StatDiffJson") + .HasColumnType("longtext") + .HasColumnName("StatDiff"); + + b1.Property("TargetType") + .HasColumnType("int"); + + b1.Property("TransformSprite") + .HasColumnType("longtext"); + + b1.Property("TrapDuration") + .HasColumnType("int") + .HasColumnName("Trap"); + + b1.Property("VitalDiffJson") + .HasColumnType("longtext") + .HasColumnName("VitalDiff"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.SpellDashOpts", "Dash", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("IgnoreActiveResources") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreInactiveResources") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreMapBlocks") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreZDimensionAttributes") + .HasColumnType("tinyint(1)"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.SpellWarpData", "Warp", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Dir") + .HasColumnType("int"); + + b1.Property("MapId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.Navigation("Combat"); + + b.Navigation("Dash"); + + b.Navigation("Warp"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.Navigation("EquipmentProperties"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Intersect.Server/Migrations/MySql/Game/20240330154744_ItemEventTriggerMigration.cs b/Intersect.Server/Migrations/MySql/Game/20240330154744_ItemEventTriggerMigration.cs new file mode 100644 index 0000000000..b209a86d53 --- /dev/null +++ b/Intersect.Server/Migrations/MySql/Game/20240330154744_ItemEventTriggerMigration.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Intersect.Server.Migrations.MySql.Game +{ + /// + public partial class ItemEventTriggerMigration : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "EventTriggers", + table: "Items", + type: "longtext", + nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "EventTriggers", + table: "Items"); + } + } +} diff --git a/Intersect.Server/Migrations/MySql/Game/20240515000000_LongValueType.Designer.cs b/Intersect.Server/Migrations/MySql/Game/20240515000000_LongValueType.Designer.cs new file mode 100644 index 0000000000..a78534761a --- /dev/null +++ b/Intersect.Server/Migrations/MySql/Game/20240515000000_LongValueType.Designer.cs @@ -0,0 +1,1783 @@ +// +using System; +using Intersect.Server.Database.GameData; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Intersect.Server.Migrations.MySql.Game +{ + [DbContext(typeof(MySqlGameContext))] + [Migration("20240515000000_LongValueType")] + partial class LongValueType + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.11") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("Intersect.GameObjects.AnimationBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CompleteSound") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("Sound") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Animations"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ClassBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("AttackSpriteOverride") + .HasColumnType("longtext"); + + b.Property("BaseExp") + .HasColumnType("bigint"); + + b.Property("BasePoints") + .HasColumnType("int"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("ExpIncrease") + .HasColumnType("bigint"); + + b.Property("ExpOverridesJson") + .HasColumnType("longtext") + .HasColumnName("ExperienceOverrides"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("IncreasePercentage") + .HasColumnType("tinyint(1)"); + + b.Property("JsonBaseStats") + .HasColumnType("longtext") + .HasColumnName("BaseStats"); + + b.Property("JsonBaseVitals") + .HasColumnType("longtext") + .HasColumnName("BaseVitals"); + + b.Property("JsonItems") + .HasColumnType("longtext") + .HasColumnName("Items"); + + b.Property("JsonSpells") + .HasColumnType("longtext") + .HasColumnName("Spells"); + + b.Property("JsonSprites") + .HasColumnType("longtext") + .HasColumnName("Sprites"); + + b.Property("Locked") + .HasColumnType("tinyint(1)"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PointIncrease") + .HasColumnType("int"); + + b.Property("RegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalRegen"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SpawnDir") + .HasColumnType("int"); + + b.Property("SpawnMapId") + .HasColumnType("char(36)") + .HasColumnName("SpawnMap") + .UseCollation("ascii_general_ci"); + + b.Property("SpawnX") + .HasColumnType("int"); + + b.Property("SpawnY") + .HasColumnType("int"); + + b.Property("StatIncreaseJson") + .HasColumnType("longtext") + .HasColumnName("StatIncreases"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("VitalIncreaseJson") + .HasColumnType("longtext") + .HasColumnName("VitalIncreases"); + + b.HasKey("Id"); + + b.ToTable("Classes"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Crafting.CraftBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("FailureChance") + .HasColumnType("int"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("IngredientsJson") + .HasColumnType("longtext") + .HasColumnName("Ingredients"); + + b.Property("ItemId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("ItemLossChance") + .HasColumnType("int"); + + b.Property("JsonCraftingRequirements") + .HasColumnType("longtext") + .HasColumnName("CraftingRequirements"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("Quantity") + .HasColumnType("int"); + + b.Property("Time") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Crafts"); + }); + + modelBuilder.Entity("Intersect.GameObjects.CraftingTableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CraftsJson") + .HasColumnType("longtext") + .HasColumnName("Crafts"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("CraftingTables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.EquipmentProperties", b => + { + b.Property("DescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.HasKey("DescriptorId"); + + b.ToTable("Items_EquipmentProperties"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Events.EventBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CommonEvent") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Global") + .HasColumnType("tinyint(1)"); + + b.Property("MapId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PagesJson") + .HasColumnType("longtext") + .HasColumnName("Pages"); + + b.Property("SpawnX") + .HasColumnType("int"); + + b.Property("SpawnY") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Intersect.GameObjects.GuildVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("GuildVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AnimationId") + .HasColumnType("char(36)") + .HasColumnName("Animation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("BlockAbsorption") + .HasColumnType("int"); + + b.Property("BlockAmount") + .HasColumnType("int"); + + b.Property("BlockChance") + .HasColumnType("int"); + + b.Property("CanBag") + .HasColumnType("tinyint(1)"); + + b.Property("CanBank") + .HasColumnType("tinyint(1)"); + + b.Property("CanDrop") + .HasColumnType("tinyint(1)") + .HasColumnName("Bound"); + + b.Property("CanGuildBank") + .HasColumnType("tinyint(1)"); + + b.Property("CanSell") + .HasColumnType("tinyint(1)"); + + b.Property("CanTrade") + .HasColumnType("tinyint(1)"); + + b.Property("CannotUseMessage") + .HasColumnType("longtext"); + + b.Property("Cooldown") + .HasColumnType("int"); + + b.Property("CooldownGroup") + .HasColumnType("longtext"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("DespawnTime") + .HasColumnType("bigint"); + + b.Property("DropChanceOnDeath") + .HasColumnType("int"); + + b.Property("EffectsJson") + .HasColumnType("longtext") + .HasColumnName("Effects"); + + b.Property("EquipmentAnimationId") + .HasColumnType("char(36)") + .HasColumnName("EquipmentAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("EquipmentSlot") + .HasColumnType("int"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("EventTriggersJson") + .HasColumnType("longtext") + .HasColumnName("EventTriggers"); + + b.Property("FemalePaperdoll") + .HasColumnType("longtext"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Icon") + .HasColumnType("longtext"); + + b.Property("IgnoreCooldownReduction") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreGlobalCooldown") + .HasColumnType("tinyint(1)"); + + b.Property("ItemType") + .HasColumnType("int"); + + b.Property("JsonColor") + .HasColumnType("longtext") + .HasColumnName("Color"); + + b.Property("JsonUsageRequirements") + .HasColumnType("longtext") + .HasColumnName("UsageRequirements"); + + b.Property("MalePaperdoll") + .HasColumnType("longtext"); + + b.Property("MaxBankStack") + .HasColumnType("int"); + + b.Property("MaxInventoryStack") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PercentageStatsJson") + .HasColumnType("longtext") + .HasColumnName("PercentageStatsGiven"); + + b.Property("PercentageVitalsJson") + .HasColumnType("longtext") + .HasColumnName("PercentageVitalsGiven"); + + b.Property("Price") + .HasColumnType("int"); + + b.Property("ProjectileId") + .HasColumnType("char(36)") + .HasColumnName("Projectile") + .UseCollation("ascii_general_ci"); + + b.Property("QuickCast") + .HasColumnType("tinyint(1)"); + + b.Property("Rarity") + .HasColumnType("int"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SingleUse") + .HasColumnType("tinyint(1)") + .HasColumnName("DestroySpell"); + + b.Property("SlotCount") + .HasColumnType("int"); + + b.Property("Speed") + .HasColumnType("int"); + + b.Property("SpellId") + .HasColumnType("char(36)") + .HasColumnName("Spell") + .UseCollation("ascii_general_ci"); + + b.Property("Stackable") + .HasColumnType("tinyint(1)"); + + b.Property("StatsJson") + .HasColumnType("longtext") + .HasColumnName("StatsGiven"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Tool") + .HasColumnType("int"); + + b.Property("TwoHanded") + .HasColumnType("tinyint(1)"); + + b.Property("VitalsJson") + .HasColumnType("longtext") + .HasColumnName("VitalsGiven"); + + b.Property("VitalsRegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalsRegen"); + + b.Property("WeaponSpriteOverride") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.ToTable("Items"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Maps.MapList.MapList", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("JsonData") + .HasColumnType("longtext") + .HasColumnName("JsonData"); + + b.HasKey("Id"); + + b.ToTable("MapFolders"); + }); + + modelBuilder.Entity("Intersect.GameObjects.NpcBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Aggressive") + .HasColumnType("tinyint(1)"); + + b.Property("AttackAllies") + .HasColumnType("tinyint(1)"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackOnSightConditionsJson") + .HasColumnType("longtext") + .HasColumnName("AttackOnSightConditions"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("CraftsJson") + .HasColumnType("longtext") + .HasColumnName("Spells"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("Experience") + .HasColumnType("bigint"); + + b.Property("FleeHealthPercentage") + .HasColumnType("tinyint unsigned"); + + b.Property("FocusHighestDamageDealer") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("ImmunitiesJson") + .HasColumnType("longtext") + .HasColumnName("Immunities"); + + b.Property("IndividualizedLoot") + .HasColumnType("tinyint(1)"); + + b.Property("JsonAggroList") + .HasColumnType("longtext") + .HasColumnName("AggroList"); + + b.Property("JsonColor") + .HasColumnType("longtext") + .HasColumnName("Color"); + + b.Property("JsonDrops") + .HasColumnType("longtext") + .HasColumnName("Drops"); + + b.Property("JsonMaxVital") + .HasColumnType("longtext") + .HasColumnName("MaxVital"); + + b.Property("JsonStat") + .HasColumnType("longtext") + .HasColumnName("Stats"); + + b.Property("Level") + .HasColumnType("int"); + + b.Property("Movement") + .HasColumnType("tinyint unsigned"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("NpcVsNpcEnabled") + .HasColumnType("tinyint(1)"); + + b.Property("OnDeathEventId") + .HasColumnType("char(36)") + .HasColumnName("OnDeathEvent") + .UseCollation("ascii_general_ci"); + + b.Property("OnDeathPartyEventId") + .HasColumnType("char(36)") + .HasColumnName("OnDeathPartyEvent") + .UseCollation("ascii_general_ci"); + + b.Property("PlayerCanAttackConditionsJson") + .HasColumnType("longtext") + .HasColumnName("PlayerCanAttackConditions"); + + b.Property("PlayerFriendConditionsJson") + .HasColumnType("longtext") + .HasColumnName("PlayerFriendConditions"); + + b.Property("RegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalRegen"); + + b.Property("ResetRadius") + .HasColumnType("int"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SightRange") + .HasColumnType("int"); + + b.Property("SpawnDuration") + .HasColumnType("int"); + + b.Property("SpellFrequency") + .HasColumnType("int"); + + b.Property("Sprite") + .HasColumnType("longtext"); + + b.Property("Swarm") + .HasColumnType("tinyint(1)"); + + b.Property("Tenacity") + .HasColumnType("double"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Npcs"); + }); + + modelBuilder.Entity("Intersect.GameObjects.PlayerVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("PlayerVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ProjectileBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AmmoItemId") + .HasColumnType("char(36)") + .HasColumnName("Ammo") + .UseCollation("ascii_general_ci"); + + b.Property("AmmoRequired") + .HasColumnType("int"); + + b.Property("AnimationsJson") + .HasColumnType("longtext") + .HasColumnName("Animations"); + + b.Property("Delay") + .HasColumnType("int"); + + b.Property("DirectShotBehavior") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("GrappleHook") + .HasColumnType("tinyint(1)"); + + b.Property("GrappleHookOptionsJson") + .HasColumnType("longtext") + .HasColumnName("GrappleHookOptions"); + + b.Property("HomingBehavior") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreActiveResources") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreExhaustedResources") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreMapBlocks") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreZDimension") + .HasColumnType("tinyint(1)"); + + b.Property("Knockback") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PierceTarget") + .HasColumnType("tinyint(1)"); + + b.Property("Quantity") + .HasColumnType("int"); + + b.Property("Range") + .HasColumnType("int"); + + b.Property("SpawnsJson") + .HasColumnType("longtext") + .HasColumnName("SpawnLocations"); + + b.Property("Speed") + .HasColumnType("int"); + + b.Property("SpellId") + .HasColumnType("char(36)") + .HasColumnName("Spell") + .UseCollation("ascii_general_ci"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Projectiles"); + }); + + modelBuilder.Entity("Intersect.GameObjects.QuestBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("BeforeDescription") + .HasColumnType("longtext"); + + b.Property("CompletedCategory") + .HasColumnType("longtext"); + + b.Property("DoNotShowUnlessRequirementsMet") + .HasColumnType("tinyint(1)"); + + b.Property("EndDescription") + .HasColumnType("longtext"); + + b.Property("EndEventId") + .HasColumnType("char(36)") + .HasColumnName("EndEvent") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("InProgressCategory") + .HasColumnType("longtext"); + + b.Property("InProgressDescription") + .HasColumnType("longtext"); + + b.Property("JsonRequirements") + .HasColumnType("longtext") + .HasColumnName("Requirements"); + + b.Property("LogAfterComplete") + .HasColumnType("tinyint(1)"); + + b.Property("LogBeforeOffer") + .HasColumnType("tinyint(1)"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("OrderValue") + .HasColumnType("int"); + + b.Property("Quitable") + .HasColumnType("tinyint(1)"); + + b.Property("Repeatable") + .HasColumnType("tinyint(1)"); + + b.Property("StartDescription") + .HasColumnType("longtext"); + + b.Property("StartEventId") + .HasColumnType("char(36)") + .HasColumnName("StartEvent") + .UseCollation("ascii_general_ci"); + + b.Property("TasksJson") + .HasColumnType("longtext") + .HasColumnName("Tasks"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("UnstartedCategory") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.ToTable("Quests"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ResourceBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AnimationId") + .HasColumnType("char(36)") + .HasColumnName("Animation") + .UseCollation("ascii_general_ci"); + + b.Property("CannotHarvestMessage") + .HasColumnType("longtext"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("JsonDrops") + .HasColumnType("longtext") + .HasColumnName("Drops"); + + b.Property("JsonHarvestingRequirements") + .HasColumnType("longtext") + .HasColumnName("HarvestingRequirements"); + + b.Property("MaxHp") + .HasColumnType("int"); + + b.Property("MinHp") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SpawnDuration") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Tool") + .HasColumnType("int"); + + b.Property("VitalRegen") + .HasColumnType("int"); + + b.Property("WalkableAfter") + .HasColumnType("tinyint(1)"); + + b.Property("WalkableBefore") + .HasColumnType("tinyint(1)"); + + b.HasKey("Id"); + + b.ToTable("Resources"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ServerVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Json") + .HasColumnType("longtext") + .HasColumnName("Value"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("ServerVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ShopBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("BuySound") + .HasColumnType("longtext"); + + b.Property("BuyingWhitelist") + .HasColumnType("tinyint(1)"); + + b.Property("DefaultCurrencyId") + .HasColumnType("char(36)") + .HasColumnName("DefaultCurrency") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("JsonBuyingItems") + .HasColumnType("longtext") + .HasColumnName("BuyingItems"); + + b.Property("JsonSellingItems") + .HasColumnType("longtext") + .HasColumnName("SellingItems"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SellSound") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Shops"); + }); + + modelBuilder.Entity("Intersect.GameObjects.SpellBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Bound") + .HasColumnType("tinyint(1)"); + + b.Property("CannotCastMessage") + .HasColumnType("longtext"); + + b.Property("CastAnimationId") + .HasColumnType("char(36)") + .HasColumnName("CastAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("CastDuration") + .HasColumnType("int"); + + b.Property("CastSpriteOverride") + .HasColumnType("longtext"); + + b.Property("CooldownDuration") + .HasColumnType("int"); + + b.Property("CooldownGroup") + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("HitAnimationId") + .HasColumnType("char(36)") + .HasColumnName("HitAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("Icon") + .HasColumnType("longtext"); + + b.Property("IgnoreCooldownReduction") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreGlobalCooldown") + .HasColumnType("tinyint(1)"); + + b.Property("JsonCastRequirements") + .HasColumnType("longtext") + .HasColumnName("CastRequirements"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SpellType") + .HasColumnType("int"); + + b.Property("TickAnimationId") + .HasColumnType("char(36)") + .HasColumnName("TickAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("VitalCostJson") + .HasColumnType("longtext") + .HasColumnName("VitalCost"); + + b.HasKey("Id"); + + b.ToTable("Spells"); + }); + + modelBuilder.Entity("Intersect.GameObjects.TilesetBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Name") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Tilesets"); + }); + + modelBuilder.Entity("Intersect.GameObjects.TimeBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("DaylightHuesJson") + .HasColumnType("longtext") + .HasColumnName("DaylightHues"); + + b.Property("RangeInterval") + .HasColumnType("int"); + + b.Property("Rate") + .HasColumnType("float"); + + b.Property("SyncTime") + .HasColumnType("tinyint(1)"); + + b.HasKey("Id"); + + b.ToTable("Time"); + }); + + modelBuilder.Entity("Intersect.GameObjects.UserVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned") + .HasColumnName("DataType"); + + b.HasKey("Id"); + + b.ToTable("UserVariables"); + }); + + modelBuilder.Entity("Intersect.Server.Maps.MapController", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AHue") + .HasColumnType("int"); + + b.Property("AttributeData") + .HasColumnType("longblob") + .HasColumnName("Attributes"); + + b.Property("BHue") + .HasColumnType("int"); + + b.Property("Brightness") + .HasColumnType("int"); + + b.Property("Down") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("EventIdsJson") + .HasColumnType("longtext") + .HasColumnName("Events"); + + b.Property("Fog") + .HasColumnType("longtext"); + + b.Property("FogTransparency") + .HasColumnType("int"); + + b.Property("FogXSpeed") + .HasColumnType("int"); + + b.Property("FogYSpeed") + .HasColumnType("int"); + + b.Property("GHue") + .HasColumnType("int"); + + b.Property("HideEquipment") + .HasColumnType("tinyint(1)"); + + b.Property("IsIndoors") + .HasColumnType("tinyint(1)"); + + b.Property("Left") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("LightsJson") + .HasColumnType("longtext") + .HasColumnName("Lights"); + + b.Property("Music") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("NpcSpawnsJson") + .HasColumnType("longtext") + .HasColumnName("NpcSpawns"); + + b.Property("OverlayGraphic") + .HasColumnType("longtext"); + + b.Property("Panorama") + .HasColumnType("longtext"); + + b.Property("PlayerLightColorJson") + .HasColumnType("longtext") + .HasColumnName("PlayerLightColor"); + + b.Property("PlayerLightExpand") + .HasColumnType("float"); + + b.Property("PlayerLightIntensity") + .HasColumnType("tinyint unsigned"); + + b.Property("PlayerLightSize") + .HasColumnType("int"); + + b.Property("RHue") + .HasColumnType("int"); + + b.Property("Revision") + .HasColumnType("int"); + + b.Property("Right") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Sound") + .HasColumnType("longtext"); + + b.Property("TileData") + .HasColumnType("longblob"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Up") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("WeatherAnimationId") + .HasColumnType("char(36)") + .HasColumnName("WeatherAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("WeatherIntensity") + .HasColumnType("int"); + + b.Property("WeatherXSpeed") + .HasColumnType("int"); + + b.Property("WeatherYSpeed") + .HasColumnType("int"); + + b.Property("ZoneType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("Maps"); + }); + + modelBuilder.Entity("Intersect.GameObjects.AnimationBase", b => + { + b.OwnsOne("Intersect.GameObjects.AnimationLayer", "Lower", b1 => + { + b1.Property("AnimationBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("AlternateRenderLayer") + .HasColumnType("tinyint(1)"); + + b1.Property("DisableRotations") + .HasColumnType("tinyint(1)"); + + b1.Property("FrameCount") + .HasColumnType("int"); + + b1.Property("FrameSpeed") + .HasColumnType("int"); + + b1.Property("Light") + .HasColumnType("longtext"); + + b1.Property("LoopCount") + .HasColumnType("int"); + + b1.Property("Sprite") + .HasColumnType("longtext"); + + b1.Property("XFrames") + .HasColumnType("int"); + + b1.Property("YFrames") + .HasColumnType("int"); + + b1.HasKey("AnimationBaseId"); + + b1.ToTable("Animations"); + + b1.WithOwner() + .HasForeignKey("AnimationBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.AnimationLayer", "Upper", b1 => + { + b1.Property("AnimationBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("AlternateRenderLayer") + .HasColumnType("tinyint(1)"); + + b1.Property("DisableRotations") + .HasColumnType("tinyint(1)"); + + b1.Property("FrameCount") + .HasColumnType("int"); + + b1.Property("FrameSpeed") + .HasColumnType("int"); + + b1.Property("Light") + .HasColumnType("longtext"); + + b1.Property("LoopCount") + .HasColumnType("int"); + + b1.Property("Sprite") + .HasColumnType("longtext"); + + b1.Property("XFrames") + .HasColumnType("int"); + + b1.Property("YFrames") + .HasColumnType("int"); + + b1.HasKey("AnimationBaseId"); + + b1.ToTable("Animations"); + + b1.WithOwner() + .HasForeignKey("AnimationBaseId"); + }); + + b.Navigation("Lower"); + + b.Navigation("Upper"); + }); + + modelBuilder.Entity("Intersect.GameObjects.EquipmentProperties", b => + { + b.HasOne("Intersect.GameObjects.ItemBase", "Descriptor") + .WithOne("EquipmentProperties") + .HasForeignKey("Intersect.GameObjects.EquipmentProperties", "DescriptorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_AbilityPower", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Attack", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Defense", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_MagicResist", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Speed", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.Navigation("Descriptor"); + + b.Navigation("StatRange_AbilityPower"); + + b.Navigation("StatRange_Attack"); + + b.Navigation("StatRange_Defense"); + + b.Navigation("StatRange_MagicResist"); + + b.Navigation("StatRange_Speed"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.OwnsOne("Intersect.GameObjects.ConsumableData", "Consumable", b1 => + { + b1.Property("ItemBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Percentage") + .HasColumnType("int"); + + b1.Property("Type") + .HasColumnType("tinyint unsigned"); + + b1.Property("Value") + .HasColumnType("bigint"); + + b1.HasKey("ItemBaseId"); + + b1.ToTable("Items"); + + b1.WithOwner() + .HasForeignKey("ItemBaseId"); + }); + + b.Navigation("Consumable"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ResourceBase", b => + { + b.OwnsOne("Intersect.GameObjects.ResourceState", "Exhausted", b1 => + { + b1.Property("ResourceBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Graphic") + .HasColumnType("longtext"); + + b1.Property("GraphicFromTileset") + .HasColumnType("tinyint(1)"); + + b1.Property("Height") + .HasColumnType("int"); + + b1.Property("RenderBelowEntities") + .HasColumnType("tinyint(1)"); + + b1.Property("Width") + .HasColumnType("int"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("ResourceBaseId"); + + b1.ToTable("Resources"); + + b1.WithOwner() + .HasForeignKey("ResourceBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.ResourceState", "Initial", b1 => + { + b1.Property("ResourceBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Graphic") + .HasColumnType("longtext"); + + b1.Property("GraphicFromTileset") + .HasColumnType("tinyint(1)"); + + b1.Property("Height") + .HasColumnType("int"); + + b1.Property("RenderBelowEntities") + .HasColumnType("tinyint(1)"); + + b1.Property("Width") + .HasColumnType("int"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("ResourceBaseId"); + + b1.ToTable("Resources"); + + b1.WithOwner() + .HasForeignKey("ResourceBaseId"); + }); + + b.Navigation("Exhausted"); + + b.Navigation("Initial"); + }); + + modelBuilder.Entity("Intersect.GameObjects.SpellBase", b => + { + b.OwnsOne("Intersect.GameObjects.SpellCombatData", "Combat", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("CastRange") + .HasColumnType("int"); + + b1.Property("CritChance") + .HasColumnType("int"); + + b1.Property("CritMultiplier") + .HasColumnType("double"); + + b1.Property("DamageType") + .HasColumnType("int"); + + b1.Property("Duration") + .HasColumnType("int"); + + b1.Property("Effect") + .HasColumnType("int"); + + b1.Property("Friendly") + .HasColumnType("tinyint(1)"); + + b1.Property("HitRadius") + .HasColumnType("int"); + + b1.Property("HoTDoT") + .HasColumnType("tinyint(1)"); + + b1.Property("HotDotInterval") + .HasColumnType("int"); + + b1.Property("OnHitDuration") + .HasColumnType("int") + .HasColumnName("OnHit"); + + b1.Property("PercentageStatDiffJson") + .HasColumnType("longtext") + .HasColumnName("PercentageStatDiff"); + + b1.Property("ProjectileId") + .HasColumnType("char(36)") + .HasColumnName("Projectile") + .UseCollation("ascii_general_ci"); + + b1.Property("Scaling") + .HasColumnType("int"); + + b1.Property("ScalingStat") + .HasColumnType("int"); + + b1.Property("StatDiffJson") + .HasColumnType("longtext") + .HasColumnName("StatDiff"); + + b1.Property("TargetType") + .HasColumnType("int"); + + b1.Property("TransformSprite") + .HasColumnType("longtext"); + + b1.Property("TrapDuration") + .HasColumnType("int") + .HasColumnName("Trap"); + + b1.Property("VitalDiffJson") + .HasColumnType("longtext") + .HasColumnName("VitalDiff"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.SpellDashOpts", "Dash", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("IgnoreActiveResources") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreInactiveResources") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreMapBlocks") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreZDimensionAttributes") + .HasColumnType("tinyint(1)"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.SpellWarpData", "Warp", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Dir") + .HasColumnType("int"); + + b1.Property("MapId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.Navigation("Combat"); + + b.Navigation("Dash"); + + b.Navigation("Warp"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.Navigation("EquipmentProperties"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Intersect.Server/Migrations/MySql/Game/20240515000000_LongValueType.cs b/Intersect.Server/Migrations/MySql/Game/20240515000000_LongValueType.cs new file mode 100644 index 0000000000..3c212954d1 --- /dev/null +++ b/Intersect.Server/Migrations/MySql/Game/20240515000000_LongValueType.cs @@ -0,0 +1,36 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Intersect.Server.Migrations.MySql.Game +{ + /// + public partial class LongValueType : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "Consumable_Value", + table: "Items", + type: "bigint", + nullable: true, + oldClrType: typeof(int), + oldType: "int", + oldNullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "Consumable_Value", + table: "Items", + type: "int", + nullable: true, + oldClrType: typeof(long), + oldType: "bigint", + oldNullable: true); + } + } +} diff --git a/Intersect.Server/Migrations/MySql/Game/20240607105636_HomingProjectile.Designer.cs b/Intersect.Server/Migrations/MySql/Game/20240607105636_HomingProjectile.Designer.cs new file mode 100644 index 0000000000..517d2a31fc --- /dev/null +++ b/Intersect.Server/Migrations/MySql/Game/20240607105636_HomingProjectile.Designer.cs @@ -0,0 +1,1783 @@ +// +using System; +using Intersect.Server.Database.GameData; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Intersect.Server.Migrations.MySql.Game +{ + [DbContext(typeof(MySqlGameContext))] + [Migration("20240607105636_HomingProjectile")] + partial class HomingProjectile + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.11") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("Intersect.GameObjects.AnimationBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CompleteSound") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("Sound") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Animations"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ClassBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("AttackSpriteOverride") + .HasColumnType("longtext"); + + b.Property("BaseExp") + .HasColumnType("bigint"); + + b.Property("BasePoints") + .HasColumnType("int"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("ExpIncrease") + .HasColumnType("bigint"); + + b.Property("ExpOverridesJson") + .HasColumnType("longtext") + .HasColumnName("ExperienceOverrides"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("IncreasePercentage") + .HasColumnType("tinyint(1)"); + + b.Property("JsonBaseStats") + .HasColumnType("longtext") + .HasColumnName("BaseStats"); + + b.Property("JsonBaseVitals") + .HasColumnType("longtext") + .HasColumnName("BaseVitals"); + + b.Property("JsonItems") + .HasColumnType("longtext") + .HasColumnName("Items"); + + b.Property("JsonSpells") + .HasColumnType("longtext") + .HasColumnName("Spells"); + + b.Property("JsonSprites") + .HasColumnType("longtext") + .HasColumnName("Sprites"); + + b.Property("Locked") + .HasColumnType("tinyint(1)"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PointIncrease") + .HasColumnType("int"); + + b.Property("RegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalRegen"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SpawnDir") + .HasColumnType("int"); + + b.Property("SpawnMapId") + .HasColumnType("char(36)") + .HasColumnName("SpawnMap") + .UseCollation("ascii_general_ci"); + + b.Property("SpawnX") + .HasColumnType("int"); + + b.Property("SpawnY") + .HasColumnType("int"); + + b.Property("StatIncreaseJson") + .HasColumnType("longtext") + .HasColumnName("StatIncreases"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("VitalIncreaseJson") + .HasColumnType("longtext") + .HasColumnName("VitalIncreases"); + + b.HasKey("Id"); + + b.ToTable("Classes"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Crafting.CraftBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("FailureChance") + .HasColumnType("int"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("IngredientsJson") + .HasColumnType("longtext") + .HasColumnName("Ingredients"); + + b.Property("ItemId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("ItemLossChance") + .HasColumnType("int"); + + b.Property("JsonCraftingRequirements") + .HasColumnType("longtext") + .HasColumnName("CraftingRequirements"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("Quantity") + .HasColumnType("int"); + + b.Property("Time") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Crafts"); + }); + + modelBuilder.Entity("Intersect.GameObjects.CraftingTableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CraftsJson") + .HasColumnType("longtext") + .HasColumnName("Crafts"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("CraftingTables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.EquipmentProperties", b => + { + b.Property("DescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.HasKey("DescriptorId"); + + b.ToTable("Items_EquipmentProperties"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Events.EventBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CommonEvent") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Global") + .HasColumnType("tinyint(1)"); + + b.Property("MapId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PagesJson") + .HasColumnType("longtext") + .HasColumnName("Pages"); + + b.Property("SpawnX") + .HasColumnType("int"); + + b.Property("SpawnY") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Intersect.GameObjects.GuildVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("GuildVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AnimationId") + .HasColumnType("char(36)") + .HasColumnName("Animation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("BlockAbsorption") + .HasColumnType("int"); + + b.Property("BlockAmount") + .HasColumnType("int"); + + b.Property("BlockChance") + .HasColumnType("int"); + + b.Property("CanBag") + .HasColumnType("tinyint(1)"); + + b.Property("CanBank") + .HasColumnType("tinyint(1)"); + + b.Property("CanDrop") + .HasColumnType("tinyint(1)") + .HasColumnName("Bound"); + + b.Property("CanGuildBank") + .HasColumnType("tinyint(1)"); + + b.Property("CanSell") + .HasColumnType("tinyint(1)"); + + b.Property("CanTrade") + .HasColumnType("tinyint(1)"); + + b.Property("CannotUseMessage") + .HasColumnType("longtext"); + + b.Property("Cooldown") + .HasColumnType("int"); + + b.Property("CooldownGroup") + .HasColumnType("longtext"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("DespawnTime") + .HasColumnType("bigint"); + + b.Property("DropChanceOnDeath") + .HasColumnType("int"); + + b.Property("EffectsJson") + .HasColumnType("longtext") + .HasColumnName("Effects"); + + b.Property("EquipmentAnimationId") + .HasColumnType("char(36)") + .HasColumnName("EquipmentAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("EquipmentSlot") + .HasColumnType("int"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("EventTriggersJson") + .HasColumnType("longtext") + .HasColumnName("EventTriggers"); + + b.Property("FemalePaperdoll") + .HasColumnType("longtext"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Icon") + .HasColumnType("longtext"); + + b.Property("IgnoreCooldownReduction") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreGlobalCooldown") + .HasColumnType("tinyint(1)"); + + b.Property("ItemType") + .HasColumnType("int"); + + b.Property("JsonColor") + .HasColumnType("longtext") + .HasColumnName("Color"); + + b.Property("JsonUsageRequirements") + .HasColumnType("longtext") + .HasColumnName("UsageRequirements"); + + b.Property("MalePaperdoll") + .HasColumnType("longtext"); + + b.Property("MaxBankStack") + .HasColumnType("int"); + + b.Property("MaxInventoryStack") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PercentageStatsJson") + .HasColumnType("longtext") + .HasColumnName("PercentageStatsGiven"); + + b.Property("PercentageVitalsJson") + .HasColumnType("longtext") + .HasColumnName("PercentageVitalsGiven"); + + b.Property("Price") + .HasColumnType("int"); + + b.Property("ProjectileId") + .HasColumnType("char(36)") + .HasColumnName("Projectile") + .UseCollation("ascii_general_ci"); + + b.Property("QuickCast") + .HasColumnType("tinyint(1)"); + + b.Property("Rarity") + .HasColumnType("int"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SingleUse") + .HasColumnType("tinyint(1)") + .HasColumnName("DestroySpell"); + + b.Property("SlotCount") + .HasColumnType("int"); + + b.Property("Speed") + .HasColumnType("int"); + + b.Property("SpellId") + .HasColumnType("char(36)") + .HasColumnName("Spell") + .UseCollation("ascii_general_ci"); + + b.Property("Stackable") + .HasColumnType("tinyint(1)"); + + b.Property("StatsJson") + .HasColumnType("longtext") + .HasColumnName("StatsGiven"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Tool") + .HasColumnType("int"); + + b.Property("TwoHanded") + .HasColumnType("tinyint(1)"); + + b.Property("VitalsJson") + .HasColumnType("longtext") + .HasColumnName("VitalsGiven"); + + b.Property("VitalsRegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalsRegen"); + + b.Property("WeaponSpriteOverride") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.ToTable("Items"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Maps.MapList.MapList", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("JsonData") + .HasColumnType("longtext") + .HasColumnName("JsonData"); + + b.HasKey("Id"); + + b.ToTable("MapFolders"); + }); + + modelBuilder.Entity("Intersect.GameObjects.NpcBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Aggressive") + .HasColumnType("tinyint(1)"); + + b.Property("AttackAllies") + .HasColumnType("tinyint(1)"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackOnSightConditionsJson") + .HasColumnType("longtext") + .HasColumnName("AttackOnSightConditions"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("CraftsJson") + .HasColumnType("longtext") + .HasColumnName("Spells"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("Experience") + .HasColumnType("bigint"); + + b.Property("FleeHealthPercentage") + .HasColumnType("tinyint unsigned"); + + b.Property("FocusHighestDamageDealer") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("ImmunitiesJson") + .HasColumnType("longtext") + .HasColumnName("Immunities"); + + b.Property("IndividualizedLoot") + .HasColumnType("tinyint(1)"); + + b.Property("JsonAggroList") + .HasColumnType("longtext") + .HasColumnName("AggroList"); + + b.Property("JsonColor") + .HasColumnType("longtext") + .HasColumnName("Color"); + + b.Property("JsonDrops") + .HasColumnType("longtext") + .HasColumnName("Drops"); + + b.Property("JsonMaxVital") + .HasColumnType("longtext") + .HasColumnName("MaxVital"); + + b.Property("JsonStat") + .HasColumnType("longtext") + .HasColumnName("Stats"); + + b.Property("Level") + .HasColumnType("int"); + + b.Property("Movement") + .HasColumnType("tinyint unsigned"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("NpcVsNpcEnabled") + .HasColumnType("tinyint(1)"); + + b.Property("OnDeathEventId") + .HasColumnType("char(36)") + .HasColumnName("OnDeathEvent") + .UseCollation("ascii_general_ci"); + + b.Property("OnDeathPartyEventId") + .HasColumnType("char(36)") + .HasColumnName("OnDeathPartyEvent") + .UseCollation("ascii_general_ci"); + + b.Property("PlayerCanAttackConditionsJson") + .HasColumnType("longtext") + .HasColumnName("PlayerCanAttackConditions"); + + b.Property("PlayerFriendConditionsJson") + .HasColumnType("longtext") + .HasColumnName("PlayerFriendConditions"); + + b.Property("RegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalRegen"); + + b.Property("ResetRadius") + .HasColumnType("int"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SightRange") + .HasColumnType("int"); + + b.Property("SpawnDuration") + .HasColumnType("int"); + + b.Property("SpellFrequency") + .HasColumnType("int"); + + b.Property("Sprite") + .HasColumnType("longtext"); + + b.Property("Swarm") + .HasColumnType("tinyint(1)"); + + b.Property("Tenacity") + .HasColumnType("double"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Npcs"); + }); + + modelBuilder.Entity("Intersect.GameObjects.PlayerVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("PlayerVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ProjectileBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AmmoItemId") + .HasColumnType("char(36)") + .HasColumnName("Ammo") + .UseCollation("ascii_general_ci"); + + b.Property("AmmoRequired") + .HasColumnType("int"); + + b.Property("AnimationsJson") + .HasColumnType("longtext") + .HasColumnName("Animations"); + + b.Property("Delay") + .HasColumnType("int"); + + b.Property("DirectShotBehavior") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("GrappleHook") + .HasColumnType("tinyint(1)"); + + b.Property("GrappleHookOptionsJson") + .HasColumnType("longtext") + .HasColumnName("GrappleHookOptions"); + + b.Property("HomingBehavior") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreActiveResources") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreExhaustedResources") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreMapBlocks") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreZDimension") + .HasColumnType("tinyint(1)"); + + b.Property("Knockback") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PierceTarget") + .HasColumnType("tinyint(1)"); + + b.Property("Quantity") + .HasColumnType("int"); + + b.Property("Range") + .HasColumnType("int"); + + b.Property("SpawnsJson") + .HasColumnType("longtext") + .HasColumnName("SpawnLocations"); + + b.Property("Speed") + .HasColumnType("int"); + + b.Property("SpellId") + .HasColumnType("char(36)") + .HasColumnName("Spell") + .UseCollation("ascii_general_ci"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Projectiles"); + }); + + modelBuilder.Entity("Intersect.GameObjects.QuestBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("BeforeDescription") + .HasColumnType("longtext"); + + b.Property("CompletedCategory") + .HasColumnType("longtext"); + + b.Property("DoNotShowUnlessRequirementsMet") + .HasColumnType("tinyint(1)"); + + b.Property("EndDescription") + .HasColumnType("longtext"); + + b.Property("EndEventId") + .HasColumnType("char(36)") + .HasColumnName("EndEvent") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("InProgressCategory") + .HasColumnType("longtext"); + + b.Property("InProgressDescription") + .HasColumnType("longtext"); + + b.Property("JsonRequirements") + .HasColumnType("longtext") + .HasColumnName("Requirements"); + + b.Property("LogAfterComplete") + .HasColumnType("tinyint(1)"); + + b.Property("LogBeforeOffer") + .HasColumnType("tinyint(1)"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("OrderValue") + .HasColumnType("int"); + + b.Property("Quitable") + .HasColumnType("tinyint(1)"); + + b.Property("Repeatable") + .HasColumnType("tinyint(1)"); + + b.Property("StartDescription") + .HasColumnType("longtext"); + + b.Property("StartEventId") + .HasColumnType("char(36)") + .HasColumnName("StartEvent") + .UseCollation("ascii_general_ci"); + + b.Property("TasksJson") + .HasColumnType("longtext") + .HasColumnName("Tasks"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("UnstartedCategory") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.ToTable("Quests"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ResourceBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AnimationId") + .HasColumnType("char(36)") + .HasColumnName("Animation") + .UseCollation("ascii_general_ci"); + + b.Property("CannotHarvestMessage") + .HasColumnType("longtext"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("JsonDrops") + .HasColumnType("longtext") + .HasColumnName("Drops"); + + b.Property("JsonHarvestingRequirements") + .HasColumnType("longtext") + .HasColumnName("HarvestingRequirements"); + + b.Property("MaxHp") + .HasColumnType("int"); + + b.Property("MinHp") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SpawnDuration") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Tool") + .HasColumnType("int"); + + b.Property("VitalRegen") + .HasColumnType("int"); + + b.Property("WalkableAfter") + .HasColumnType("tinyint(1)"); + + b.Property("WalkableBefore") + .HasColumnType("tinyint(1)"); + + b.HasKey("Id"); + + b.ToTable("Resources"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ServerVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Json") + .HasColumnType("longtext") + .HasColumnName("Value"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("ServerVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ShopBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("BuySound") + .HasColumnType("longtext"); + + b.Property("BuyingWhitelist") + .HasColumnType("tinyint(1)"); + + b.Property("DefaultCurrencyId") + .HasColumnType("char(36)") + .HasColumnName("DefaultCurrency") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("JsonBuyingItems") + .HasColumnType("longtext") + .HasColumnName("BuyingItems"); + + b.Property("JsonSellingItems") + .HasColumnType("longtext") + .HasColumnName("SellingItems"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SellSound") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Shops"); + }); + + modelBuilder.Entity("Intersect.GameObjects.SpellBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Bound") + .HasColumnType("tinyint(1)"); + + b.Property("CannotCastMessage") + .HasColumnType("longtext"); + + b.Property("CastAnimationId") + .HasColumnType("char(36)") + .HasColumnName("CastAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("CastDuration") + .HasColumnType("int"); + + b.Property("CastSpriteOverride") + .HasColumnType("longtext"); + + b.Property("CooldownDuration") + .HasColumnType("int"); + + b.Property("CooldownGroup") + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("HitAnimationId") + .HasColumnType("char(36)") + .HasColumnName("HitAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("Icon") + .HasColumnType("longtext"); + + b.Property("IgnoreCooldownReduction") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreGlobalCooldown") + .HasColumnType("tinyint(1)"); + + b.Property("JsonCastRequirements") + .HasColumnType("longtext") + .HasColumnName("CastRequirements"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SpellType") + .HasColumnType("int"); + + b.Property("TickAnimationId") + .HasColumnType("char(36)") + .HasColumnName("TickAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("VitalCostJson") + .HasColumnType("longtext") + .HasColumnName("VitalCost"); + + b.HasKey("Id"); + + b.ToTable("Spells"); + }); + + modelBuilder.Entity("Intersect.GameObjects.TilesetBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Name") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Tilesets"); + }); + + modelBuilder.Entity("Intersect.GameObjects.TimeBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("DaylightHuesJson") + .HasColumnType("longtext") + .HasColumnName("DaylightHues"); + + b.Property("RangeInterval") + .HasColumnType("int"); + + b.Property("Rate") + .HasColumnType("float"); + + b.Property("SyncTime") + .HasColumnType("tinyint(1)"); + + b.HasKey("Id"); + + b.ToTable("Time"); + }); + + modelBuilder.Entity("Intersect.GameObjects.UserVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned") + .HasColumnName("DataType"); + + b.HasKey("Id"); + + b.ToTable("UserVariables"); + }); + + modelBuilder.Entity("Intersect.Server.Maps.MapController", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AHue") + .HasColumnType("int"); + + b.Property("AttributeData") + .HasColumnType("longblob") + .HasColumnName("Attributes"); + + b.Property("BHue") + .HasColumnType("int"); + + b.Property("Brightness") + .HasColumnType("int"); + + b.Property("Down") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("EventIdsJson") + .HasColumnType("longtext") + .HasColumnName("Events"); + + b.Property("Fog") + .HasColumnType("longtext"); + + b.Property("FogTransparency") + .HasColumnType("int"); + + b.Property("FogXSpeed") + .HasColumnType("int"); + + b.Property("FogYSpeed") + .HasColumnType("int"); + + b.Property("GHue") + .HasColumnType("int"); + + b.Property("HideEquipment") + .HasColumnType("tinyint(1)"); + + b.Property("IsIndoors") + .HasColumnType("tinyint(1)"); + + b.Property("Left") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("LightsJson") + .HasColumnType("longtext") + .HasColumnName("Lights"); + + b.Property("Music") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("NpcSpawnsJson") + .HasColumnType("longtext") + .HasColumnName("NpcSpawns"); + + b.Property("OverlayGraphic") + .HasColumnType("longtext"); + + b.Property("Panorama") + .HasColumnType("longtext"); + + b.Property("PlayerLightColorJson") + .HasColumnType("longtext") + .HasColumnName("PlayerLightColor"); + + b.Property("PlayerLightExpand") + .HasColumnType("float"); + + b.Property("PlayerLightIntensity") + .HasColumnType("tinyint unsigned"); + + b.Property("PlayerLightSize") + .HasColumnType("int"); + + b.Property("RHue") + .HasColumnType("int"); + + b.Property("Revision") + .HasColumnType("int"); + + b.Property("Right") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Sound") + .HasColumnType("longtext"); + + b.Property("TileData") + .HasColumnType("longblob"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Up") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("WeatherAnimationId") + .HasColumnType("char(36)") + .HasColumnName("WeatherAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("WeatherIntensity") + .HasColumnType("int"); + + b.Property("WeatherXSpeed") + .HasColumnType("int"); + + b.Property("WeatherYSpeed") + .HasColumnType("int"); + + b.Property("ZoneType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("Maps"); + }); + + modelBuilder.Entity("Intersect.GameObjects.AnimationBase", b => + { + b.OwnsOne("Intersect.GameObjects.AnimationLayer", "Lower", b1 => + { + b1.Property("AnimationBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("AlternateRenderLayer") + .HasColumnType("tinyint(1)"); + + b1.Property("DisableRotations") + .HasColumnType("tinyint(1)"); + + b1.Property("FrameCount") + .HasColumnType("int"); + + b1.Property("FrameSpeed") + .HasColumnType("int"); + + b1.Property("Light") + .HasColumnType("longtext"); + + b1.Property("LoopCount") + .HasColumnType("int"); + + b1.Property("Sprite") + .HasColumnType("longtext"); + + b1.Property("XFrames") + .HasColumnType("int"); + + b1.Property("YFrames") + .HasColumnType("int"); + + b1.HasKey("AnimationBaseId"); + + b1.ToTable("Animations"); + + b1.WithOwner() + .HasForeignKey("AnimationBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.AnimationLayer", "Upper", b1 => + { + b1.Property("AnimationBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("AlternateRenderLayer") + .HasColumnType("tinyint(1)"); + + b1.Property("DisableRotations") + .HasColumnType("tinyint(1)"); + + b1.Property("FrameCount") + .HasColumnType("int"); + + b1.Property("FrameSpeed") + .HasColumnType("int"); + + b1.Property("Light") + .HasColumnType("longtext"); + + b1.Property("LoopCount") + .HasColumnType("int"); + + b1.Property("Sprite") + .HasColumnType("longtext"); + + b1.Property("XFrames") + .HasColumnType("int"); + + b1.Property("YFrames") + .HasColumnType("int"); + + b1.HasKey("AnimationBaseId"); + + b1.ToTable("Animations"); + + b1.WithOwner() + .HasForeignKey("AnimationBaseId"); + }); + + b.Navigation("Lower"); + + b.Navigation("Upper"); + }); + + modelBuilder.Entity("Intersect.GameObjects.EquipmentProperties", b => + { + b.HasOne("Intersect.GameObjects.ItemBase", "Descriptor") + .WithOne("EquipmentProperties") + .HasForeignKey("Intersect.GameObjects.EquipmentProperties", "DescriptorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_AbilityPower", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Attack", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Defense", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_MagicResist", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Speed", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.Navigation("Descriptor"); + + b.Navigation("StatRange_AbilityPower"); + + b.Navigation("StatRange_Attack"); + + b.Navigation("StatRange_Defense"); + + b.Navigation("StatRange_MagicResist"); + + b.Navigation("StatRange_Speed"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.OwnsOne("Intersect.GameObjects.ConsumableData", "Consumable", b1 => + { + b1.Property("ItemBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Percentage") + .HasColumnType("int"); + + b1.Property("Type") + .HasColumnType("tinyint unsigned"); + + b1.Property("Value") + .HasColumnType("int"); + + b1.HasKey("ItemBaseId"); + + b1.ToTable("Items"); + + b1.WithOwner() + .HasForeignKey("ItemBaseId"); + }); + + b.Navigation("Consumable"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ResourceBase", b => + { + b.OwnsOne("Intersect.GameObjects.ResourceState", "Exhausted", b1 => + { + b1.Property("ResourceBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Graphic") + .HasColumnType("longtext"); + + b1.Property("GraphicFromTileset") + .HasColumnType("tinyint(1)"); + + b1.Property("Height") + .HasColumnType("int"); + + b1.Property("RenderBelowEntities") + .HasColumnType("tinyint(1)"); + + b1.Property("Width") + .HasColumnType("int"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("ResourceBaseId"); + + b1.ToTable("Resources"); + + b1.WithOwner() + .HasForeignKey("ResourceBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.ResourceState", "Initial", b1 => + { + b1.Property("ResourceBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Graphic") + .HasColumnType("longtext"); + + b1.Property("GraphicFromTileset") + .HasColumnType("tinyint(1)"); + + b1.Property("Height") + .HasColumnType("int"); + + b1.Property("RenderBelowEntities") + .HasColumnType("tinyint(1)"); + + b1.Property("Width") + .HasColumnType("int"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("ResourceBaseId"); + + b1.ToTable("Resources"); + + b1.WithOwner() + .HasForeignKey("ResourceBaseId"); + }); + + b.Navigation("Exhausted"); + + b.Navigation("Initial"); + }); + + modelBuilder.Entity("Intersect.GameObjects.SpellBase", b => + { + b.OwnsOne("Intersect.GameObjects.SpellCombatData", "Combat", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("CastRange") + .HasColumnType("int"); + + b1.Property("CritChance") + .HasColumnType("int"); + + b1.Property("CritMultiplier") + .HasColumnType("double"); + + b1.Property("DamageType") + .HasColumnType("int"); + + b1.Property("Duration") + .HasColumnType("int"); + + b1.Property("Effect") + .HasColumnType("int"); + + b1.Property("Friendly") + .HasColumnType("tinyint(1)"); + + b1.Property("HitRadius") + .HasColumnType("int"); + + b1.Property("HoTDoT") + .HasColumnType("tinyint(1)"); + + b1.Property("HotDotInterval") + .HasColumnType("int"); + + b1.Property("OnHitDuration") + .HasColumnType("int") + .HasColumnName("OnHit"); + + b1.Property("PercentageStatDiffJson") + .HasColumnType("longtext") + .HasColumnName("PercentageStatDiff"); + + b1.Property("ProjectileId") + .HasColumnType("char(36)") + .HasColumnName("Projectile") + .UseCollation("ascii_general_ci"); + + b1.Property("Scaling") + .HasColumnType("int"); + + b1.Property("ScalingStat") + .HasColumnType("int"); + + b1.Property("StatDiffJson") + .HasColumnType("longtext") + .HasColumnName("StatDiff"); + + b1.Property("TargetType") + .HasColumnType("int"); + + b1.Property("TransformSprite") + .HasColumnType("longtext"); + + b1.Property("TrapDuration") + .HasColumnType("int") + .HasColumnName("Trap"); + + b1.Property("VitalDiffJson") + .HasColumnType("longtext") + .HasColumnName("VitalDiff"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.SpellDashOpts", "Dash", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("IgnoreActiveResources") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreInactiveResources") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreMapBlocks") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreZDimensionAttributes") + .HasColumnType("tinyint(1)"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.SpellWarpData", "Warp", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Dir") + .HasColumnType("int"); + + b1.Property("MapId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.Navigation("Combat"); + + b.Navigation("Dash"); + + b.Navigation("Warp"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.Navigation("EquipmentProperties"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Intersect.Server/Migrations/MySql/Game/20240607105636_HomingProjectile.cs b/Intersect.Server/Migrations/MySql/Game/20240607105636_HomingProjectile.cs new file mode 100644 index 0000000000..3654119f1c --- /dev/null +++ b/Intersect.Server/Migrations/MySql/Game/20240607105636_HomingProjectile.cs @@ -0,0 +1,40 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Intersect.Server.Migrations.MySql.Game +{ + /// + public partial class HomingProjectile : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "DirectShotBehavior", + table: "Projectiles", + type: "tinyint(1)", + nullable: false, + defaultValue: false); + + migrationBuilder.AddColumn( + name: "HomingBehavior", + table: "Projectiles", + type: "tinyint(1)", + nullable: false, + defaultValue: false); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "DirectShotBehavior", + table: "Projectiles"); + + migrationBuilder.DropColumn( + name: "HomingBehavior", + table: "Projectiles"); + } + } +} diff --git a/Intersect.Server/Migrations/MySql/Game/20240608185758_ParallelEvents.Designer.cs b/Intersect.Server/Migrations/MySql/Game/20240608185758_ParallelEvents.Designer.cs new file mode 100644 index 0000000000..01e88a0755 --- /dev/null +++ b/Intersect.Server/Migrations/MySql/Game/20240608185758_ParallelEvents.Designer.cs @@ -0,0 +1,1786 @@ +// +using System; +using Intersect.Server.Database.GameData; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Intersect.Server.Migrations.MySql.Game +{ + [DbContext(typeof(MySqlGameContext))] + [Migration("20240608185758_ParallelEvents")] + partial class ParallelEvents + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.11") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("Intersect.GameObjects.AnimationBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CompleteSound") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("Sound") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Animations"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ClassBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("AttackSpriteOverride") + .HasColumnType("longtext"); + + b.Property("BaseExp") + .HasColumnType("bigint"); + + b.Property("BasePoints") + .HasColumnType("int"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("ExpIncrease") + .HasColumnType("bigint"); + + b.Property("ExpOverridesJson") + .HasColumnType("longtext") + .HasColumnName("ExperienceOverrides"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("IncreasePercentage") + .HasColumnType("tinyint(1)"); + + b.Property("JsonBaseStats") + .HasColumnType("longtext") + .HasColumnName("BaseStats"); + + b.Property("JsonBaseVitals") + .HasColumnType("longtext") + .HasColumnName("BaseVitals"); + + b.Property("JsonItems") + .HasColumnType("longtext") + .HasColumnName("Items"); + + b.Property("JsonSpells") + .HasColumnType("longtext") + .HasColumnName("Spells"); + + b.Property("JsonSprites") + .HasColumnType("longtext") + .HasColumnName("Sprites"); + + b.Property("Locked") + .HasColumnType("tinyint(1)"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PointIncrease") + .HasColumnType("int"); + + b.Property("RegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalRegen"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SpawnDir") + .HasColumnType("int"); + + b.Property("SpawnMapId") + .HasColumnType("char(36)") + .HasColumnName("SpawnMap") + .UseCollation("ascii_general_ci"); + + b.Property("SpawnX") + .HasColumnType("int"); + + b.Property("SpawnY") + .HasColumnType("int"); + + b.Property("StatIncreaseJson") + .HasColumnType("longtext") + .HasColumnName("StatIncreases"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("VitalIncreaseJson") + .HasColumnType("longtext") + .HasColumnName("VitalIncreases"); + + b.HasKey("Id"); + + b.ToTable("Classes"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Crafting.CraftBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("FailureChance") + .HasColumnType("int"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("IngredientsJson") + .HasColumnType("longtext") + .HasColumnName("Ingredients"); + + b.Property("ItemId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("ItemLossChance") + .HasColumnType("int"); + + b.Property("JsonCraftingRequirements") + .HasColumnType("longtext") + .HasColumnName("CraftingRequirements"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("Quantity") + .HasColumnType("int"); + + b.Property("Time") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Crafts"); + }); + + modelBuilder.Entity("Intersect.GameObjects.CraftingTableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CraftsJson") + .HasColumnType("longtext") + .HasColumnName("Crafts"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("CraftingTables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.EquipmentProperties", b => + { + b.Property("DescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.HasKey("DescriptorId"); + + b.ToTable("Items_EquipmentProperties"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Events.EventBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("CanRunInParallel") + .HasColumnType("tinyint(1)"); + + b.Property("CommonEvent") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Global") + .HasColumnType("tinyint(1)"); + + b.Property("MapId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PagesJson") + .HasColumnType("longtext") + .HasColumnName("Pages"); + + b.Property("SpawnX") + .HasColumnType("int"); + + b.Property("SpawnY") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Events"); + }); + + modelBuilder.Entity("Intersect.GameObjects.GuildVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("GuildVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AnimationId") + .HasColumnType("char(36)") + .HasColumnName("Animation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("BlockAbsorption") + .HasColumnType("int"); + + b.Property("BlockAmount") + .HasColumnType("int"); + + b.Property("BlockChance") + .HasColumnType("int"); + + b.Property("CanBag") + .HasColumnType("tinyint(1)"); + + b.Property("CanBank") + .HasColumnType("tinyint(1)"); + + b.Property("CanDrop") + .HasColumnType("tinyint(1)") + .HasColumnName("Bound"); + + b.Property("CanGuildBank") + .HasColumnType("tinyint(1)"); + + b.Property("CanSell") + .HasColumnType("tinyint(1)"); + + b.Property("CanTrade") + .HasColumnType("tinyint(1)"); + + b.Property("CannotUseMessage") + .HasColumnType("longtext"); + + b.Property("Cooldown") + .HasColumnType("int"); + + b.Property("CooldownGroup") + .HasColumnType("longtext"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("DespawnTime") + .HasColumnType("bigint"); + + b.Property("DropChanceOnDeath") + .HasColumnType("int"); + + b.Property("EffectsJson") + .HasColumnType("longtext") + .HasColumnName("Effects"); + + b.Property("EquipmentAnimationId") + .HasColumnType("char(36)") + .HasColumnName("EquipmentAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("EquipmentSlot") + .HasColumnType("int"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("EventTriggersJson") + .HasColumnType("longtext") + .HasColumnName("EventTriggers"); + + b.Property("FemalePaperdoll") + .HasColumnType("longtext"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Icon") + .HasColumnType("longtext"); + + b.Property("IgnoreCooldownReduction") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreGlobalCooldown") + .HasColumnType("tinyint(1)"); + + b.Property("ItemType") + .HasColumnType("int"); + + b.Property("JsonColor") + .HasColumnType("longtext") + .HasColumnName("Color"); + + b.Property("JsonUsageRequirements") + .HasColumnType("longtext") + .HasColumnName("UsageRequirements"); + + b.Property("MalePaperdoll") + .HasColumnType("longtext"); + + b.Property("MaxBankStack") + .HasColumnType("int"); + + b.Property("MaxInventoryStack") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PercentageStatsJson") + .HasColumnType("longtext") + .HasColumnName("PercentageStatsGiven"); + + b.Property("PercentageVitalsJson") + .HasColumnType("longtext") + .HasColumnName("PercentageVitalsGiven"); + + b.Property("Price") + .HasColumnType("int"); + + b.Property("ProjectileId") + .HasColumnType("char(36)") + .HasColumnName("Projectile") + .UseCollation("ascii_general_ci"); + + b.Property("QuickCast") + .HasColumnType("tinyint(1)"); + + b.Property("Rarity") + .HasColumnType("int"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SingleUse") + .HasColumnType("tinyint(1)") + .HasColumnName("DestroySpell"); + + b.Property("SlotCount") + .HasColumnType("int"); + + b.Property("Speed") + .HasColumnType("int"); + + b.Property("SpellId") + .HasColumnType("char(36)") + .HasColumnName("Spell") + .UseCollation("ascii_general_ci"); + + b.Property("Stackable") + .HasColumnType("tinyint(1)"); + + b.Property("StatsJson") + .HasColumnType("longtext") + .HasColumnName("StatsGiven"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Tool") + .HasColumnType("int"); + + b.Property("TwoHanded") + .HasColumnType("tinyint(1)"); + + b.Property("VitalsJson") + .HasColumnType("longtext") + .HasColumnName("VitalsGiven"); + + b.Property("VitalsRegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalsRegen"); + + b.Property("WeaponSpriteOverride") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.ToTable("Items"); + }); + + modelBuilder.Entity("Intersect.GameObjects.Maps.MapList.MapList", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("JsonData") + .HasColumnType("longtext") + .HasColumnName("JsonData"); + + b.HasKey("Id"); + + b.ToTable("MapFolders"); + }); + + modelBuilder.Entity("Intersect.GameObjects.NpcBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Aggressive") + .HasColumnType("tinyint(1)"); + + b.Property("AttackAllies") + .HasColumnType("tinyint(1)"); + + b.Property("AttackAnimationId") + .HasColumnType("char(36)") + .HasColumnName("AttackAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("AttackOnSightConditionsJson") + .HasColumnType("longtext") + .HasColumnName("AttackOnSightConditions"); + + b.Property("AttackSpeedModifier") + .HasColumnType("int"); + + b.Property("AttackSpeedValue") + .HasColumnType("int"); + + b.Property("CraftsJson") + .HasColumnType("longtext") + .HasColumnName("Spells"); + + b.Property("CritChance") + .HasColumnType("int"); + + b.Property("CritMultiplier") + .HasColumnType("double"); + + b.Property("Damage") + .HasColumnType("int"); + + b.Property("DamageType") + .HasColumnType("int"); + + b.Property("Experience") + .HasColumnType("bigint"); + + b.Property("FleeHealthPercentage") + .HasColumnType("tinyint unsigned"); + + b.Property("FocusHighestDamageDealer") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("ImmunitiesJson") + .HasColumnType("longtext") + .HasColumnName("Immunities"); + + b.Property("IndividualizedLoot") + .HasColumnType("tinyint(1)"); + + b.Property("JsonAggroList") + .HasColumnType("longtext") + .HasColumnName("AggroList"); + + b.Property("JsonColor") + .HasColumnType("longtext") + .HasColumnName("Color"); + + b.Property("JsonDrops") + .HasColumnType("longtext") + .HasColumnName("Drops"); + + b.Property("JsonMaxVital") + .HasColumnType("longtext") + .HasColumnName("MaxVital"); + + b.Property("JsonStat") + .HasColumnType("longtext") + .HasColumnName("Stats"); + + b.Property("Level") + .HasColumnType("int"); + + b.Property("Movement") + .HasColumnType("tinyint unsigned"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("NpcVsNpcEnabled") + .HasColumnType("tinyint(1)"); + + b.Property("OnDeathEventId") + .HasColumnType("char(36)") + .HasColumnName("OnDeathEvent") + .UseCollation("ascii_general_ci"); + + b.Property("OnDeathPartyEventId") + .HasColumnType("char(36)") + .HasColumnName("OnDeathPartyEvent") + .UseCollation("ascii_general_ci"); + + b.Property("PlayerCanAttackConditionsJson") + .HasColumnType("longtext") + .HasColumnName("PlayerCanAttackConditions"); + + b.Property("PlayerFriendConditionsJson") + .HasColumnType("longtext") + .HasColumnName("PlayerFriendConditions"); + + b.Property("RegenJson") + .HasColumnType("longtext") + .HasColumnName("VitalRegen"); + + b.Property("ResetRadius") + .HasColumnType("int"); + + b.Property("Scaling") + .HasColumnType("int"); + + b.Property("ScalingStat") + .HasColumnType("int"); + + b.Property("SightRange") + .HasColumnType("int"); + + b.Property("SpawnDuration") + .HasColumnType("int"); + + b.Property("SpellFrequency") + .HasColumnType("int"); + + b.Property("Sprite") + .HasColumnType("longtext"); + + b.Property("Swarm") + .HasColumnType("tinyint(1)"); + + b.Property("Tenacity") + .HasColumnType("double"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Npcs"); + }); + + modelBuilder.Entity("Intersect.GameObjects.PlayerVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("PlayerVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ProjectileBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AmmoItemId") + .HasColumnType("char(36)") + .HasColumnName("Ammo") + .UseCollation("ascii_general_ci"); + + b.Property("AmmoRequired") + .HasColumnType("int"); + + b.Property("AnimationsJson") + .HasColumnType("longtext") + .HasColumnName("Animations"); + + b.Property("Delay") + .HasColumnType("int"); + + b.Property("DirectShotBehavior") + .HasColumnType("tinyint(1)"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("GrappleHook") + .HasColumnType("tinyint(1)"); + + b.Property("GrappleHookOptionsJson") + .HasColumnType("longtext") + .HasColumnName("GrappleHookOptions"); + + b.Property("HomingBehavior") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreActiveResources") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreExhaustedResources") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreMapBlocks") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreZDimension") + .HasColumnType("tinyint(1)"); + + b.Property("Knockback") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("PierceTarget") + .HasColumnType("tinyint(1)"); + + b.Property("Quantity") + .HasColumnType("int"); + + b.Property("Range") + .HasColumnType("int"); + + b.Property("SpawnsJson") + .HasColumnType("longtext") + .HasColumnName("SpawnLocations"); + + b.Property("Speed") + .HasColumnType("int"); + + b.Property("SpellId") + .HasColumnType("char(36)") + .HasColumnName("Spell") + .UseCollation("ascii_general_ci"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Projectiles"); + }); + + modelBuilder.Entity("Intersect.GameObjects.QuestBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("BeforeDescription") + .HasColumnType("longtext"); + + b.Property("CompletedCategory") + .HasColumnType("longtext"); + + b.Property("DoNotShowUnlessRequirementsMet") + .HasColumnType("tinyint(1)"); + + b.Property("EndDescription") + .HasColumnType("longtext"); + + b.Property("EndEventId") + .HasColumnType("char(36)") + .HasColumnName("EndEvent") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("InProgressCategory") + .HasColumnType("longtext"); + + b.Property("InProgressDescription") + .HasColumnType("longtext"); + + b.Property("JsonRequirements") + .HasColumnType("longtext") + .HasColumnName("Requirements"); + + b.Property("LogAfterComplete") + .HasColumnType("tinyint(1)"); + + b.Property("LogBeforeOffer") + .HasColumnType("tinyint(1)"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("OrderValue") + .HasColumnType("int"); + + b.Property("Quitable") + .HasColumnType("tinyint(1)"); + + b.Property("Repeatable") + .HasColumnType("tinyint(1)"); + + b.Property("StartDescription") + .HasColumnType("longtext"); + + b.Property("StartEventId") + .HasColumnType("char(36)") + .HasColumnName("StartEvent") + .UseCollation("ascii_general_ci"); + + b.Property("TasksJson") + .HasColumnType("longtext") + .HasColumnName("Tasks"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("UnstartedCategory") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.ToTable("Quests"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ResourceBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AnimationId") + .HasColumnType("char(36)") + .HasColumnName("Animation") + .UseCollation("ascii_general_ci"); + + b.Property("CannotHarvestMessage") + .HasColumnType("longtext"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("JsonDrops") + .HasColumnType("longtext") + .HasColumnName("Drops"); + + b.Property("JsonHarvestingRequirements") + .HasColumnType("longtext") + .HasColumnName("HarvestingRequirements"); + + b.Property("MaxHp") + .HasColumnType("int"); + + b.Property("MinHp") + .HasColumnType("int"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SpawnDuration") + .HasColumnType("int"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Tool") + .HasColumnType("int"); + + b.Property("VitalRegen") + .HasColumnType("int"); + + b.Property("WalkableAfter") + .HasColumnType("tinyint(1)"); + + b.Property("WalkableBefore") + .HasColumnType("tinyint(1)"); + + b.HasKey("Id"); + + b.ToTable("Resources"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ServerVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Json") + .HasColumnType("longtext") + .HasColumnName("Value"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned"); + + b.HasKey("Id"); + + b.ToTable("ServerVariables"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ShopBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("BuySound") + .HasColumnType("longtext"); + + b.Property("BuyingWhitelist") + .HasColumnType("tinyint(1)"); + + b.Property("DefaultCurrencyId") + .HasColumnType("char(36)") + .HasColumnName("DefaultCurrency") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("JsonBuyingItems") + .HasColumnType("longtext") + .HasColumnName("BuyingItems"); + + b.Property("JsonSellingItems") + .HasColumnType("longtext") + .HasColumnName("SellingItems"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SellSound") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Shops"); + }); + + modelBuilder.Entity("Intersect.GameObjects.SpellBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Bound") + .HasColumnType("tinyint(1)"); + + b.Property("CannotCastMessage") + .HasColumnType("longtext"); + + b.Property("CastAnimationId") + .HasColumnType("char(36)") + .HasColumnName("CastAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("CastDuration") + .HasColumnType("int"); + + b.Property("CastSpriteOverride") + .HasColumnType("longtext"); + + b.Property("CooldownDuration") + .HasColumnType("int"); + + b.Property("CooldownGroup") + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("EventId") + .HasColumnType("char(36)") + .HasColumnName("Event") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("HitAnimationId") + .HasColumnType("char(36)") + .HasColumnName("HitAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("Icon") + .HasColumnType("longtext"); + + b.Property("IgnoreCooldownReduction") + .HasColumnType("tinyint(1)"); + + b.Property("IgnoreGlobalCooldown") + .HasColumnType("tinyint(1)"); + + b.Property("JsonCastRequirements") + .HasColumnType("longtext") + .HasColumnName("CastRequirements"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("SpellType") + .HasColumnType("int"); + + b.Property("TickAnimationId") + .HasColumnType("char(36)") + .HasColumnName("TickAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("VitalCostJson") + .HasColumnType("longtext") + .HasColumnName("VitalCost"); + + b.HasKey("Id"); + + b.ToTable("Spells"); + }); + + modelBuilder.Entity("Intersect.GameObjects.TilesetBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Name") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.HasKey("Id"); + + b.ToTable("Tilesets"); + }); + + modelBuilder.Entity("Intersect.GameObjects.TimeBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("DaylightHuesJson") + .HasColumnType("longtext") + .HasColumnName("DaylightHues"); + + b.Property("RangeInterval") + .HasColumnType("int"); + + b.Property("Rate") + .HasColumnType("float"); + + b.Property("SyncTime") + .HasColumnType("tinyint(1)"); + + b.HasKey("Id"); + + b.ToTable("Time"); + }); + + modelBuilder.Entity("Intersect.GameObjects.UserVariableBase", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Folder") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("TextId") + .HasColumnType("longtext"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Type") + .HasColumnType("tinyint unsigned") + .HasColumnName("DataType"); + + b.HasKey("Id"); + + b.ToTable("UserVariables"); + }); + + modelBuilder.Entity("Intersect.Server.Maps.MapController", b => + { + b.Property("Id") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("AHue") + .HasColumnType("int"); + + b.Property("AttributeData") + .HasColumnType("longblob") + .HasColumnName("Attributes"); + + b.Property("BHue") + .HasColumnType("int"); + + b.Property("Brightness") + .HasColumnType("int"); + + b.Property("Down") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("EventIdsJson") + .HasColumnType("longtext") + .HasColumnName("Events"); + + b.Property("Fog") + .HasColumnType("longtext"); + + b.Property("FogTransparency") + .HasColumnType("int"); + + b.Property("FogXSpeed") + .HasColumnType("int"); + + b.Property("FogYSpeed") + .HasColumnType("int"); + + b.Property("GHue") + .HasColumnType("int"); + + b.Property("HideEquipment") + .HasColumnType("tinyint(1)"); + + b.Property("IsIndoors") + .HasColumnType("tinyint(1)"); + + b.Property("Left") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("LightsJson") + .HasColumnType("longtext") + .HasColumnName("Lights"); + + b.Property("Music") + .HasColumnType("longtext"); + + b.Property("Name") + .HasColumnType("longtext") + .HasColumnOrder(0); + + b.Property("NpcSpawnsJson") + .HasColumnType("longtext") + .HasColumnName("NpcSpawns"); + + b.Property("OverlayGraphic") + .HasColumnType("longtext"); + + b.Property("Panorama") + .HasColumnType("longtext"); + + b.Property("PlayerLightColorJson") + .HasColumnType("longtext") + .HasColumnName("PlayerLightColor"); + + b.Property("PlayerLightExpand") + .HasColumnType("float"); + + b.Property("PlayerLightIntensity") + .HasColumnType("tinyint unsigned"); + + b.Property("PlayerLightSize") + .HasColumnType("int"); + + b.Property("RHue") + .HasColumnType("int"); + + b.Property("Revision") + .HasColumnType("int"); + + b.Property("Right") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("Sound") + .HasColumnType("longtext"); + + b.Property("TileData") + .HasColumnType("longblob"); + + b.Property("TimeCreated") + .HasColumnType("bigint"); + + b.Property("Up") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b.Property("WeatherAnimationId") + .HasColumnType("char(36)") + .HasColumnName("WeatherAnimation") + .UseCollation("ascii_general_ci"); + + b.Property("WeatherIntensity") + .HasColumnType("int"); + + b.Property("WeatherXSpeed") + .HasColumnType("int"); + + b.Property("WeatherYSpeed") + .HasColumnType("int"); + + b.Property("ZoneType") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("Maps"); + }); + + modelBuilder.Entity("Intersect.GameObjects.AnimationBase", b => + { + b.OwnsOne("Intersect.GameObjects.AnimationLayer", "Lower", b1 => + { + b1.Property("AnimationBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("AlternateRenderLayer") + .HasColumnType("tinyint(1)"); + + b1.Property("DisableRotations") + .HasColumnType("tinyint(1)"); + + b1.Property("FrameCount") + .HasColumnType("int"); + + b1.Property("FrameSpeed") + .HasColumnType("int"); + + b1.Property("Light") + .HasColumnType("longtext"); + + b1.Property("LoopCount") + .HasColumnType("int"); + + b1.Property("Sprite") + .HasColumnType("longtext"); + + b1.Property("XFrames") + .HasColumnType("int"); + + b1.Property("YFrames") + .HasColumnType("int"); + + b1.HasKey("AnimationBaseId"); + + b1.ToTable("Animations"); + + b1.WithOwner() + .HasForeignKey("AnimationBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.AnimationLayer", "Upper", b1 => + { + b1.Property("AnimationBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("AlternateRenderLayer") + .HasColumnType("tinyint(1)"); + + b1.Property("DisableRotations") + .HasColumnType("tinyint(1)"); + + b1.Property("FrameCount") + .HasColumnType("int"); + + b1.Property("FrameSpeed") + .HasColumnType("int"); + + b1.Property("Light") + .HasColumnType("longtext"); + + b1.Property("LoopCount") + .HasColumnType("int"); + + b1.Property("Sprite") + .HasColumnType("longtext"); + + b1.Property("XFrames") + .HasColumnType("int"); + + b1.Property("YFrames") + .HasColumnType("int"); + + b1.HasKey("AnimationBaseId"); + + b1.ToTable("Animations"); + + b1.WithOwner() + .HasForeignKey("AnimationBaseId"); + }); + + b.Navigation("Lower"); + + b.Navigation("Upper"); + }); + + modelBuilder.Entity("Intersect.GameObjects.EquipmentProperties", b => + { + b.HasOne("Intersect.GameObjects.ItemBase", "Descriptor") + .WithOne("EquipmentProperties") + .HasForeignKey("Intersect.GameObjects.EquipmentProperties", "DescriptorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_AbilityPower", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Attack", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Defense", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_MagicResist", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.OwnsOne("Intersect.GameObjects.Ranges.ItemRange", "StatRange_Speed", b1 => + { + b1.Property("EquipmentPropertiesDescriptorId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("HighRange") + .HasColumnType("int"); + + b1.Property("LowRange") + .HasColumnType("int"); + + b1.HasKey("EquipmentPropertiesDescriptorId"); + + b1.ToTable("Items_EquipmentProperties"); + + b1.WithOwner() + .HasForeignKey("EquipmentPropertiesDescriptorId"); + }); + + b.Navigation("Descriptor"); + + b.Navigation("StatRange_AbilityPower"); + + b.Navigation("StatRange_Attack"); + + b.Navigation("StatRange_Defense"); + + b.Navigation("StatRange_MagicResist"); + + b.Navigation("StatRange_Speed"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.OwnsOne("Intersect.GameObjects.ConsumableData", "Consumable", b1 => + { + b1.Property("ItemBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Percentage") + .HasColumnType("int"); + + b1.Property("Type") + .HasColumnType("tinyint unsigned"); + + b1.Property("Value") + .HasColumnType("bigint"); + + b1.HasKey("ItemBaseId"); + + b1.ToTable("Items"); + + b1.WithOwner() + .HasForeignKey("ItemBaseId"); + }); + + b.Navigation("Consumable"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ResourceBase", b => + { + b.OwnsOne("Intersect.GameObjects.ResourceState", "Exhausted", b1 => + { + b1.Property("ResourceBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Graphic") + .HasColumnType("longtext"); + + b1.Property("GraphicFromTileset") + .HasColumnType("tinyint(1)"); + + b1.Property("Height") + .HasColumnType("int"); + + b1.Property("RenderBelowEntities") + .HasColumnType("tinyint(1)"); + + b1.Property("Width") + .HasColumnType("int"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("ResourceBaseId"); + + b1.ToTable("Resources"); + + b1.WithOwner() + .HasForeignKey("ResourceBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.ResourceState", "Initial", b1 => + { + b1.Property("ResourceBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Graphic") + .HasColumnType("longtext"); + + b1.Property("GraphicFromTileset") + .HasColumnType("tinyint(1)"); + + b1.Property("Height") + .HasColumnType("int"); + + b1.Property("RenderBelowEntities") + .HasColumnType("tinyint(1)"); + + b1.Property("Width") + .HasColumnType("int"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("ResourceBaseId"); + + b1.ToTable("Resources"); + + b1.WithOwner() + .HasForeignKey("ResourceBaseId"); + }); + + b.Navigation("Exhausted"); + + b.Navigation("Initial"); + }); + + modelBuilder.Entity("Intersect.GameObjects.SpellBase", b => + { + b.OwnsOne("Intersect.GameObjects.SpellCombatData", "Combat", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("CastRange") + .HasColumnType("int"); + + b1.Property("CritChance") + .HasColumnType("int"); + + b1.Property("CritMultiplier") + .HasColumnType("double"); + + b1.Property("DamageType") + .HasColumnType("int"); + + b1.Property("Duration") + .HasColumnType("int"); + + b1.Property("Effect") + .HasColumnType("int"); + + b1.Property("Friendly") + .HasColumnType("tinyint(1)"); + + b1.Property("HitRadius") + .HasColumnType("int"); + + b1.Property("HoTDoT") + .HasColumnType("tinyint(1)"); + + b1.Property("HotDotInterval") + .HasColumnType("int"); + + b1.Property("OnHitDuration") + .HasColumnType("int") + .HasColumnName("OnHit"); + + b1.Property("PercentageStatDiffJson") + .HasColumnType("longtext") + .HasColumnName("PercentageStatDiff"); + + b1.Property("ProjectileId") + .HasColumnType("char(36)") + .HasColumnName("Projectile") + .UseCollation("ascii_general_ci"); + + b1.Property("Scaling") + .HasColumnType("int"); + + b1.Property("ScalingStat") + .HasColumnType("int"); + + b1.Property("StatDiffJson") + .HasColumnType("longtext") + .HasColumnName("StatDiff"); + + b1.Property("TargetType") + .HasColumnType("int"); + + b1.Property("TransformSprite") + .HasColumnType("longtext"); + + b1.Property("TrapDuration") + .HasColumnType("int") + .HasColumnName("Trap"); + + b1.Property("VitalDiffJson") + .HasColumnType("longtext") + .HasColumnName("VitalDiff"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.SpellDashOpts", "Dash", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("IgnoreActiveResources") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreInactiveResources") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreMapBlocks") + .HasColumnType("tinyint(1)"); + + b1.Property("IgnoreZDimensionAttributes") + .HasColumnType("tinyint(1)"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.OwnsOne("Intersect.GameObjects.SpellWarpData", "Warp", b1 => + { + b1.Property("SpellBaseId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("Dir") + .HasColumnType("int"); + + b1.Property("MapId") + .HasColumnType("char(36)") + .UseCollation("ascii_general_ci"); + + b1.Property("X") + .HasColumnType("int"); + + b1.Property("Y") + .HasColumnType("int"); + + b1.HasKey("SpellBaseId"); + + b1.ToTable("Spells"); + + b1.WithOwner() + .HasForeignKey("SpellBaseId"); + }); + + b.Navigation("Combat"); + + b.Navigation("Dash"); + + b.Navigation("Warp"); + }); + + modelBuilder.Entity("Intersect.GameObjects.ItemBase", b => + { + b.Navigation("EquipmentProperties"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Intersect.Server/Migrations/MySql/Game/20240608185758_ParallelEvents.cs b/Intersect.Server/Migrations/MySql/Game/20240608185758_ParallelEvents.cs new file mode 100644 index 0000000000..5f21736a5b --- /dev/null +++ b/Intersect.Server/Migrations/MySql/Game/20240608185758_ParallelEvents.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Intersect.Server.Migrations.MySql.Game +{ + /// + public partial class ParallelEvents : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "CanRunInParallel", + table: "Events", + type: "tinyint(1)", + nullable: false, + defaultValue: false); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "CanRunInParallel", + table: "Events"); + } + } +} diff --git a/Intersect.Server/Migrations/MySql/Game/MySqlGameContextModelSnapshot.cs b/Intersect.Server/Migrations/MySql/Game/MySqlGameContextModelSnapshot.cs index e2e77c177d..537afbaeca 100644 --- a/Intersect.Server/Migrations/MySql/Game/MySqlGameContextModelSnapshot.cs +++ b/Intersect.Server/Migrations/MySql/Game/MySqlGameContextModelSnapshot.cs @@ -259,6 +259,9 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasColumnType("char(36)") .UseCollation("ascii_general_ci"); + b.Property("CanRunInParallel") + .HasColumnType("tinyint(1)"); + b.Property("CommonEvent") .HasColumnType("tinyint(1)"); @@ -418,6 +421,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasColumnName("Event") .UseCollation("ascii_general_ci"); + b.Property("EventTriggersJson") + .HasColumnType("longtext") + .HasColumnName("EventTriggers"); + b.Property("FemalePaperdoll") .HasColumnType("longtext"); @@ -747,6 +754,9 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Delay") .HasColumnType("int"); + b.Property("DirectShotBehavior") + .HasColumnType("tinyint(1)"); + b.Property("Folder") .HasColumnType("longtext"); @@ -757,6 +767,9 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasColumnType("longtext") .HasColumnName("GrappleHookOptions"); + b.Property("HomingBehavior") + .HasColumnType("tinyint(1)"); + b.Property("IgnoreActiveResources") .HasColumnType("tinyint(1)"); @@ -1149,9 +1162,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasColumnType("char(36)") .UseCollation("ascii_general_ci"); - b.Property("DataType") - .HasColumnType("tinyint unsigned"); - b.Property("Folder") .HasColumnType("longtext"); @@ -1165,6 +1175,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("TimeCreated") .HasColumnType("bigint"); + b.Property("Type") + .HasColumnType("tinyint unsigned") + .HasColumnName("DataType"); + b.HasKey("Id"); b.ToTable("UserVariables"); @@ -1525,8 +1539,8 @@ protected override void BuildModel(ModelBuilder modelBuilder) b1.Property("Type") .HasColumnType("tinyint unsigned"); - b1.Property("Value") - .HasColumnType("int"); + b1.Property("Value") + .HasColumnType("bigint"); b1.HasKey("ItemBaseId");