Ejemplo n.º 1
0
        private ArmorPiece CreateArmorPiece(ArmorPieceContainer container)
        {
            ArmorPiecePrimitive primitive = container.Primitive;

            IEvent foundEventPrimitive = CreateEvent(
                container.Primitive.Material1,
                container.Primitive.Material2,
                container.Primitive.Material3,
                container.Primitive.Material4
                );

            return(new ArmorPiece(
                       primitive.Id,
                       container.Names,
                       container.Type,
                       primitive.Rarity,
                       ParseSlots(primitive.Slots),
                       ParseAbilities(primitive),
                       ParseArmorSetSkills(primitive),
                       new ArmorPieceDefense(primitive.MinDef, primitive.MaxDef, primitive.AugmentedDef),
                       new ArmorPieceResistances(primitive.FireRes, primitive.WaterRes, primitive.ThunderRes, primitive.IceRes, primitive.DragonRes),
                       CreateArmorPieceAttributes(primitive),
                       ArmorPieceAssets.Null,
                       null,
                       foundEventPrimitive
                       ));
        }
Ejemplo n.º 2
0
        private IEnumerable <ArmorPieceContainer> LoadArmorPieceParts(EquipmentType type, string filename)
        {
            string fullFilename = Path.Combine(dataFolderPath, filename);

            string[] allLines = File.ReadAllLines(fullFilename);

            Dictionary <string, string[]> localizations = LoadLocalizations(filename);

            (int headerIndex, int dataIndex) = FindIndexes(allLines);
            if (headerIndex < 0)
            {
                Console.WriteLine($"[ERROR] Failed to create data loader for {type}");
                yield break;
            }

            var dataLoader = new DataLoader <ArmorPiecePrimitive>(allLines[headerIndex].Substring(1).Split(','), logger);

            for (int i = dataIndex; i < allLines.Length; i++)
            {
                ArmorPiecePrimitive armorPiecePrimitive = dataLoader.CreateObject(allLines[i].Split(','), i + dataIndex);

                if (string.IsNullOrWhiteSpace(armorPiecePrimitive.Name))
                {
                    continue;
                }

                if (armorPiecePrimitive.Name == "Chainmail Armor")
                {
                    armorPiecePrimitive.Name = "Chainmail Vest";
                }

                armorPiecePrimitive.Id = i - dataIndex;

                var container = new ArmorPieceContainer
                {
                    Primitive = armorPiecePrimitive,
                    Names     = localizations.ToDictionary(kv1 => kv1.Key, kv2 => kv2.Value[i - dataIndex]),
                    Type      = type
                };

                yield return(container);
            }
        }