예제 #1
0
            }                                                           // may be null

            public EngineeringData(JObject evt)
            {
                Engineer              = evt["Engineer"].Str();
                EngineerID            = evt["EngineerID"].ULong();
                BlueprintName         = evt["BlueprintName"].Str();
                FriendlyBlueprintName = BlueprintName.SplitCapsWordFull();
                BlueprintID           = evt["BlueprintID"].ULong();
                Level   = evt["Level"].Int();
                Quality = evt["Quality"].Double(0);
                // EngineerCraft has it as Apply.. Loadout has just ExperimentalEffect.  Check both
                ExperimentalEffect           = evt.MultiStr(new string[] { "ExperimentalEffect", "ApplyExperimentalEffect" });
                ExperimentalEffect_Localised = JournalFieldNaming.CheckLocalisation(evt["ExperimentalEffect_Localised"].Str(), ExperimentalEffect);

                Modifiers = evt["Modifiers"]?.ToObject <EngineeringModifiers[]>(ignoretypeerrors: true, checkcustomattr: false);     // instances of Value being wrong type - ignore and continue

                if (Modifiers != null)
                {
                    foreach (EngineeringModifiers v in Modifiers)
                    {
                        v.FriendlyLabel = v.Label.SplitCapsWord();
                    }
                }
                else
                {
                }
            }
예제 #2
0
        public void OkayExecuted()
        {
            BlueprintName = BlueprintName.Trim();

            if (BlueprintName.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0)
            {
                _dialogService.ShowMessageBox(this, Res.ErrorInvalidBlueprintCharactersUsed, Res.ErrorInvalidBlueprintNameTitle, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Exclamation);
                return;
            }

            string filePath = Path.Combine(_dataModel.LocalBlueprintsFolder, BlueprintName);

            try
            {
                // check for invalid filename charactrers.
                filePath = Path.GetFullPath(filePath);
            }
            catch (Exception ex)
            {
                _dialogService.ShowMessageBox(this, ex.Message, Res.ErrorInvalidBlueprintNameTitle, System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Exclamation);
                return;
            }

            // validate existing.
            if (CheckForExisting && Directory.Exists(filePath))
            {
                // dialog confirm overwrite....
                if (_dialogService.ShowMessageBox(this, Res.ErrorInvalidBlueprintExists, Res.ErrorInvalidBlueprintExistsTitle, System.Windows.MessageBoxButton.YesNo, System.Windows.MessageBoxImage.Question) != System.Windows.MessageBoxResult.Yes)
                {
                    return;
                }
            }

            CloseResult = true;
        }
예제 #3
0
            }                                                           // may be null

            public EngineeringData(JObject evt)
            {
                Engineer              = evt["Engineer"].Str();
                EngineerID            = evt["EngineerID"].Long();
                BlueprintName         = evt["BlueprintName"].Str();
                FriendlyBlueprintName = BlueprintName.SplitCapsWordFull();
                BlueprintID           = evt["BlueprintID"].Long();
                Level   = evt["Level"].Int();
                Quality = evt["Quality"].Double(0);

                Modifiers = evt["Modifiers"]?.ToObject <EngineeringModifiers[]>();
            }
예제 #4
0
            }                                                           // may be null

            public EngineeringData(JObject evt)
            {
                Engineer              = evt["Engineer"].Str();
                EngineerID            = evt["EngineerID"].Long();
                BlueprintName         = evt["BlueprintName"].Str();
                FriendlyBlueprintName = BlueprintName.SplitCapsWordFull();
                BlueprintID           = evt["BlueprintID"].Long();
                Level   = evt["Level"].Int();
                Quality = evt["Quality"].Double(0);
                // EngineerCraft has it as Apply.. Loadout has just ExperimentalEffect.  Check both
                ExperimentalEffect = JSONObjectExtensions.GetMultiStringDef(evt, new string[] { "ExperimentalEffect", "ApplyExperimentalEffect" });

                Modifiers = evt["Modifiers"]?.ToObject <EngineeringModifiers[]>();
            }
예제 #5
0
            }                                                           // may be null

            public EngineeringData(JObject evt)
            {
                Engineer              = evt["Engineer"].Str();
                EngineerID            = evt["EngineerID"].Long();
                BlueprintName         = evt["BlueprintName"].Str();
                FriendlyBlueprintName = BlueprintName.SplitCapsWordFull();
                BlueprintID           = evt["BlueprintID"].Long();
                Level   = evt["Level"].Int();
                Quality = evt["Quality"].Double(0);
                // EngineerCraft has it as Apply.. Loadout has just ExperimentalEffect.  Check both
                ExperimentalEffect           = evt.MultiStr(new string[] { "ExperimentalEffect", "ApplyExperimentalEffect" });
                ExperimentalEffect_Localised = JournalFieldNaming.CheckLocalisation(evt["ExperimentalEffect_Localised"].Str(), ExperimentalEffect);

                Modifiers = evt["Modifiers"]?.ToObjectProtected <EngineeringModifiers[]>();

                if (Modifiers != null)
                {
                    foreach (EngineeringModifiers v in Modifiers)
                    {
                        v.FriendlyLabel = v.Label.SplitCapsWord();
                    }
                }
            }