public void Update(RawConstructionDock rpRawData)
        {
            State = rpRawData.State;

            FuelConsumption = rpRawData.FuelConsumption;
            BulletConsumption = rpRawData.BulletConsumption;
            SteelConsumption = rpRawData.SteelConsumption;
            BauxiteConsumption = rpRawData.BauxiteConsumption;
            DevelopmentMaterialConsumption = rpRawData.DevelopmentMaterialConsumption;

            if (State == ConstructionDockState.Building || State == ConstructionDockState.Completed)
            {
                Ship = KanColleGame.Current.MasterInfo.Ships[rpRawData.ShipID];
                TimeToComplete = DateTimeUtil.UnixEpoch.AddMilliseconds(rpRawData.TimeToComplete);
            }
            else
            {
                Ship = null;
                TimeToComplete = null;
            }
        }
        internal ConstructionDock(RawConstructionDock rpRawData)
        {
            ID = rpRawData.ID;

            Update(rpRawData);

            NewConstruction.Where(r => r == this).Subscribe(_ =>
            {
                var rLogContent = string.Format(StringResources.Instance.Main.Log_StartConstruction,
                    Ship.Name, FuelConsumption, BulletConsumption, SteelConsumption, BauxiteConsumption, DevelopmentMaterialConsumption);
                Logger.Write(LoggingLevel.Info, rLogContent);
            });
        }
        public void Update(RawConstructionDock rpRawData)
        {
            State = rpRawData.State;

            FuelConsumption = rpRawData.FuelConsumption;
            BulletConsumption = rpRawData.BulletConsumption;
            SteelConsumption = rpRawData.SteelConsumption;
            BauxiteConsumption = rpRawData.BauxiteConsumption;
            DevelopmentMaterialConsumption = rpRawData.DevelopmentMaterialConsumption;

            if (State == ConstructionDockState.Building || State == ConstructionDockState.Completed)
            {
                Ship = KanColleGame.Current.MasterInfo.Ships[rpRawData.ShipID];
                TimeToComplete = DateTimeUtil.UnixEpoch.AddMilliseconds(rpRawData.TimeToComplete);
            }
            else
            {
                Ship = null;
                TimeToComplete = null;
            }

            if (IsConstructionStarted)
            {
                var rLogContent = string.Format(StringResources.Instance.Main.Log_StartConstruction,
                    Ship.TranslatedName, FuelConsumption, BulletConsumption, SteelConsumption, BauxiteConsumption, DevelopmentMaterialConsumption);
                Logger.Write(LoggingLevel.Info, rLogContent);

                NewConstruction.OnNext(this);

                IsConstructionStarted = false;
            }
        }
Ejemplo n.º 4
0
 internal void UpdateConstructionDocks(RawConstructionDock[] rpConstructionDocks)
 {
     if (ConstructionDocks.UpdateRawData(rpConstructionDocks, r => new ConstructionDock(r), (rpData, rpRawData) => rpData.Update(rpRawData)))
         OnPropertyChanged(nameof(ConstructionDocks));
 }
        internal ConstructionDock(RawConstructionDock rpRawData)
        {
            ID = rpRawData.ID;

            Update(rpRawData);
        }