Exemplo n.º 1
0
 private bool ContainsSkillName(ArmorPiecePrimitive primitive, string skillName)
 {
     return
         (primitive.Skill1 == skillName ||
          primitive.Skill2 == skillName ||
          primitive.Skill3 == skillName);
 }
Exemplo n.º 2
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
                       ));
        }
Exemplo n.º 3
0
        private IArmorPieceAttributes CreateArmorPieceAttributes(ArmorPiecePrimitive primitive)
        {
            switch (primitive.Restriction)
            {
            case "M": return(new ArmorPieceAttributes(Gender.Male));

            case "F": return(new ArmorPieceAttributes(Gender.Female));
            }
            return(new ArmorPieceAttributes(Gender.Both));
        }
Exemplo n.º 4
0
        private IArmorSetSkill[] ParseArmorSetSkills(ArmorPiecePrimitive primitive)
        {
            var result = new List <IArmorSetSkill>
            {
                armorSetSkills.FirstOrDefault(x => Localization.GetDefault(x.Name) == primitive.Skill1),
                armorSetSkills.FirstOrDefault(x => Localization.GetDefault(x.Name) == primitive.Skill2),
                armorSetSkills.FirstOrDefault(x => Localization.GetDefault(x.Name) == primitive.Skill3)
            };

            if (result.Any(x => x != null))
            {
                return(result.Where(x => x != null).ToArray());
            }

            return(null);
        }
Exemplo n.º 5
0
        private IAbility[] ParseAbilities(ArmorPiecePrimitive primitive)
        {
            var result = new List <IAbility>
            {
                ParseOneAbility(primitive.Skill1, primitive.PointSkill1),
                ParseOneAbility(primitive.Skill2, primitive.PointSkill2),
                ParseOneAbility(primitive.Skill3, primitive.PointSkill3)
            };

            if (result.All(x => x == null))
            {
                return(Array.Empty <IAbility>());
            }

            return(result.Where(x => x != null).ToArray());
        }
Exemplo n.º 6
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);
            }
        }