public void setCompanyStats(StatCollection stats) { companyStats = stats; if (allowUpgrades) { if (!companyStats.ContainsStatistic(ADDITIONAL_MECH_STAT)) { companyStats.AddStatistic(ADDITIONAL_MECH_STAT, FdefaultMechSlots); } ; if (!companyStats.ContainsStatistic(ADDITIONAL_PLAYER_MECH_STAT)) { companyStats.AddStatistic(ADDITIONAL_PLAYER_MECH_STAT, FdefaultPlayerMechSlots); } ; if (!companyStats.ContainsStatistic(MAX_TONNAGE_STAT)) { companyStats.AddStatistic(MAX_TONNAGE_STAT, FdefaultTonnage); } ; if (!companyStats.ContainsStatistic(CU_VEHICLE_STAT_NAME)) { companyStats.AddStatistic(CU_VEHICLE_STAT_NAME, CuInitialVehicles); } ; UpdateCULances(); } }
public static object EvaluateBattleTechString(TsEnvironment env, object[] inputs) { int statScope = env.ToInt(inputs[0]); string statName = env.ToString(inputs[1]); int operation = env.ToInt(inputs[2]); string compareValue = env.ToString(inputs[3]); Main.Logger.Log($"[EvaluateBattleTechString] Triggered with scope '{statScope}', statName '{statName}', operation '{operation}', compareValue '{compareValue}"); StatCollection statCollection = SimHelper.GetStatCollection(statScope); if (statCollection.ContainsStatistic(statName)) { string stat = statCollection.GetValue <string>(statName); switch (operation) { case 1: // equal to return(stat == compareValue); case 2: // not equal to return(stat != compareValue); default: return(false); } } Main.Logger.Log($"[EvaluateBattleTechString] Stat {statName} does not exist for conversation operation."); return(false); }
internal void CreateIfMissing() { if (!StatCollection.ContainsStatistic(Key)) { Create(); } }
public static object GetBattleTechFloat(TsEnvironment env, object[] inputs) { int statScope = env.ToInt(inputs[0]); string statName = env.ToString(inputs[1]); Main.Logger.Log($"[GetBattleTechFloat] Triggered with scope {statScope} and statName {statName}."); StatCollection statCollection = SimHelper.GetStatCollection(statScope); if (statCollection == null) // GUARD { Main.Logger.LogError($"[GetBattleTechFloat] StatCollection is null for {statScope}"); return(null); } if (statCollection.ContainsStatistic(statName)) { float stat = statCollection.GetValue <float>(statName); Main.Logger.Log($"[GetBattleTechFloat] Stat {statName} found with value {stat}."); return(stat); } Main.Logger.LogError($"[GetBattleTechFloat] Stat {statName} does not exist for conversation operation."); return(null); }
public void setCompanyStats(SimGameState simGame) { companyStats = simGame.CompanyStats; int legacyCost = getLegacyCompanyCosts(simGame); for (int i = 0; i < DCECore.settings.averagedDrops; i++) { string statName = $"{DropCostStatPrefix}{i}"; if (!companyStats.ContainsStatistic(statName)) { DCECore.modLog.Info?.Write($"Initing Stat: {statName}, Value: {legacyCost}"); companyStats.AddStatistic <int>(statName, legacyCost); } } if (!companyStats.ContainsStatistic(DropCostIdxStat)) { companyStats.AddStatistic <int>(DropCostIdxStat, 0); } }
public void setCompanyStats(StatCollection stats) { companyStats = stats; if (!companyStats.ContainsStatistic(PqMechSkillTracker)) { companyStats.AddStatistic <float>(PqMechSkillTracker, 0.0f); } if (!companyStats.ContainsStatistic(PqMedSkillTracker)) { companyStats.AddStatistic <float>(PqMedSkillTracker, 0.0f); } if (!companyStats.ContainsStatistic(PqMoraleTracker)) { companyStats.AddStatistic <float>(PqMoraleTracker, 0.0f); } Main.modLog.LogMessage($"Tracker Stat: {PqMechSkillTracker}, value: {companyStats.GetValue<float>(PqMechSkillTracker)}"); Main.modLog.LogMessage($"Tracker Stat: {PqMedSkillTracker}, value: {companyStats.GetValue<float>(PqMedSkillTracker)}"); Main.modLog.LogMessage($"Tracker Stat: {PqMoraleTracker}, value: {companyStats.GetValue<float>(PqMoraleTracker)}"); }
public void setCompanyStats(StatCollection stats) { companyStats = stats; if (allowUpgrades) { if (!companyStats.ContainsStatistic(ADDITIONAL_MECH_STAT)) { companyStats.AddStatistic(ADDITIONAL_MECH_STAT, FadditinalMechSlots); } ; if (!companyStats.ContainsStatistic(ADDITIONAL_PLAYER_MECH_STAT)) { companyStats.AddStatistic(ADDITIONAL_PLAYER_MECH_STAT, FadditinalPlayerMechSlots); } ; if (!companyStats.ContainsStatistic(MAX_TONNAGE_STAT)) { companyStats.AddStatistic(MAX_TONNAGE_STAT, FmaxTonnage); } ; } }
public int getCompanyCosts() { if (companyStats == null) { DCECore.modLog.Info?.Write($"CStats is null, race-condition?"); return(0); } long totalCost = 0; for (int i = 0; i < DCECore.settings.averagedDrops; i++) { string statName = $"{DropCostStatPrefix}{i}"; if (companyStats.ContainsStatistic(statName)) { totalCost += companyStats.GetValue <int>(statName); } } DCECore.modLog.Debug?.Write($"TotalCost before averaging: {totalCost}"); totalCost /= DCECore.settings.averagedDrops; DCECore.modLog.Debug?.Write($"TotalCost after averaging: {totalCost}"); dropWorth = (int)totalCost; return(dropWorth); }
public static void setCompanyStats(StatCollection stats, bool init) { companyStats = stats; if (!companyStats.ContainsStatistic(CLIENT_ID_STAT)) { companyStats.AddStatistic(CLIENT_ID_STAT, Fields.settings.ClientID); } ; if (!companyStats.ContainsStatistic(CAREER_ID_STAT) && init) { Guid careerId = Guid.NewGuid(); companyStats.AddStatistic(CAREER_ID_STAT, careerId.ToString()); } else { if (!companyStats.ContainsStatistic(CAREER_ID_STAT)) { companyStats.AddStatistic(CAREER_ID_STAT, ""); } } if (!companyStats.ContainsStatistic(SEASON_STAT)) { companyStats.AddStatistic(SEASON_STAT, Fields.settings.Season); } ; if (!companyStats.ContainsStatistic(MISSION_COUNT_STAT)) { companyStats.AddStatistic(MISSION_COUNT_STAT, 0); } ; if (!companyStats.ContainsStatistic(CONSOLE_COUNT)) { companyStats.AddStatistic(CONSOLE_COUNT, 0); } ; if (!companyStats.ContainsStatistic(BM_TRANSACTION)) { companyStats.AddStatistic(BM_TRANSACTION, ""); } ; Logger.Log($"Career ID Loaded: {companyStats.GetValue<string>(CAREER_ID_STAT)}"); Logger.Log($"Client issue Token: {RtCore.RTCore.rtData}"); Logger.Log($"Client Salt: {RtCore.RTCore.rtSalt}"); Web.forceRefreshServerSettings(); }
/* * Looks up any stats element and replaces that over the placeholder */ private string InterpolateStats(string text, string[] lookups) { if (lookups.Length < 3) { Main.Logger.LogError($"[InterpolateStats] {{Expression}} needs to be in the format of {{CI.StatType.StatKey}}"); return($"[InterpolateStats] {{Expression}} needs to be in the format of {{CI.StatType.StatKey}}"); } string statType = lookups[1]; string statName = lookups[2]; StatCollection statCollection = SimHelper.GetStatCollection(statType); if (statCollection.ContainsStatistic(statName)) { string statValue = Convert.ToString(statCollection.GetStatistic(statName).CurrentValue.objVal); return(statValue); } else { Main.Logger.LogError($"[InterpolateStats] Stat '{statName}' does not exist for stat collection '{statType}'"); return($"[InterpolateStats] Stat {statName} does not exist for stat collection {statType}"); } }
internal void SetShouldFix(StatCollection companyStats) { ShouldFix = AutoFixSetting && (companyStats == null || !companyStats.ContainsStatistic(CompanyStatKey)); }
public static void Prefix(SimGameState __instance, ref StatCollection ___companyStats) { if (__instance.DataManager.ContentPackIndex.IsContentPackOwned("heavymetal", true) && !___companyStats.ContainsStatistic("HasSeenHeavyMetalLootPopup")) { ___companyStats.AddStatistic <int>("HasSeenHeavyMetalLootPopup", 1); } }
public static void setCompanyStats(StatCollection stats) { companyStats = stats; bool hasCu2 = CustomUnitsAPI.Detected_V2(); if (BiggerDrops.settings.allowUpgrades) { if (hasCu2) { // one time upgrade of this stat for existing careers if (companyStats.ContainsStatistic(AdditionalMechSlotsStat) && !companyStats.ContainsStatistic(legacyUpgradeDone)) { companyStats.AddStatistic(legacyUpgradeDone, 1); companyStats.Int_Add(companyStats.GetStatistic(AdditionalMechSlotsStat), DefaultMechSlots); } if (!companyStats.ContainsStatistic(legacyUpgradeDone)) { companyStats.AddStatistic(legacyUpgradeDone, 1); } Dictionary <string, int> SlotCount = new Dictionary <string, int>(); foreach (string id in BiggerDrops.settings.CuV2InitialSlots) { if (SlotCount.ContainsKey(id)) { SlotCount[id]++; } else { SlotCount.Add(id, 1); } } foreach (string slotId in SlotOrder) { DropSlotDef def = CustomUnitsAPI.GetDropSlotDef(slotId); if (def != null) { if (!companyStats.ContainsStatistic(def.StatName)) { int val = 0; if (SlotCount.ContainsKey(slotId)) { val = SlotCount[slotId]; } companyStats.AddStatistic(def.StatName, val); Logger.M.WL($"failed to find slotdef: {slotId}"); } } else { Logger.M.WL($"failed to find slotdef: {slotId}"); } } } else { if (!companyStats.ContainsStatistic(AdditionalMechSlotsStat)) { companyStats.AddStatistic(AdditionalMechSlotsStat, Math.Max(Math.Min(MaxAdditionalMechSlots, BiggerDrops.settings.additinalMechSlots), 0)); } if (!companyStats.ContainsStatistic(AdditionPlayerMechsStat)) { companyStats.AddStatistic(AdditionPlayerMechsStat, Math.Max(Math.Min(MaxAdditionalMechSlots, BiggerDrops.settings.additinalPlayerMechSlots), 0)); } if (!companyStats.ContainsStatistic(CuVehicleStat)) { companyStats.AddStatistic(CuVehicleStat, BiggerDrops.settings.CuInitialVehicles); } ; } if (!companyStats.ContainsStatistic(MaxTonnageStat)) { companyStats.AddStatistic(MaxTonnageStat, Math.Max(BiggerDrops.settings.defaultMaxTonnage, 0)); } } UpdateCULances(); }
public static void TestStatistic(this StatCollection stats, EffectData effectData) { if (stats.ContainsStatistic(effectData.statisticData.statName)) { return; } if (effectData.statisticData.statName.StartsWith(StatisticEffect_OnEffectBegin.ADD_ENCOUNTER_FLAG_STAT_ID) == false) { return; } Variant variant = new Variant(System.Type.GetType(effectData.statisticData.modType)); switch (effectData.statisticData.operation) { case StatCollection.StatOperation.Set: { if (variant.CheckType(Variant.boolType)) { stats.AddStatistic <bool>(effectData.statisticData.statName, false); } else if (variant.CheckType(Variant.intType)) { stats.AddStatistic <int>(effectData.statisticData.statName, 0); } else if (variant.CheckType(Variant.floatType)) { stats.AddStatistic <float>(effectData.statisticData.statName, 0.0f); } else if (variant.CheckType(Variant.stringType)) { stats.AddStatistic <string>(effectData.statisticData.statName, string.Empty); } } break; case StatCollection.StatOperation.Int_Add: case StatCollection.StatOperation.Int_Subtract: case StatCollection.StatOperation.Int_Multiply: case StatCollection.StatOperation.Int_Divide: case StatCollection.StatOperation.Int_Divide_Denom: case StatCollection.StatOperation.Int_Mod: case StatCollection.StatOperation.Int_Multiply_Float: case StatCollection.StatOperation.Int_Divide_Float: case StatCollection.StatOperation.Int_Divide_Denom_Float: case StatCollection.StatOperation.Bitflag_SetBit: case StatCollection.StatOperation.Bitflag_FlipBit: case StatCollection.StatOperation.Bitflag_Combine: { stats.AddStatistic <int>(effectData.statisticData.statName, 0); }; break; case StatCollection.StatOperation.Float_Add: case StatCollection.StatOperation.Float_Subtract: case StatCollection.StatOperation.Float_Multiply: case StatCollection.StatOperation.Float_Divide: case StatCollection.StatOperation.Float_Divide_Denom: case StatCollection.StatOperation.Float_Multiply_Int: case StatCollection.StatOperation.Float_Divide_Int: case StatCollection.StatOperation.Float_Divide_Denom_Int: { stats.AddStatistic <float>(effectData.statisticData.statName, 0.0f); }; break; case StatCollection.StatOperation.String_Append: case StatCollection.StatOperation.String_Prepend: { stats.AddStatistic <string>(effectData.statisticData.statName, string.Empty); }; break; } }