private static ItemInfo LoadAction(ItemNumber id, ItemInfoItemDto itemDto)
        {
            if (itemDto.action == null)
            {
                Logger.Warning("Missing action for item {id}", id);
                return(new ItemInfoAction());
            }

            var item = new ItemInfoAction
            {
                RequiredMP       = float.Parse(itemDto.action.ability.required_mp, CultureInfo.InvariantCulture),
                DecrementMP      = float.Parse(itemDto.action.ability.decrement_mp, CultureInfo.InvariantCulture),
                DecrementMPDelay = float.Parse(itemDto.action.ability.decrement_mp_delay, CultureInfo.InvariantCulture)
            };

            if (itemDto.action.@float != null)
            {
                item.ValuesF = [email protected](f => float.Parse(f.value.Replace("f", ""), CultureInfo.InvariantCulture)).ToList();
            }

            if (itemDto.action.integer != null)
            {
                item.Values = itemDto.action.integer.Select(i => i.value).ToList();
            }

            return(item);
        }
예제 #2
0
        private static ItemInfo LoadWeapon(ItemNumber id, ItemInfoItemDto itemDto)
        {
            if (itemDto.weapon == null)
            {
                return(new ItemInfoWeapon());
            }

            var ability = itemDto.weapon.ability;
            var item    = new ItemInfoWeapon
            {
                Type                    = ability.type,
                RateOfFire              = float.Parse(ability.rate_of_fire, CultureInfo.InvariantCulture),
                Power                   = float.Parse(ability.power, CultureInfo.InvariantCulture),
                MoveSpeedRate           = float.Parse(ability.move_speed_rate, CultureInfo.InvariantCulture),
                AttackMoveSpeedRate     = float.Parse(ability.attack_move_speed_rate, CultureInfo.InvariantCulture),
                MagazineCapacity        = ability.magazine_capacity,
                CrackedMagazineCapacity = ability.cracked_magazine_capacity,
                MaxAmmo                 = ability.max_ammo,
                Accuracy                = float.Parse(ability.accuracy, CultureInfo.InvariantCulture),
                Range                   = string.IsNullOrWhiteSpace(ability.range)
                    ? 0
                    : float.Parse(ability.range, CultureInfo.InvariantCulture),
                SupportSniperMode  = ability.support_sniper_mode > 0,
                SniperModeFov      = ability.sniper_mode_fov > 0,
                AutoTargetDistance = ability.auto_target_distance == null
                    ? 0
                    : float.Parse(ability.auto_target_distance, CultureInfo.InvariantCulture)
            };

            if (itemDto.weapon.@float != null)
            {
                item.ValuesF = itemDto.weapon.@float
                               .Select(f => float.Parse(f.value.Replace("f", ""), CultureInfo.InvariantCulture)).ToList();
            }

            if (itemDto.weapon.integer != null)
            {
                item.Values = itemDto.weapon.integer.Select(i => i.value).ToList();
            }

            return(item);
        }