internal ShipStatus(Ship rpShip)
        {
            r_Ship = rpShip;

            FirepowerBase = new ShipModernizationStatus();
            TorpedoBase   = new ShipModernizationStatus();
            AABase        = new ShipModernizationStatus();
            ArmorBase     = new ShipModernizationStatus();
            LuckBase      = new ShipModernizationStatus();
        }
        internal ShipStatus(Ship rpShip)
        {
            r_Ship = rpShip;

            FirepowerBase = new ShipModernizationStatus();
            TorpedoBase = new ShipModernizationStatus();
            AABase = new ShipModernizationStatus();
            ArmorBase = new ShipModernizationStatus();
            LuckBase = new ShipModernizationStatus();
        }
        internal void Update(ShipInfo rpInfo, RawShip rpData)
        {
            FirepowerBase = new ShipModernizationStatus(rpInfo.FirepowerMinimum, rpInfo.FirepowerMaximum, rpData.ModernizedStatus[0]);
            TorpedoBase = new ShipModernizationStatus(rpInfo.TorpedoMinimum, rpInfo.TorpedoMaximum, rpData.ModernizedStatus[1]);
            AABase = new ShipModernizationStatus(rpInfo.AAMinimum, rpInfo.AAMaximum, rpData.ModernizedStatus[2]);
            ArmorBase = new ShipModernizationStatus(rpInfo.ArmorMinimum, rpInfo.ArmorMaximum, rpData.ModernizedStatus[3]);
            LuckBase = new ShipModernizationStatus(rpInfo.LuckMinimum, rpInfo.LuckMaximum, rpData.ModernizedStatus[4]);

            OnPropertyChanged(nameof(FirepowerBase));
            OnPropertyChanged(nameof(TorpedoBase));
            OnPropertyChanged(nameof(AABase));
            OnPropertyChanged(nameof(ArmorBase));
            OnPropertyChanged(nameof(LuckBase));
        }