Exemplo n.º 1
0
 static void Prefix(SGContractsListItem __instance, Contract contract)
 {
     try {
         if (contract.GUID == null)
         {
             contract.SetGuid(Guid.NewGuid().ToString());
         }
         if (!Fields.alreadyRaised.ContainsKey(contract.GUID))
         {
             Settings settings = Helper.LoadSettings();
             Thread.Sleep(20);
             System.Random rnd          = new System.Random();
             int           randMissions = 1;
             if (Fields.currentMultiMissions < settings.maxMultiMissions)
             {
                 randMissions = rnd.Next(2, settings.maxNumberOfMissions + 1);
                 contract.Override.difficultyUIModifier += randMissions - 1;
                 Fields.currentMultiMissions++;
             }
             Fields.alreadyRaised.Add(contract.GUID, randMissions);
         }
     }
     catch (Exception e) {
         Logger.LogError(e);
     }
 }
Exemplo n.º 2
0
        public static void Postfix(SGContractsWidget __instance, List <SGContractsListItem> ___listedContracts)
        {
            for (int i = 0; i < ___listedContracts.Count; i++)
            {
                SGContractsListItem sgContractsListItem = ___listedContracts[i];

                // Reset contractDisplayStyle
                if (opportunityMissionIndexList.Contains(i))
                {
                    sgContractsListItem.Contract.Override.contractDisplayStyle = ContractDisplayStyle.BaseCampaignNormal;
                }
            }
            opportunityMissionIndexList.Clear();
        }
Exemplo n.º 3
0
 static void Prefix(SGContractsListItem __instance, Contract contract)
 {
     try {
         if (contract.Override.travelOnly && !Fields.AlreadyRaised.ContainsKey(contract.Name) && !contract.IsPriorityContract)
         {
             Settings settings = Helper.LoadSettings();
             contract.SetInitialReward(Mathf.RoundToInt(contract.InitialContractValue * settings.DeploymentSalaryMultiplier));
             contract.Override.difficultyUIModifier = 2;
             System.Random rand          = new System.Random();
             int           numberOfMonth = rand.Next(1, settings.MaxMonth + 1);
             Fields.AlreadyRaised.Add(contract.Name, numberOfMonth);
         }
     }
     catch (Exception e) {
         Logger.LogError(e);
     }
 }
Exemplo n.º 4
0
        static void Postfix(SGContractsListItem __instance, Contract contract)
        {
            try {
                if (Fields.alreadyRaised[contract.GUID] != 1)
                {
                    TextMeshProUGUI contractName       = (TextMeshProUGUI)ReflectionHelper.GetPrivateField(__instance, "contractName");
                    TextMeshProUGUI contractMaxPay     = (TextMeshProUGUI)ReflectionHelper.GetPrivateField(__instance, "contractMaxPay");
                    TextMeshProUGUI contractMaxSalvage = (TextMeshProUGUI)ReflectionHelper.GetPrivateField(__instance, "contractMaxSalvage");

                    ReflectionHelper.InvokePrivateMethode(__instance, "setFieldText", new object[] { contractName, contract.Override.contractName + " (" + Fields.alreadyRaised[contract.GUID] + " Missions)" });
                    ReflectionHelper.InvokePrivateMethode(__instance, "setFieldText", new object[] { contractMaxPay, contractMaxPay.text + " (x" + Fields.alreadyRaised[contract.GUID] + ")" });
                    ReflectionHelper.InvokePrivateMethode(__instance, "setFieldText", new object[] { contractMaxSalvage, contractMaxSalvage.text + " (x" + Fields.alreadyRaised[contract.GUID] + ")" });
                }
            }
            catch (Exception e) {
                Logger.LogError(e);
            }
        }
Exemplo n.º 5
0
        public static void Postfix(SGContractsListItem __instance, Contract contract, SimGameState sim)
        {
            var setFieldText = Traverse.Create(__instance).Method("setFieldText", new[] { typeof(TextMeshProUGUI), typeof(string) });

            var maxSalvage         = contract.SalvagePotential + sim.Constants.Finances.ContractFloorSalvageBonus;
            var maxPrioritySalvage = Math.Min(7, Mathf.FloorToInt(maxSalvage * sim.Constants.Salvage.PrioritySalvageModifier));

            var contractMaxSalvage = Traverse.Create(__instance).Field("contractMaxSalvage").GetValue <TextMeshProUGUI>();

            setFieldText.GetValue(contractMaxSalvage, $"{maxPrioritySalvage} / {maxSalvage}");

            var actualSalvage         = Mathf.FloorToInt(contract.Override.negotiatedSalvage * contract.SalvagePotential) + sim.Constants.Finances.ContractFloorSalvageBonus;
            var actualPrioritySalvage = Math.Min(7, Mathf.FloorToInt(actualSalvage * sim.Constants.Salvage.PrioritySalvageModifier));

            var contractSalvage = Traverse.Create(__instance).Field("contractSalvage").GetValue <TextMeshProUGUI>();

            setFieldText.GetValue(contractSalvage, $"{actualPrioritySalvage} / {actualSalvage}");
        }
Exemplo n.º 6
0
        static void Postfix(SGContractsListItem __instance, Contract contract)
        {
            try {
                if (contract.Override.travelOnly && !contract.IsPriorityContract)
                {
                    TextMeshProUGUI contractName       = (TextMeshProUGUI)ReflectionHelper.GetPrivateField(__instance, "contractName");
                    TextMeshProUGUI contractMaxPay     = (TextMeshProUGUI)ReflectionHelper.GetPrivateField(__instance, "contractMaxPay");
                    TextMeshProUGUI contractMaxSalvage = (TextMeshProUGUI)ReflectionHelper.GetPrivateField(__instance, "contractMaxSalvage");

                    int numberOfMonth = Fields.AlreadyRaised[contract.Name];
                    ReflectionHelper.InvokePrivateMethode(__instance, "setFieldText", new object[] { contractName, contract.Override.contractName + " (" + numberOfMonth + " Months)" });
                    ReflectionHelper.InvokePrivateMethode(__instance, "setFieldText", new object[] { contractMaxPay, contractMaxPay.text + " (per month)" });
                    ReflectionHelper.InvokePrivateMethode(__instance, "setFieldText", new object[] { contractMaxSalvage, contractMaxSalvage.text + " (per mission)" });
                }
            }
            catch (Exception e) {
                Logger.LogError(e);
            }
        }
Exemplo n.º 7
0
        public static void Prefix(SGContractsWidget __instance, List <SGContractsListItem> ___listedContracts)
        {
            try
            {
                for (int i = 0; i < ___listedContracts.Count; i++)
                {
                    SGContractsListItem sgContractsListItem = ___listedContracts[i];

                    if (sgContractsListItem.Contract.IsOpportunityMission())
                    {
                        opportunityMissionIndexList.Add(i);
                        Logger.Debug($"[SGContractsWidget_AddContract_PREFIX] Contract at index {i} is an opportunity mission");

                        // Temporarily set contractDisplayStyle
                        sgContractsListItem.Contract.Override.contractDisplayStyle = ContractDisplayStyle.BaseCampaignStory;
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
        }