Пример #1
0
        public static Dictionary <ArmorType, LangMap> GetAllArmors(IndexOrId by)
        {
            var values = new Dictionary <ArmorType, LangMap>();

            foreach (var armor in GetArmor())
            {
                var armorType = armor.Equip_Slot;
                if (!values.ContainsKey(armorType))
                {
                    values[armorType] = new LangMap();
                }

                foreach (var lang in Global.LANGUAGES)
                {
                    if (!values[armorType].ContainsKey(lang))
                    {
                        values[armorType][lang] = new Dictionary <uint, string>();
                    }

                    values[armorType][lang][(uint)(by == IndexOrId.Id ? armor.Set_Group : armor.Index)] = DataHelper.armorData[lang][armor.GMD_Name_Index];
                }
            }

            return(values);
        }
Пример #2
0
        public static Dictionary <WeaponType, LangMap> GetAllWeapons(IndexOrId by)
        {
            var values      = new Dictionary <WeaponType, LangMap>();
            var weaponTypes = (WeaponType[])Enum.GetValues(typeof(WeaponType));

            foreach (var weaponType in weaponTypes)
            {
                var datFileName = weaponType.ToDatFileName();
                values[weaponType] = GetWeaponsOfType($@"{TARGET_FILE_BASE}\{datFileName}", weaponType, by);
            }

            return(values);
        }
Пример #3
0
        public static LangMap GetWeaponsOfType(string targetFile, WeaponType weaponType, IndexOrId by)
        {
            var weaponClassType = weaponType.ToClassType();
            var weaponTypeName  = Path.GetFileNameWithoutExtension(weaponType.ToDatFileName());
            var values          = new LangMap();

            IEnumerable <IWeapon> weapons;

            if (weaponClassType == typeof(Melee))
            {
                weapons = Melee.LoadData(targetFile).GetSingleStructList();
            }
            else if (weaponClassType == typeof(Ranged))
            {
                weapons = Ranged.LoadData(targetFile).GetSingleStructList();
            }
            else
            {
                throw new InvalidOperationException($"Unrecognized weapon type: {weaponClassType.Name}");
            }

            foreach (var weapon in weapons)
            {
                foreach (var lang in Global.LANGUAGES)
                {
                    if (!values.ContainsKey(lang))
                    {
                        values[lang] = new Dictionary <uint, string>();
                    }

                    values[lang][(uint)(by == IndexOrId.Id ? weapon.Id : weapon.Index)] = DataHelper.weaponData[lang][weaponTypeName ?? throw new InvalidOperationException()][weapon.GMD_Name_Index];