Beispiel #1
0
 public EnemyDescription(EnemyCodex.EnemyTypes p_enType, EnemyDescription.Category p_enCategory, string p_sFullname, int p_iLevel, int p_iMaxHealth)
 {
     this.sFullName = p_sFullname;
     this.iLevel = p_iLevel;
     this.iMaxHealth = p_iMaxHealth;
     this.enType = p_enType;
     this.enCategory = p_enCategory;
 }
Beispiel #2
0
 public static void PreLoadDrops(EnemyDescription xEn, ContentManager Content)
 {
     for (int i = 0; i < xEn.lxLootTable.Count; i++)
     {
         ItemCodex.GetItemInstance(xEn.lxLootTable[i].enItemToDrop);
     }
 }
Beispiel #3
0
 public void SetGotCard(EnemyCodex.EnemyTypes enType)
 {
     this.iGotCardCounter = 1;
     this.xGotCard = EnemyCodex.GetEnemyDescription(enType);
     Program.GetTheGame().xSoundSystem.PlayInterfaceCue("LevelUp");
 }
Beispiel #4
0
 public static void Init()
 {
     List<EnemyDescription> lxTheDescriptYo = new List<EnemyDescription>();
     Game1 txt = Program.GetTheGame();
     EnemyDescription xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.GreenSlime, txt.MiscTextLibrary_GetText("Enemies", "GreenSlime_Name"), 2, 60);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "GreenSlime_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "GreenSlime_Description");
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "GreenSlime_Card");
     xDesc.iCardDropChance = 500;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -3f);
     xDesc.v2ApproximateSize = new Vector2(15f, 13f);
     xDesc.lxLootTable.Add(new DropChance(20000, ItemCodex.ItemTypes.StickyMucus));
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes.Apple));
     xDesc.lxLootTable.Add(new DropChance(100, ItemCodex.ItemTypes._Hat_SlimeHat));
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.GreenSlime_RingQuestVersion, txt.MiscTextLibrary_GetText("Enemies", "GreenSlime_Name"), 1, 60);
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -3f);
     xDesc.v2ApproximateSize = new Vector2(15f, 13f);
     xDesc.lxLootTable.Add(new DropChance(100000, ItemCodex.ItemTypes._Special_SlimeRing));
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes.Apple));
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.RedSlime, txt.MiscTextLibrary_GetText("Enemies", "RedSlime_Name"), 3, 100);
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -3f);
     xDesc.v2ApproximateSize = new Vector2(15f, 13f);
     xDesc.lxLootTable.Add(new DropChance(20000, ItemCodex.ItemTypes.StickyMucus));
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes.Apple));
     xDesc.lxLootTable.Add(new DropChance(100, ItemCodex.ItemTypes._Hat_SlimeHat_Red));
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Rabbi, txt.MiscTextLibrary_GetText("Enemies", "Rabby_Name"), 3, 110);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Rabby_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Rabby_Description");
     xDesc.sOnDeathSound = "Rabby_Death";
     xDesc.sOnHitSound = "Rabby_DamageSolo";
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Rabby_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -2f);
     xDesc.v2ApproximateSize = new Vector2(17f, 13f);
     xDesc.lxLootTable.Add(new DropChance(50000, ItemCodex.ItemTypes.Carrot));
     xDesc.lxLootTable.Add(new DropChance(20000, ItemCodex.ItemTypes._Misc_Fur));
     xDesc.lxLootTable.Add(new DropChance(100, ItemCodex.ItemTypes._Accessory_RabbitsFoot));
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.RabbyWhite, txt.MiscTextLibrary_GetText("Enemies", "ElderRabby_Name"), 10, 1500);
     xDesc.sOnDeathSound = "Rabby_Death";
     xDesc.sOnHitSound = "Rabby_DamageSolo";
     xDesc.iCardDropChance = 0;
     xDesc.bFilthyRich = true;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -2f);
     xDesc.v2ApproximateSize = new Vector2(17f, 13f);
     xDesc.lxLootTable.Add(new DropChance(100000, ItemCodex.ItemTypes._Special_CarrotSwordPickup));
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Bee, txt.MiscTextLibrary_GetText("Enemies", "MrsBee_Name"), 5, 50);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "MrsBee_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "MrsBee_Description");
     xDesc.sOnDeathSound = "Bee_Death";
     xDesc.sOnHitSound = "Bee_Damaged";
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "MrsBee_Card");
     xDesc.iCardDropChance = 100;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -30f);
     xDesc.v2ApproximateSize = new Vector2(9f, 12f);
     xDesc.lxLootTable.Add(new DropChance(50000, ItemCodex.ItemTypes._Misc_Stinger));
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_Honey));
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.BeeHive, txt.MiscTextLibrary_GetText("Enemies", "BeeHive_Name"), 5, 180);
     xDesc.sOnDeathSound = "Pumpkin_Death";
     xDesc.sOnHitSound = "Bee_Damaged";
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -6f);
     xDesc.v2ApproximateSize = new Vector2(22f, 19f);
     xDesc.lxLootTable.Add(new DropChance(100000, ItemCodex.ItemTypes._Misc_Honey));
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_Honey));
     xDesc.lxLootTable.Add(new DropChance(30000, ItemCodex.ItemTypes._Misc_Honey));
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Blomma, txt.MiscTextLibrary_GetText("Enemies", "Bloomo_Name"), 3, 220);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.iCardDropChance = 125;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -16f);
     xDesc.v2ApproximateSize = new Vector2(20f, 43f);
     xDesc.lxLootTable.Add(new DropChance(15000, ItemCodex.ItemTypes._Misc_PetalBlue));
     xDesc.lxLootTable.Add(new DropChance(25000, ItemCodex.ItemTypes._Misc_Root));
     xDesc.sOnDeathSound = "Halloweed_Die";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Bloomo_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Bloomo_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Bloomo_Card");
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Boar, txt.MiscTextLibrary_GetText("Enemies", "Boar_Name"), 5, 400);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.iCardDropChance = 200;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -9f);
     xDesc.v2ApproximateSize = new Vector2(23f, 20f);
     xDesc.lxLootTable.Add(new DropChance(15000, ItemCodex.ItemTypes._Misc_Tusk));
     xDesc.lxLootTable.Add(new DropChance(25000, ItemCodex.ItemTypes._Misc_ToughSkin));
     xDesc.sOnHitSound = "Boar_Damaged";
     xDesc.sOnDeathSound = "Boar_Dead";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Boar_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Boar_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Boar_Card");
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Freddy, txt.MiscTextLibrary_GetText("Enemies", "Freddy_Name"), 1, 1);
     lxTheDescriptYo.Add(xDesc);
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Freddy_Flavor");
     xDesc.sOnHitSound = "Freddy_Hit";
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Freddy_Description");
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -12f);
     xDesc.v2ApproximateSize = new Vector2(14f, 29f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Teddy, txt.MiscTextLibrary_GetText("Enemies", "Teddy_Name"), 1, 1);
     lxTheDescriptYo.Add(xDesc);
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Teddy_Flavor");
     xDesc.sOnHitSound = "Teddy_Hit";
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Teddy_Description");
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -12f);
     xDesc.v2ApproximateSize = new Vector2(14f, 29f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Vilya, EnemyDescription.Category.Miniboss, txt.MiscTextLibrary_GetText("Enemies", "Vilya_Name"), 7, 1000);
     lxTheDescriptYo.Add(xDesc);
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Vilya_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Vilya_Description");
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -12f);
     xDesc.v2ApproximateSize = new Vector2(14f, 29f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.PapaSlime, EnemyDescription.Category.Boss, txt.MiscTextLibrary_GetText("Enemies", "GigaSlime_Name"), 8, 1500);
     lxTheDescriptYo.Add(xDesc);
     xDesc.sOnHitSound = "GigaSlime_Damaged";
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_SlimeCube));
     xDesc.lxLootTable.Add(new DropChance(25000, ItemCodex.ItemTypes._Misc_Furniture_LampGreenSlime));
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "GigaSlime_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "GigaSlime_Description");
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -28f);
     xDesc.v2ApproximateSize = new Vector2(68f, 62f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.RedPapaSlime, EnemyDescription.Category.Boss, txt.MiscTextLibrary_GetText("Enemies", "FuriousGigaSlime_Name"), 10, 10000);
     xDesc.sOnHitSound = "GigaSlime_Damaged";
     xDesc.sFlavourText = "A slime that's grown way too big...";
     xDesc.sDetailedDescription = "Also known as the giant slime, the king of slimes and various other titles. Is really just a huge, angry slime that can shape itself in any way it wants!";
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -28f);
     xDesc.v2ApproximateSize = new Vector2(68f, 62f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Pumpkin, txt.MiscTextLibrary_GetText("Enemies", "Jumpkin_Name"), 5, 90);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(500, ItemCodex.ItemTypes._Hat_PumpkinMask));
     xDesc.lxLootTable.Add(new DropChance(50000, ItemCodex.ItemTypes._Misc_PumpkinMeat));
     xDesc.lxLootTable.Add(new DropChance(15000, ItemCodex.ItemTypes._Misc_PumpkinSeeds));
     xDesc.sOnDeathSound = "Pumpkin_Death";
     xDesc.sOnHitSound = "Pumpkin_Damage";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Jumpkin_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Jumpkin_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Jumpkin_Card");
     xDesc.iCardDropChance = 500;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -7f);
     xDesc.v2ApproximateSize = new Vector2(17f, 18f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.PyroPumpkin, txt.MiscTextLibrary_GetText("Enemies", "LanternJack_Name"), 7, 100);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_Lantern));
     xDesc.lxLootTable.Add(new DropChance(25000, ItemCodex.ItemTypes._Misc_Fabric));
     xDesc.lxLootTable.Add(new DropChance(250, ItemCodex.ItemTypes._Armor_Shawl));
     xDesc.sOnDeathSound = "Jacko_Death";
     xDesc.sOnHitSound = "Jacko_Damaged";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "LanternJack_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "LanternJack_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "LanternJack_Card");
     xDesc.iCardDropChance = 200;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -18f);
     xDesc.v2ApproximateSize = new Vector2(19f, 23f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Scarecrow, txt.MiscTextLibrary_GetText("Enemies", "Scarecrow_Name"), 7, 350);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_Hay));
     xDesc.lxLootTable.Add(new DropChance(22500, ItemCodex.ItemTypes._Misc_Button));
     xDesc.lxLootTable.Add(new DropChance(2000, ItemCodex.ItemTypes._Accessory_Scarf));
     xDesc.sOnHitSound = "Scarecrow_Damaged";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Scarecrow_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Scarecrow_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Scarecrow_Card");
     xDesc.iCardDropChance = 150;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -23f);
     xDesc.v2ApproximateSize = new Vector2(15f, 28f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Pumpking, txt.MiscTextLibrary_GetText("Enemies", "Pumpking_Name"), 12, 1800);
     xDesc.lxLootTable.Add(new DropChance(100000, ItemCodex.ItemTypes._Misc_Hay));
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_Hay));
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_Hay));
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_Button));
     xDesc.lxLootTable.Add(new DropChance(2000, ItemCodex.ItemTypes._Accessory_Scarf));
     xDesc.sOnHitSound = "Scarecrow_Damaged";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Pumpking_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Pumpking_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Ghosty_Card");
     xDesc.bFilthyRich = true;
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -23f);
     xDesc.v2ApproximateSize = new Vector2(15f, 28f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Halloweed, txt.MiscTextLibrary_GetText("Enemies", "Halloweed_Name"), 10, 650);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(20000, ItemCodex.ItemTypes._Misc_PetalPurple));
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_Root));
     xDesc.lxLootTable.Add(new DropChance(15000, ItemCodex.ItemTypes._Misc_Pollen));
     xDesc.sOnDeathSound = "Halloweed_Die";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Halloweed_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Halloweed_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Halloweed_Card");
     xDesc.iCardDropChance = 100;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -16f);
     xDesc.v2ApproximateSize = new Vector2(20f, 43f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.TerrorWeed, EnemyDescription.Category.Regular, txt.MiscTextLibrary_GetText("Enemies", "TerrorWeed_Name"), 14, 2000);
     xDesc.lxLootTable.Add(new DropChance(20000, ItemCodex.ItemTypes._Misc_PetalPurple));
     xDesc.lxLootTable.Add(new DropChance(80000, ItemCodex.ItemTypes._Misc_Root));
     xDesc.lxLootTable.Add(new DropChance(80000, ItemCodex.ItemTypes._Misc_Root));
     xDesc.lxLootTable.Add(new DropChance(80000, ItemCodex.ItemTypes._Misc_Root));
     xDesc.lxLootTable.Add(new DropChance(80000, ItemCodex.ItemTypes._Misc_Root));
     xDesc.lxLootTable.Add(new DropChance(80000, ItemCodex.ItemTypes._Misc_Root));
     xDesc.lxLootTable.Add(new DropChance(80000, ItemCodex.ItemTypes._Misc_Root));
     xDesc.lxLootTable.Add(new DropChance(15000, ItemCodex.ItemTypes._Misc_Pollen));
     xDesc.bFilthyRich = true;
     xDesc.sOnDeathSound = "Halloweed_Die";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Halloweed_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Halloweed_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Halloweed_Card");
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -16f);
     xDesc.v2ApproximateSize = new Vector2(20f, 43f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Ghosty, txt.MiscTextLibrary_GetText("Enemies", "Ghosty_Name"), 7, 90);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(10000, ItemCodex.ItemTypes._Misc_Ectoplasm));
     xDesc.lxLootTable.Add(new DropChance(20000, ItemCodex.ItemTypes._Misc_Sheet));
     xDesc.sOnDeathSound = "Ghost_Death";
     xDesc.sOnHitSound = "Ghost_Damaged";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Ghosty_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Ghosty_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Ghosty_Card");
     xDesc.bNoFadeIn = true;
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -18f);
     xDesc.v2ApproximateSize = new Vector2(13f, 19f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Trick, txt.MiscTextLibrary_GetText("Enemies", "Trick_Name"), 10, 4000);
     xDesc.sOnDeathSound = "";
     xDesc.sOnHitSound = "";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Trick_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Trick_Description");
     xDesc.sCardDescription = "Increases your Crit Chance by 3";
     xDesc.iCardDropChance = 0;
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Treat, txt.MiscTextLibrary_GetText("Enemies", "Treat_Name"), 10, 4000);
     xDesc.sOnDeathSound = "";
     xDesc.sOnHitSound = "";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Treat_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Treat_Description");
     xDesc.sCardDescription = "Increases your Crit Chance by 3";
     xDesc.iCardDropChance = 0;
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Chicken, txt.MiscTextLibrary_GetText("Enemies", "Chicken_Name"), 1, 133333337);
     xDesc.sOnHitSound = "Chicken";
     xDesc.sFlavourText = "Revered all over Grindea, providing food and company for thousands!";
     xDesc.sDetailedDescription = "Chickens hang around in {c=location}various towns{/}, strutting about and minding their own business. Luckily for humans, they are extremely timid, despite actually being one of the strongest creatures in existance!\n\nMany have tried to topple these ferocious birds, but there is no recorded case in history where a chicken has died of anything but old age.";
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -6f);
     xDesc.v2ApproximateSize = new Vector2(12f, 11f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Wisp, txt.MiscTextLibrary_GetText("Enemies", "Wisp_Name"), 8, 300);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(10000, ItemCodex.ItemTypes._Misc_PowerCore));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Accessory_PlasmaBracelet));
     xDesc.sOnHitSound = "BrawlerBot_Damage";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Wisp_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Wisp_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Wisp_Card");
     xDesc.iCardDropChance = 150;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(14f, 18f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Pecko, txt.MiscTextLibrary_GetText("Enemies", "Pecko_Name"), 9, 1000);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(50000, ItemCodex.ItemTypes._Misc_PeckoFeather));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Misc_PeckoDoll));
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Shoes_BirdFeet));
     xDesc.lxLootTable.Add(new DropChance(10000, ItemCodex.ItemTypes._Misc_Turkey));
     xDesc.sOnDeathSound = "Pecco_Death";
     xDesc.sOnHitSound = "Pecco_Damage";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Pecko_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Pecko_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Pecko_Card");
     xDesc.iCardDropChance = 100;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -16f);
     xDesc.v2ApproximateSize = new Vector2(35f, 18f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Guardian, txt.MiscTextLibrary_GetText("Enemies", "Guardian_Name"), 8, 500);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Misc_GuardianCrystal));
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_CrystalCrumbs));
     xDesc.sOnDeathSound = "Guardian_Dead";
     xDesc.sOnHitSound = "Guardian_Damage";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Guardian_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Guardian_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Guardian_Card");
     xDesc.iCardDropChance = 150;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -25f);
     xDesc.v2ApproximateSize = new Vector2(11f, 26f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.RiftCrystal, txt.MiscTextLibrary_GetText("Enemies", "RiftCrystal_Name"), 8, 750);
     xDesc.sOnDeathSound = "Guardian_Dead";
     xDesc.sOnHitSound = "Guardian_Damage";
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -12f);
     xDesc.v2ApproximateSize = new Vector2(10f, 32f);
     xDesc.lxLootTable.Add(new DropChance(100000, ItemCodex.ItemTypes._Misc_CrystalCrumbs));
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_CrystalCrumbs));
     xDesc.lxLootTable.Add(new DropChance(30000, ItemCodex.ItemTypes._Misc_GuardianCrystal));
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.BrawlerBot, txt.MiscTextLibrary_GetText("Enemies", "BrawlerBot_Name"), 8, 450);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_MetalPiece));
     xDesc.lxLootTable.Add(new DropChance(800, ItemCodex.ItemTypes._Armor_BrawlerPlate));
     xDesc.sOnDeathSound = "BrawlerBot_Death";
     xDesc.sOnHitSound = "BrawlerBot_Damage";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "BrawlerBot_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "BrawlerBot_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "BrawlerBot_Card");
     xDesc.iCardDropChance = 400;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -12f);
     xDesc.v2ApproximateSize = new Vector2(16f, 17f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.PhaseMan, EnemyDescription.Category.Miniboss, txt.MiscTextLibrary_GetText("Enemies", "Phaseman_Name"), 10, 3250);
     lxTheDescriptYo.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Hat_Phaseface));
     xDesc.lxLootTable.Add(new DropChance(25000, ItemCodex.ItemTypes._Shoes_PhasemanBoots));
     xDesc.lxLootTable.Add(new DropChance(30000, ItemCodex.ItemTypes._Misc_Furniture_LampCrystal));
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Phaseman_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Phaseman_Description");
     xDesc.iCardDropChance = 0;
     xDesc.bFilthyRich = true;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -19f);
     xDesc.v2ApproximateSize = new Vector2(17f, 38f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.GundamMain, EnemyDescription.Category.Boss, txt.MiscTextLibrary_GetText("Enemies", "GUN-D4M_Name"), 10, 3750);
     lxTheDescriptYo.Add(xDesc);
     xDesc.sOnHitSound = "Gund4m_Damage";
     xDesc.lxLootTable.Add(new DropChance(45000, ItemCodex.ItemTypes._Misc_EmitterMatrix));
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "GUN-D4M_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "GUN-D4M_Description");
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -40f);
     xDesc.v2ApproximateSize = new Vector2(58f, 62f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.FlyingTempleChallengeCrystal, EnemyDescription.Category.Boss, txt.MiscTextLibrary_GetText("Enemies", "TheSentry_Name"), 9, 4250);
     xDesc.sOnDeathSound = "crystal_sentry_death";
     xDesc.sOnHitSound = "crystal_sentry_damage";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "GUN-D4M_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "GUN-D4M_Description");
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(11f, 33f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.GundamHand, EnemyDescription.Category.Boss, txt.MiscTextLibrary_GetText("Enemies", "GUN-D4M_Hands_Name"), 1, 1500);
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -10f);
     xDesc.v2ApproximateSize = new Vector2(45f, 44f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Marino, EnemyDescription.Category.Boss, txt.MiscTextLibrary_GetText("NPCNames", "Marino"), 12, 3000);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_YetiFur));
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Misc_YetiDoll));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.BlueSlime, txt.MiscTextLibrary_GetText("Enemies", "BlueSlime_Name"), 10, 500);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_Icicle));
     xDesc.lxLootTable.Add(new DropChance(30000, ItemCodex.ItemTypes._Misc_IcyGoo));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Hat_SlimeHat_Blue));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "BlueSlime_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "BlueSlime_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "BlueSlime_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -3f);
     xDesc.v2ApproximateSize = new Vector2(15f, 13f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.FrostlingRogue, txt.MiscTextLibrary_GetText("Enemies", "FrostlingRogue_Name"), 11, 750);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_Pinecone));
     xDesc.lxLootTable.Add(new DropChance(800, ItemCodex.ItemTypes._Hat_GoblinHat));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Shoes_GoblinShoes));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "FrostlingRogue_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "FrostlingRogue_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "FrostlingRogue_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -10f);
     xDesc.v2ApproximateSize = new Vector2(13f, 22f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.FrostlingScoundrel, txt.MiscTextLibrary_GetText("Enemies", "FrostlingScoundrel_Name"), 11, 600);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_Pinecone));
     xDesc.lxLootTable.Add(new DropChance(800, ItemCodex.ItemTypes._Armor_GoblinJacket));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Shoes_GoblinShoes));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "FrostlingScoundrel_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "FrostlingScoundrel_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "FrostlingScoundrel_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -10f);
     xDesc.v2ApproximateSize = new Vector2(13f, 22f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.FrostlingBoss, txt.MiscTextLibrary_GetText("Enemies", "FrostlingScoundrel_Name"), 13, 7000);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_Pinecone));
     xDesc.lxLootTable.Add(new DropChance(800, ItemCodex.ItemTypes._Armor_GoblinJacket));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Shoes_GoblinShoes));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "FrostlingScoundrel_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "FrostlingScoundrel_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "FrostlingScoundrel_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -10f);
     xDesc.v2ApproximateSize = new Vector2(13f, 22f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.Yeti, txt.MiscTextLibrary_GetText("Enemies", "Yeti_Name"), 12, 3000);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_YetiFur));
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Misc_YetiDoll));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.GiftBoxMelee, txt.MiscTextLibrary_GetText("Enemies", "Gift_Name"), 12, 900);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_YetiFur));
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Misc_YetiDoll));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Gift_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Gift_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Gift_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.GiftBoxRanged, txt.MiscTextLibrary_GetText("Enemies", "Present_Name"), 12, 650);
     lxTheDescriptYo.Add(xDesc);
     EnemyCodex.lxSortedCardEntries.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_YetiFur));
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Misc_YetiDoll));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Present_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Present_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Present_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.LivingPuzzleBlock, txt.MiscTextLibrary_GetText("Enemies", "Present_Name"), 14, 3000);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_YetiFur));
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Misc_YetiDoll));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Present_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Present_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Present_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -12f);
     xDesc.v2ApproximateSize = new Vector2(24f, 36f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.EnragedToyMachine, EnemyDescription.Category.Boss, txt.MiscTextLibrary_GetText("Enemies", "EnragedToyMachine_Name"), 10, 30000);
     xDesc.sOnHitSound = "Gund4m_Damage";
     xDesc.lxLootTable.Add(new DropChance(45000, ItemCodex.ItemTypes._Misc_EmitterMatrix));
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "GUN-D4M_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "GUN-D4M_Description");
     xDesc.iCardDropChance = 0;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -40f);
     xDesc.v2ApproximateSize = new Vector2(58f, 62f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.SeasonKnight_Summer, txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Summer_Name"), 10, 680);
     lxTheDescriptYo.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_Icicle));
     xDesc.lxLootTable.Add(new DropChance(30000, ItemCodex.ItemTypes._Misc_IcyGoo));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Hat_SlimeHat_Blue));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Summer_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Summer_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -3f);
     xDesc.v2ApproximateSize = new Vector2(15f, 13f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.SeasonKnight_Autumn, txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Autumn_Name"), 10, 540);
     lxTheDescriptYo.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_Icicle));
     xDesc.lxLootTable.Add(new DropChance(30000, ItemCodex.ItemTypes._Misc_IcyGoo));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Hat_SlimeHat_Blue));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Autumn_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Autumn_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -3f);
     xDesc.v2ApproximateSize = new Vector2(15f, 13f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.SeasonKnight_Winter, txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Winter_Name"), 10, 600);
     lxTheDescriptYo.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_Icicle));
     xDesc.lxLootTable.Add(new DropChance(30000, ItemCodex.ItemTypes._Misc_IcyGoo));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Hat_SlimeHat_Blue));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Winter_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Winter_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonKnight_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -3f);
     xDesc.v2ApproximateSize = new Vector2(15f, 13f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.SeasonMage_Autumn, txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Autumn_Name"), 10, 440);
     lxTheDescriptYo.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_Icicle));
     xDesc.lxLootTable.Add(new DropChance(30000, ItemCodex.ItemTypes._Misc_IcyGoo));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Hat_SlimeHat_Blue));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Autumn_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Autumn_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -3f);
     xDesc.v2ApproximateSize = new Vector2(15f, 13f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.SeasonMage_Summer, txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Summer_Name"), 10, 440);
     lxTheDescriptYo.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_Icicle));
     xDesc.lxLootTable.Add(new DropChance(30000, ItemCodex.ItemTypes._Misc_IcyGoo));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Hat_SlimeHat_Blue));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Summer_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Summer_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -3f);
     xDesc.v2ApproximateSize = new Vector2(15f, 13f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.SeasonMage_Winter, txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Winter_Name"), 10, 440);
     lxTheDescriptYo.Add(xDesc);
     xDesc.lxLootTable.Add(new DropChance(60000, ItemCodex.ItemTypes._Misc_Icicle));
     xDesc.lxLootTable.Add(new DropChance(30000, ItemCodex.ItemTypes._Misc_IcyGoo));
     xDesc.lxLootTable.Add(new DropChance(1000, ItemCodex.ItemTypes._Hat_SlimeHat_Blue));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Winter_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Winter_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "SeasonMage_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -3f);
     xDesc.v2ApproximateSize = new Vector2(15f, 13f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.AutumnFae, EnemyDescription.Category.Miniboss, txt.MiscTextLibrary_GetText("Enemies", "HydraBoss_Autumn_Name"), 12, 2400);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_YetiFur));
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Misc_YetiDoll));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.SummerFae, EnemyDescription.Category.Miniboss, txt.MiscTextLibrary_GetText("Enemies", "HydraBoss_Autumn_Name"), 12, 4000);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_YetiFur));
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Misc_YetiDoll));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.WinterFae, EnemyDescription.Category.Miniboss, txt.MiscTextLibrary_GetText("Enemies", "HydraBoss_Autumn_Name"), 12, 4000);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_YetiFur));
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Misc_YetiDoll));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.SeasonHydra_Summer, EnemyDescription.Category.Miniboss, txt.MiscTextLibrary_GetText("Enemies", "HydraBoss_Summer_Name"), 12, 6500);
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.SeasonHydra_Winter, EnemyDescription.Category.Miniboss, txt.MiscTextLibrary_GetText("Enemies", "HydraBoss_Winter_Name"), 12, 6500);
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.SeasonHydra_Autumn, EnemyDescription.Category.Miniboss, txt.MiscTextLibrary_GetText("Enemies", "HydraBoss_Autumn_Name"), 12, 6500);
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.MtBloom_CrystalBeetle, txt.MiscTextLibrary_GetText("NPCNames", "Marino"), 12, 800);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_YetiFur));
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Misc_YetiDoll));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     xDesc = new EnemyDescription(EnemyCodex.EnemyTypes.MtBloom_Shroom, txt.MiscTextLibrary_GetText("NPCNames", "Marino"), 12, 800);
     xDesc.lxLootTable.Add(new DropChance(40000, ItemCodex.ItemTypes._Misc_YetiFur));
     xDesc.lxLootTable.Add(new DropChance(5000, ItemCodex.ItemTypes._Misc_YetiDoll));
     xDesc.sOnDeathSound = "Slime_Death";
     xDesc.sOnHitSound = "Slime_DamageSolo";
     xDesc.sFlavourText = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Flavor");
     xDesc.sDetailedDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Description");
     xDesc.sCardDescription = txt.MiscTextLibrary_GetText("Enemies", "Yeti_Card");
     xDesc.iCardDropChance = 300;
     xDesc.v2ApproximateOffsetToMid = new Vector2(0f, -15f);
     xDesc.v2ApproximateSize = new Vector2(19f, 25f);
     EnemyCodex.denxDescriptionDict.Add(xDesc.enType, xDesc);
     EnemyCodex.lxSortedDescriptions = lxTheDescriptYo;
 }