Example #1
0
        public static void Postfix(LanceConfiguration __instance, string teamDefinition, SpawnableUnit[] __result)
        {
            List <string> debugLines = new List <string>();
            string        teamName   = CombatTeamFactionGuids.FactionGUIDToName.ContainsKey(teamDefinition) ? CombatTeamFactionGuids.FactionGUIDToName[teamDefinition] : "Empty";

            debugLines.Add("teamDefinition: " + teamName);
            debugLines.Add("--------------");

            foreach (SpawnableUnit unit in __result)
            {
                debugLines.Add(String.Format("Unit id: {0}, type: {1}, team: {2}",
                                             unit.UnitId, unit.unitType, CombatTeamFactionGuids.FactionGUIDToName[unit.TeamDefinitionGuid]));

                debugLines.Add(String.Format("Pilot: {0}, Initialized from JSON: {1}, Can Load: {2}",
                                             unit.Pilot.Description.DisplayName, unit.IsUnitializedJson, unit.CanLoad()));

                switch (unit.unitType)
                {
                case UnitType.Mech:
                    debugLines.Add(String.Format("name: {0}", unit.Unit.Description.Name));
                    break;

                case UnitType.Turret:
                    debugLines.Add(String.Format("name: {0}", unit.TUnit.Description.Name));
                    break;

                case UnitType.Vehicle:
                    debugLines.Add(String.Format("name: {0}", unit.VUnit.Description.Name));
                    break;
                }
                debugLines.Add("--------------");
            }
            Logger.Block(debugLines.ToArray(), MethodBase.GetCurrentMethod());
        }
        static bool Prefix(SkirmishSettings_Beta __instance, ref LanceConfiguration __result)
        {
            if (UiManager.Instance.ClickedQuickSkirmish)
            {
                Main.Logger.Log($"[SkirmishSettingsBetaFinalizeLancesPatch Prefix] Patching FinalizeLances");
                CloudUserSettings playerSettings = ActiveOrDefaultSettings.CloudSettings;
                LastUsedLances    lastUsedLances = playerSettings.LastUsedLances;

                if (lastUsedLances.ContainsKey(UNLIMITED_LANCE_COST))
                {
                    __result = lastUsedLances[UNLIMITED_LANCE_COST];
                }
                else if (lastUsedLances.ContainsKey(WAR_LANCE_COST))
                {
                    __result = lastUsedLances[WAR_LANCE_COST];
                }
                else if (lastUsedLances.ContainsKey(BATTLE_LANCE_COST))
                {
                    __result = lastUsedLances[BATTLE_LANCE_COST];
                }
                else if (lastUsedLances.ContainsKey(CLASH_LANCE_COST))
                {
                    __result = lastUsedLances[CLASH_LANCE_COST];
                }
                else
                {
                    Main.Logger.LogError("[Quick Skirmish] Quick Skirmish cannot be used without a prevously used lance. Go into skirmish and launch at least once");
                }
                return(false);
            }
            return(true);
        }
            public static void Prefix(SimGameState __instance, SimGameSave save, ref SerializableReferenceContainer references)
            {
                Contract selectedContract = __instance.SelectedContract;

                // TODO check we're in simGame, not combat!
                if (selectedContract == null || __instance.BattleTechGame.Combat != null)
                {
                    return;
                }

                LanceConfiguration lastLance = Traverse.Create(__instance).Method("GetLastLance").GetValue <LanceConfiguration>();

                selectedContract.SetLanceConfiguration(lastLance);
                selectedContract.SetCarryOverNegotationValues(true);
                selectedContract.Accept(true);
                selectedContract.Override.disableNegotations = true;

                Contract travelContract = createTravelContract(selectedContract);

                Logger.Minimal("created travelcontract with name: " + travelContract.Name);
                __instance.PrepareBreadcrumb(travelContract);
                // __instance.SetSelectedContract(travelContract, true);
                //references.AddItem(ModSettings.MOD_SAVE_REFERENCECONTAINER_KEY, travelContract);
                //references.AddItem("activeBreadcrumb", travelContract);
                Logger.Minimal("saving selected contract: " + travelContract.GUID);
                //references.AddItemList<Contract>("globalContracts", new List<Contract>() { selectedContract });
                //this.globalContracts = globalReferences.GetItemList<Contract>("globalContracts");
            }
Example #4
0
 static bool Prefix(LanceConfiguratorPanel __instance, ref LanceConfiguration __result)
 {
     try {
         return(false);
     } catch (Exception e) {
         Logger.LogError(e);
         return(false);
     }
 }
Example #5
0
 static void Postfix(LanceConfiguratorPanel __instance, ref LanceConfiguration __result, LanceLoadoutSlot[] ___loadoutSlots)
 {
     try {
         if (CustomUnitsAPI.Detected())
         {
             return;
         }
         Fields.callsigns.Clear();
         LanceConfiguration lanceConfiguration = new LanceConfiguration();
         for (int i = 0; i < ___loadoutSlots.Length; i++)
         {
             LanceLoadoutSlot lanceLoadoutSlot = ___loadoutSlots[i];
             MechDef          mechDef          = null;
             PilotDef         pilotDef         = null;
             if (lanceLoadoutSlot.SelectedMech != null)
             {
                 mechDef = lanceLoadoutSlot.SelectedMech.MechDef;
             }
             if (lanceLoadoutSlot.SelectedPilot != null)
             {
                 pilotDef = lanceLoadoutSlot.SelectedPilot.Pilot.pilotDef;
             }
             if (mechDef != null && pilotDef != null)
             {
                 if (i < Settings.DEFAULT_MECH_SLOTS)
                 {
                     lanceConfiguration.AddUnit(__instance.playerGUID, mechDef, pilotDef);
                 }
                 else
                 {
                     //if (i >= BiggerDrops.settings.additinalMechSlots + Settings.DEFAULT_MECH_SLOTS) { break; }
                     Logger.M.TWL(0, "LanceConfiguratorPanel.CreateLanceConfiguration. Index:" + i + " additional slots border:" + (BiggerDrops.settings.additinalMechSlots + Settings.DEFAULT_MECH_SLOTS) + " player slots border:" + (BiggerDrops.settings.additinalPlayerMechSlots + Settings.DEFAULT_MECH_SLOTS));
                     if (i >= BiggerDrops.settings.additinalPlayerMechSlots + Settings.DEFAULT_MECH_SLOTS)
                     {
                         Fields.callsigns.Add(pilotDef.Description.Callsign);
                         //EMPLOYER ID
                         Logger.M.WL(1, "adding to employer lance " + Settings.EMPLOYER_LANCE_GUID + " mech:" + mechDef.Description.Id + " pilot:" + pilotDef.Description.Id);
                         lanceConfiguration.AddUnit(Settings.EMPLOYER_LANCE_GUID, mechDef, pilotDef);
                     }
                     else
                     {
                         Logger.M.WL(1, "adding to player lance " + __instance.playerGUID + " mech:" + mechDef.Description.Id + " pilot:" + pilotDef.Description.Id);
                         lanceConfiguration.AddUnit(__instance.playerGUID, mechDef, pilotDef);
                     }
                 }
             }
         }
         __result = lanceConfiguration;
     } catch (Exception e) {
         Logger.LogError(e);
     }
 }