Пример #1
0
        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;
        }
Пример #3
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));
        }
Пример #4
0
 private bool IsFixedKeyItemLocation(DropItemEntry itemEntry)
 {
     return(_fixedKeyLocations.ContainsKey(itemEntry.Value.Id) && itemEntry.Key.Equals(_fixedKeyLocations[itemEntry.Value.Id]));
 }
Пример #5
0
 private bool IsKeyItemLocationCandidate(DropItemEntry entry)
 {
     return(IsEntryRandomizable(entry) && !entry.IsEntryBreakableWall() && !IsFixedKeyItemLocation(entry));
 }