private bool IsEntryRandomizable(DropItemEntry entry) { // Due to mistakes in the original game files, these types should be kept as-is to only allow them to shuffle between themselves. // This avoids problems with important items being shuffled out of the game string itemType = entry.GetItemType(); return(entry.IsEntryValid() && !Constants.ItemTypeCraftingMaterials.Equals(itemType) && !Constants.ItemTypeConsumable.Equals(itemType) && !Constants.ItemTypeNone.Equals(itemType)); }
private static void SetNewItemForDrop(DropItemEntry dropEntry, string randomItemName) { dropEntry.Value.RareItemId = randomItemName; dropEntry.Value.RareItemQuantity = 1; dropEntry.Value.RareItemRate = 100.0; dropEntry.Value.CommonItemId = Constants.ItemNameNone; dropEntry.Value.CommonItemQuantity = 0; dropEntry.Value.CommonRate = 0.0; dropEntry.Value.CommonIngredientId = Constants.ItemNameNone; dropEntry.Value.CommonIngredientQuantity = 0; dropEntry.Value.CommonIngredientRate = 0.0; dropEntry.Value.RareIngredientId = Constants.ItemNameNone; dropEntry.Value.RareIngredientQuantity = 0; dropEntry.Value.RareIngredientRate = 0.0; }
public void TestWeaponInKeyTypeChestIsNotMoved() { // Assign const string keyWeaponId = "keyitem_weapon_1"; _opts.InputPath = @"file-resources\ComponentTest\TestRandomizeDropQuestCraft\"; var gameFileReader = new GameFileService(_opts, new UassetService()); // Act Program.RunMain(_opts); GameFiles inputFiles = gameFileReader.ReadAllFiles(_opts.InputPath); GameFiles outputFiles = gameFileReader.ReadAllFiles(FolderPathOutput); //Assert List <DropItemEntry> inputDroplist = inputFiles.DropList; List <DropItemEntry> outputDroplist = outputFiles.DropList; DropItemEntry originalKeyWeaponEntry = inputDroplist.Find(entry => keyWeaponId.Equals(entry.GetItemName())); DropItemEntry newKeyWeaponEntry = outputDroplist.Find(entry => keyWeaponId.Equals(entry.GetItemName())); Assert.AreEqual(originalKeyWeaponEntry, newKeyWeaponEntry); Assert.AreEqual(inputDroplist.IndexOf(originalKeyWeaponEntry), outputDroplist.IndexOf(newKeyWeaponEntry)); Assert.AreEqual(0, CountItemsWithNamesContaining(keyWeaponId, outputFiles.QuestList)); Assert.AreEqual(0, CountItemsWithNamesContaining(keyWeaponId, outputFiles.CraftList)); }
private bool IsFixedKeyItemLocation(DropItemEntry itemEntry) { return(_fixedKeyLocations.ContainsKey(itemEntry.Value.Id) && itemEntry.Key.Equals(_fixedKeyLocations[itemEntry.Value.Id])); }
private bool IsKeyItemLocationCandidate(DropItemEntry entry) { return(IsEntryRandomizable(entry) && !entry.IsEntryBreakableWall() && !IsFixedKeyItemLocation(entry)); }