Пример #1
0
        public static void DoMe2PlotImport(
            this SFXSaveGameFile target,
            SFXSaveGameFile legacyImport)
        {
            if (legacyImport.ME1Plot.BoolVariables.Length > 0 ||
                legacyImport.ME1Plot.IntVariables.Count > 0 ||
                legacyImport.ME1Plot.FloatVariables.Count > 0)
            {
                target.MergeMe1PlotRecord(legacyImport.ME1Plot);
                target.FixMe1PlotsDuringMe2PlotImport();
                target.CopyPlots(Me1ToMe3PlotCopy);
                target.Plot.SetBoolVariable(Constants.ME3_Plots_Bool_Is_ME1_Import, true);
            }
            else
            {
                target.ApplyCanonPlots(Me1CanonPlotVariables);
                target.DoDarkHorseMe1PlotCopyAndPlotLogicFix();
            }

            target.CopyPlots(Me2ToMe3PlotCopy);
            target.Plot.SetBoolVariable(Constants.ME3_Plots_Bool_Is_ME2_Import, true);
        }
Пример #2
0
        public static void DoDarkHorseMe1PlotCopyAndPlotLogicFix(
            this SFXSaveGameFile target)
        {
            if (target.Plot.GetBoolVariable(Constants.PS3DarkHorseME1PlayedPlotCheck_Bool))
            {
                if (
                    target.Plot.GetBoolVariable(
                        Constants.ME2__ME1_Plots_for_ME2__Background_and_Relationships__Kaidan_romance_True))
                {
                    target.Plot.SetIntVariable(
                        Constants.ME3__ME1_Plots_for_ME3__Global_Plots__Henchman_Kaidan__Romance_Buddy_dialog_count,
                        4);
                    target.Plot.SetBoolVariable(
                        Constants.ME3__ME1_Plots_for_ME3__Global_Plots__Henchman_Kaidan__Romance_active, true);
                }

                if (
                    target.Plot.GetBoolVariable(
                        Constants.ME2__ME1_Plots_for_ME2__Background_and_Relationships__Ashley_romance_True))
                {
                    target.Plot.SetIntVariable(
                        Constants.ME3__ME1_Plots_for_ME3__Global_Plots__Henchman_Ash__Romance_Buddy_dialog_count, 4);
                    target.Plot.SetBoolVariable(
                        Constants.ME3__ME1_Plots_for_ME3__Global_Plots__Henchman_Ash__romance_active, true);
                }

                if (
                    target.Plot.GetBoolVariable(
                        Constants.ME2__ME1_Plots_for_ME2__Background_and_Relationships__Liara_romance_True))
                {
                    target.Plot.SetIntVariable(
                        Constants.ME3__ME1_Plots_for_ME3__Global_Plots__Henchman_Liara__Romance_Buddy_dialog_count,
                        4);
                    target.Plot.SetBoolVariable(
                        Constants.ME3__ME1_Plots_for_ME3__Global_Plots__Henchman_Liara__Romance_active, true);
                }

                if (target.Plot.GetBoolVariable(Constants.ME2__ME1_Plots_for_ME2__CH2_Virmire__Ash_died) &&
                    target.Plot.GetBoolVariable(Constants.ME2__ME1_Plots_for_ME2__CH2_Virmire__Kaidan_died))
                {
                    var isFemale = target.Plot.GetBoolVariable(Constants.ME3_Plots_Utility_Player_Info_Female_Player);
                    target.Plot.SetBoolVariable(
                        Constants.ME3__ME1_Plots_for_ME3__CH2_Virmire__The_Choice__Rescued_Kaidan, isFemale == false);
                    target.Plot.SetBoolVariable(
                        Constants.ME3__ME1_Plots_for_ME3__CH2_Virmire__The_Choice__Rescued_Ash, isFemale);
                }
                else
                {
                    var ashleyDied =
                        target.Plot.GetBoolVariable(Constants.ME2__ME1_Plots_for_ME2__CH2_Virmire__Ash_died);
                    target.Plot.SetBoolVariable(
                        Constants.ME3__ME1_Plots_for_ME3__CH2_Virmire__The_Choice__Rescued_Kaidan,
                        ashleyDied);
                    target.Plot.SetBoolVariable(
                        Constants.ME3__ME1_Plots_for_ME3__CH2_Virmire__The_Choice__Rescued_Ash, ashleyDied == false);
                }

                var rachniAreAlive =
                    target.Plot.GetBoolVariable(Constants.ME2__ME1_Plots_for_ME2__CH2_Noveria__Rachni_Alive);
                target.Plot.SetBoolVariable(
                    Constants.ME3__ME1_Plots_for_ME3__CH2_Noveria__Rachni_Queen__Queen_Dealt_With__Queen_Released,
                    rachniAreAlive);
                target.Plot.SetBoolVariable(
                    Constants.ME3__ME1_Plots_for_ME3__CH2_Noveria__Rachni_Queen__Queen_Dealt_With__Queen_eliminated,
                    rachniAreAlive == false);

                var wrexDied =
                    target.Plot.GetBoolVariable(Constants.ME2__ME1_Plots_for_ME2__CH2_Virmire_Wrex_Died);
                target.Plot.SetBoolVariable(
                    Constants.
                    ME3__ME1_Plots_for_ME3__CH2_Virmire__Krogan_conundrum__Failure__Failure_KilledBy_Player,
                    wrexDied);
                target.Plot.SetBoolVariable(Constants.ME3__ME1_Plots_for_ME3__Utility__Henchman__InParty__Krogan,
                                            wrexDied == false);

                target.FixMe1PlotsDuringMe2PlotImport();
            }
        }