private bool ContainsSkillName(ArmorPiecePrimitive primitive, string skillName) { return (primitive.Skill1 == skillName || primitive.Skill2 == skillName || primitive.Skill3 == skillName); }
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 )); }
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)); }
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); }
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()); }
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); } }