private static void Prefix(ref Player __instance, ref float v) { if (Configuration.Current.StaminaUsage.IsEnabled) { string methodName = new StackTrace().GetFrame(2).GetMethod().Name; if (methodName.Contains(nameof(Player.UpdatePlacement)) || methodName.Contains(nameof(Player.Repair)) || methodName.Contains(nameof(Player.RemovePiece))) { string itemName = __instance.GetRightItem()?.m_shared.m_name; if (itemName == "$item_hammer") { v = Helper.applyModifierValue(v, Configuration.Current.StaminaUsage.hammer); } else if (itemName == "$item_hoe") { v = Helper.applyModifierValue(v, Configuration.Current.StaminaUsage.hoe); } else if (itemName == "$item_cultivator") { v = Helper.applyModifierValue(v, Configuration.Current.StaminaUsage.cultivator); } } else if (methodName.Equals(nameof(Player.PlayerAttackInput))) { ItemDrop.ItemData item = __instance.GetCurrentWeapon(); if (item?.m_shared.m_skillType == Skills.SkillType.Bows) { v = Helper.applyModifierValue(v, Configuration.Current.StaminaUsage.bows); } } else if (methodName.Equals(nameof(Player.BlockAttack))) { v = Helper.applyModifierValue(v, Configuration.Current.StaminaUsage.blocking); } } }
static void Prefixfactionman() { if (Scribe.mode != LoadSaveMode.Inactive) { string trace = new StackTrace().ToString(); if (!trace.Contains("SetInitialPsyfocusLevel") && !trace.Contains("Pawn_NeedsTracker.ShouldHaveNeed") && !trace.Contains("FactionManager.ExposeData")) { Log.Message($"factionman call {trace}", true); } } }
private static void FirstChanceExceptionHandler(object sender, FirstChanceExceptionEventArgs args) { if (!pastExceptions.Add(args.Exception.ToString())) { return; } if (args.Exception.Source == "MP3Sharp") { return; } var stackTrace = new StackTrace(true).ToString(); if (stackTrace.Contains("Terraria.ModLoader.ModCompile")) { return; } var msg = args.Exception.Message + " " + Language.GetTextValue("tModLoader.RuntimeErrorSeeLogsForFullTrace", Path.GetFileName(LogPath)); #if CLIENT float soundVolume = Main.soundVolume; Main.soundVolume = 0f; Main.NewText(msg, Microsoft.Xna.Framework.Color.OrangeRed); Main.soundVolume = soundVolume; #else Console.ForegroundColor = ConsoleColor.DarkMagenta; Console.WriteLine(msg); Console.ResetColor(); #endif tML.Warn(Language.GetTextValue("tModLoader.RuntimeErrorSilentlyCaughtException"), args.Exception); tML.Warn(stackTrace); }
public override void Fail(string message, string detailMessage) { if (message.Contains("This is a soft assert - I don't think this can happen")) { return; } if (string.IsNullOrEmpty(message)) { message = "ASSERT FAILED"; } if (detailMessage == null) { detailMessage = string.Empty; } string stackTrace = new StackTrace(true).ToString(); if (stackTrace.Contains("OverriddenOrHiddenMembersHelpers.FindOverriddenOrHiddenMembersInType")) { // bug 661370 return; } base.Fail(message, detailMessage); Log.Exception(message + "\r\n" + detailMessage + "\r\n" + stackTrace); }
protected void LogStack(Func <string> logMessage) { var stackTrace = new StackTrace(1, true).ToString(); if (string.IsNullOrEmpty(_filterText) || !stackTrace.Contains(_filterText)) { Console.WriteLine(logMessage()); Console.WriteLine(stackTrace); } }
private static void FirstChanceExceptionHandler(object sender, FirstChanceExceptionEventArgs args) { if (args.Exception.Source == "MP3Sharp") { return; } var stackTrace = new StackTrace(true).ToString(); if (stackTrace.Contains("Terraria.ModLoader.ModCompile") || stackTrace.Contains("Delegate.CreateDelegateNoSecurityCheck") || stackTrace.Contains("MethodBase.GetMethodBody")) { return; } stackTrace = stackTrace.Substring(stackTrace.IndexOf('\n')); var exString = args.Exception.GetType() + ": " + args.Exception.Message + stackTrace; if (!pastExceptions.Add(exString)) { return; } var msg = args.Exception.Message + " " + Language.GetTextValue("tModLoader.RuntimeErrorSeeLogsForFullTrace", Path.GetFileName(LogPath)); #if CLIENT float soundVolume = Main.soundVolume; Main.soundVolume = 0f; Main.NewText(msg, Microsoft.Xna.Framework.Color.OrangeRed); Main.soundVolume = soundVolume; #else Console.ForegroundColor = ConsoleColor.DarkMagenta; Console.WriteLine(msg); Console.ResetColor(); #endif tML.Warn(Language.GetTextValue("tModLoader.RuntimeErrorSilentlyCaughtException") + '\n' + exString); }
public void Draw() { var callingFrameClassName = new StackTrace().GetFrame(1).GetMethod().DeclaringType.Name; if (!callingFrameClassName.Contains("Tests")) { Console.SetCursorPosition(0, 0); } for (int y = 0; y < Height; y++) { for (int x = 0; x < Width; x++) { Console.Write(IsAlive(x, y) ? "*" : "."); } Console.WriteLine(); } }
private static bool ValidateCallStack(uint lid, List <string> expectedCallStack) { bool result = true; if (expectedCallStack != null && 0 < expectedCallStack.Count) { string text = new StackTrace().ToString(); ExTraceGlobals.TracingTracer.TraceInformation <string>(37269, 0L, "Tracing was called with this callstack:{0}", text); foreach (string text2 in expectedCallStack) { ExTraceGlobals.TracingTracer.TraceInformation <string>(61845, 0L, "Tracing expects this string in the callstack:{0}", text2); if (!text.Contains(text2)) { ExTraceGlobals.TracingTracer.TraceDebug <string, string>(52567, (long)((ulong)lid), "FI call stack mismatch: {0} was not found in\r\n{1}", text2, text); result = false; break; } } } return(result); }
//Override for PlayerData.GetBool public static bool GetPlayerDataBool(string name) { PlayerData pd = PlayerData.instance; //Don't run randomizer code in non-randomizer saves if (!RandomizerMod.instance.Settings.randomizer) { return(pd.GetBoolInternal(name)); } if (GameManager.instance.GetSceneNameString() != "RestingGrounds_07" && GameManager.instance.GetSceneNameString() != "RestingGrounds_04") { if (name == "hasDreamGate" || name == "dreamNailUpgraded" || name == "hasDreamNail") { return(pd.GetBoolInternal(name)); } } if (string.IsNullOrEmpty(name)) { return(false); } if (name == "_true") { return(true); } else if (name == "_false") { return(false); } else if (name == "hasAcidArmour") { return(GameManager.instance.GetSceneNameString() == "Waterways_13" ? false : PlayerData.instance.hasAcidArmour); } //Check stack trace to see if player is in a menu string stack = new StackTrace().ToString(); //Split into multiple ifs because this looks horrible otherwise //TODO: Cleaner way of checking than stack trace if (!stack.Contains("at ShopMenuStock.BuildItemList()")) { if (stack.Contains("at HutongGames.PlayMaker.Fsm.Start()")) { return(pd.GetBoolInternal(name)); } if (name.Contains("gotCharm_") && (stack.Contains("at HutongGames.PlayMaker.Fsm.DoTransition(HutongGames.PlayMaker.FsmTransition transition, Boolean isGlobal)") || InInventory())) { return(pd.GetBoolInternal(name)); } } string key; string key2; //Don't run randomizer if bool is not in the loaded data if (!reverseLookup.TryGetValue(name, out key) || !RandomizerMod.instance.Settings.StringValues.TryGetValue(key, out key2)) { return(pd.GetBoolInternal(name)); } else { int index = entries[key].GetIndex(name); RandomizerEntry randomizerEntry = entries[key2]; RandomizerVar var; //Return the matching bool or the first one if there is no matching index if (randomizerEntry.entries.Length > index) { var = randomizerEntry.entries[index]; } else { var = randomizerEntry.entries[0]; } if (var.type == typeof(bool)) { return(pd.GetBoolInternal(var.name)); } else { if (key2 == "Vengeful Spirit") { return(RandomizerMod.instance.Settings.fireball1); } else if (key2 == "Shade Soul") { return(RandomizerMod.instance.Settings.fireball2); } else if (key2 == "Desolate Dive") { return(RandomizerMod.instance.Settings.quake1); } else if (key2 == "Descending Dark") { return(RandomizerMod.instance.Settings.quake2); } else if (key2 == "Howling Wraiths") { return(RandomizerMod.instance.Settings.scream1); } else if (key2 == "Abyss Shriek") { return(RandomizerMod.instance.Settings.scream2); } return(pd.GetIntInternal(var.name) >= (int)var.value); } } }
private static bool IsResharperCaller() { var stackTrace = new StackTrace().ToString(); return(stackTrace.Contains("JetBrains.VsIntegration.")); }